linux绑定主动备份模式为多个接口设置优先级?

linux绑定主动备份模式为多个接口设置优先级?

有没有办法在主动备份模式下为网络绑定的多个接口(两个以上)设置优先级顺序?

我有 3 个接口(我知道对于两个接口,我可以通过将一个接口设置为主接口来解决这个问题),我正在寻找任何方法来指定每个接口的优先级,这样当具有高优先级的接口关闭时,下一个优先级将选择/或任何方式来解决多个接口的此问题。

答案1

内核文档粘合介绍如何设置参与兼容模式bonding接口的接口的优先级:

prio

从机优先级。数字越大意味着优先级越高。主从机具有最高优先级。此选项也遵循 primary_reselect规则。

该选项只能通过 netlink 配置active-backup(,并且仅对1)、balance-tlb(5) 和balance-alb(6) 模式有效。有效值范围是有符号的 32 位整数。

默认值为 0。

文档提示:

  • 这是要使用来完成网络链接

    这意味着/sys不能用于此属性。通常ip路由2正在使用的工具网络链接可以使用的接口:ip link.

  • 它是在从属接口上完成的,而不是在绑定接口上完成的

可以使用-details绑定的接口集部分上的选项来检索此属性。例如:

ip link add name b0 up type bond mode active-backup miimon 100
ip link add name s0 master b0 type veth peer name p0
# ip -details link show dev s0
4: s0@p0: <NO-CARRIER,BROADCAST,MULTICAST,SLAVE,UP,M-DOWN> mtu 1500 qdisc noqueue master b0 state LOWERLAYERDOWN mode DEFAULT group default qlen 1000
    link/ether 5e:bf:12:5b:ff:65 brd ff:ff:ff:ff:ff:ff promiscuity 0  allmulti 0 minmtu 68 maxmtu 65535 
    veth 
    bond_slave state BACKUP mii_status DOWN link_failure_count 0 perm_hwaddr 5e:bf:12:5b:ff:65 queue_id 0 prio 0 addrgenmode eui64 numtxqueues 16 numrxqueues 16 gso_max_size 65536 gso_max_segs 65535 tso_max_size 524280 tso_max_segs 65535 gro_max_size 65536 

其中包括默认值:prio 0。或者也使用-json参数和jq命令:

# ip -details -json link show dev s0 | jq '.[].linkinfo.info_slave_data.prio'
0

可以这样设置(type bond_slave必须接受特定于键的参数):

ip link set dev s0 type bond_slave prio 10

然后,如果其他因素允许(管理上(即此处ip link set dev s0 up:)、检测到运营商(即此处:)ip link set dev p0 up等),只要没有其他可用的候选接口,它将被设置为活动接口普里奥大于这个(或设置为基本的哪个胜过普里奥)。因此,对于多个参与接口上的多个不同值,可以选择选择不同接口的顺序,而不是依赖其他因素(例如:选择primary_reselect better并拥有两个具有相同接口的接口)普里奥)。

如文档所述,我找不到此示例prio中参数的同级伪文件/sys/class/net/s0or /sys/class/net/s0/bonding_slave

相关内容