预期结果:在接收一般 DHCP 提供的网关设置的情况下分配特定于接口的网关。
当前情况:无法识别特定接口的网关设置,可能是因为默认情况下它具有与 DHCP 提供的网关相同的度量。更改特定接口网关的度量允许它被识别,但会导致不具有更高度量的接口特定网关的不良情况。除非更改 DHCP 提供的设置,否则我还能做什么?
细节:
我正在尝试添加特定于接口的网关,因此我添加了以下行:
default via 10.76.220.205 dev eth1
到 route-eth0 但是当我重新启动网络时,收到以下错误:
RTNETLINK 回答:文件存在
根据RHEL 部署指南:
如果默认网关已从 DHCP 分配,则 IP 命令参数格式可能会在启动期间或使用 ifup 命令从关闭状态启动接口时导致以下两个错误之一:“RTNETLINK 答案:文件存在”或“错误:要么“to”是重复的,要么“XXXX”是垃圾。”,其中 XXXX 是网关或不同的 IP 地址。如果您使用默认网关有另一个通往另一个网络的路由,也会出现这些错误。这两个错误都可以安全忽略。
主机当前已分配给 DHCP,但我想覆盖特定接口的网关设置。当我运行“route”时,我的新路由未列出,即使我将上述行添加到 route-eth0 文件中并重新启动了网络。当我将度量标准添加到 route-eth0 文件中时,例如:
default via 10.76.220.205 dev eth1 metric 1
“route”命令确实显示了我的附加网关。看来网络只有在具有不同度量时才能识别第二个网关。(DHCP 提供的网关的默认网关度量为 0)。但这当然意味着我的新接口特定网关的度量高于 DHCP 提供的网关,因此未被使用。关于如何解决这个问题有什么建议吗?
答案1
首先,我认为您无法逐个接口地设置默认网关。
如果您想要让默认网关来自静态条目,而不是来自 dhcp,那么您需要告诉 DHCP 子系统不要获取默认网关。
如果记忆不错的话,C62 使用的是dhclient
,它没有一个简单的运行时标志来表示“不设置默认路由”。相反,man dhclient.conf
它建议你必须列出你希望 dhclient 设置的选项,因此/etc/dhcp/dhclient-eth0.conf
你需要类似
request subnet-mask, broadcast-address, domain-name, domain-search, domain-name-servers;
请注意,没有routers
。这应该会将您手动设置的网关 10.76.220.205 保留为系统运行的默认网关。