что такое «rfc3442-classless-static-routs» в /etc/dhcp/dhclient.conf

10

Я пытаюсь отладить DHCP на своем ноутбуке (я использую dhcpingи dhcdumpпосмотреть, что DHCP-сервер отправляет обратно). Следующий мой /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;

Я думаю, у меня есть идея, что означают все эти варианты, кроме rfc3442-classless-static-routes. Кроме того, я не вижу ничего, rfc3442-classless-static-routesкасающегося ответов DHCP.

В чем смысл rfc3442-classless-static-routesи в какой ситуации я бы использовал это?

( документация не имеет никакого смысла)

Томас Келлер
источник

Ответы:

19

Исходная спецификация DHCP (RFC 2131 и 2132 ) определяет параметр (33), который позволяет администратору службы DHCP выдавать статические маршруты клиенту, если это необходимо.

К сожалению, этот оригинальный дизайн в настоящее время имеет недостатки, так как предполагает использование классных сетевых адресов , которые используются редко.

rfc3442-classless-static-routesОпция позволяет использовать бесклассовые сетевые адреса (или CIDR) вместо этого.

CIDR требует явного указания маски подсети, но в исходной опции 33 DHCP нет места для этого. Следовательно, эта опция (как определено в RFC 3442) просто включает более новую опцию замены DHCP (опция 121), которая определяет статические маршруты с использованием нотации CIDR.

По сути, если вам нужно выдавать статические маршруты на ваши устройства с использованием DHCP, а эти статические маршруты используют CIDR, вам нужно включить эту опцию.

Статические маршруты можно использовать, если вы разбили сеть на несколько небольших сетей и вам необходимо проинформировать каждый маршрутизатор о том, как трафик поступает от одного к другому без использования одного из многих доступных протоколов динамической маршрутизации. Вы в основном настраиваете каждый маршрутизатор с заявлением о том, что «получить в сеть abcd, отправить трафик через fghi» .

Если маршрут, который вы настроили в маршрутизаторе, является классным, вам не нужно включать эту опцию. Однако, если маршруты CIDR, вам нужно будет включить эту опцию. К счастью, многие домашние / кафе сети используют 192.168.0.0сеть с подсетью 255.255.255.0(или /24), которая является настоящей сетью класса C, поэтому вы можете избежать этой опции.

С другой стороны, некоторые домашние / кафе сети работают в 10.0.0.0сети. Это сеть класса А по умолчанию. 10.0.x.0Например, если вы разбиваете это на множество подсетей, то все они будут сетями CIDR, что означает, что вам нужно будет включить эту опцию.

Вышеприведенное верно только в том случае, если вам также необходимо выдать эту информацию о маршрутизации вашим хостам через DHCP. Нужно ли вам выдавать эти статические данные маршрутизации вашим хостам, определяется дизайном вашей сети. Я бы рискнул предположить, что обычная домашняя / кафе сеть не нуждается в этом, поскольку статические маршруты обычно определяются на маршрутизаторах.

Вышеупомянутая конфигурация просто определяет новую опцию (есть много предопределенных опций, которые dhclientуже понимают) как опцию 121, которая состоит из массива из 8 целых чисел без знака. Затем он настраивает клиент для запроса этой опции, если она установлена ​​на сервере DHCP.

Если сервер DHCP возвращает значение для этой опции, dhclientскрипт обработчика выхода ( /etc/dhclient/dhclient-exit-hooks.d/rfc3442-classless-routes) считывает значение и соответствующим образом настраивает таблицу маршрутизации.

garethTheRed
источник
прекрасно объяснил.
Тед Фенг