В ядре Linux 4.14, когда я добавляю многопутевые маршруты IPv6 с весами (10 и 30), они добавляются с одинаковым весом «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 через 20::2 вес 10 nexthop через 30::2 вес 30
С 4.14:
# ип -6 р л
20::/120 dev eth0.100 proto kernel metric 256 pref средний
30::/120 dev eth0.200 proto kernel metric 256 pref средний
40::/120 метрическая 1024 предустановленная средняя
следующий переход через 20::2 dev eth0.100 вес 1
следующий переход через 30::2 dev eth0.200 вес 1
# IP-V
утилита ip, iproute2-ss200330
# uname -r
4.14.231-пк64
С 4.19:
# ип -6 р л
::1 dev lo proto kernel metric 256 pref medium
20::/120 dev eth0.100 proto kernel metric 256 pref средний
30::/120 dev eth0.200 proto kernel metric 256 pref средний
40::/120 метрическая 1024
следующий переход через 20::2 dev eth0.100 вес 10
nexthop через 30::2 dev eth0.200 вес 30 pref средний
# IP-V
утилита IP, iproute2-ss190107
# uname -r
4.19.0-16-облако-AMD64