Hatred's Log Place

DON'T PANIC!

Jan 3, 2016 - 6 minute read - linux

ThinkPad T530, WiFi и DEAUTH_LEAVING

После экспериментов с роутером Zyxel Keenetic 4G II (прошил неофициальную прошивку серии V1 (V1.11.RU.NDMS), на родной серии V2 непредсказуемо работал multicast IPTV) заметил, что WiFi стал работать как-то нестабильно (затыки с сайтами, постоянный реконнект у мессенджеров). Временами, но стабильно, стал вылазить диалог с просьбой ввести пароль от точки. Будто бы порвалась связь и не получилось подключиться с какого-то количества попыток.

Размышляя, что менял (ну кроме самой прошивки), вспомнил, что я переключил WiFi с режима 11b/g на режим 11b/g/n (раньше прошивка читалки не могла цепляться, если AP в таком режиме, после прошивку исправили, а настройки так и остались). Действительно, когда я переключил роутер обратно в режим 11b/g, то всё стало на свои места, так что не прошивка виновата. Казалось бы - решение найдено, но такой путь - не наш метод (хотя… если ничто другое не помогает, то лучше синица в руках, чем журавль в небе).

Если есть проблемы, куда нужно лезть? Не, не в гугл: что бы его спросить, нужно сначала узнать - что спросить. Поэтому лезем в логи, а там, с периодичностью в минуту (плюс-минус пара секунд) такое:

Jan  3 09:49:47 localhost kernel: [32313.303935] wlan0: deauthenticating from ff:ff:ff:ff:ff:f0 (заменил на фейковый) by local choice (Reason: 3=DEAUTH_LEAVING)
Jan  3 09:49:47 localhost wpa_supplicant[1354]: wlan0: CTRL-EVENT-DISCONNECTED bssid=ff:ff:ff:ff:ff:f0 reason=3 locally_generated=1
Jan  3 09:49:47 localhost NetworkManager[1171]: <warn> Connection disconnected (reason -3)
Jan  3 09:49:47 localhost NetworkManager[1171]: <info> (wlan0): supplicant interface state: completed -> disconnected
Jan  3 09:49:47 localhost kernel: [32313.320727] cfg80211: World regulatory domain updated:
Jan  3 09:49:47 localhost kernel: [32313.320733] cfg80211:  DFS Master region: unset
Jan  3 09:49:47 localhost kernel: [32313.320736] cfg80211:   (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp), (dfs_cac_time)
Jan  3 09:49:47 localhost kernel: [32313.320740] cfg80211:   (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm), (N/A)
Jan  3 09:49:47 localhost kernel: [32313.320744] cfg80211:   (2457000 KHz - 2482000 KHz @ 40000 KHz), (300 mBi, 2000 mBm), (N/A)
Jan  3 09:49:47 localhost kernel: [32313.320746] cfg80211:   (2474000 KHz - 2494000 KHz @ 20000 KHz), (300 mBi, 2000 mBm), (N/A)
Jan  3 09:49:47 localhost kernel: [32313.320749] cfg80211:   (5170000 KHz - 5250000 KHz @ 40000 KHz), (300 mBi, 2000 mBm), (N/A)
Jan  3 09:49:47 localhost kernel: [32313.320752] cfg80211:   (5735000 KHz - 5835000 KHz @ 40000 KHz), (300 mBi, 2000 mBm), (N/A)
Jan  3 09:49:47 localhost kernel: [32313.324167] cfg80211: Regulatory domain changed to country: RU
Jan  3 09:49:47 localhost kernel: [32313.324172] cfg80211:  DFS Master region: unset
Jan  3 09:49:47 localhost kernel: [32313.324174] cfg80211:   (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp), (dfs_cac_time)
Jan  3 09:49:47 localhost kernel: [32313.324178] cfg80211:   (2402000 KHz - 2482000 KHz @ 40000 KHz), (N/A, 2000 mBm), (N/A)
Jan  3 09:49:47 localhost kernel: [32313.324181] cfg80211:   (5735000 KHz - 5835000 KHz @ 20000 KHz), (N/A, 3000 mBm), (N/A)
Jan  3 09:49:47 localhost wpa_supplicant[1354]: wlan0: CTRL-EVENT-SCAN-STARTED 
Jan  3 09:49:47 localhost NetworkManager[1171]: <info> (wlan0): supplicant interface state: disconnected -> scanning
Jan  3 09:49:48 localhost wpa_supplicant[1354]: wlan0: SME: Trying to authenticate with ff:ff:ff:ff:ff:f0 (SSID='sample-ssid' freq=2472 MHz)
Jan  3 09:49:48 localhost kernel: [32314.524734] wlan0: authenticate with ff:ff:ff:ff:ff:f0
Jan  3 09:49:48 localhost kernel: [32314.524747] wlan0: capabilities/regulatory prevented using AP HT/VHT configuration, downgraded
Jan  3 09:49:48 localhost wpa_supplicant[1354]: wlan0: Trying to associate with ff:ff:ff:ff:ff:f0 (SSID='sample-ssid' freq=2472 MHz)
Jan  3 09:49:48 localhost kernel: [32314.526075] wlan0: send auth to ff:ff:ff:ff:ff:f0 (try 1/3)
Jan  3 09:49:48 localhost kernel: [32314.527929] wlan0: authenticated
Jan  3 09:49:48 localhost kernel: [32314.529289] wlan0: associate with ff:ff:ff:ff:ff:f0 (try 1/3)
Jan  3 09:49:48 localhost NetworkManager[1171]: <info> (wlan0): supplicant interface state: scanning -> associating
Jan  3 09:49:48 localhost wpa_supplicant[1354]: wlan0: Associated with ff:ff:ff:ff:ff:f0
Jan  3 09:49:48 localhost kernel: [32314.534416] wlan0: RX AssocResp from ff:ff:ff:ff:ff:f0 (capab=0x411 status=0 aid=1)
Jan  3 09:49:48 localhost kernel: [32314.536430] wlan0: associated
Jan  3 09:49:48 localhost kernel: [32314.539815] cfg80211: Regulatory domain changed to country: TW
Jan  3 09:49:48 localhost kernel: [32314.539820] cfg80211:  DFS Master region: unset
Jan  3 09:49:48 localhost kernel: [32314.539822] cfg80211:   (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp), (dfs_cac_time)
Jan  3 09:49:48 localhost kernel: [32314.539827] cfg80211:   (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2700 mBm), (N/A)
Jan  3 09:49:48 localhost kernel: [32314.539830] cfg80211:   (5270000 KHz - 5330000 KHz @ 40000 KHz), (300 mBi, 1700 mBm), (0 s)
Jan  3 09:49:48 localhost kernel: [32314.539833] cfg80211:   (5735000 KHz - 5815000 KHz @ 40000 KHz), (300 mBi, 3000 mBm), (N/A)
Jan  3 09:49:48 localhost NetworkManager[1171]: <info> (wlan0): supplicant interface state: associating -> associated
Jan  3 09:49:49 localhost NetworkManager[1171]: <info> (wlan0): supplicant interface state: associated -> 4-way handshake
Jan  3 09:49:49 localhost wpa_supplicant[1354]: wlan0: WPA: Key negotiation completed with ff:ff:ff:ff:ff:f0 [PTK=CCMP GTK=CCMP]
Jan  3 09:49:49 localhost wpa_supplicant[1354]: wlan0: CTRL-EVENT-CONNECTED - Connection to ff:ff:ff:ff:ff:f0 completed [id=0 id_str=]
Jan  3 09:49:49 localhost NetworkManager[1171]: <info> (wlan0): supplicant interface state: 4-way handshake -> completed

Вышеописанный диалог запроса пароля, судя по всему, вылазит, когда не проходил 4-way handshake, так что проблема не только в реконнектах, а ещё и в каких-то гонках при реинициализации соединения. Приятно, если оставили закачку и пошли обедать/пить кофе/спать.

Ищем, используя ключевые слова: intel, wifi, DEAUTH_LEAVING. Гугл выдаёт море ссылок на эту тему, основной посыл которых:

  1. выключить dhcpcd;
  2. выключить power management;
  3. прописать регион для crda;
  4. запретить 11n.

Первые два пункта, в моём, случае - полный промах. Третий - не помогло. А вот четвёртый… не хочется. Т.к. быстрее. Где-то наткнулся на то, что при использовании 11n стандарта, но если будет для шифрования ключа использоваться TKIP, то скорость будет не больше 54Мбит. Это навело на мысль посмотреть подробнее описания стандартов и оказалось, что для 11n стандарта рекомендованной является пара: WPA2+AES.

На роутере же у меня заявлена полная универсальность: WPA/WPA2 mix и TKIP/AES mix.

Выставление этих параметров в:

  • WPA2 only
  • AES only
  • плюс включение Wi-Fi_Multimedia|WMM (опция попала под замес, но без неё было уже лень пробовать)

привело к исправлению проблемы с отвалами WiFi. Кроме того, сведения о соединении теперь стабильно дают 135-150 Мбит (антенка одна), против 48-64 при старых настройках: уж не знаю насколько это реально, чуть позже протестирую доступ с одного устройства на другое. Продукты Apple к сети с такой конфигурацией подключиться не смогут (или уже смогут?), но меня это мало волнует ввиду отсутствия оных.

Ну и ссылки, которые навели меня на мысли:

По поводу параметров ключа и понижения скорости:

И, на последок, куда смотрел, что бы найти причину:

  • /var/log/syslog (альтернативно: /var/log/messages или даже /var/log/everything)
  • традиционно dmesg