Was ist "rfc3442-classless-static-route" in /etc/dhcp/dhclient.conf


10

Ich versuche, DHCP auf meinem Laptop zu debuggen (ich verwende dhcpingund dhcdumpsehe, was der DHCP-Server zurücksendet). Das Folgende ist mein /etc/dhcp/dhclient.conf.

option rfc3442-classless-static-routes code 121 = array of unsigned integer 8;

send host-name = gethostname();

request subnet-mask, broadcast-address, time-offset, routers,
domain-name-servers, interface-mtu,
rfc3442-classless-static-routes;

Ich denke, ich habe eine Idee, was all diese Optionen bedeuten, außer rfc3442-classless-static-routes. Außerdem sehe ich rfc3442-classless-static-routesin den DHCP-Antworten nichts, was dazu gehört .

Was bedeutet das rfc3442-classless-static-routesund in welcher Situation würde ich davon Gebrauch machen?

(Die Dokumentation macht überhaupt keinen Sinn)

Antworten:


19

Die ursprüngliche DHCP-Spezifikation (RFC 2131 und 2132 ) definiert eine Option (33), mit der der Administrator des DHCP-Dienstes bei Bedarf statische Routen an den Client senden kann.

Leider ist dieses ursprüngliche Design heutzutage fehlerhaft, da es klassische Netzwerkadressen annimmt , die selten verwendet werden.

Mit dieser rfc3442-classless-static-routesOption können Sie stattdessen klassenlose Netzwerkadressen (oder CIDR) verwenden.

Für CIDR muss eine Subnetzmaske explizit angegeben werden, aber die ursprüngliche DHCP-Option 33 bietet hierfür keinen Platz. Daher aktiviert diese Option (wie in RFC 3442 definiert) einfach eine neuere Ersatz-DHCP-Option (Option 121), die statische Routen unter Verwendung der CIDR-Notation definiert.

Wenn Sie statische Routen mithilfe von DHCP an Ihre Geräte senden müssen und diese statischen Routen CIDR verwenden, müssen Sie diese Option aktivieren.

Eine statische Route kann verwendet werden, wenn Sie ein Netzwerk in mehrere kleinere Netzwerke aufgeteilt haben und jeden Router darüber informieren müssen, wie der Datenverkehr von einem zum anderen gelangt, ohne eines der vielen verfügbaren dynamischen Routing-Protokolle zu verwenden. Grundsätzlich richten Sie jeden Router mit der Anweisung ein, "zum Netzwerk abcd zu gelangen, Datenverkehr über fghi zu senden" .

Wenn die im Router eingerichtete Route klassisch ist, müssen Sie diese Option nicht aktivieren. Wenn die Routen jedoch CIDR sind, müssen Sie diese Option aktivieren. Glücklicherweise verwenden viele Heim- / Café-Netzwerke das 192.168.0.0Netzwerk mit einem Subnetz von 255.255.255.0(oder /24), bei dem es sich um ein echtes Class-C-Netzwerk handelt. Daher können Sie diese Option vermeiden.

Auf der anderen Seite werden einige Heim- / Café-Netzwerke im 10.0.0.0Netzwerk ausgeführt. Dies ist standardmäßig ein Klasse-A-Netzwerk. Wenn Sie dies beispielsweise in viele 10.0.x.0Subnetze aufteilen, sind dies alles CIDR-Netzwerke, was bedeutet, dass Sie diese Option aktivieren müssen.

Dies gilt nur, wenn Sie diese Routing-Informationen auch über DHCP an Ihre Hosts senden müssen. Ob Sie diese statischen Routing-Informationen an Ihre Hosts senden müssen, hängt vom Design Ihres Netzwerks ab. Ich würde eine Vermutung wagen, dass ein einfaches Heim- / Café-Netzwerk es nicht benötigt, da statische Routen normalerweise an den Routern definiert werden.

Die Konfiguration, die Sie oben haben, definiert einfach eine neue Option (es gibt viele vordefinierte Optionen, die dhclientbereits verstanden werden) als Option 121, die aus einem Array von 8 vorzeichenlosen Ganzzahlen besteht. Anschließend wird der Client so konfiguriert, dass diese Option angefordert wird, wenn sie auf dem DHCP-Server festgelegt ist.

Wenn der DHCP-Server einen Wert für diese Option zurückgibt, liest ein dhclientExit-Hook-Skript ( /etc/dhclient/dhclient-exit-hooks.d/rfc3442-classless-routes) den Wert und konfiguriert die Routing-Tabelle entsprechend.


schön erklärt.
Ted Feng
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.