Ubuntu als IPv6-Router nimmt keine Standardroute von der Upstream-RA an

2035
justinian

Ich habe eine Ubuntu 14.04-Box, die als Home-Router fungiert. Ich habe ein IPv6 / 64-Protokoll, das von meinem ISP delegiert wurde, und ich verwende RA und den WIDE DHCPv6-Client, um IPv6 zu konfigurieren. Alles funktioniert gut, außer dass keine Standardroute festgelegt wird. Wenn ich radvdumpdie RA-Pakete auf meiner WAN-Oberfläche sehe und die Standardroute manuell setze, funktioniert alles einwandfrei.

Ich könnte (und derzeit mache ich) diese manuelle Routenspezifikation einfach als upBefehl /etc/network/interfacesfür die WAN-Schnittstelle verwenden, aber das ist nicht ideal - es scheint, als würde mein ISP jedes Mal eine Wartung durchführen, die Adresse des Routers ändert sich und ich habe es um es wieder neu zu konfigurieren. Ich würde gerne die Route von der RA bekommen, aber ich scheine einfach nicht das Set zu bekommen. Fehlt mir etwas?

eth1ist meine WAN-Schnittstelle und eth0ist das LAN.

sysctl einstellungen

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 

WIDE config

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; }; }; 

/ etc / network / schnittstellen

# 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 

Jede Hilfe wäre dankbar!

1
Offenbar ignoriert die Kernel-Version vor 2.6.37 net.ipv6.conf.eth1.accept_ra = 2. Anscheinend besteht die Problemumgehung darin, die Weiterleitung auf der WAN-Schnittstelle zu deaktivieren. Ron Maupin vor 8 Jahren 1
Hmm. Ich bin bei '3.13.0'. Durch das Deaktivieren der Weiterleitung an der WAN-Schnittstelle werden Antworten an interne LAN-Computer scheinbar nicht mehr gesendet. justinian vor 8 Jahren 0
Nun, ich habe die Erfahrung gemacht, dass ein Großteil der Unterstützung für Linux IPv6 fehlerhaft ist. Es scheint nicht wirklich eine Linux-Priorität zu sein. Ich sehe eigentlich kein Problem, wenn Sie die WAN-Link-Local-Adresse als Standard festlegen. Oft setzen wir es auf realen Routern auf die Schnittstelle statt auf eine Adresse, und das scheint ungefähr dasselbe zu sein. Sie sollten mehr als ein / 64 von Ihrem ISP erhalten. Möglicherweise erhalten Sie eine delegierte "/ 56". Zumindest bitte darum bitten. ISPs sollen nicht nur ein einzelnes IPv6-Subnetz bereitstellen. Ron Maupin vor 8 Jahren 0

1 Antwort auf die Frage

2
Sander Steffann

Linux schaltet sich aus, accept_rawenn die Weiterleitung aktiviert ist. Um es auf Ihrer Upstream-Schnittstelle zu erzwingen (sagen wir eth0), können Sie es verwenden net.ipv6.conf.eth0.accept_ra = 2. Dadurch wird die Schnittstelle gezwungen, Routerankündigungen zu akzeptieren, auch wenn die Weiterleitung aktiviert ist.

Leider hat "eth1", mein Upstream-Interface, bereits "accept_ra" auf 2 gesetzt. Ich entdeckte das Problem "Weiterleitung" / "accept_ra", als ich über Google recherchierte. Dies klang wie perfekt für mein Problem, aber leider ... justinian vor 8 Jahren 0