ฉันมีเครื่อง PetaLinux (Embedded Linux บนอุปกรณ์ Xilinx Zynq, debian fork, เคอร์เนล 4.19) หาก NIC ทั้งสองเปิดอยู่ แตกต่าง เครือข่ายย่อย จากนั้นฉันสามารถยกเลิกการเชื่อมต่อ NIC หนึ่ง และอีกอันหนึ่งจะทำงานต่อไป แต่ถ้าพวกเขาอยู่บน เหมือนกัน subnet การยกเลิกการเชื่อมต่อ eth0 จะทำให้ทั้งสองไม่สามารถเข้าถึงได้ (การตัดการเชื่อมต่อ eth1 เป็นเรื่องปกติ) นอกจากนี้ หาก DHCP รับแอดเดรสมา การถอดปลั๊กสำหรับ eth0 ก็ไม่เป็นไรเช่นกัน
ตอนนี้ ฉันเข้าใจดีว่าโดยค่าเริ่มต้น Linux มีนโยบายที่อ่อนแอในการเลือก NIC เพื่อตอบกลับข้อความใดๆ และนี่คือสิ่งที่ฉันจัดการเมื่อสองสามปีก่อนใน บทความอื่น.
ขออภัย โซลูชันนี้ดูเหมือนจะใช้ไม่ได้กับเวอร์ชันของ Linux ที่เรามีที่นี่ มีอะไรใหม่ที่เราต้องทำกับเมล็ดที่ใหม่กว่านี้หรือไม่?
ขอบคุณล่วงหน้า.
อัปเดต
"เส้นทาง ip" ขณะที่เสียบสายทั้งสอง:
ค่าเริ่มต้นผ่าน 192.168.1.1 dev eth0
192.168.1.0/24 dev eth0 ลิงก์ขอบเขตเคอร์เนลโปรโต src 192.168.1.195
192.168.1.0/24 dev eth1 proto kernel ขอบเขตลิงค์ src 192.168.1.196
"เส้นทาง ip" เมื่อถอดปลั๊ก eth0 (กรณีล้มเหลว):
ค่าเริ่มต้นผ่าน 192.168.1.1 dev eth0 linkdown
192.168.1.0/24 dev eth0 proto kernel scope ลิงก์ src 192.168.1.195 ลิงก์ดาวน์
192.168.1.0/24 dev eth1 proto kernel ขอบเขตลิงค์ src 192.168.1.196
"เส้นทาง ip" เมื่อถอดปลั๊ก eth1 (ใช้งานได้ดี):
ค่าเริ่มต้นผ่าน 192.168.1.1 dev eth0
192.168.1.0/24 dev eth0 ลิงก์ขอบเขตเคอร์เนลโปรโต src 192.168.1.195
192.168.1.0/24 dev eth1 proto kernel scope ลิงก์ src 192.168.1.196 ลิงก์ดาวน์
ย้ำอีกครั้งว่าเราไม่สามารถ ping 192.168.1.196 ได้เมื่อถอดปลั๊ก NIC สำหรับ 192.168.1.195