Wi-Fi-кліент і хотспот на адным радыё: што ламаецца
Хотспот на Pi можа выглядаць здаровым, пакуль яго Wi-Fi-аплінк затыкаецца. Прачытайце камбінацыі інтэрфейсаў і абмежаванні канала ўсталяванага радыё, перш чым вінаваціць VPN.
Ваш тэлефон застаецца падключаным да хотспота, пакуль аплінк не прапускае нічога. Pi па-ранейшаму паведамляе пра асацыяцыю Wi-Fi, пункт доступу па-ранейшаму рассылае beacon, і кожны запыт сканчаецца тайм-аўтам. Адно радыё адначасова абслугоўвае дзве ролі, і адна з іх перамагае, калі другой патрэбны канал. Перш чым чапаць VPN, вызначце, ці ўвогуле прымаюць ўсталяваны драйвер і прашыўка такую пару роляў.
Сімптом паказвае на радыё, а не на тунель
Прасочвайце збой па парадку, і ён перастае выглядаць як памылка маршрутызацыі. Кліент далучаецца да хотспота, атрымлівае адрас і загружае адну-дзве старонкі. Затым інтэрфейс станцыі зноў асацыюецца з вышэйшым маршрутызатарам пасля роўмінгу, абнаўлення ключа або кароткага правалу сігналу. Пункт доступу альбо перазапускае свой beacon, альбо пакідае кліентаў без шляху, а журнал VPN запаўняецца спробамі перападключэння, якія ніколі не былі прычынай.
Два імёны інтэрфейсаў не ствараюць два радыё. wlan0 і інтэрфейс пункта доступу дзеляць адну прыладу, адзін канечны аўтамат канала і адзін планавальнік прашыўкі. Ядро дакладна паказвае, якія камбінацыі роляў і каналаў падтрымлівае гэтая прылада, таму чытайце гэты спіс, а не меркавайце, што пара працуе, раз абодва інтэрфейсы ўзняліся.
Прачытайце камбінацыю, перш чым нешта змяніць
Бесправадны стэк абвяшчае свой кантракт у раздзеле камбінацый інтэрфейсаў каманды iw list. Кожная пранумараваная камбінацыя пералічвае дазволеныя колькасці роляў, колькі інтэрфейсаў можа існаваць і колькі розных каналаў гэтыя інтэрфейсы могуць займаць адначасова. Камбінацыя, у якой паказаны адна станцыя і адзін пункт доступу на адным канале, — тая, што патрэбна гэтаму разгортванню.
iw list | sed -n '/valid interface combinations/,/^$/p'
Чытайце лікі, а не толькі наяўнасць слоў. Драйвер можа падтрымліваць рэжым станцыі і рэжым пункта доступу асобна, тады як адзіная законная камбінацыя абодвух дапускае толькі адзін канал, невялікую агульную колькасць інтэрфейсаў або інтэрвал beacon, які хотспот не вытрымае. Некаторыя прашыўкі таксама губляюць адну ролю падчас сканавання або абнаўлення ключа, што выглядае як нестабільны аплінк, а не як мяжа магчымасцей. Калі ніводная камбінацыя не пералічвае абедзве ролі, пара не падтрымліваецца, што б ні прапаноўвала кнопка хотспота на працоўным стале.
Дакументацыя па камбінацыях інтэрфейсаў cfg80211 апісвае палі і абмежаванне beacon. Значэнні аднаго адаптара нічога не кажуць пра іншы, таму захоўвайце вывад разам з машынай, а не абагульвайце яго.
План канала і адрасоў вырашае астатняе
Пункт доступу павінен сядзець на канале, які радыё здольнае абслугоўваць, а аплінк станцыі павінен ісці за вышэйшым пунктам доступу. Калі гэтыя два рашэнні не супадаюць, адна роля павінен перазапусціцца. На многіх адаптарах з адным радыё хотспот таму паўтарае канал станцыі, і змена канала на вышэйшым баку на кароткі час цягне хотспот за сабой уніз.
Плануйце бок IP асобна ад радыё. Маршрутызаваны хотспот звычайна выкарыстоўвае прыватную падсетку накшталт 192.168.50.0/24, Pi на 192.168.50.1, пул DHCP унутры гэтай падсеткі і Pi ў ролі перасылаючага рэзалвера. Агульны рэжым NetworkManager наладжвае перасылку і трансляцыю адрасоў для гэтай падсеткі, але не дадае ёмістасці радыё і не робіць тунель адзіным выйсцем. Запішыце, ці мосцяцца кліенты на другім узроўні або маршрутызуюцца на трэцім, перш чым спрачацца пра палітыку VPN.
Парадак тэстаў, які аддзяляе радыё ад маршрутызацыі
Рухайцеся ад прылады вонкі і спыніцеся на першым кроку, які не спрацуе. Гэтыя чытанні бяспечныя на працуючай сістэме і не мяняюць канфігурацыю. Выконвайце іх, калі кліент асацыяваны, а аплінк знаходзіцца ў стане, які вы адладжваеце.
iw dev
iw dev wlan0 link
nmcli -t -f DEVICE,STATE,CONNECTION device status
ip -br addr show
sysctl net.ipv4.ip_forward
Калі iw dev wlan0 link не паказвае асацыяцыі, праблема радыё ідзе першай, а тунель не мае значэння. Калі аплінк асацыяваны, а ў кліента няма адраса, значыць няправільныя падключэнне і паўнамоцтвы DHCP. Калі ў кліента ёсць адрас, але няма даступнасці, не хапае перасылкі, трансляцыі або дастаўкі рэзалвера. Толькі калі працуюць і шлях хотспота, і шлях аплінка, збойны тунель становіцца наступным, што трэба праверыць.
Запішыце адаптар, драйвер і прашыўку побач з прынятай камбінацыяй і правілам канала. Пазнейшае абнаўленне ядра або прашыўкі можа змяніць падтрымліваемы спіс, і менавіта гэтая нататка ператварае загадку ў вядомае абмежаванне.