Tùy chọn giao diện mạng


8

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.)

Câu trả lời:


6

Vâng - đây là một câu hỏi định tuyến.

Câu trả lời rất đơn giản: Mục nhập đầu tiên sẽ cho mục nhập định tuyến tốt nhất là "người chiến thắng". Vì vậy, nhìn vào netstat -rnđể xem giao diện nào là đầu tiên.

Cập nhật: Các cài đặt định tuyến-mặt-mạng thường được thiết lập trong khi khởi động hệ thống. Vì vậy, thứ tự khởi động của các thiết bị mạng sẽ là thứ tự trong bảng đó. Với các thiết bị PCI, các thiết bị này thường được xử lý theo số khe thấp nhất trước tiên. Các thiết bị bên ngoài (ví dụ USB) thường xuất hiện sau.

Nhưng thứ tự chính xác phụ thuộc vào tập lệnh khởi động mạng theo hương vị Linux của bạn (đây là thứ mà chúng rất khác nhau).

BTW: Nếu bạn muốn sử dụng hai liên kết của mình, bạn nên đi liên kết . Ở đó bạn có thể thiết lập thứ tự sử dụng cho các liên kết của bạn.


1
Điều đó có ý nghĩa. Khi tôi nói định tuyến, ý tôi là không đơn giản chỉ là chọn giao diện nào được kết nối với mạng đích (trực tiếp hay gián tiếp), vì cả hai đều như vậy. Tôi nên cẩn thận hơn với thuật ngữ của tôi. Cảm ơn những lời khuyên hữu ích (đặc biệt là về liên kết). Điều này vẫn để lại câu hỏi ban đầu của tôi, mặc dù, trong một hình thức hơi khác nhau. Làm thế nào để thứ tự các mục định tuyến được xác định trong Linux (Tôi đã chỉnh sửa câu hỏi ban đầu)?
Dominick Pastore

@Dominick Tôi cập nhật câu trả lời của tôi cho phù hợp. Phân phối nào và phiên bản chính nào bạn đang sử dụng?
Nils

Ah. Tôi đã không nhận ra nó có thể thay đổi rất nhiều giữa các bản phân phối. Tôi đã xem xét tất cả các thông tin về điều này, nhưng tất cả những gì tôi tìm thấy là các bài viết về cách đặt các mục định tuyến, chứ không phải cách xác định các mục gốc. Tôi đang sử dụng Xubfox 12.04. Điều này đặt ra một câu hỏi khác (mặc dù nhỏ; tôi cảm thấy rất giác ngộ từ câu trả lời của bạn :-)). Nếu tôi được kết nối qua mạng không dây (eth1) và sau đó kết nối qua Ethernet (eth0), tuyến mặc định và các mục hàng đầu trong bảng định tuyến sẽ quay trở lại eth0. Điều này dường như đi ngược lại câu trả lời của bạn. Tôi có hiểu lầm không, hay đó là một idiosyncrasy, hay cái gì?
Dominick Pastore

@Dominick Ubuntu rất đặc biệt. Nó thực hiện một số công cụ kỳ diệu trong nền khi cắm / rút các thiết bị mạng. Tôi đoán nó khởi động lại toàn bộ ngăn xếp mạng ở đó. (Tôi thường sử dụng SLES / RH và không quá sâu vào Ubuntu)
Nils

-3

Không làm bạn khó chịu, nhưng nếu bạn quen thuộc với phần định tuyến của ngăn xếp giao tiếp TCP / IP trên bất kỳ máy linux nào, bạn cũng nên biết rằng, kết quả của việc kết nối hai giao diện mạng với cùng một mạng là điều không thể đoán trước được. Nếu tôi là bạn, tôi sẽ vô hiệu hóa không dây trên máy tính xách tay của mình hoặc chạy ifconfig eth0 downlệnh (giả sử eth0 là kết nối ethernet có dây của bạn) để tắt nó. Linux có thể có một số thông minh để đưa ra lựa chọn giống nhau cho mọi gói, nhưng trong trường hợp bị trục trặc mạng tại một số điểm, có thể dẫn đến một số kết quả không mong muốn. 2 xu của tôi.


1
Nó không phải là không thể đoán trước. Lần truy cập đầu tiên trong bảng định tuyến được sử dụng như được giải thích bởi @Nils.
gertvdijk
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.