(Комбінування різних коментарів у відповідь)
Наразі неможливо змінити метрику маршруту. У повідомленні 2005 року про LKML зазначено :
[...] Метрику / пріоритет неможливо змінити, оскільки у нас немає окремих полів для відповідності полів та нових значень, тому, якщо ви вкажете метрику, запис просто не знайдеться, а запит не вдасться до ENOENT, оскільки NLM_F_CREATE не вказано. Це обмеження поточного протоколу, і, можливо, було б корисно змінити це, однак це не тривіально [...]
Це, мабуть, стосується ip route change
і ip route replace
колишнього, і першого - призводить до помилки для мене, в той час як другий створює додатковий маршрут, як рекламується (його man page повідомляє, що replace
замінить або створить маршрут). Це узгоджується з тим, що ядро відповідає ENOENT та подає ip route replace
запит на створення маршруту.
Отже, рішення - видалити існуючий маршрут і додати новий. напр
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