![通过 DHCP 进行 Linux 静态路由配置](https://linux22.com/image/597595/%E9%80%9A%E8%BF%87%20DHCP%20%E8%BF%9B%E8%A1%8C%20Linux%20%E9%9D%99%E6%80%81%E8%B7%AF%E7%94%B1%E9%85%8D%E7%BD%AE.png)
我有一堆 RedHat VM,需要设置静态 IPv4 路由表。我想集中此配置,于是我想到可以提供此信息的 DHCP 服务(请参阅 RFC3442)。
- RHEL 5 和 RHEL6 附带的任何 DHCP 客户端是否支持此功能?
- 还有其他的方法来配置路由表吗?
- 切换到 IPv6 是否可以简化这些配置?
欢迎任何其他想法。
答案1
您是否考虑过通过 Puppet 或 Chef 来处理这个问题?我认为编写一个模块来检查以确保路由存在并在路由不可用时应用它们会相当容易。这为您提供了与单个 DHCP 服务配置文件相同的灵活性和集中控制。
如果虚拟机设置了静态 IP,您可以在网络接口的路由配置文件(如“/etc/sysconfig/network-scripts/route-eth0”)中设置该 IP。这也可以通过配置管理工具轻松管理。
如果您希望通过 DHCP 执行此操作,请确保已根据 RedHat 知识库文章 (https://access.redhat.com/knowledge/docs/en-US/Red_Hat_Enterprise_Linux/6/html/6.1_Technical_Notes/ar01s04s05.html)
为了确保在使用 NetworkManager 时正确处理 DHCP 服务器提供的符合 RFC3442 标准的无类静态路由,应将以下几行放入 /etc/dhclient.conf 中,或者,如果使用每个接口的 DHCP 选项,则放入 /etc/dhclient-<ifname>.conf 中:
option rfc3442-classless-static-routes code 121 = array of unsigned integer 8;
option ms-classless-static-routes code 249 = array of unsigned integer 8;
also request rfc3442-classless-static-routes;
also request ms-classless-static-routes;
这些行将确保从 DHCP 服务器请求 RFC3442 无类静态路由,并且 NetworkManager 正确处理它们。