Вопрос или проблема
Я использую роутер Teltonika, который настроен так, чтобы заставлять пользователей принимать условия обслуживания на связном портале перед получением MAC-аутентификации. Он хорошо работает на моем Android-телефоне, но не работает на Ubuntu 22.04. Ближе всего к моей проблеме упомянуто здесь, но без рабочего решения (я пробовал все, что упомянуто в посте, который ссылается на более старые посты).
wlp5s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.1.0.2 netmask 255.255.255.255 broadcast 0.0.0.0
inet6 <some IPv6> prefixlen 64 scopeid 0x20<link>
ether <MAC> txqueuelen 1000 (Ethernet)
RX packets 8985492 bytes 10107328002 (10.1 GB)
RX errors 0 dropped 29354 overruns 0 frame 0
TX packets 3393278 bytes 1185857057 (1.1 GB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Пинг:
$ ping 10.1.0.1
PING 10.1.0.1 (10.1.0.1) 56(84) bytes of data.
^C
--- 10.1.0.1 ping statistics ---
1 packets transmitted, 0 received, 100% packet loss, time 0ms
Таблица маршрутизации
$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.1.1.1 0.0.0.0 UG 20600 0 0 wlp5s0
10.0.0.0 10.1.0.2 255.0.0.0 UG 600 0 0 wlp5s0
10.1.1.1 0.0.0.0 255.255.255.255 UH 20600 0 0 wlp5s0
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 wlp5s0
Curl на HTTP-сайт или сразу после подключения к сети, Firefox сообщает мне о странице входа в сеть. Но не может подключиться к ней:
http://10.2.1.1:81/cgi-bin/hotspot/macauth?res=notyet&uamip=10.2.1.1&uamport=3990&challenge=...
Я думаю, это проблема маршрутизации.
Беспроводная карта: Wireless-AC 9260
.
Ответ или решение
Введение и теория:
Система захвата (captive portal) представляет собой механизм, который используется для управления доступом пользователей к сетевым ресурсам. Обычно этот процесс работает следующим образом: устройство подключается к сети, и до того, как пользователь сможет использовать интернет, его сначала перенаправляют на страницу входа в систему, где он должен принять условия использования или ввести учетные данные.
В вашем случае, наблюдается проблема с работой captive portal на Ubuntu 22.04, тогда как все корректно функционирует на Android устройстве. Такая аномалия может быть связана с особенностями работы сетевых стеков различных операционных систем, в данном случае, Ubuntu, которое может обрабатывать сетевые конфигурации иначе, чем Android.
Анализ проблемы и пример:
Из предоставленного описания можно выделить ключевые точки для анализа проблемы:
-
Сетевой интерфейс: Интерфейс
wlp5s0
настроен корректно, так как он находится в состоянии UP и имеет присвоенный IP-адрес (10.1.0.2). -
Проблема с пингом: Пинг до шлюза (10.1.0.1) завершается ошибкой, что свидетельствует о полном отсутствии связи.
-
Маршрутизация: Маршрут по умолчанию указывает на 10.1.1.1, однако пинг выполняется на 10.1.0.1. В этом может заключаться первая потенциальная проблема.
-
Network Login через браузер: Firefox уведомляет о наличии страницы входа, но попытка соединения с указанными адресами блокируется.
-
Общий сетевой стек и конфигурация беспроводного модуля: Используется беспроводная карта Intel Wireless-AC 9260, которая обычно совместима с Linux, но возможно влияние драйверов или специфических особенностей прошивки.
Решение проблемы в данном случае может предполагать несколько этапов проверки и настройки:
-
Проверка сетевых маршрутов и пересечение с реальной конфигурацией сети: Обратите внимание на то, что есть ли проблемное пересечение между фактическим шлюзом и тем, который используется в маршрутах. Для этого можно использовать команды типа
ip route
и сравнить результат с ожидаемой конфигурацией сети. -
Проверка драйверов беспроводного адаптера: Убедитесь, что драйвер для Intel Wireless-AC 9260 обновлен до последней версии. Проверьте наличие дополнительных проприетарных драйверов, используя утилиту
Additional Drivers
в Ubuntu. -
Проблемы с ipv6: Возможно, у вас включен протокол ipv6, что может создавать проблемы. Попробуйте временно отключить ipv6, чтобы исключить его как причину (используя команду
sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1
). -
Настройка DNS и DHCP: Проверьте корректность настроек DNS и DHCP-сервера на маршрутизаторе. Возможно, стоит вручную прописать DNS-серверы, такие как 8.8.8.8 и 8.8.4.4 (Google DNS), если это допустимо в вашей сети.
-
Проверка iptables и брэндмауэров: Изучите текущие правила iptables, чтобы убедиться, что не блокируется трафик на порт 81 или порт 3990 (это порты, которые упоминаются в вашем запросе к captive portal).
-
Проверка прав на выполнение сетевых команд: В некоторых случаях может возникнуть необходимость в выполнении определенных сетевых команд с правами суперпользователя, что иногда упускают из виду.
Применение:
Следуя предложенным шагам, вы сможете определить основную причину возникшей проблемы и попробовать ее устранить. Проблемы с сетями могут быть сложными для диагностики на первый взгляд, но последовательный и методичный подход позволит значительно сузить круг поиска.
Завершение:
Учитывая, что ваш captive portal работает на Android-устройствах, есть высокая вероятность, что проблема индивидуальна для настройки Ubuntu. Попробуйте подключиться к другой сети с требованием входа через captive portal, чтобы проверить, проявляется ли проблема только в сети, управляемой вашим маршрутизатором Teltonika, или она возникает повсеместно. Это может сужать проблему до конфигурации самого устройства или зависимых компонентов.