qu'est-ce que "rfc3442-classless-static-routes" dans /etc/dhcp/dhclient.conf

10

J'essaie de déboguer DHCP sur mon ordinateur portable (j'utilise dhcpinget dhcdumppour voir ce que le serveur DHCP renvoie). Voici mon /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;

Je pense, j'ai une idée de ce que toutes ces options signifient, sauf pour rfc3442-classless-static-routes. De plus, je ne vois rien de ce qui se rapporte rfc3442-classless-static-routesdans les réponses DHCP.

Quelle est la signification rfc3442-classless-static-routeset dans quelle situation puis-je l'utiliser?

(la documentation n'a aucun sens)

Thomas Keller
la source

Réponses:

19

La spécification DHCP d'origine (RFC 2131 et 2132 ) définit une option (33) qui permet à l'administrateur du service DHCP d'émettre des routes statiques vers le client si nécessaire.

Malheureusement, cette conception originale est imparfaite de nos jours car elle suppose des adresses réseau classe , ce qui est rarement utilisé.

L' rfc3442-classless-static-routesoption vous permet d'utiliser à la place des adresses réseau sans classe (ou CIDR).

CIDR nécessite un masque de sous-réseau pour être explicitement indiqué, mais l'option DHCP d'origine 33 n'a pas d'espace pour cela. Par conséquent, cette option (telle que définie dans la RFC 3442) active simplement une option DHCP de remplacement plus récente (option 121) qui définit les routes statiques à l'aide de la notation CIDR.

Fondamentalement, si vous devez émettre des itinéraires statiques vers vos appareils à l'aide de DHCP et que ces itinéraires statiques utilisent CIDR, vous devez activer cette option.

Un itinéraire statique peut être utilisé si vous avez divisé un réseau en plusieurs réseaux plus petits et devez informer chaque routeur de la façon dont le trafic passe de l'un à l'autre sans utiliser l'un des nombreux protocoles de routage dynamique disponibles. Vous configurez fondamentalement chaque routeur avec une déclaration à l'effet de "pour accéder au réseau abcd, envoyer du trafic via fghi" .

Si l'itinéraire que vous avez configuré dans le routeur est avec classe, vous n'avez pas besoin d'activer cette option. Cependant, si les routes sont CIDR, vous devrez activer cette option. Heureusement, de nombreux réseaux domestiques / cafés utilisent le 192.168.0.0réseau avec un sous-réseau de 255.255.255.0(ou /24), qui est un véritable réseau de classe C, vous pouvez donc éviter cette option.

D'un autre côté, certains réseaux domestiques / cafés fonctionnent sur le 10.0.0.0réseau. Il s'agit d'un réseau de classe A par défaut. Si vous divisez cela en plusieurs 10.0.x.0sous-réseaux par exemple, alors ce seront tous des réseaux CIDR, ce qui signifie que vous devrez activer cette option.

Ce qui précède n'est vrai que si vous devez également transmettre ces informations de routage à vos hôtes via DHCP. La nécessité de transmettre ces informations de routage statiques à vos hôtes est définie par la conception de votre réseau. Je risquerais de deviner qu'un réseau domestique / café de base n'en a pas besoin car les routes statiques sont généralement définies sur les routeurs.

La configuration que vous avez ci-dessus définit simplement une nouvelle option (il existe de nombreuses options prédéfinies qui dhclientcomprennent déjà) comme l'option 121 qui consiste en un tableau de 8 entiers non signés. Il configure ensuite le client pour demander cette option si elle est définie sur le serveur DHCP.

Si le serveur DHCP renvoie une valeur pour cette option, un dhclientscript de hook de sortie ( /etc/dhclient/dhclient-exit-hooks.d/rfc3442-classless-routes) lit la valeur et configure la table de routage en conséquence.

garethTheRed
la source
magnifiquement expliqué.
Ted Feng