Preferensi antarmuka jaringan

8

Bagaimana cara Linux menentukan antarmuka jaringan mana yang digunakan, ketika keduanya terhubung ke jaringan yang sama?

Perhatikan bahwa ini bukan pertanyaan tentang perutean. Saya akrab dengan cara kerjanya. Ini adalah jika, katakanlah, laptop saya terhubung ke router nirkabel saya melalui kartu ethernet dan kartu nirkabel saya, atau jika saya memiliki dua kartu ethernet keduanya terhubung ke router yang sama.

Saya dapat mengatakan dari pengalaman bahwa dalam kasus saya, laptop saya tampaknya lebih menyukai kartu ethernet (eth0) daripada nirkabel (eth1 - Saya tahu itu bukan nama khas untuk antarmuka nirkabel, tetapi itulah yang saya miliki), tetapi saya bertanya-tanya, bagaimana keputusannya? Jika hanya memilih dari antarmuka bernomor terendah, bagaimana jika dua pilihannya adalah, katakanlah, eth0 dan wlan0?

Sunting: @Nils telah menunjukkan bahwa ini masih masalah perutean, dan tabel perutean memberikan jawabannya (lihat jawabannya). Ini masih menyisakan pertanyaan awal saya, tetapi dalam bentuk yang berbeda. Apa yang menentukan urutan entri dalam tabel routing di Linux? Misalnya, berikut adalah tabel perutean saya saat terhubung ke kedua antarmuka:

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

Jelas bahwa eth0 adalah prioritas yang lebih tinggi dalam tabel daripada eth1 untuk tujuan di jaringan lokal, tetapi apakah itu diputuskan di Linux dari latensi tautan, throughput tautan, bahkan nama antarmuka, atau apa? (Pertanyaan yang sama dapat terjadi mengapa eth0 adalah antarmuka untuk rute default.)

Dominick Pastore
sumber

Jawaban:

6

Nah - ini pertanyaan routing.

Jawabannya sederhana: Entri pertama yang akan memberikan rute-entri terbaik adalah "pemenang". Jadi lihatlah netstat -rnuntuk melihat antarmuka mana yang lebih dulu.

Pembaruan: Pengaturan routing-inferface-jaringan-biasanya diatur selama startup sistem. Jadi urutan startup perangkat jaringan akan menjadi urutan dalam tabel itu. Dengan perangkat PCI, ini biasanya sedang diproses oleh nomor slot terendah terlebih dahulu. Perangkat eksternal (misalnya USB) biasanya datang kemudian.

Tetapi urutan tepatnya tergantung pada skrip jaringan-startup-rasa Linux Anda (ini adalah sesuatu yang sangat berbeda).

BTW: Jika Anda ingin menggunakan dua tautan Anda, Anda harus mencari ikatan . Di sana Anda dapat mengatur urutan penggunaan untuk tautan Anda.

Nils
sumber
1
Itu masuk akal. Ketika saya mengatakan perutean, yang saya maksudkan bukan hanya soal memilih antarmuka mana yang terhubung ke jaringan tujuan (langsung atau tidak langsung), karena keduanya. Seharusnya saya lebih berhati-hati dengan terminologi saya. Terima kasih atas tips yang bermanfaat (terutama tentang ikatan). Ini masih menyisakan pertanyaan awal saya, dalam bentuk yang sedikit berbeda. Bagaimana urutan entri perutean ditentukan di Linux (saya mengedit pertanyaan asli)?
Dominick Pastore
@Dominick Saya memperbarui jawaban saya sesuai. Distribusi apa dan versi utama apa yang Anda gunakan?
Nils
Ah. Saya tidak menyadari itu bisa sangat bervariasi antara distribusi. Saya mencari-cari informasi tentang ini, tetapi yang saya temukan hanyalah artikel tentang cara mengatur entri rute, bukan bagaimana yang asli ditentukan. Saya menggunakan Xubuntu 12.04. Hal ini menimbulkan satu pertanyaan lain (walaupun kecil; Saya merasa sangat tercerahkan dari jawaban Anda :-)). Jika saya terhubung melalui nirkabel (eth1) dan kemudian terhubung melalui Ethernet (eth0), rute default dan entri teratas dalam tabel routing kembali ke eth0. Ini sepertinya bertentangan dengan jawaban Anda. Apakah saya salah paham, atau apakah itu keistimewaan NetworkManager, atau apa?
Dominick Pastore
@Dominick Ubuntu sangat istimewa. Itu melakukan beberapa hal ajaib di latar belakang saat mencolokkan / mencabut perangkat jaringan. Saya kira itu me-restart seluruh jaringan di sana. (Saya biasanya menggunakan SLES / RH dan saya tidak terlalu jauh ke Ubuntu)
Nils
-3

Bukan untuk menyinggung Anda, tetapi jika Anda terbiasa dengan bagian routing dari tumpukan komunikasi TCP / IP Anda pada mesin linux apa pun, Anda juga harus tahu bahwa, hasil menghubungkan dua antarmuka jaringan ke jaringan yang sama, tidak dapat diprediksi terbaik. Jika saya jadi Anda, saya akan menonaktifkan nirkabel di laptop saya atau menjalankan ifconfig eth0 downperintah (dengan asumsi eth0 adalah koneksi ethernet kabel Anda) untuk mematikannya. Linux mungkin memiliki beberapa kecerdasan untuk membuat pilihan yang sama untuk setiap paket, tetapi dalam kasus gangguan jaringan di beberapa titik, dapat mengakibatkan beberapa hasil yang tidak terduga. 2 sen saya.

MelBurslan
sumber
1
Itu tidak bisa ditebak. Hit pertama pada tabel routing digunakan seperti yang dijelaskan oleh @Nils.
gertvdijk