Tôi có một máy PetaLinux (Linux nhúng trên thiết bị Xilinx Zynq, debian fork, kernel 4.19). Nếu hai NIC đang bật khác biệt mạng con, thì tôi có thể ngắt kết nối một NIC và mạng kia sẽ tiếp tục hoạt động. Nhưng nếu họ đang ở trên như nhau mạng con, thì việc ngắt kết nối eth0 sẽ khiến cả hai không thể truy cập được. (Ngắt kết nối eth1 cũng được.) Ngoài ra, nếu các địa chỉ được DHCP lấy, thì việc ngắt kết nối cho eth0 cũng không sao.
Bây giờ, tôi hiểu rằng theo mặc định, Linux có một chính sách yếu trong việc chọn một NIC để phản hồi cho bất kỳ tin nhắn nào và đây là điều mà tôi đã giải quyết cách đây vài năm, trong một bài báo khác.
Thật không may, giải pháp này dường như không hoạt động trên phiên bản Linux mà chúng tôi có ở đây. Có điều gì mới mà chúng ta phải làm với các hạt nhân mới hơn không?
Cảm ơn trước.
Cập nhật
"ip route" trong khi cắm cả hai cáp:
mặc định qua 192.168.1.1 dev eth0
192.168.1.0/24 dev eth0 liên kết phạm vi kernel proto src 192.168.1.195
192.168.1.0/24 dev eth1 liên kết phạm vi kernel proto src 192.168.1.196
"ip route" khi rút phích cắm eth0 (trường hợp lỗi):
mặc định qua liên kết 192.168.1.1 dev eth0
192.168.1.0/24 dev eth0 liên kết phạm vi hạt nhân proto src 192.168.1.195 liên kết xuống
192.168.1.0/24 dev eth1 liên kết phạm vi kernel proto src 192.168.1.196
"ip route" khi rút phích cắm eth1 (hoạt động tốt):
mặc định qua 192.168.1.1 dev eth0
192.168.1.0/24 dev eth0 liên kết phạm vi kernel proto src 192.168.1.195
192.168.1.0/24 dev eth1 liên kết phạm vi hạt nhân proto src 192.168.1.196 liên kết xuống
Xin nhắc lại, chúng tôi không thể ping 192.168.1.196 khi rút phích cắm NIC cho 192.168.1.195.