Linux Red-hat 6 网络管理器界面优先级

Linux Red-hat 6 网络管理器界面优先级

我有一个关于 RedHat 6 企业网络管理器 (NM) 的问题:

我的Linux连接到两个网络接口。

1 – eth0:连接到公司 LAN 的普通以太网

2 – eth1:连接到蜂窝网络 (CDC-ECM) 的 USB 加密狗

eth0 接口始终处于连接状态,而 eth1 接口是非永久连接的(连接可以随时断开)

当两者都连接时,NM 优先考虑 eth0。这意味着默认路由 (0.0.0.0) 始终通过它定义。

我想更改 NM 策略,使其优先考虑 eth1。当 eth1 接口未连接时,应通过 eth0 接口定义默认路由,当 eth1 已连接时,应通过 eth1 定义默认路由。

我在网上搜索了如何做到这一点,并使用了 NM 脚本和 ifcfg-eth0 / ifcfg-eth1 文件(尝试了 DEFROUTE 和其他选项)但无法使其工作。

有人能建议使用 NM 执行此操作的正确方法是什么吗?

谢谢 !

答案1

编辑:从评论中添加 OP 的解决方案:

  • 从 NM 中删除 eth0(有线)
    • NM_CONTROLLED=否
  • 左侧 eth1(无线)受控制。
    • 省略 NM_CONTROLLED 时的默认值
  • 设置 eth1 METRIC=20
  • 生成 2 个默认路由,其中​​ eth1 优先

回答:

网络管理员可能总是选择无线或有线作为主要网络(基于此处的其他问题),这似乎包括与路由的交互度量和 dhcp,路由器广告(其中 NM 遵循 1 指标)、接口启动/关闭和 RedHat 特定。

假设您正在使用它:DHCP 可能会根据其路由度量¹将您的路由重置为“更好”的路由。度量值越高,成本就越高,因此成本较低的指标是首选。在网络管理器列表中这里,值得注意的是,dhcp 无线指标被惩罚了 +100,而 NM 开发人员表示 NM 应该选择正确的路由,但指标可能是最佳的设备方法。我不确定这是否适用于您的 eth1,但您可以控制它:

交换数字(10 和 20)这个答案对于您的界面,我得到:

$ sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0
METRIC=20

$ sudo vi /etc/sysconfig/network-scripts/ifcfg-eth1
METRIC=10

答案是,这应该优先考虑无线并在接口之间执行平滑的故障转移。

如果你希望 NM 按照开发者的意图进行选择,GMambaG 的界面关键字也会被考虑在内RedHat 文档为了静止的路由,其中​​记录了使用多个网关 + GATEWAYDEV 的意外问题。要测试这一点,请启动两个接口,并在删除 eth1 后尝试恢复操作。如果您遇到问题(如间歇性超时),您应该能够通过删除更改并重新启动网络来恢复:

$ sudo service network restart

如果所有其他方法都失败了,路由器通告(我认为是 ICMP 类型 9 和 10)可能会影响您的路由表;在尝试阻止它们之前,请与网络管理员协调。

编辑:减少了这个答案的文本,将 OP 的解决方案放在顶部。

¹ 如果您不使用 DHCP,您将有一个手动网关。本文建议使用 NM_CONTROLLED="no" 来阻止 NM 自动切换到该接口的网关。

答案2

Red Hat 使用最后一个启动的接口作为默认网关设备。

要设置eth1为默认值,请将其添加到/etc/sysconfig/network

GATEWAYDEV=eth1

看:https://access.redhat.com/solutions/41459

每次呼叫时都应该处理它ifup。您可以使用以下方式检查路线ip route show

相关内容