Что такое команда для изменения метрики существующей записи маршрута в Linux? Я могу изменить шлюз существующей записи с помощью команды «ip route change», как показано ниже, но не могу изменить метрики. Есть ли другая команда для этого?
route –n
40.2.2.0 30.1.3.2 255.255.255.0 eth2
ip route change 40.2.2.0/24 via 30.1.2.2
route -n
40.2.2.0 30.1.2.2 255.255.255.0 eth1
Ответы:
Как отмечено в комментарии к вопросу, цитируя сообщение в списке рассылки linux-net: «Метрика / приоритет не могут быть изменены [...] Это ограничение текущего протокола [...].»
Единственный способ - удалить маршрут и добавить новый.
Это делается с помощью
route
команды, пример:Страница руководства Debian для команды route
источник
The metric/priority cannot be changed [...] This is a limitation of the current protocol[...]
. Единственный способ - удалить маршрут и добавить новый.(Объединение различных комментариев в ответ)
В настоящее время невозможно изменить метрику маршрута. В сообщении 2005 года о LKML говорится :
Похоже, что это применимо как к, так
ip route change
и кip route replace
- первое приводит к ошибке для меня, а второе создает дополнительный маршрут в соответствии с объявлением (на его странице руководства указано, чтоreplace
он заменит или создаст маршрут). Это согласуется с тем, что ядро отвечает ENOENT иip route replace
выполняет запрос на создание маршрута.Таким образом, решение состоит в том, чтобы удалить существующий маршрут и добавить новый. например
источник
ifmetric
позволит вам изменять метрику маршрута на лету, учитывая интерфейс, через который проходят маршруты, которые вы хотите изменить.использование
Например, используйте
ifmetric tun0 12
для изменения метрики на 12 для всех проходящих маршрутовtun0
.источник