
Я управляю своей сетью на компьютере x86 с Ubuntu 18.04, firewalld (UFW не подходит для использования в качестве маршрутизатора), /networks/interfaces (в netplan была ошибка, из-за которой он был непригоден для этой цели) и dnsmasq для DHCP и DNS.
У меня был интернет-провайдер, который использовал IPv6 с PD, и я использовалнастройка здесьМой текущий интернет-провайдер не поддерживает IPV6, поэтому я настроил туннель к своему маршрутизатору через Hurricane Electric — он настроен и, по-видимому, работает, поскольку я могу пинговать.
У меня enp1s0 как внешний интерфейс, и все остальные интерфейсы соединены мостом, обслуживая остальную часть сети как br0. Также есть he-ipv6 как туннель, не соединенный мостом ни с чем
В данный момент маршрутизатор находится за маршрутизатором ISP с двумя различными сетевыми сегментами - 192.168.1.x для всех остальных и моя собственная тестовая сеть в 192.168.2.x с маршрутизатором в DMZ. Этоне следуетбыть проблемой.
Проблема в том, что я хотел бы продолжить использовать dnsmasq, но у меня возникли проблемы с финансированием документации по его настройке.
Вот что у меня есть сейчас
- Я настроил IPv6 на своем маршрутизаторе в соответствии с инструкциями на веб-странице Hurricane Electric, включая приведенные ниже инструкции в моем файле /etc/networks/interfaces.
auto he-ipv6
iface he-ipv6 inet6 v4tunnel
address 2001:470:YY:YYYY::2
netmask 64
endpoint 216.218.221.6
local xxx.xxx.x.xxx
ttl 255
gateway 2001:470:YY:YYYY::1
Это работает. Я могу пинговать ipv6.google.com и другие известные сайты ipv6. Я просто не могу получить IP длячто-нибудь еще.
Я пытался
##For HE
enable-ra
dhcp-range = 2001:470:YY:YYYY::
dhcp-option=option6:dns-server,[2001:470:20::2],[2001:4860:4860::8888]
Но, видимо, синтаксис неправильный.
Как получить IPv6-адрес для клиентов, получающих IP-адреса от маршрутизатора, а также для br0?
решение1
Прежде всего:
Как и в IPv4, каждому соединению нужен свой префикс подсети. 2001:470:YY:YYYY::/64
«Конечная точка туннеля» предназначена специально для соединения между вами и Hurricane (т. е. для вашего «адреса WAN» в терминах IPv4) – ее нельзя повторно использовать для любой из ваших локальных сетей. Для последнего вам понадобится один из «маршрутизируемых префиксов IPv6», которые находятся на странице настроек туннеля – это будет эквивалентом делегированного префикса DHCPv6-PD.
Обычно каждая локальная сеть имеет префикс подсети размером /64, чтобы обеспечить работу стандартного назначения адресов на основе SLAAC (многие клиенты, особенно Android, не поддерживают назначение адресов на основе DHCPv6). Поэтому, если вы планируете использовать несколько подсетей, выберите «Назначить /48», чтобы получить префикс с приличным количеством (64ki) адресов /64.
(Вам не нужно использовать «Назначить /64», если вы уже назначили /48. Если выделалиспользуйте «Назначить /64», обратите внимание, что префикснемного(Отличается от префикса «конечные точки туннеля»; их часто путают.)
Как только у вас появится собственный диапазон, скажем, 2001:470:ZZ::/48, выберите из него /64 (в диапазоне от 0 до ffff, например, 2001:470:ZZ:1::/64) и используйте его для своего br0
интерфейса, а также для конфигурации dnsmasq.
enable-ra
dhcp-range = 2001:470:ZZ:1::, ra-stateless
dhcp-option = option6:dns-server, [2001:470:20::2], [2001:4860:4860::8888]
Как уже упоминалось ранее, многие клиенты (особенно Android)не поддерживаюНазначение адреса через DHCPv6. Они требуют SLAAC, поэтому вам нужен хотя бы один изslaac
илиra-stateless
в конфигурации «dhcp-range». (Режим «ra-stateless» дополнительно сообщает клиентам SLAAC, что они по-прежнему могут получать настройки DNS от DHCPv6, что полезно для Windows. Независимо от выбора, dnsmasq также автоматически предоставит DNS-серверы через SLAAC-RDNSS для Android.)
Однако, дляbr0(или как там интерфейс LAN) вам следует назначить статический IP-адрес – я не уверен, получает ли ядро свои собственные многоадресные рассылки, и обращает ли оно на них внимание. В любом случае, я подозреваю,сам dnsmasqможет отказаться работать на интерфейсе, у которого нет соответствующего адреса (как это уже происходит для IPv4)...
iface br0 inet6 static
address 2001:470:ZZ:1::1/64
iface br1 inet6 static
address 2001:470:ZZ:2::1/64
После запуска dnsmasq используйте его rdisc6 eth0
из другой системы Linux для запроса и отображения содержимого Router Advertisement. Убедитесь, что у него ненулевое "время жизни маршрутизатора"; по крайней мере один "Префикс" (который должен быть /64, on-link, автономный, ненулевое допустимое время); и что он исходит из локального fe80::*
адреса, а не из глобального адреса.