ด้วยเคอร์เนล Linux 4.14 เมื่อฉันเพิ่มเส้นทางหลายเส้นทาง IPv6 ที่มีน้ำหนัก (10 & 30) พวกเขาจะถูกเพิ่มด้วยน้ำหนัก '1' ที่เท่ากัน เส้นทาง IPv4 ไม่มีปัญหานี้
ฉันตรวจสอบด้วยขั้นตอนเดียวกันทุกประการในเครื่องอื่นที่มีเคอร์เนล Linux 4.19 ซึ่งน้ำหนักที่แสดงในเอาต์พุตดูเหมือนจะตรงกับการกำหนดค่า
โปรดช่วยค้นหาว่าอะไรทำให้เกิดความแตกต่างนี้ การเปลี่ยนแปลงใด ๆ ที่เข้าสู่ iproute หรือเวอร์ชันเคอร์เนลอาจทำให้เกิดสิ่งนี้ได้ หรือจำเป็นต้องเปิดใช้งานการกำหนดค่าเคอร์เนลใด ๆ สำหรับหลายพาธที่มีการรองรับน้ำหนักหรือไม่
ทั้งสองเครื่องมี CONFIG_IP_ROUTE_MULTIPATH=y
.
การกำหนดค่า:
# ลิงค์ ip เพิ่มลิงค์ eth0 ชื่อ eth0.100 ประเภท vlan id 100
# ลิงค์ ip เพิ่มลิงค์ eth0 ชื่อ eth0.200 ประเภท vlan id 200
# ลิงค์ ip ตั้งค่า eth0.100 ขึ้นไป
# ip link ตั้งค่า eth0.200 ขึ้นไป
# ip -6 addr เพิ่ม 20::1/120 dev eth0.100
# ip -6 addr เพิ่ม 30::1/120 dev eth0.200
เส้นทาง # ip -6 เพิ่ม 40::/120 nexthop ผ่าน 20::2 น้ำหนัก 10 nexthop ผ่าน 30::2 น้ำหนัก 30
จาก 4.14:
# ip -6 rl
20::/120 dev eth0.100 proto kernel metric 256 pref สื่อ
30::/120 dev eth0.200 proto kernel metric 256 pref สื่อ
40::/120 เมตริก 1024 พรีมีเดียม
nexthop ผ่าน 20::2 dev eth0.100 น้ำหนัก 1
nexthop ผ่าน 30::2 dev eth0.200 น้ำหนัก 1
# ไอพี -V
ยูทิลิตี้ ip, iproute2-ss200330
# uname -r
4.14.231-pc64
จาก 4.19:
# ip -6 rl
:: 1 dev lo เคอร์เนลโปรโตเมตริก 256 pref สื่อ
20::/120 dev eth0.100 proto kernel metric 256 pref สื่อ
30::/120 dev eth0.200 proto kernel metric 256 pref สื่อ
40::/120 เมตริก 1024
nexthop ผ่าน 20::2 dev eth0.100 น้ำหนัก 10
nexthop ผ่าน 30::2 dev eth0.200 weight 30 pref medium
# ไอพี -V
ยูทิลิตี้ IP, iproute2-ss190107
# uname -r
4.19.0-16-cloud-amd64