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


10

我正在尝试在笔记本电脑上调试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什么?在什么情况下可以使用它?

文档毫无意义)

Answers:


19

原始的DHCP规范(RFC 21312132)定义了一个选项(33),该选项允许DHCP服务的管理员在需要时向客户端发布静态路由。

不幸的是,由于最初的设计假定有分类的网络地址(很少使用),因此这些天来存在缺陷。

rfc3442-classless-static-routes选项允许您改用无类网络地址(或CIDR)。

CIDR要求明确说明子网掩码,但是原始DHCP选项33对此没有空间。因此,此选项(如RFC 3442中所定义)仅启用更新的DHCP替代选项(选项121),该选项使用CIDR表示法定义静态路由。

基本上,如果您需要使用DHCP向设备发出静态路由,这些静态路由使用CIDR,则需要启用此选项。

如果您已将一个网络划分为多个较小的网络,并且需要在不使用许多可用动态路由协议之一的情况下,通知每个路由器流量如何从一个流向另一个路由器,则可以使用静态路由。基本上,您在每个路由器上都设置了一条语句,其作用是“到达网络abcd,通过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)将读取该值并相应地配置路由表。


精美的解释。
特德·冯
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.