Недавно у меня начались проблемы с ноутбуком (на котором установлена Ubuntu 22.04) в локальной сети WiFi, который не мог подключиться к двум отдельным устройствам Android (оба с установленным SSHelper). При первой попытке, когда я пытался пинговать android1 с ноутбука, я продолжал получать ошибку «Destination Host Unreachable». Но когда я попытался пинговать ноутбук с android1 после примерно 5 или 10 одинаковых сообщений об ошибке, внезапно все заработало!
Но затем, когда я попробовал тот же подход с ноутбука на android2, он не сработал. После того, как я выдернул кучу волос, я подумал, что стоит попробовать вручную добавить MAC-адрес android2 в таблицу ARP на ноутбуке (arp -s), и внезапно это заработало! Пару часов спустя я попытался подключиться с ноутбука к android2, и это снова не сработало. Таблица ARP все еще была в том же состоянии. На этот раз мне удалось заставить ее работать, добавив MAC-адрес ноутбука в таблицу ARP на android2! (К счастью, android2 — это рутируемое устройство!)
Хотя это обходной путь, пока я не докопаюсь до сути, почему он не работает, он не решит проблему в долгосрочной перспективе. Кроме того, похоже, что все найденные мной обходные пути перестают работать через некоторое время, и мне нужно попробовать еще кучу всего! Как мне устранить проблему? Я уже пробовал перезагружать все устройства (это на самом деле первое, что я попробовал, так как в прошлом, как я помню, это работало), я просмотрел сетевые маршруты, маски подсетей, таблицу ARP (в которой указано «неполная», пока я вручную не вставлю ее туда принудительно). Мне кажется, что может быть какая-то проблема с широковещательными пакетами или чем-то еще — возможно, проблема в сети WiFi?
решение1
ARP, вероятно, не работает из-за того, что multicast (который в контексте Wi-Fi включает широковещательную передачу) не работает из-за неправильной реализации, возможно, в драйверах Wi-Fi вашего устройства Android или, возможно, в вашей точке доступа (беспроводном маршрутизаторе). Multicast — сложная задача в Wi-Fi, и существует множество ошибочных реализаций, как в точках доступа, так и в клиентах.
Пинг широковещательного адреса подсети или многоадресного адреса всех хостов (224.0.0.1) с разных клиентов и просмотр того, кто отвечает или не отвечает в каждом случае, может пролить свет на то, работает ли многоадресная рассылка (предостережение: к сожалению, Windows не всегда любит отвечать на широковещательные или многоадресные пинги по соображениям политики, поэтому не удивляйтесь, если вы не получите ответов от устройств Windows).
Если multicast действительно сломан, перезагрузка вашей точки доступа может устранить проблему на некоторое время, пока что-то снова не сломается. Даже если ошибка в клиентах, перезагрузка точки доступа заставляет их переподключаться, что может сбросить все на некоторое время.
Другой тест — временное отключение беспроводной безопасности. Самая сложная часть многоадресной передачи по Wi-Fi связана с криптографией безопасности. Так что если отключение безопасности решает проблему (не только временно), то это указывает на глючную реализацию WPA2 где-то. Когда вы снова включите безопасность, обязательно используйте WPA2 (или более позднюю версию)только. То есть, AES-CCMPтолько. Оригинальный WPA (TKIP) не должен быть включен или доступен каким-либо образом. То же самое касается WEP.
Если это поломка многоадресной рассылки, а не безопасности, то это может быть настройка скорости многоадресной рассылки вашей точки доступа. Убедитесь, что она установлена на достаточно низкую скорость, чтобы ее надежно принимали все устройства в вашей сети. Или временно просто установите ее на минимально возможную скорость (1 Мбит/с на 2,4 ГГц b/g/n/ax, 6 Мбит/с на 5 ГГц a/n/ac/ax).
Последняя потенциальная причина сбоя многоадресной передачи в Wi-Fi — слишком большой многоадресный трафик. Если вы используете многоадресную потоковую передачу в проводной локальной сети Ethernet, убедитесь, что вы включили функцию «IGMP Snooping» вашей точки доступа, чтобы предотвратить ее затопление в вашей сети Wi-Fi.