Вопрос или проблема
Чтобы протестировать возможность 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. Я вижу, что вы уже используете несколько необходимых параметров, однако давайте уточним и проверим:
-
Параметр
enable-ra
: Он активирует отправку Router Advertisements (RA), что необходимо для работы с SLAAC (Stateless Address Autoconfiguration). Это правильно. -
DHCP-диапазон: Параметр
dhcp-range=::,constructor:wlan0,slaac
говорит о том, что вы хотите использовать SLAAC для назначения адресов. Это корректно, но необходимо убедиться, что интерфейс правильно настроен для раздачи адресов. -
Параметры 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
Дополнительные проверки
-
Убедитесь, что у вас нет проблем с Firewall. Проверьте, что
iptables
не блокирует IPv6-трафик. Если у вас есть какие-либо правила, которые могут блокировать соединения, временно отключите их. -
Проверьте, что ваш телефон поддерживает IPv6 и правильно настроен для его использования.
-
Используйте инструменты для отладки, такие как
tcpdump
, чтобы проверить, действительно ли ваше устройство отправляет RA и DHCP-сообщения:
sudo tcpdump -i wlan0 icmp6
Завершение
После внесения вышеуказанных изменений перезапустите dnsmasq
и hostapd
. Это должно помочь вашему телефону получить IPv6-адрес и подключиться к точке доступа. Если у вас все еще возникнут проблемы, предоставьте вывод из dnsmasq
и hostapd
, и мы сможем лучше понять, что может быть не так.