Wie lege ich eine statische IPv6-Standardroute mit dhcpcd fest?

7

Ich werde eine statische IPv6-Adresse und eine entsprechende IPv6-Standardroute mit festlegen dhcpcd. Ich habe durchgesehen man dhcpcd.conf, aber nirgends erwähnt, wie eine IPv6-Standardroute festgelegt wird.

Mein aktueller dhcpcd.conf:

hostname
duid
persistent
option rapid_commit
option domain_name_servers, domain_name, domain_search, host_name
option classless_static_routes
option interface_mtu
require dhcp_server_identifier

interface eth0
noipv6rs
static ip6_address=2001:xxx::xxx/128

Was ich dhcpcdtun möchte ist:

ip addr add 2001:xxx::xxx/112 dev eth0
ip -6 route add 2001:xxx::xxxx dev eth0
ip -6 route add default via 2001:xxx::xxxx

Bei meiner aktuellen Konfiguration werden dhcpcdjedoch nur die ersten beiden Zeilen für mich ausgeführt, nicht jedoch die dritte Zeile.

man dhcpcd.confsagt nur, dass ein IPv4-Standardrouter über so etwas eingestellt werden kann static routers=192.168.0.1.

Ich weiß, dass es ip -6 route addmanuell, mit Haken von dhcpcdoder einfach beiseite gelegt werden kann dhcpcd. Aber ich verlasse mich darauf dhcpcd, DHCPv4 zu handhaben. Und ich denke, es wäre weniger chaotisch, wenn dhcpcd sowohl IPv4- als auch IPv6-Konfigurationen verarbeiten könnte.

Meine Frage:

Gibt es eine direktere Möglichkeit, dhcpcddie IPv6-Standardroute automatisch festzulegen, indem einige Optionen / Befehle angegeben werden dhcpcd.conf?

Dummmy
quelle

Antworten:

8

Sie können DHCPv4 nicht verwenden, um Standard-IPv6-Routen auszugeben. Sie können nicht einmal DHCPv6 verwenden , um Standard-IPv6-Routen auszugeben.

Der Grund dafür ist, dass sich IPv6 in vielerlei Hinsicht von IPv4 unterscheidet, und einer davon ist das Verhalten von Routern: Jeder IPv6-Router meldet sich als Gateway zu dem Segment an, das es als Gateway verwenden kann. Und Sie können mehrere Router für Segmente haben, es ist nicht wie in IPv4 auf ein einziges Gateway beschränkt.

Daher geschieht dies nicht durch den Austausch von DHCP-Broadcasts und -Antworten, sondern durch den Austausch von RS- Nachrichten ( Router Solicitation ) und RA-Nachrichten ( Router Advertisement ) zwischen Hosts und Routern, wie im IPv6 Neighbor Discovery Protocol definiert .

Die einzige Möglichkeit, Ihre IPv6-Hosts dazu zu bringen, sich mit der richtigen Route zu radvpkonfigurieren, besteht darin, zusätzlich zu dhcpdIhrem Router / Gateway ausgeführt (ordnungsgemäß konfiguriert) zu werden . Während Sie gerade dabei sind, können Sie RS-Nachrichten wieder aktivieren (löschen noipv6rs), da Linux, wenn es sich als Router betrachtet (Weiterleitung ist aktiviert), keine RS-Nachrichten sendet (oder zumindest nicht senden sollte).

Die Verwendung radvp ist eigentlich die "weniger unübersichtliche" Methode. Sie können Router zu Ihrem Segment hinzufügen oder daraus entfernen, ohne eine zentrale Konfigurationsdatei aktualisieren zu müssen.

Darüber hinaus ermöglicht die zustandslose Autokonfiguration (SLAAC) Ihren Hosts, IPv6-Adressen aus den routbaren Präfixen selbst zu generieren.

dirkt
quelle
0

Ich möchte meine eigene Frage beantworten:

Die Antworten von dirkt sind die direkte Antwort auf diese Frage. Die Antworten von slm geben einige hilfreiche Lösungen und weitere Vorschläge.

Aber keiner von ihnen löst das Problem, auf das ich stoße.

Der Fall, mit dem ich konfrontiert wurde, ist, dass die Netzwerkumgebung völlig außerhalb meiner Kontrolle liegt. Tatsächlich habe ich einen VPS von einem VPS-Anbieter gekauft.Was sie bereitstellen, ist das vorkonfigurierte Netzwerk. Ich wollte nur das VPS neu installieren und das Betriebssystem von Debian auf eine andere Distribution umstellen, und ich habe keine andere Wahl, als die exakt gleiche Netzwerkkonfiguration nach der Installation zu ändern.

Nach der Suche im Internet und Fragen fragen andere, wo ich die beste Problemumgehung finde, um einen statischen IPv6-Router zu konfigurieren, und Adresse ist die Verwendung von netctl . netctl kann dhcpcd als Backend für die Aushandlung von DHCPv4 verwenden und gleichzeitig einfache Möglichkeiten zur statischen Konfiguration von IPv6 bieten. Hier ist meine Konfiguration bis jetzt:

Description='A basic dhcp ethernet connection'
Interface=eth0
Connection=ethernet
IP=dhcp
#DHCPClient=dhcpcd
#DHCPReleaseOnStop=no

IP6=static
Address6=('2001:****:****::****/***')
Routes6=('2001:****:****::****')
Gateway6='2001:****:****::****'
Dummmy
quelle
Ihr eigentliches Problem klingt ganz anders als die ursprüngliche Frage. Ich verstehe die Problembeschreibung wahrscheinlich nicht vollständig, aber was hat Sie daran gehindert, zusätzlich zu DHCP nur statische IPv6-Adressen / -Routen zu verwenden? Abhängig von der Distribution gibt es verschiedene Möglichkeiten, statische IPv6-Adressen / -Routen festzulegen.
Dirkt
Entschuldigung für die Verspätung. Ich hatte mich bemüht, meine Frage klar zu stellen, und es vermieden, sie spezifisch für meine eigene Situation zu machen. Aber es scheint, dass ich einige wichtige Informationen nachlässig weggelassen habe, so dass Sie ein wenig verwirrt waren. Der Grund für die letztere Frage ist: Ich denke, es könnte weniger chaotisch sein, einen Netzwerkmanager dazu zu bringen, sie alle zu konfigurieren. Außerdem finde ich für Arch Linux, das ich verwende, keine Dokumente, die beschreiben, wie statische Adressen direkt konfiguriert werden.
Dummmy