我想添加一条静态路由10.13.0.1/32
到192.168.178.10
我dhcpd.conf
的 dhcpd 服务器。不幸的是,这似乎非常复杂。
我尝试了以下方法:
option static-routes 10.13.0.1 192.168.178.10;
然而,这将添加一条不需要的10.0.0.0/8
路线。192.168.178.10
我也尝试过:
option rfc3442-classless-static-routes code 121 = array of unsigned integer 8;
option ms-classless-static-routes 32, 10, 13, 0, 1, 192, 168, 178, 10;
这会导致 dhcpd 不再启动:
Feb 13 20:49:30 csh-gw dhcpd[32042]: For info, please visit https://www.isc.org/software/dhcp/
Feb 13 20:49:30 csh-gw dhcpd[32042]: /var/lib/dhcp//etc/dhcpd.conf line 63: unknown option dhcp.ms-classless-static-routes
Feb 13 20:49:30 csh-gw dhcpd[32042]: option ms-classless-static-routes 32,
Feb 13 20:49:30 csh-gw dhcpd[32042]: ^
Feb 13 20:49:30 csh-gw dhcpd[31870]: Starting ISC DHCPv4 Server
Feb 13 20:49:30 csh-gw dhcpd[31870]: please see /var/log/rc.dhcpd.log for details ..failed
谷歌搜索这个问题只产生了向整个网络添加路由的结果,包括默认网关,这是我不想要的。
答案1
你尝试过这个吗?
option rfc3442-classless-static-routes code 121 = array of unsigned integer 8;
option rfc3442-classless-static-routes 32, 10, 13, 0, 1, 192, 168, 178, 10;
答案2
您需要启用 2 个不同的选项,因为 Microsoft 使用与 RFC 3442 中定义的选项不同的选项:
# Enable sending of static routes
option rfc3442-classless-static-routes code 121 = array of integer 8;
option ms-classless-static-routes code 249 = array of integer 8;
然后定义这两个选项,幸运的是它们在 ISC 文件中使用相同的语法dhcpd.conf
。首先是目标 IP 掩码,它还将定义需要给出 IP 的多少字节。在您的情况下,对于掩码为 32 的单个 IP,您将提供所有 4 个 IP 字节:
# Route to 10.13.0.1/32 through 192.168.178.10;
# ┌────────────┘
# | | | | |
option rfc3442-classless-static-routes 32,10,13,0,1, 192,168,178,10;
option ms-classless-static-routes 32,10,13,0,1, 192,168,178,10;
对于到 24 位网络的路由(10.13.0.1 和 10.13.0.255 之间的所有 IP),您只需为网络提供 3 个字节。它看起来像这样:
# Route to 10.13.0.1/24 through 192.168.178.10;
# ┌────────────┘
# | | | |
option rfc3442-classless-static-routes 24,10,13,0, 192,168,178,10;
option ms-classless-static-routes 24,10,13,0, 192,168,178,10;
答案3
其他答案很可能是错误的。虽然这可能会将所需的路由推送到 DHCP 客户端,但在我的测试中,客户端将不再有默认路由。
因此,在部署建议之前,请确保客户端网络配置实际上是正确的!