Networking

/etc/dhcp/dhclient.conf 中的“rfc3442-classless-static-routes”是什麼

  • June 20, 2021

我正在嘗試在我的筆記型電腦上調試 DHCP(我正在使用dhcpingdhcdump查看 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在什麼情況下使用它?

文件毫無意義)

最初的 DHCP 規範(RFC 21312132)定義了一個選項 (3​​3),允許 DHCP 服務的管理員在需要時向客戶端發布靜態路由。

不幸的是,如今這種原始設計存在缺陷,因為它假定了很少使用的分類網路地址。

rfc3442-classless-static-routes選項允許您改用無類別網路地址(或 CIDR)。

CIDR 需要明確說明子網遮罩,但原始 DHCP 選項 33 沒有空間。因此,此選項(如 RFC 3442 中所定義)僅啟用更新的替代 DHCP 選項(選項 121),該選項使用 CIDR 表示法定義靜態路由。

基本上,如果您需要使用 DHCP 向您的設備發出靜態路由並且這些靜態路由使用 CIDR,那麼您需要啟用此選項。

如果您已將網路拆分為多個較小的網路,並且需要通知每個路由器有關流量如何從一個到另一個而不使用許多可用的動態路由協議之一,則可以使用靜態路由。你基本上用一個聲明來設置每個路由器,“to get to network abcd, send traffic through fghi”

如果您在路由器中設置的路由是有類的,則無需啟用此選項。但是,如果路由是 CIDR,那麼您將需要啟用此選項。幸運的是,許多家庭/咖啡館網路使用192.168.0.0子網為255.255.255.0(或/24)的網路,這是一個真正的 C 類網路,因此您可以避免此選項。

另一方面,一些家庭/咖啡館網路在網路上執行10.0.0.0。預設情況下這是一個 A 類網路。例如,如果您將其分解為許多10.0.x.0子網,那麼這些都將是 CIDR 網路,這意味著您將需要啟用此選項。

僅當您還需要通過 DHCP向**您的主機發布此路由資訊時,上述情況才適用。**是否需要向主機發布這些靜態路由資訊由網路設計決定。我冒險猜測基本的家庭/咖啡館網路不需要它,因為靜態路由通常是在路由器上定義的。

您上面的配置只是將一個新選項(有許多dhclient已經理解的預定義選項)定義為選項 121,它由一個 8 位無符號整數數組組成。然後,如果在 DHCP 伺服器上設置了此選項,它會將客戶端配置為請求此選項。

如果 DHCP 伺服器為此選項返回一個值,則dhclient退出掛鉤腳本 ( /etc/dhclient/dhclient-exit-hooks.d/rfc3442-classless-routes) 會讀取該值並相應地配置路由表。

引用自:https://unix.stackexchange.com/questions/192066