Ubuntu как маршрутизатор IPv6 не принимает маршрут по умолчанию от восходящего RA

1959
justinian

У меня есть коробка Ubuntu 14.04, которая действует как мой домашний маршрутизатор. У меня есть IPv6 / 64, делегированный моим провайдером, и я использую RA и WIDE DHCPv6-клиент для настройки IPv6. Все работает хорошо, за исключением того, что не установлен маршрут по умолчанию. Если я использую, radvdumpчтобы увидеть пакеты RA на своем интерфейсе WAN, и использую это для установки маршрута по умолчанию вручную, все работает отлично.

Я мог (и в настоящее время делаю это) просто вставить эту ручную спецификацию маршрута в качестве upкоманды /etc/network/interfacesдля интерфейса WAN, но это не идеально - похоже, что каждый раз, когда мой провайдер выполняет техническое обслуживание, адрес маршрутизатора меняется, и у меня есть перенастроить его снова. Я хотел бы получить маршрут от RA, но я просто не могу получить этот набор. Я что-то пропустил?

eth1мой интерфейс WAN, и eth0это локальная сеть.

настройки sysctl

root@nix $ grep ipv6 /etc/sysctl.conf net.ipv6.conf.default.forwarding=1 net.ipv6.conf.eth1.accept_ra=2 # The WAN interface net.ipv6.conf.eth1.accept_ra_defrtr=1 net.ipv6.conf.eth0.accept_ra=0 # The LAN interface net.ipv6.conf.all.accept_redirects = 0 

Широкий конфиг

interface eth1 # WAN { send ia-na 1; send ia-pd 1; request domain-name-servers; request domain-name;  script "/etc/wide-dhcpv6/dhcp6c-script"; # does resolvconf work };  id-assoc pd 1 { prefix-interface eth0 { # LAN sla-id 0; ifid 1; sla-len 0; }; };  id-assoc na 1 { }; 

Radvd config

interface eth0 { AdvManangedFlag off; AdvOtherConfigFlag off; AdvSendAdvert on; AdvLinkMTU 1280; prefix ::/64 { AdvOnLink on; AdvAutonomous on; }; }; 

/ и т.д. / сеть / интерфейсы

# The loopback network interface auto lo iface lo inet loopback  # The LAN interface auto eth0 iface eth0 inet static address 172.20.0.1 netmask 255.255.255.0  # The WAN interface auto eth1 iface eth1 inet dhcp iface eth1 inet6 auto # My current workaround: up ip -6 route add default via fe80::21b:edff:feb2:d481 dev eth1 

Любая помощь будет оценена!

1
Очевидно, версия ядра до `2.6.37` молча игнорирует` net.ipv6.conf.eth1.accept_ra = 2`. Видимо, обходной путь заключается в отключении пересылки по интерфейсу WAN. Ron Maupin 8 лет назад 1
Хм. Я на `3.13.0`. Похоже, что отключение пересылки по интерфейсу WAN просто не дает ответам вернуться к компьютерам с локальной сетью. justinian 8 лет назад 0
По моему опыту, большая часть поддержки Linux IPv6 имеет недостатки. Это не похоже на приоритет Linux. На самом деле я не вижу проблемы установки по умолчанию локального адреса глобальной сети. Часто мы устанавливаем его на интерфейсе, а не на адресе, на реальных маршрутизаторах, и это, кажется, примерно одно и то же. Вы должны получить более одного `/ 64` от вашего интернет-провайдера. Вы можете получить делегированный `/ 56`. По крайней мере, попросить об этом. Интернет-провайдеры не должны предоставлять вам только одну подсеть IPv6. Ron Maupin 8 лет назад 0

1 ответ на вопрос

2
Sander Steffann

Linux выключается, accept_raкогда включена пересылка. Чтобы включить его в своем интерфейсе (скажем так eth0), вы можете использовать net.ipv6.conf.eth0.accept_ra = 2. Это заставляет интерфейс принимать объявления маршрутизатора, даже если включена пересылка.

К сожалению, в `eth1`, моем исходном интерфейсе, для` accept_ra` уже установлено значение 2. Я обнаружил проблему `forwarding` /` accept_ra` при исследовании через Google, которая звучала как идеально подходящая для моей проблемы, но, увы ... justinian 8 лет назад 0

Похожие вопросы