ฉันมีเราเตอร์ที่ใช้ OpenWrt และเครื่องที่มี Linux ในตัวซึ่งสร้างด้วย Yocto ฉันต้องตรวจพบการต่ออายุสัญญาเช่าในใบสมัคร C ของฉัน บนเราเตอร์ของฉัน ฉันลดเวลาการเช่าลงเหลือ 30 วินาที เมื่อฉันเข้าสู่ระบบ Linux เข้าสู่เครือข่าย OpenWrt และได้รับที่อยู่ DHCPv6 ฉันสามารถ ping จาก Linux ไปยังเราเตอร์ (จากที่อยู่ที่เซิร์ฟเวอร์ DHCPv6 กำหนด) แต่ทุกครั้งที่ต่ออายุที่อยู่ ping จะเริ่มไม่แสดงอะไรเลย ไม่มีข้อผิดพลาด ไม่มีข้อมูลที่เครือข่ายไม่สามารถเข้าถึงได้ ไม่มีอะไรเลย ในขณะนี้ tcpdump ยังคงแสดงคำขอ ICMP6 echo และ ICMP6 echo replays อะไรทำให้ ping ไม่แสดงอะไรเลยหลังจากต่ออายุที่อยู่
นี่คือการกำหนดค่าเราเตอร์ของฉันใน /etc/config/dhcp
:
กำหนดค่า dhcp 'lan'
อินเทอร์เฟซตัวเลือก 'lan'
ตัวเลือกเริ่มต้น '100'
ตัวเลือกจำกัด '50'
ตัวเลือกอย่างน้อยที่สุด '30s'
ตัวเลือก dhcpv6 'เซิร์ฟเวอร์'
ตัวเลือก ra 'เซิร์ฟเวอร์'
ตัวเลือก ra_useleasetime '1'
ตัวเลือก ra_lifetime '30'
แก้ไข
ฉันทำการทดสอบซ้ำ 3 ครั้งด้วย เส้นทาง ip -6
และฉันไม่ได้รับรายการที่มีเมตริกที่เปลี่ยนแปลง สิ่งเดียวที่เปลี่ยนไปคือเวลาหมดอายุ เส้นทาง ip -6
เมื่อ ping ทำงาน:
fd33:a242:c52a::581 dev wlan0 โปรโตเคอร์เนลเมตริก 256 pref สื่อ
fd33:a242:c52a::/64 dev wlan0 proto kernel metric 256 หมดอายุ 53sec pref medium
fe80::/64 dev eth0 เคอร์เนลโปรโตเมตริก 256 pref สื่อ
fe80::/64 dev wlan0 เคอร์เนลโปรโตเมตริก 256 pref สื่อ
ff00::/8 dev eth0 เมตริก 256 pref สื่อ
ff00::/8 dev wlan0 เมตริก 256 pref สื่อ
เมื่อ ping ไม่ทำงาน:
fd33:a242:c52a::581 dev wlan0 โปรโตเคอร์เนลเมตริก 256 pref สื่อ
fd33:a242:c52a::/64 dev wlan0 proto kernel metric 256 หมดอายุ 51sec pref medium
fe80::/64 dev eth0 เคอร์เนลโปรโตเมตริก 256 pref สื่อ
fe80::/64 dev wlan0 เคอร์เนลโปรโตเมตริก 256 pref สื่อ
ff00::/8 dev eth0 เมตริก 256 pref สื่อ
ff00::/8 dev wlan0 เมตริก 256 pref สื่อ