Làm thế nào để Linux xác định giao diện mạng nào sẽ sử dụng, khi cả hai được kết nối với cùng một mạng?
Lưu ý rằng đây không phải là một câu hỏi về định tuyến. Tôi quen thuộc với cách thức hoạt động. Đây là nếu tôi có máy tính xách tay được kết nối với bộ định tuyến không dây thông qua cả thẻ ethernet và thẻ không dây hoặc nếu tôi có hai thẻ ethernet được kết nối với cùng một bộ định tuyến.
Tôi có thể nói từ kinh nghiệm rằng trong trường hợp của tôi, máy tính xách tay của tôi dường như ưu tiên thẻ ethernet (eth0) hơn không dây (eth1 - Tôi biết đó không phải là một tên điển hình cho giao diện không dây, nhưng đó là những gì tôi có), nhưng tôi đã tự hỏi, làm thế nào để nó quyết định điều đó? Nếu nó chỉ chọn từ giao diện được đánh số thấp nhất, nếu hai lựa chọn là eth0 và wlan0 thì sao?
Chỉnh sửa: @Nils đã chỉ ra rằng đây vẫn là vấn đề định tuyến và bảng định tuyến cung cấp câu trả lời (xem câu trả lời của anh ấy). Điều này vẫn để lại câu hỏi ban đầu của tôi, nhưng ở một hình thức khác. Điều gì xác định thứ tự của các mục trong bảng định tuyến trong Linux? Ví dụ, đây là bảng định tuyến của tôi trong khi kết nối với cả hai giao diện:
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 192.168.4.1 0.0.0.0 UG 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
192.168.4.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.4.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
Rõ ràng rằng eth0 được ưu tiên cao hơn trong bảng so với eth1 cho các điểm đến trong mạng cục bộ, nhưng điều đó có được quyết định trong Linux từ độ trễ liên kết, thông lượng liên kết, thậm chí tên giao diện hay không? (Câu hỏi tương tự có thể xảy ra tại sao eth0 là giao diện cho tuyến đường mặc định.)