Jika Anda memiliki (dalam Linux) dua rute ini:
default via 192.168.1.1 dev enp58s0f1
default via 192.168.16.1 dev wlp59s0 proto static metric 600
Saya berharap yang pertama digunakan, tapi bukan itu masalahnya: yang kedua digunakan.
Jika saya mengubahnya ke ini:
default via 192.168.1.1 dev enp58s0f1 proto static metric 100
default via 192.168.16.1 dev wlp59s0 proto static metric 600
Maka itu berfungsi seperti yang diharapkan. Tampaknya "tidak ada metrik" adalah metrik yang lebih buruk (lebih tinggi) daripada angka apa pun, alih-alih metrik 0.
Apa yang terjadi? Apakah khusus untuk Linux, atau standar jaringan?
Terima kasih sebelumnya.
sumber
Karena rute ini berada di subnet yang berbeda, ada lebih banyak yang terlibat di sini daripada hanya metrik. Misalnya, jika lalu lintas berasal pada subnet 192.168.1.1, dan ada rute non-default yang cocok di tabel perutean Anda, maka rute itu akan cocok melalui pencocokan awalan terpanjang sebelum metrik dipertimbangkan.
Dengan asumsi rute non-default tidak cocok, maka tidak memiliki metrik harus ditafsirkan oleh kernel sebagai memiliki metrik 0, dan karenanya rute prioritas tertinggi. Meskipun itu adalah tampilan yang sederhana karena beberapa daemon routing nantinya akan menerjemahkan metrik default menjadi nilai lain seperti 1024. Saya berharap ini adalah apa yang terjadi pada Anda dan distro Anda yang tidak disebutkan namanya.
Jika
ip route
tidak menunjukkan metrik sama sekali, Anda dapat mengonfirmasi bahwa itu memang 0 dengan menggunakanroute -n
perintah yang lebih lama dari paket net-tools ataucat /proc/net/route
. Namun, output ini tidak selalu cocok dengan apa yang akan digunakan daemon routing secara internal ketika menemui nilai 0 metrik.Lebih jauh lagi bagaimana Anda membuat rute juga penting.
ip route
menggunakan netlink API, sementararoute
menggunakan ioctl. Kode untuk bagaimana metrik default dibuat antara dua pendekatan menghasilkan nilai metrik yang berbeda. Misalnya: membuat rute default IPv6 viaip route
akan menghasilkan nilai metrik 1024 pada RHEL 7, sementara membuat rute yang sama viaroute
akan menghasilkan metrik 1.Dari RedHat :
sumber