有没有办法在主动备份模式下为网络绑定的多个接口(两个以上)设置优先级顺序?
我有 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/s0
or /sys/class/net/s0/bonding_slave
。