dhclient não funciona em wlan0 com WEP. Como faço para corrigir isso?

1

Estou instalando o FreeBSD 9.0 na minha área de trabalho. Minha placa wireless é baseada em Intel (wip). bsdinstall configura corretamente meu dispositivo sem fio e meu wlan0 é associado à minha rede sem fio WEP e recebo o endereço DHCP atribuído pelo roteador. No entanto, não consigo me conectar à Internet. Isso não acontece se eu usar minha conexão com fio (interface fxp0). Eu me conecto por wireless do meu laptop Linux. Então, é um problema de configuração.

Meu /etc/rc.conf :

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

Meu /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
}

Tudo parece estar corretamente configurado, ou seja, minha conexão sem fio está associada e eu tenho um endereço IP atribuído ao servidor DHCP (meu roteador-ponto de acesso). No entanto, não consigo nem fazer ping no roteador.

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

Uma coisa que é surpising é que minhas tabelas de roteamento são apenas o caminho antes de eu mudar para wlan0 de fxp0. Não há menção da interface wlan0 lá.

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

No entanto, posso acessar meu roteador se eu usar 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 ---

No lado do meu roteador, verifiquei quais dispositivos eles acham que estão conectados a ele e ele mostra corretamente o endereço da interface sem fio e seu endereço MAC.

    
por Salil 28.07.2012 / 00:33

1 resposta

2

Verifique se você vê algum tráfego de entrada usando o tcpdump em wlan0:

tcpdump -i wlan0 -nl

Em seguida, instale arping e verifique se o seu roteador (ou qualquer coisa) do outro lado está respondendo (via IP ou MAC):

sudo arping -i wlan0 IP
sudo arping -i wlan0 MAC

Existe um truque no FreeBSD e no Mac (que não existe no Linux) para enviar a mensagem usando arping (ou arping2):

sudo arping -i wlan0 ff:ff:ff:ff:ff:ff

Este é um método adicional para verificar se algo do outro lado está respondendo.

Basicamente, se nada estiver respondendo, verifique sua chave WEP, se algo estiver respondendo, verifique se você está recebendo o pacote DHCP, se não, verifique seu servidor DHCP (talvez você tenha alguma restrição ACL baseada em endereços MAC).

Os outros comandos de diagnóstico que você pode executar são:

dmesg | tail

para ver se não há mensagens do kernel (por exemplo, erros de driver, etc.).

Verifique também se você tem uma ferramenta do Linux: iw (man iw).

Poderia dar a você mais opções e possibilidades. Veja: link

Exemplo (para conectar-se a um AP que usa WEP):

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

Depois de ter respondido pelo roteador, você pode verificar se está conectado à Internet.

Verifique o gateway primeiro, se estiver correto:

netstat -nr | head

Deve ser o primeiro endereço IP na coluna Gateway. Certifique-se de que ele esteja respondendo por pings padrão (ping IP).

Se não, você tem algum problema de configuração no roteador.

Se sim, tente fazer ping no DNS mais próximo:

ping 4.2.2.1

Se você tiver a resposta (isso significa que você tem acesso externo), você deve verificar sua configuração de DNS em /etc/resolv.conf (por exemplo, adicionando esta linha: nameserver 4.2.2.1 ) ou verificar no roteador se ele foi atribuído a você os certos.

    
por 29.07.2012 / 01:43