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