(Menggabungkan berbagai komentar menjadi sebuah jawaban)
Saat ini, metrik rute tidak dapat diubah. Sebagai pesan tahun 2005 di LKML menyatakan:
[...] Metrik/prioritas tidak dapat diubah karena kami tidak memiliki bidang terpisah untuk mencocokkan bidang dan nilai baru jadi jika Anda menentukan metrik entri tidak akan ditemukan dan permintaan gagal dengan ENOENT karena NLM_F_CREATE tidak ditentukan. Ini adalah batasan dari protokol saat ini dan mungkin merupakan ide bagus untuk mengubahnya, namun ini tidak mudah [...]
Ini sepertinya berlaku untuk ip route change
dan ip route replace
- yang pertama menghasilkan kesalahan bagi saya, sedangkan yang terakhir membuat rute tambahan seperti yang diiklankan (halaman manualnya menyatakan bahwa replace
akan menggantikan atau membuat rute). Ini konsisten dengan kernel yang merespons dengan ENOENT, dan ip route replace
menindaklanjuti dengan permintaan pembuatan rute.
Jadi, solusinya adalah menghapus rute yang ada dan menambahkan rute baru, mis.
ip route del 40.2.2.0/24 via 30.1.2.2
ip route add 40.2.2.0/24 via 30.1.2.2 metric 1234
Seperti dicatat dalam komentar untuk pertanyaan, mengutip pesan di milis linux-net:"Metrik/prioritas tidak dapat diubah [...] Ini adalah batasan dari protokol saat ini [...]."
Satu-satunya cara adalah menghapus rute dan menambahkan yang baru.
Ini dilakukan dengan menggunakan route
perintah, contoh:
sudo route add -net default gw 10.10.0.1 netmask 0.0.0.0 dev wlan0 metric 1
Halaman manual Debian untuk perintah rute
ifmetric
akan memungkinkan Anda untuk mengubah metrik rute dengan cepat, mengingat antarmuka yang dilalui rute yang ingin Anda ubah.
Penggunaan
ifmetric <iface> [<metric>]
Misalnya, gunakan ifmetric tun0 12
untuk mengubah metrik menjadi 12 untuk semua rute yang melewati tun0
.