web-dev-qa-db-ja.com

dhclientは、WEPを使用するwlan0では機能しません。どうすれば修正できますか?

デスクトップにFreeBSD9.0をインストールしています。私のワイヤレスカードはIntelベース(wip)です。 bsdinstallはワイヤレスを正しくセットアップし、wlan0はWEPワイヤレスネットワークに関連付けられ、ルーターによって割り当てられたDHCPアドレスを取得します。しかし、インターネットに接続できません。有線接続(fxp0インターフェイス)を使用している場合、これは発生しません。 Linuxラップトップからワイヤレスで接続します。だから、それは構成の問題です。

私の/etc/rc.conf

hostname="blah.."
wlans_wpi0="wlan0"
ifconfig_wlan0="WPA DHCP"
..

私の/etc/wpa_supplicant.conf

ctrl_interface=/var/run/wpa_supplicant
eapol_version=2
ap_scan=1
fast_reauth=1

network={
    ssid="{my ssid}"
    key_mgmt=WPA-PSK
    proto=RSN
    psk="{my passphrase}"
    priority=2
}
network={
  priority=5
  key_mgmt=NONE
}

すべてが正しく構成されているように見えます。つまり、ワイヤレスが関連付けられており、DHCPサーバー(ルーター兼アクセスポイント)にIPアドレスが割り当てられています。ただし、ルーターにpingを実行することもできません。

salil-satellite# /etc/rc.d/netif restart wlan0
Stopping wpa_supplicant.
Waiting for PIDS: 429.
Stopping Network: wlan0.
wlan0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500
    ether 00:13:02:68:0e:e2
    nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
    media: IEEE 802.11 Wireless Ethernet autoselect (autoselect)
    status: no carrier
    ssid "" channel 11 (2462 MHz 11g)
    country US authmode WPA2/802.11i privacy OFF txpower 0 bmiss 7
    scanvalid 60 protmode CTS
Starting wpa_supplicant.
wlan0: no link ....... got link
DHCPREQUEST on wlan0 to 255.255.255.255 port 67
DHCPREQUEST on wlan0 to 255.255.255.255 port 67
ip length 314 disagrees with bytes received 534.
accepting packet with data after udp payload.
DHCPACK from 192.168.1.1
bound to 192.168.1.2 -- renewal in 24701 seconds.
Starting Network: wlan0.
wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
    ether 00:13:02:68:0e:e2
    inet 192.168.1.2 netmask 0xffffff00 broadcast 192.168.1.255
    nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
    media: IEEE 802.11 Wireless Ethernet OFDM/36Mbps mode 11g
    status: associated
    ssid salquestfl channel 11 (2462 MHz 11g) bssid 00:1b:2f:4a:6a:00
    country US authmode WPA2/802.11i privacy ON deftxkey UNDEF
    AES-CCM 2:128-bit AES-CCM 3:128-bit txpower 0 bmiss 7 scanvalid 60
    protmode CTS roaming MANUAL

salil-satellite# tail /var/log/messages 
Jul 31 23:44:44 salil-satellite dhclient[3225]: My address (192.168.1.2) was deleted, dhclient exiting
Jul 31 23:44:44 salil-satellite kernel: wpi0: need multicast update callback
Jul 31 23:44:44 salil-satellite kernel: wpi0: need multicast update callback
Jul 31 23:44:44 salil-satellite dhclient: New IP Address (wlan0): 192.168.1.4
Jul 31 23:44:44 salil-satellite dhclient: New Subnet Mask (wlan0): 255.255.255.0
Jul 31 23:44:44 salil-satellite dhclient: New Broadcast Address (wlan0): 192.168.1.255
Jul 31 23:44:44 salil-satellite dhclient[3213]: connection closed
Jul 31 23:44:44 salil-satellite dhclient[3213]: exiting.
Jul 31 23:44:44 salil-satellite dhclient: New Routers (wlan0): 192.168.1.1
Jul 31 23:44:48 salil-satellite init: getty repeating too quickly on port /dev/ttyv8, sleeping 30 secs

驚いたことの1つは、ルーティングテーブルがfxp0からwlan0に切り替える直前の方法であるということです。そこにはwlan0インターフェースについての言及はありません。

salil-satellite# netstat -nr 
Routing tables

Internet:
Destination        Gateway            Flags    Refs      Use  Netif Expire
default            192.168.1.1        UGS         0    57365   fxp0
127.0.0.1          link#10            UH          0        0    lo0
192.168.1.0/24     link#9             U           0      684   fxp0
192.168.1.3        link#9             UHS         0        0    lo0
192.168.1.4        link#11            UHS         0        0    lo0

salil-satellite# vi /etc/resolv.conf 

# Generated by resolvconf
nameserver 192.168.1.1
:q

salil-satellite# ping 192.168.1.1
PING 192.168.1.1 (192.168.1.1): 56 data bytes
ping: sendto: Host is down
ping: sendto: Host is down
^C
--- 192.168.1.1 ping statistics ---
4 packets transmitted, 0 packets received, 100.0% packet loss
salil-satellite# ifconfig wlan0
wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
    ether 00:13:02:68:0e:e2
    inet 192.168.1.4 netmask 0xffffff00 broadcast 192.168.1.255
    nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
    media: IEEE 802.11 Wireless Ethernet OFDM/36Mbps mode 11g
    status: associated
    ssid salquestfl channel 11 (2462 MHz 11g) bssid 00:1b:2f:4a:6a:00
    country US authmode WPA2/802.11i privacy ON deftxkey UNDEF
    AES-CCM 2:128-bit AES-CCM 3:128-bit txpower 0 bmiss 7 scanvalid 60
    protmode CTS roaming MANUAL

ただし、arpingを使用すると、ルーターにアクセスできます。

salil-satellite# arping -i wlan0 192.168.1.1
ARPING 192.168.1.1
42 bytes from 00:1b:2f:4a:6a:00 (192.168.1.1): index=0 time=1.501 msec
42 bytes from 00:1b:2f:4a:6a:00 (192.168.1.1): index=1 time=1.509 msec
42 bytes from 00:1b:2f:4a:6a:00 (192.168.1.1): index=2 time=1.498 msec
42 bytes from 00:1b:2f:4a:6a:00 (192.168.1.1): index=3 time=1.490 msec
42 bytes from 00:1b:2f:4a:6a:00 (192.168.1.1): index=4 time=1.600 msec
^C
--- 192.168.1.1 statistics ---

ルーター側で、接続されていると思われるデバイスを確認したところ、ワイヤレスインターフェイスアドレスとそのMACアドレスが正しく表示されています。

1
Salil

Wlan0でtcpdumpを使用して着信トラフィックが表示されるかどうかを確認します。

tcpdump -i wlan0 -nl

次に、arpingをインストールし、反対側のルーター(または何か)が(IPまたはMAC経由で)応答しているかどうかを確認します。

Sudo arping -i wlan0 IP
Sudo arping -i wlan0 MAC

FreeBSDとMac(Linuxには存在しません)には、arping(またはarping2)を使用してブロードキャストメッセージを送信するためのトリックがあります。

Sudo arping -i wlan0 ff:ff:ff:ff:ff:ff

これは、反対側の何かが応答しているかどうかを確認するための追加の方法です。

基本的に、何も応答しない場合は、WEPキーを確認し、何かが応答している場合は、着信DHCPパケットがあるかどうかを確認し、そうでない場合は、DHCPサーバーを確認します(MACアドレスに基づくACL制限がある可能性があります)。

実行できるその他の診断コマンドは次のとおりです。

dmesg | tail

カーネルメッセージ(ドライバーエラーなど)がないかどうかを確認します。

Linuxツールがあるかどうかも確認してください:iw(man iw)。

それはあなたに同じより多くのオプションと可能性を与えるかもしれません。参照: http://wireless.kernel.org/en/users/Documentation/iw/

例(WEPを使用するAPに接続するには):

iw wlan0 connect foo keys 0:abcde d:1:0011223344).

ルーターからの応答があれば、インターネットに接続しているかどうかを確認できます。

ゲートウェイが正しい場合は、最初に確認してください。

netstat -nr | head

[ゲートウェイ]列の最初のIPアドレスである必要があります。標準のping(ping IP)に応答していることを確認してください。

そうでない場合は、ルーターの構成に問題があります。

はいの場合は、次の方法で最も近いDNSにpingを実行してみてください。

ping 4.2.2.1

応答がある場合(つまり、外部アクセスがある場合)、/ etc/resolve.confでDNS構成を確認する必要があります(たとえば、次の行を追加します:nameserver 4.2.2.1)または、ルーターが適切なルーターに割り当てられているかどうかを確認します。

2
kenorb