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.)
sumber
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 down
perintah (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.sumber