使用 Linux 内核 4.14,当我添加具有权重(10 和 30)的 IPv6 多路径路由时,它们会以相同的权重“1”添加。IPv4 路由不存在此问题。
我在另一台装有 Linux 内核 4.19 的机器上按照完全相同的步骤进行了检查,其中输出中显示的权重似乎与配置相匹配。
请帮忙找出造成这种差异的原因。iproute 或内核版本中的任何更改是否会导致这种情况,或者是否需要启用任何特定内核配置才能支持权重多路径?两台机器都有CONFIG_IP_ROUTE_MULTIPATH=y
。
配置:
# ip link add link eth0 name eth0.100 type vlan id 100
# ip link add link eth0 name eth0.200 type vlan id 200
# ip link set eth0.100 up
# ip link set eth0.200 up
# ip -6 addr add 20::1/120 dev eth0.100
# ip -6 addr add 30::1/120 dev eth0.200
# ip -6 route add 40::/120 nexthop via 20::2 weight 10 nexthop via 30::2 weight 30
从4.14开始:
# ip -6 r l
20::/120 dev eth0.100 proto kernel metric 256 pref medium
30::/120 dev eth0.200 proto kernel metric 256 pref medium
40::/120 metric 1024 pref medium
nexthop via 20::2 dev eth0.100 weight 1
nexthop via 30::2 dev eth0.200 weight 1
# ip -V
ip utility, iproute2-ss200330
# uname -r
4.14.231-pc64
从4.19开始:
# ip -6 r l
::1 dev lo proto kernel metric 256 pref medium
20::/120 dev eth0.100 proto kernel metric 256 pref medium
30::/120 dev eth0.200 proto kernel metric 256 pref medium
40::/120 metric 1024
nexthop via 20::2 dev eth0.100 weight 10
nexthop via 30::2 dev eth0.200 weight 30 pref medium
# ip -V
ip utility, iproute2-ss190107
# uname -r
4.19.0-16-cloud-amd64