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 menggunakan route -n
perintah yang lebih lama dari paket net-tools atau cat /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, sementara route
menggunakan ioctl. Kode untuk bagaimana metrik default dibuat antara dua pendekatan menghasilkan nilai metrik yang berbeda. Misalnya: membuat rute default IPv6 via ip route
akan menghasilkan nilai metrik 1024 pada RHEL 7, sementara membuat rute yang sama via route
akan menghasilkan metrik 1.
Dari RedHat :
- jika tidak ada yang dilewatkan ke perintah rute sebagai metrik rute, nilai 1 digunakan oleh perintah itu sendiri.
- Jika tidak ada yang dilewatkan ke perintah ip sebagai metrik rute atribut tidak dibuat sama sekali dan kernel memahaminya sebagai 0, yang kemudian diterjemahkan 1024 sebagai default.