Беспроводное соединение не работает, пока не будет выполнена команда arp -d 192.168.1.1

Беспроводное соединение не работает, пока не будет выполнена команда arp -d 192.168.1.1

У меня пропадает беспроводное соединение через несколько минут после подключения, а то и через полчаса или дольше.

Симптомы:

  • новые страницы не открываются
  • загрузка уже идет, продолжайте
  • пинг 8.8.8.8 не работает

«Исправление» простое (действует в течение случайного периода времени):

$ sudo arp -d 192.168.1.1

Это решение не имеет никакого смысла, так как я проверил, и это не ARP-яд.

Есть идеи, почему это происходит?

$ 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

Беспроводной маршрутизатор: ZonHub 1.0 (плата Hitron BVW3653 с настроенным OpenRG от Jungo, предоставленным моим интернет-провайдером)



EDIT 1 мая, 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

Как я уже сказал, это не яд ARP.

ПРИМЕЧАНИЕ 1:Я могу получить доступ только к одной веб-странице на своем маршрутизаторе, так как все остальное заблокировано интернет-провайдером.

решение1

Этот ответ будет основан на догадках, я понятия не имею, является ли это действительно причиной, но...

Когда вы удаляете маршрутизатор из таблицы ARP, ваш компьютер вынужден отправлять пакет ARP в следующий раз, когда он захочет отправить любой пакет маршрутизатору. Я могу предположить, что этот пакет ARP исправляет все, что сломано в таблице ARP маршрутизатора, поскольку в приведенном вами примере таблица ARP вашего компьютера, похоже, в порядке (одинаковая до и после ее «исправления»).

Я предполагаю, что таблица ARP маршрутизатора, если бы вы могли ее просмотреть, отображала бы "(неполная)" вместо MAC-адреса вашего компьютера (попробуйте выполнить ping несуществующего адреса локальной сети, чтобы увидеть, как это выглядит). Она бы пришла в такое состояние, если бы запись ARP в ней истекла, она передала бы пакет ARP, и этот пакет не достиг вашего компьютера (или ответный пакет не достиг маршрутизатора). Ваш пакет ARP завершает запись, и он снова может отправлять пакеты IPv4 на ваш компьютер.

Теперь, почему это произошло? Я могу придумать две возможные причины. Неправильно настроенный брандмауэр на маршрутизаторе или вашем компьютере (что, я думаю, маловероятно), или проблема с трансляцией с беспроводного маршрутизатора.

Широковещательные пакеты по стандарту 802.11 несколько проблематичны. Поскольку они направлены на все ассоциированные станции:

  • Они не подтверждены, поэтому точка доступа не может знать, были ли они получены. Это означает, что один неверный всплеск статического электричества может убить широковещательный пакет.
  • Они должны быть отправлены на скорости, которую могут слышать все станции. AP не может использовать лучшую скорость, найденную ее алгоритмами управления скоростью. Обычно это означает гораздо более низкую скорость, по сравнению с базовыми скоростями BSS. Это использует больше эфирного времени, но помогает с предыдущей проблемой (более низкие скорости обычно несколько более надежны).
  • Поскольку один и тот же пакет должен быть декодирован всеми связанными станциями, они не могут быть зашифрованы индивидуальным ключом станции. Вместо этого они должны быть зашифрованы отдельным групповым ключом, который знают все связанные станции. Этот групповой ключ периодически меняется (иначе станции, покинувшие сеть, все равно могли бы декодировать широковещательные пакеты).

У меня лично были, кажется, загадочные сбои, связанные с этим последним пунктом. Точка доступа, которую я когда-то настраивал, была с отключенным интервалом группового ключа. «Это глупо», подумал я, «зачем они отключают эту функцию безопасности?», и установил его на один час. Спустя некоторое время исправления периодических проблем с беспроводным соединением, которые можно было решить, пингуя с правильной стороны (я уже не помню, с проводной или беспроводной — у меня был доступ к брандмауэру по ssh, и я помню, что это была проблема ARP), у меня возникло озарение, и я подумал: «А, ВОТ ПОЧЕМУ он был отключен по умолчанию, он, вероятно, глючит в прошивке этой точки доступа, и они установили его на ноль в качестве исправления в последнюю минуту», вернул его на значение по умолчанию, и проблема исчезла.

Понятия не имею, в этом ли ваша проблема; производитель совершенно другой, и вы, вероятно, никогда не прикасались к столь экзотической настройке.

Следующее, что вы можете попробовать, это запустить сниффер, когда возникнет проблема, чтобы увидеть, какие пакеты обмениваются. Если у вас есть второй компьютер, вы можете подключить его к портам Ethernet LAN маршрутизатора и запустить сниффер на нем тоже в то же время (чтобы проверить, имеет ли моя гипотеза о трансляции ARP, видимой в LAN, но не в беспроводной сети, какое-то основание).

И я понятия не имею, как бы загрузки все еще продолжались, если бы моя гипотеза была верна. Возможно, он каким-то образом кэширует MAC-адрес в состоянии TCP-соединения?

Связанный контент