IPV6: Ubiquiti Router, Ubuntu-Client

826
Diagon

Ich habe einen Ubiquiti-Router, auf dem ipv6 einwandfrei funktioniert. Die Ausgabe von radvdump, zusammen mit verschiedenen anderen relevanten Daten, ist unten. Mein Problem ist mit ipv6 auf einem Ubuntu 16.04 Rechner hinter dem Router.

Wenn Sie den Router auf der WAN-Seite als DHCP-Client und auf der LAN-Seite als Präfix Delegation / DHCP-Server festlegen, werden auf dem Client nur linklokale Adressen angezeigt. Wenn Sie den Router auf der WAN-Seite als, als statische Adresse auf der LAN-Seite und als DHCP-Server (zustandslos, stateful) für den Client festlegen, werden auf dem Client zwar ipv6-Adressen, jedoch keine Konnektivität angezeigt.

Ich verstehe, dass ich möglicherweise die Network Manager-Konfiguration (/etc/dhclient.conf) bearbeiten muss und dass die Schlüssel in sysctl zwar ebenfalls relevant sind, sie jedoch möglicherweise nicht gut mit Network Manager abgespielt werden. Ich würde mich über jede Anregung für den Start freuen.

Ich zögere auch, radvd auf dem Ubuntu-Client zu installieren. Ich bin besorgt, dass es möglicherweise zu Konflikten mit der DHCP- oder SLAAC-Funktion auf dem Client kommt. Ist das ein Problem?

-------------------------------------------------- ------------------

# radvdump [auf dem Router laufen ]

interface ath0 { AdvSendAdvert on; # Note: RtrAdvInterval cannot be obtained with radvdump AdvManagedFlag off; AdvOtherConfigFlag on; AdvReachableTime 0; AdvRetransTimer 0; AdvCurHopLimit 64; AdvDefaultLifetime 1800; AdvHomeAgentFlag off; AdvDefaultPreference medium; AdvSourceLLAddress on;  RDNSS 2607:X:X:X::53 { AdvRDNSSPreference 0; AdvRDNSSOpen off; AdvRDNSSLifetime 1800; }; # End of RDNSS definition   prefix 2607:X:Y:Y::/64 { AdvValidLifetime 2592000; AdvPreferredLifetime 604800; AdvOnLink on; AdvAutonomous on; AdvRouterAddr off; }; # End of prefix definition  }; # End of interface definition # # radvd configuration generated by radvdump 1.2 # based on Router Advertisement from fe80::Z:Z:Z:Z # received by interface ath0 

ip -6 addr [auf dem router ]

inet6 2607:X:X:X:Y:yff:fey:Y/64 scope global dynamic plus a link-local address 

$ ip -6 addr [auf dem Client . erste Adresse nur bei Verwendung des Stateful-Servers vorhanden]

inet6 2607:X:X:X::x/128 scope global dynamic inet6 2607:X:X:X:Y':Y':Y':Y'/64 scope global temporary dynamic  inet6 2607:X:X:X:Z:Z:Z:Z/64 scope global mngtmpaddr noprefixroute dynamic 

$ ip -6 route [auf dem Client . erste Route nur vorhanden, wenn der Stateful-Server und fe80 :: Y: yff: fey: Y die Link-Local-IP der LAN-Schnittstelle des Routers ist]

2607:X:X:X::x dev enp0s25 proto kernel metric 256 expires 86292sec pref medium  2607:X:X:X::/64 via fe80::Y:yff:fey:Y dev enp0s25 proto ra metric 100 pref medium 2607:X:X:X::/64 dev enp0s25 proto kernel metric 256 expires 7090sec pref medium fe80::/64 dev enp0s25 proto kernel metric 256 pref medium default via fe80::Y:yff:fey:Y dev enp0s25 proto static metric 100 pref medium plus a link-local address 

$ cat / etc / network / interfaces [unverändert von der Ubuntu-Installation]

auto lo iface lo inet loopback 

$ sudo sysctl -a | grep accept_ra

net.ipv6.conf.all.accept_ra = 1 net.ipv6.conf.all.accept_ra_defrtr = 1 net.ipv6.conf.all.accept_ra_from_local = 0 net.ipv6.conf.all.accept_ra_min_hop_limit = 1 net.ipv6.conf.all.accept_ra_mtu = 1 net.ipv6.conf.all.accept_ra_pinfo = 1 net.ipv6.conf.all.accept_ra_rt_info_max_plen = 0 net.ipv6.conf.all.accept_ra_rtr_pref = 1 net.ipv6.conf.default.accept_ra = 1 net.ipv6.conf.default.accept_ra_defrtr = 1 net.ipv6.conf.default.accept_ra_from_local = 0 net.ipv6.conf.default.accept_ra_min_hop_limit = 1 net.ipv6.conf.default.accept_ra_mtu = 1 net.ipv6.conf.default.accept_ra_pinfo = 1 net.ipv6.conf.default.accept_ra_rt_info_max_plen = 0 net.ipv6.conf.default.accept_ra_rtr_pref = 1 net.ipv6.conf.enp0s25.accept_ra = 1 net.ipv6.conf.enp0s25.accept_ra_defrtr = 0 net.ipv6.conf.enp0s25.accept_ra_from_local = 0 net.ipv6.conf.enp0s25.accept_ra_min_hop_limit = 1 net.ipv6.conf.enp0s25.accept_ra_mtu = 1 net.ipv6.conf.enp0s25.accept_ra_pinfo = 0 net.ipv6.conf.enp0s25.accept_ra_rt_info_max_plen = 0 net.ipv6.conf.enp0s25.accept_ra_rtr_pref = 0 net.ipv6.conf.lo.accept_ra = 1 net.ipv6.conf.lo.accept_ra_defrtr = 1 net.ipv6.conf.lo.accept_ra_from_local = 0 net.ipv6.conf.lo.accept_ra_min_hop_limit = 1 net.ipv6.conf.lo.accept_ra_mtu = 1 net.ipv6.conf.lo.accept_ra_pinfo = 1 net.ipv6.conf.lo.accept_ra_rt_info_max_plen = 0 net.ipv6.conf.lo.accept_ra_rtr_pref = 1 net.ipv6.conf.virbr0.accept_ra = 0 net.ipv6.conf.virbr0.accept_ra_defrtr = 1 net.ipv6.conf.virbr0.accept_ra_from_local = 0 net.ipv6.conf.virbr0.accept_ra_min_hop_limit = 1 net.ipv6.conf.virbr0.accept_ra_mtu = 1 net.ipv6.conf.virbr0.accept_ra_pinfo = 1 net.ipv6.conf.virbr0.accept_ra_rt_info_max_plen = 0 net.ipv6.conf.virbr0.accept_ra_rtr_pref = 1 net.ipv6.conf.virbr0-nic.accept_ra = 1 net.ipv6.conf.virbr0-nic.accept_ra_defrtr = 1 net.ipv6.conf.virbr0-nic.accept_ra_from_local = 0 net.ipv6.conf.virbr0-nic.accept_ra_min_hop_limit = 1 net.ipv6.conf.virbr0-nic.accept_ra_mtu = 1 net.ipv6.conf.virbr0-nic.accept_ra_pinfo = 1 net.ipv6.conf.virbr0-nic.accept_ra_rt_info_max_plen = 0 net.ipv6.conf.virbr0-nic.accept_ra_rtr_pref = 1 net.ipv6.conf.wlp3s0.accept_ra = 0 net.ipv6.conf.wlp3s0.accept_ra_defrtr = 0 net.ipv6.conf.wlp3s0.accept_ra_from_local = 0 net.ipv6.conf.wlp3s0.accept_ra_min_hop_limit = 1 net.ipv6.conf.wlp3s0.accept_ra_mtu = 1 net.ipv6.conf.wlp3s0.accept_ra_pinfo = 0 net.ipv6.conf.wlp3s0.accept_ra_rt_info_max_plen = 0 net.ipv6.conf.wlp3s0.accept_ra_rtr_pref = 0 
0
Welche Adresse weist der Router seiner WAN-Schnittstelle zu und welches Präfix konfigurieren Sie statisch auf der LAN-Seite? Unbearbeitete Adressen würden sehr geschätzt. grawity vor 5 Jahren 0
@ grawity Nun, ich möchte nicht wirklich unbearbeitete Adressen angeben, da die WAN-Seite eine Adresse erhält, die auf der MAC der Netzwerkschnittstelle basiert, wie oben angegeben (2607: X: X: X: X: Y: yff: fey: Y / 64). Wenn Sie sich die Ausgabe von "radvdump" ansehen, sehen Sie dort das Präfix und die Maske. Ich verwende also: 2607: X: X: X :: und / 64. Diagon vor 5 Jahren 0
@ harrymc - Ich bin nicht sicher, ob ich deine Frage verstehe. Ich habe einen Router, der eine Verbindung zu einem Netzwerk herstellt, was gut funktioniert, dahinter ist ein Client, auf den ich gerne auf das IPV6-Netz zugreifen möchte. Diagon vor 5 Jahren 0
@Diagon: Das bedeutet, dass Sie ein LAN-Präfix _identical_ für Ihr WAN-Präfix einrichten (wie Sie 2607: X: X: X :: / 64 sowohl im WAN-Dump des Routers als auch in der Routentabelle des Clients anzeigen). Das wird definitiv nicht funktionieren. grawity vor 5 Jahren 0
OK. Ich bin der Meinung, dass die RA das Präfix und die Maske anbieten sollte. Könnten Sie das klarstellen? (Gibt es eine Chat-Oberfläche für Superuser? Einige Stackexchanges haben das.) Diagon vor 5 Jahren 0
Nein, es bietet dasselbe wie DHCP: Das Präfix, in dem sich die WAN-Schnittstelle des Geräts selbst befindet. Nicht das Präfix, das auf einer anderen Schnittstelle verwendet werden soll. grawity vor 5 Jahren 0
OK gut. Wie sollen wir das machen? Wie gesagt, jede Hilfe wäre dankbar. Ich habe kürzere Masken ausprobiert: / 48, / 32, / 16. Keiner von denen hat funktioniert. Diagon vor 5 Jahren 0
Warum hätte das funktioniert? grawity vor 5 Jahren 0
Ich dachte, ich könnte ein Subnetz des Subnetzes ausprobieren. Immerhin wurde mir eine der Adressen in 2607 angeboten: X: X: X :: / 64 von dem, was tatsächlich der ISP ist. Ich dachte, ich könnte mir einige davon holen. Es hat mir nur erlaubt, das Ganze / 64 zu nehmen. Aber vielleicht verstehe ich deine Frage nicht. Diagon vor 5 Jahren 0
Lassen Sie uns [diese Diskussion im Chat fortsetzen] (https://chat.stackexchange.com/rooms/84516/discussion-between-diagon-and-grawity). Diagon vor 5 Jahren 0

1 Antwort auf die Frage

1
grawity

Wenn Sie den Router auf der WAN-Seite als DHCP-Client und auf der LAN-Seite als Präfix Delegation / DHCP-Server festlegen, werden auf dem Client nur linklokale Adressen angezeigt. Wenn Sie den Router auf der WAN-Seite als, als statische Adresse auf der LAN-Seite und als DHCP-Server (zustandslos, stateful) für den Client festlegen, werden auf dem Client zwar ipv6-Adressen, jedoch keine Konnektivität angezeigt.

Basierend darauf und auf Ihren Kommentaren scheint es, als würden Sie das von SLAAC beworbene WAN-Präfix direkt in die Konfiguration Ihrer LAN-Schnittstelle kopieren. Das wird nicht funktionieren (aus dem gleichen Grund, dass es nicht mit WAN DHCP auf IPv4 geht).

In IPv6-SLAAC gibt das angekündigte Präfix wie in IPv4-DHCP lediglich an, in welchem ​​Subnetz sich die WAN-Schnittstelle befindet, und der Router wählt seine eigene WAN-Adresse aus diesem Subnetz aus. Das hat jedoch nichts mit der LAN-Seite zu tun - Ihr Router ist ein Router, keine Bridge, daher ist das LAN ein eigenes Netzwerk und benötigt ein eigenes Präfix .

Um ein Präfix für die LAN-Schnittstellen zu erhalten, muss Ihr Router normalerweise eine Präfix-Delegierungsanforderung mit DHCPv6-PD auf der WAN-Seite senden . (Normalerweise gibt es eine Integration, bei der automatisch das delegierte Präfix im LAN angekündigt wird.)

Wie groß ein Präfix ist, das Sie anfordern können, hängt vom ISP ab (einige bieten bis zu einem / 60, andere bis zu / 56 usw.) - die einzelnen LAN-Schnittstellen müssen jedoch / 64s verwenden.

(Das heißt, nicht alle ISPs tun DHCPv6-PD, manchmal müssen Sie fordern eine IPv6 - Präfix selbst und konfigurieren, dass manuell Es besteht auch die Möglichkeit, weiterhin die IPv4 - Praxis eines privaten Adressbereich für das LAN zu verwenden, und 1:. Viele NAT (Masquerading) auf dem Router durchgeführt. Ich würde jedoch 1: viele NAT nur als letzten Ausweg empfehlen; auf IPv4 ist dies bereits schlecht genug.)

Ich zögere auch, radvd auf dem Ubuntu-Client zu installieren.

Nein, es wird absolut nicht benötigt. Das ist wie der Versuch, einen DHCP-Server auf einem Client zu installieren.

OK danke. Wie ich bereits in der Frage erwähnte, habe ich die Präfix-Delegierung ausprobiert, aber auf dem Client nur linklokale Adressen erhalten. Könnte es Fehlkonfigurationen auf dem Client, in dhcp, network-manager oder sysctl geben? Oder gibt es eine Möglichkeit zu sagen, ob das "ISP" (ein Campus-Netzwerk) eine PD anbietet oder nicht anbietet? Diagon vor 5 Jahren 0
Es ist sehr unwahrscheinlich, dass ein Campus-Netzwerk eine PD anbietet, und wenn es keine PD gibt, hat Ihr Router kein globales Präfix, das er im LAN anzeigen könnte. (Das fällt wahrscheinlich unter "Manchmal müssen Sie ein IPv6-Präfix selbst anfordern".) PD bleibt jedoch die offizielle Methode, um dies zu tun, unabhängig davon, ob es mit Ihrem ISP funktioniert oder nicht. grawity vor 5 Jahren 0
Ich verstehe ja. Wenn ich DHCP auf der WAN-Seite und PD auf der LAN-Seite verwende, erhalte ich nur eine Link-Local-Adresse auf der LAN-Seite (und damit den Client, wenn ich DHCP für das LAN einschalte). Könnten Sie klarstellen: "Manchmal müssen Sie selbst ein IPV6-Präfix anfordern"? Ich denke, meine Alternative ist, den Router als Bridge zu verwenden. Diagon vor 5 Jahren 0
Wahrscheinlich ist es ein sehr gesperrtes Netzwerk für Besucher. Ich müsste etwas anderes machen. Eine Brücke, nehme ich an. Oder das IPv6-Äquivalent von NAT, wie Sie erwähnt haben. Wenn Sie einen günstigen Link für Letzteres haben, würde ich es schätzen. Ansonsten werde ich einfach google. (Ich habe andere Fragen, z. B. wie ich von diesem "ISP" etwas anderes als eine MAC-basierte IP-Adresse bekomme, aber ich nehme an, das ist eine andere SE-Frage?) Diagon vor 5 Jahren 0
Mit "Anfrage" bedeutete ich, dass Sie angerufen / per E-Mail an das IT-Team auf dem Campus gegangen sind und ihnen mitgeteilt haben, dass Sie IPv6 mit Ihrem eigenen Router verwenden möchten. grawity vor 5 Jahren 0
Es ist eine völlig andere Frage, aber - SLAAC stellt keine Adressen zur Verfügung; Es gibt das Netzwerkpräfix. Ihre Geräte (in diesem Fall Ihr Router) wählen ihre eigenen Suffixe oder "Schnittstellenkennungen" aus. MAC-basierte Schnittstellenkennungen sind nicht die einzige Wahl für SLAAC, und diese Auswahl wird relativ seltener. (Siehe auch RFC 4941, RFC 7217, https://superuser.com/q/243669/1686.) Sie waren auch niemals für "statisches" DHCPv6 erforderlich. grawity vor 5 Jahren 0
Danke, aber mit "unwahrscheinlich" meine ich, dass es nicht passieren wird! Sie geben diesem Teil des Netzwerks keinerlei Support-Ressourcen. Wir sind auf uns allein gestellt. [Lesen Sie nur Ihren zweiten Kommentar ...] Okay, also die MAC-basierte Adresse ist ein Ubiquiti-Problem. Vielen Dank. Ich kann da fragen. Diagon vor 5 Jahren 0
Der Upstream-Router gibt _nur_ ein Präfix an. Solange es SLAAC überhaupt zulässt, hat es keinen Einfluss darauf, welche Schnittstellenkennung (en) Ihre Geräte dafür auswählen werden. Ihr Router verwendet keine Datenschutzadressierung, da er dies nicht möchte. Router ändern den Standort nicht viel und stellen keine ausgehenden Verbindungen zu beliebigen Standorten im Namen des Benutzers her. Kurz gesagt, sie haben andere Anforderungen und Prioritäten als PCs. grawity vor 5 Jahren 0
Ja, ich habe es bekommen, danke. Ihre zweite Nachricht kam nach meiner Antwort - obwohl ich verwirrt bin, dass ich dieselbe * IP bekomme, wenn ich DHCP im WAN verwende. Es scheint, dass der DHCP-Server auf dem Campus auch eine MAC-basierte ADR (?) Bereitstellt. Oder vielleicht hat Ubiquiti einen Rückfall auf SLAAC (?). Diagon vor 5 Jahren 0
Über Ihren Link: "Wenn die USG eine Präfixdelegierung (PD) vom ISP erhalten hat, wird das Präfix angekündigt, das die Clients mit der automatischen Konfiguration von Stateless-Adressen (SLAAC) und dem EUI-64-Prozess verwenden werden." Aus diesem Grund fragte ich nach der Installation von Radvdump auf dem * Client *. Auf diese Weise konnte ich sehen, ob diese Nachrichten vorhanden sind. Diagon vor 5 Jahren 0
Okay. In diesem Fall ist tcpdump oder Wireshark (generische Paketerfassungs-Tools) immer ein guter Anfang. `tcpdump -e -v -n -i eth0" icmp6 oder (udp-port 546 oder 547) "`. Auf Ubuntu ist es sicher, radvd zu installieren (es wird erst konfiguriert, wenn es konfiguriert wird), aber "rdisc6" von ndisc6 ist besser bei der Anforderung, RAs auf Anforderung anzuzeigen, als bei radvdump. grawity vor 5 Jahren 0