我有一台 Linux 机器,有 2 个物理网络接口 eth0 和 eth1。在这两个接口上创建了一个容错(主动-备份)绑定。 bond0 已分配 IP 地址。 eth0 和 eth1 没有分配 IP 地址。
一切正常。当 eth0 的链路断开时,传出流量将通过 eth1 路由,而当 eth0 上升时,Linux 会切换回来并使用 eth0 处理所有传出流量。到目前为止,一切都很好。
我想测试 eth1 上的路径是否正常,但不想断开 eth0 上的连接。有没有办法强制内核使用 eth1 来处理某些测试数据包的传出流量?
答案1
您可以在运行时从当前配置中删除活动绑定接口并将其放回原处:
echo -eth0 > /sys/class/net/bond0/bonding/slaves
echo +eth0 > /sys/class/net/bond0/bonding/slaves
你应该看到奴隶会改变
另一种方法是安装 ifenslave 并使用该命令来执行此操作:
ifenslave -c bond0 eth1 eth0
这会将 eth1 设置为活动接口
答案2
无需删除和添加接口来/sys/class/net/bond0/bonding/slaves
强制进行故障转移,只需使用以下命令更改活动从属设备即可:
echo eth1 > /sys/class/net/bond0/bonding/active_slave
ifeth0
当前处于活动状态并且eth1
是备份。
在这种情况下,所有接口都将保持状态 UP,但它们的角色(主动/备份)将会改变。