dhclient 无法在采用 WEP 的 wlan0 上工作。我该如何修复?

dhclient 无法在采用 WEP 的 wlan0 上工作。我该如何修复?

我正在我的台式机上安装 FreeBSD 9.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

令人吃惊的是,我的路由表和我从 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

使用 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)。

如果没有,则说明路由器存在一些配置问题。

如果是,则尝试通过以下方式 ping 最近的 DNS:

ping 4.2.2.1

如果您有回应(这意味着您有外部访问权限),您应该检查 /etc/resolv.conf 中的 DNS 配置(例如,添加此行nameserver 4.2.2.1:)或检查路由器是否为您分配了正确的 DNS 配置。

相关内容