Горячая точка только для IPv6 с использованием hostapd и dnsmasq

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

Чтобы протестировать возможность IPv6 на наших конечных устройствах, мне нужно настроить точку доступа на Raspberry Pi, которая предоставляет только IPv6 адреса.

Я следовал этому руководству: https://partiallydisassembled.net/posts/pi-nat64.html

Я подтвердил, что у меня есть IPv6 адрес на интерфейсе wlan0:

wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet6 fe80::da3a:ddff:fe91:634  prefixlen 64  scopeid 0x20<link>
        inet6 fec0::1  prefixlen 64  scopeid 0x40<site>
        ether d8:3a:dd:91:06:34  txqueuelen 1000  (Ethernet)
        RX packets 17  bytes 2780 (2.7 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 42  bytes 6004 (6.0 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

И hostapd настроен правильно и работает. Я пытаюсь подключиться к точке доступа со своего телефона, и получаю сообщение, что подключение невозможно.

Если я проверяю вывод отладки dnsmasq, я вижу, что мой телефон отправляет сообщение RTR-SOLICIT, и маршрутизатор отправляет RTR-ADVERT, но после этого ничего не происходит.

dnsmasq-dhcp: RTR-ADVERT(wlan0) fec0::
dnsmasq-dhcp: RTR-SOLICIT(wlan0) 48:bc:e1:fb:2a:ba
dnsmasq-dhcp: RTR-ADVERT(wlan0) fec0::
dnsmasq-dhcp: RTR-ADVERT(wlan0) fec0::
dnsmasq-dhcp: RTR-ADVERT(wlan0) fec0::

Если все переключить на IPv4, всё работает хорошо, так что я думаю, что проблема в конфигурации dnsmasq. Мой конфигурационный файл выглядит так:

interface=wlan0
bind-interfaces
domain-needed
bogus-priv
server=2001:4860:4860::6464
local=/pi64/
domain=pi64
dhcp-fqdn
enable-ra
dhcp-range=::,constructor:wlan0,slaac
dhcp-option=option6:dns-server,2001:4860:4860::6464
dhcp-authoritative

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

Для настройки точки доступа на Raspberry Pi, которая будет обеспечивать только IPv6-адреса, вам потребуется правильно настроить hostapd и dnsmasq. Судя по вашему описанию, у вас уже настроен интерфейс wlan0 с IPv6-адресом, а hostapd запущен и работает. Но есть проблемы с этими настройками, которые стоит рассмотреть.

Проверка конфигурации dnsmasq

Убедитесь, что ваш файл конфигурации dnsmasq содержит правильные параметры для работы с IPv6. Я вижу, что вы уже используете несколько необходимых параметров, однако давайте уточним и проверим:

  1. Параметр enable-ra: Он активирует отправку Router Advertisements (RA), что необходимо для работы с SLAAC (Stateless Address Autoconfiguration). Это правильно.

  2. DHCP-диапазон: Параметр dhcp-range=::,constructor:wlan0,slaac говорит о том, что вы хотите использовать SLAAC для назначения адресов. Это корректно, но необходимо убедиться, что интерфейс правильно настроен для раздачи адресов.

  3. Параметры DNS: Убедитесь, что DNS-сервер в вашем настройках правильно функционирует. Если вы используете публичный DNS-сервер Google (2001:4860:4860::6464), он должен быть доступен.

Пример конфигурационного файла dnsmasq

Вот обновленный пример конфигурационного файла dnsmasq, который вы можете использовать:

interface=wlan0
bind-interfaces
domain-needed
bogus-priv
server=2001:4860:4860::6464
local=/pi64/
domain=pi64
dhcp-fqdn
enable-ra
dhcp-range=::100,::FFFF,constructor:wlan0,ra-only
dhcp-option=option6:dns-server,2001:4860:4860::6464
dhcp-authoritative

Проверка hostapd

Также убедитесь, что у вас правильно настроен hostapd. Вот базовая конфигурация для hostapd, которая может вам помочь:

interface=wlan0
driver=nl80211
ssid=YourSSID
hw_mode=g
channel=6
wmm_enabled=0
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=YourPassword
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP

Дополнительные проверки

  1. Убедитесь, что у вас нет проблем с Firewall. Проверьте, что iptables не блокирует IPv6-трафик. Если у вас есть какие-либо правила, которые могут блокировать соединения, временно отключите их.

  2. Проверьте, что ваш телефон поддерживает IPv6 и правильно настроен для его использования.

  3. Используйте инструменты для отладки, такие как tcpdump, чтобы проверить, действительно ли ваше устройство отправляет RA и DHCP-сообщения:

sudo tcpdump -i wlan0 icmp6

Завершение

После внесения вышеуказанных изменений перезапустите dnsmasq и hostapd. Это должно помочь вашему телефону получить IPv6-адрес и подключиться к точке доступа. Если у вас все еще возникнут проблемы, предоставьте вывод из dnsmasq и hostapd, и мы сможем лучше понять, что может быть не так.

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

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