Недавно обратился клиент с проблемой на 802.11 сети: с мобильных телефонов часто не удавалось подключиться к SSID, зависало на фазе аутентификации. Со стационарных устройств таких проблем замечено не было - но именно с мобильных, как сообщал заказчик. Мы попросили сообщить происходит ли это во время удаления пользователя от точки доступа или нет, но клиент не смог сообщить, он сам не знал где физически располагаются точки доступа.
Точки доступа Huawei управлялись с контроллера AC6605. Мы запросили диагностическую информацию и логи с контроллера, и заметили, что проблема происходит, когда RSSI принимаемого сигнала от мобильного устройства доходил до примерно -72 dbm. При этом в логах генерировалась масса сообщений об отсутствии ответа от мобильного телефона, из-за чего точка AP пересылала EAPoL запрос снова и снова:
EAPoL - это формат инкапсуляции пакетов, определенный протоколом 802.1X. EAPoL в основном используется для передачи пакетов EAP по локальной сети между клиентом и сервером аутентификации. Иными словами, EAP (Extensible Authentication Protocol) - это сообщение, которое содержит данные для аутентификации. Оно инкапсулируется в формат, который называется EAPoL, чтобы быть переданным по сети между всеми участниками процесса аутентификации.
Поскольку уровень сигнала RSSI находился на пределе, мы предположили, что установка меньшего MTU (по умолчанию 1500 байт) сделает пакеты более устойчивыми, так как с увеличением размера пакета вероятность потери этого пакета увеличивается при низком уровне сигнала. А отключение тайм-аута сеанса заставит точку доступа ждать пакетов от мобильного устройства дольше.
В результате это, действительно, сделало обмен пакетами на этапе аутентификации более надежным:
[AC6605] radius-server template XXXXXX
[AC6605-radius-XXXXXX] radius-server attribute translate
[AC6605-radius-XXXXXX] radius-attribute disable session-timeout receive
[AC6605-radius-XXXXXX] radius-attribute set framed-mtu 1000
---
Почему и как MTU (и MSS) влияют на скорость передачи данных подробнее: "Большой разбор TCP: почему ping есть, но соединения нет!"