Почему Linux не перебирает доступные точки доступа WLAN при отказе в аутентификации на одном AP?

Вопрос или проблема

Когда я нахожусь на первом этаже, есть места, где у меня сигнал от роутера [1] сильнее, чем у репитера Fritz 1750E, но соединение с роутером снова и снова обрывается [2]. Поэтому мне приходится явно устанавливать BSSID (Идентификатор базового сервиса), чтобы подключиться к репитеру. Почему Linux не пробует другие точки доступа, когда замечает, что соединение с одной из них несколько раз завершается неудачей?

[1] проверено с помощью sudo iwlist $NETWORK_INTERFACE_NAME scan | grep -B 5 -i $SSID

[2]

[12697.556999] wlp0s20f3: аутентификация с ROUTER_ADDRESS (локальный адрес=LOCAL_ADDRESS)
[12697.557972] wlp0s20f3: отправка аутентификации на ROUTER_ADDRESS (попытка 1/3)
[12697.597683] wlp0s20f3: ROUTER_ADDRESS отказал в аутентификации (статус 34)

Мои мысли

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

Расположение точек доступа

Мои родители живут в четырехэтажном доме, у них есть один роутер (FRITZ!Box 7590; второй этаж) и два репитера (Fritz!Repeater 1750E; второй этаж и FRITZ!Repeater 2400; четвертый этаж), которые находятся в конфигурации Mesh – не все квартиры арендованы моими родителями. Дом довольно старый, что приводит к слабому сигналу через потолки и стены.

Соответствующая информация из вопросов

Используете ли вы iwd или wpa_supplicant в качестве программного обеспечения для обработки роуминга и аутентификации?

xaver@xaver-latitude-3400:~$ systemctl list-units --type=service | grep -E 'iwd|wpa'
  wpa_supplicant.service                                загружен, активен, работает WPA supplicant
xaver@xaver-latitude-3400:~$ ps aux | grep -E 'iwd|wpa_supplicant'
root        1035  0.0  0.1  18392 11136 ?        Ss   09:13   0:07 /usr/sbin/wpa_supplicant -u -s -O DIR=/run/wpa_supplicant GROUP=netdev
xaver      20659  0.0  0.0   9276  2176 pts/1    S+   14:30   0:00 grep --color=auto -E iwd|wpa_supplicant

Ответ или решение

Почему Linux не переключается между доступными точками доступа Wi-Fi при отказе в аутентификации на одной из них

Ваша ситуация, когда Linux не переключается между доступными точками доступа WLAN, даже когда аутентификация с одной из них завершается неудачей, может быть объяснена рядом факторов, связанных с процессом аутентификации и тем, как операционная система управляет соединениями Wi-Fi.

1. Основы аутентификации и управление соединениями

Linux использует различные инструменты для управления беспроводными соединениями, среди которых наиболее распространенными являются wpa_supplicant и iwd. Судя по вашему описанию, у вас активно работает wpa_supplicant, который отвечает за аутентификацию и управление подключениями к WLAN. Он работает с конфигурацией сети, которая обычно включает предпочтительные точки доступа и параметры приоритета.

При попытке подключиться к роутеру (FRITZ!Box 7590) вы получаете сообщение об ошибке:

ROUTER_ADDRESS denied authentication (status 34)

Это означает, что роутер не принимает ваши учетные данные или по какой-то причине не может подтвердить соединение. Если wpa_supplicant получает отказ в аутентификации, он, как правило, ожидает, что проблема будет временной, и не переключается на другую точку доступа немедленно.

2. Алгоритм выбора AP

Алгоритм, которым управляет wpa_supplicant, не всегда ориентируется на переключение между точками доступа при возникновении проблем с одной из них. Обычно оно честно старается подключиться к текущему AP, особенно если для него задана большая приоритетность. В случае возникновения ошибки аутентификации, он может попытаться повторить подключение несколько раз (как видно из ваших логов, попытка 1/3) прежде чем произойдет переключение, и это может задерживать процесс.

3. Конфигурация сети и поведение клиента

Ваша конфигурация сети, скорее всего, имеет значения приоритета для точек доступа, которые не позволяют Linux легко переключаться на точки доступа с лучшим сигналом. Это связано с тем, что wpa_supplicant может быть настроен для истолкования прерываний как временные проблемы, и он не стремится незамедлительно переходить к другой AP, что могло бы негативно сказаться на стабильности соединения.

Вы также можете проверить, не включены ли опции, такие как ap_scan, которые могут ограничивать поведение переключения. Если они установлены неправильно, это может влиять на то, как клиент Linux взаимодействует с сетью.

4. Параметры управления передачей

Размещение точек доступа (в данном случае роутера и повторителей) в старом доме с толстыми стенами и перекрытиями также может влиять на характеристики соединения:

  • Чистота сигнала
  • Интерференция от других электроприборов
  • Параметры передачи

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

Решения

Чтобы улучшить ситуацию, вы можете предпринять следующие шаги:

  • Измените приоритет точек доступа в конфигурации wpa_supplicant.
  • Проверьте и измените параметры ap_scan в конфигурации, если это необходимо.
  • Используйте утилиты, такие как iw для ручного управления соединением и переключения на лучший сигнал.
  • Проверьте наличие обновлений драйверов вашего Wi-Fi адаптера, так как более новые версии могут улучшить поведение по переключению.

Заключение

В вашем случае, проблема с использованием wpa_supplicant и его поведением при аутентификации с роутером типична для многих пользователей. Это можно решить путем изменения настроек приоритета точек доступа и оптимизации конфигурации клиента. Надеюсь, эти рекомендации помогут улучшить ваш опыт при работе с беспроводными сетями.

Оцените материал
Добавить комментарий

Капча загружается...