当一个端口死机时,具有 activebackup 和 arp-ping 链路检查的组队端口会失败

当一个端口死机时,具有 activebackup 和 arp-ping 链路检查的组队端口会失败

我有两台通过两个端口互连的机器,我希望两个端口能够组合在一起形成一个互连链路。

我已将团队运行器配置为activebackup,并将链接状态检查器配置为arp_ping。结果有效并且通常处理良好,但连接的主动-被动性质似乎会导致问题,在某些情况下会导致端口关闭:

[root@machine1 ~]# teamdctl team_master state
setup:
  runner: activebackup
ports:
  team_slave1
    link watches:
      link summary: up
      instance[link_watch_0]:
        name: arp_ping
        link: up
        down count: 0
  team_slave0
    link watches:
      link summary: down
      instance[link_watch_0]:
        name: arp_ping
        link: down
        down count: 0
runner:
  active port: team_slave1

我已经通过 NetworkManager 配置了整个系统,并且为了重现我的问题,我可以使用同时在两台机器上使用活动界面nmcli dev disconnect team_slave1

結果為(ip addr):

10: team_master: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN qlen 1000
    link/ether ...

[root@machine1 ~]# teamdctl team_master state
setup:
  runner: activebackup
ports:
  team_slave0
    link watches:
      link summary: down
      instance[link_watch_0]:
        name: arp_ping
        link: down
        down count: 0
runner:
  active port: 

不知为何,接管并没有发生,主要原因似乎是 NetworkManager 认为被动端口已关闭,因此没有尝试将其启动。

有人遇到过类似的事情吗?有什么想法可以解决吗?使用round-robinrunner 似乎有帮助,但这不是我喜欢的方案。

相关内容