Wireless falha até que alguém arp -d 192.168.1.1

2

Minha conexão sem fio falha alguns minutos depois de ser conectada a meia hora ou mais.

Sintomas :

  • novas páginas não abrindo
  • downloads já em andamento continuam
  • ping 8.8.8.8 não está funcionando

A "correção" é fácil (dura por um período de tempo aleatório):

$ sudo arp -d 192.168.1.1

Esta solução não faz nenhum sentido, desde que eu verifiquei e não é veneno de ARP.

Alguma idéia de por que isso acontece?

$ ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
^C
--- 8.8.8.8 ping statistics ---
4 packets transmitted, 0 received, 100% packet loss, time 2999ms

$ sudo arp -d 192.168.1.1
$ ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_req=1 ttl=47 time=55.2 ms
64 bytes from 8.8.8.8: icmp_req=2 ttl=47 time=53.5 ms
64 bytes from 8.8.8.8: icmp_req=3 ttl=47 time=55.2 ms
64 bytes from 8.8.8.8: icmp_req=4 ttl=47 time=53.4 ms
^C
--- 8.8.8.8 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 53.425/54.358/55.282/0.923 ms

Roteador sem fio: ZonHub 1.0 (placa Hitron BVW3653 com o OpenRG da Jungo personalizado, fornecido pelo meu ISP)

EDIT 1 de maio às 17:12 UTC:
$ ip addr show wlan0
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
    link/ether 00:1c:bf:2a:09:b6 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.2/24 brd 192.168.1.255 scope global wlan0
    inet6 fe80::21c:bfff:fe2a:9b6/64 scope link 
       valid_lft forever preferred_lft forever
$ ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
^C
--- 8.8.8.8 ping statistics ---
9 packets transmitted, 0 received, 100% packet loss, time 7999ms
$ sudo arp -an 
? (192.168.1.1) at 00:05:ca:69:96:58 [ether] on wlan0
$ sudo arp -d 192.168.1.1
$ ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_req=1 ttl=47 time=53.5 ms
64 bytes from 8.8.8.8: icmp_req=2 ttl=47 time=53.8 ms
64 bytes from 8.8.8.8: icmp_req=3 ttl=47 time=79.8 ms
^C
--- 8.8.8.8 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 53.544/62.396/79.815/12.317 ms
$ ip addr show wlan0
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
    link/ether 00:1c:bf:2a:09:b6 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.2/24 brd 192.168.1.255 scope global wlan0
    inet6 fe80::21c:bfff:fe2a:9b6/64 scope link 
       valid_lft forever preferred_lft forever
$ sudo arp -an 
? (192.168.1.1) at 00:05:ca:69:96:58 [ether] on wlan0

Como eu havia dito, não veneno de ARP.

NOTA 1: só consigo aceder a uma página Web no meu router, uma vez que todo o resto está bloqueado pelo ISP.

    
por pedro 30.04.2012 / 13:32

1 resposta

1

Esta resposta vai ser um trabalho de adivinhação, não tenho ideia se esta é realmente a causa, mas ...

Quando você exclui o roteador da sua tabela ARP, seu computador é forçado a enviar um pacote ARP na próxima vez que quiser enviar qualquer pacote ao roteador. Eu posso adivinhar que este pacote ARP corrige o que está quebrado na tabela ARP do roteador, já que no exemplo que você postou a tabela ARP do seu computador parece estar bem (o mesmo antes e depois de "consertá-la").

Eu estou supondo que a tabela ARP do roteador, se você pudesse ver, mostraria "(incompleto)" em vez do endereço MAC do seu computador (tente pingar um endereço de LAN inexistente para um exemplo de como ele se parece). Ele chegaria a esse estado se a entrada ARP expirasse, transmitisse um pacote ARP e esse pacote de transmissão nunca chegasse ao seu computador (ou o pacote de resposta nunca chegasse ao roteador). Seu pacote ARP completa a entrada e pode enviar pacotes IPv4 para o seu computador novamente.

Agora, por que isso aconteceria? Eu posso pensar em duas causas possíveis. Um firewall mal configurado no roteador ou no computador (o que acho improvável) ou um problema com a transmissão do roteador sem fio.

Os pacotes de transmissão no padrão 802.11 são um pouco problemáticos. Como eles são direcionados para todas as estações associadas:

  • Eles não são reconhecidos, portanto, o AP não pode saber se eles foram recebidos. Isso significa que um único estouro incorreto de estática pode matar um pacote de transmissão.
  • Eles precisam ser enviados a uma taxa que todas as estações possam ouvir. O AP não pode usar a melhor taxa encontrada por seus algoritmos de controle de taxa. Isso geralmente significa uma taxa muito menor, a partir das taxas básicas do BSS. Isso usa mais tempo de transmissão, mas ajuda com o problema anterior (taxas mais baixas geralmente são um pouco mais robustas).
  • Como o mesmo pacote deve poder ser decodificado por todas as estações associadas, elas não podem ser criptografadas com a chave individual da estação. Em vez disso, eles precisam ser criptografados com uma chave de grupo separada, que todas as estações associadas conhecem. Esta chave de grupo é rotacionada periodicamente (caso contrário, as estações que deixaram a rede ainda podem decodificar os pacotes de transmissão).

Eu pessoalmente pareço falhas misteriosas relacionadas a este último ponto. Um ponto de acesso que eu configurei uma vez veio com o intervalo de chave de grupo desativado. "Isso é burro", pensei, "por que eles desabilitaram esse recurso de segurança?" E defini-lo para uma hora. Depois de algum tempo consertando problemas de conexão sem fio intermitentes que poderiam ser resolvidos pelo ping do lado correto (não me lembro mais se fosse do lado com fio ou sem fio - eu tinha acesso ssh ao firewall, e lembro que era um ARP Problema), eu tive uma visão e pensei: "Ah, é por isso que foi desativado por padrão, é provavelmente buggy sobre esse firmware de ponto de acesso e eles definem a zero como uma correção de última hora", configurá-lo de volta para o padrão, e o problema desapareceu.

Eu não tenho ideia se isso é problema seu; o fabricante é completamente diferente e você provavelmente nunca tocou em um cenário tão esotérico.

A próxima coisa que você poderia tentar seria executar um sniffer quando o problema acontecer, para ver quais pacotes estão sendo trocados. Se você tem um segundo computador, você poderia ligá-lo nas portas LAN Ethernet do roteador e executar um sniffer sobre isso também ao mesmo tempo (para ver se a minha hipótese de uma transmissão ARP visível na LAN, mas não na rede sem fio tem algum mérito ).

E eu não tenho ideia de como os downloads ainda continuariam se minha hipótese fosse verdadeira. Talvez de alguma forma armazene em cache o endereço MAC no estado da conexão TCP?

    
por 13.05.2012 / 03:00