co to jest „rfc3442-classless-static-routs” w /etc/dhcp/dhclient.conf

10

Próbuję debugować DHCP na moim laptopie (używam dhcpingi dhcdumpsprawdzam, co serwer DHCP odsyła). Oto moje /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;

Myślę, że mam pojęcie, co oznaczają wszystkie te opcje, z wyjątkiem rfc3442-classless-static-routes. Ponadto nie widzę nic związanego rfc3442-classless-static-routesz odpowiedziami DHCP.

Jakie jest znaczenie rfc3442-classless-static-routesi w jakiej sytuacji z niego skorzystam?

( dokumentacja nie ma żadnego sensu)

Thomas Keller
źródło

Odpowiedzi:

19

Oryginalna specyfikacja DHCP (RFC 2131 i 2132 ) definiuje opcję (33), która pozwala administratorowi usługi DHCP wydawać statyczne trasy do klienta, jeśli to konieczne.

Niestety, ten oryginalny projekt jest obecnie wadliwy, ponieważ zakłada klasowe adresy sieciowe , co jest rzadko używane.

Ta rfc3442-classless-static-routesopcja pozwala zamiast tego używać bezklasowych adresów sieciowych (lub CIDR).

CIDR wymaga jawnego podania maski podsieci, ale pierwotna opcja DHCP 33 nie ma na to miejsca. Dlatego ta opcja (jak zdefiniowano w RFC 3442) po prostu włącza nowszą zamienną opcję DHCP (opcja 121), która definiuje trasy statyczne przy użyciu notacji CIDR.

Zasadniczo, jeśli chcesz wydawać trasy statyczne do urządzeń za pomocą DHCP, a te trasy statyczne korzystają z CIDR, musisz włączyć tę opcję.

Tras statycznych można użyć, jeśli podzielisz sieć na wiele mniejszych sieci i potrzebujesz poinformować każdy router o tym, w jaki sposób ruch dociera z jednego do drugiego bez korzystania z jednego z wielu dostępnych protokołów routingu dynamicznego. Zasadniczo konfigurujesz każdy router z instrukcją „aby dostać się do sieci abcd, wysłać ruch przez fghi” .

Jeśli trasy ustawione w routerze są klasowe, nie musisz włączać tej opcji. Jeśli jednak trasy to CIDR, musisz włączyć tę opcję. Na szczęście wiele sieci domowych / kawiarni korzysta z 192.168.0.0sieci z podsiecią 255.255.255.0(lub /24), która jest prawdziwą siecią klasy C, dlatego możesz uniknąć tej opcji.

Z drugiej strony niektóre sieci domowe / kawiarniane działają w 10.0.0.0sieci. Domyślnie jest to sieć klasy A. Jeśli podzielisz to na 10.0.x.0przykład na wiele podsieci, wszystkie będą sieciami CIDR, co oznacza, że ​​będziesz musiał włączyć tę opcję.

Powyższe jest prawdą tylko wtedy, gdy musisz także wydać te informacje o routingu hostom za pośrednictwem DHCP. To, czy musisz wysłać te statyczne informacje o routingu do hostów, zależy od projektu sieci. Zaryzykowałbym przypuszczenie, że podstawowa sieć w domu / kawiarni nie potrzebuje jej, ponieważ trasy rutynowe są zwykle definiowane.

Konfiguracja, którą masz powyżej, po prostu definiuje nową opcję (istnieje wiele predefiniowanych opcji, które dhclientjuż rozumie) jako opcję 121, która składa się z tablicy 8 liczb całkowitych bez znaku. Następnie konfiguruje klienta, aby żądał tej opcji, jeśli jest ustawiony na serwerze DHCP.

Jeśli serwer DHCP zwróci wartość dla tej opcji, dhclientskrypt /etc/dhclient/dhclient-exit-hooks.d/rfc3442-classless-routesprzechwytujący wyjście ( ) odczyta tę wartość i odpowiednio skonfiguruje tabelę routingu.

garethTheRed
źródło
pięknie wyjaśnione.
Ted Feng