Modificando a entrada de rota existente no linux

6

qual é o comando para modificar a métrica de uma entrada de rota existente no linux? Eu consigo alterar o gateway de uma entrada existente usando o comando "ip route change" como abaixo, mas não consigo alterar métricas. Existe algum outro comando para isso?

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
    
por user1762571 24.11.2015 / 18:59

2 respostas

4

Isso é feito usando o comando route , exemplo:

sudo route add -net default gw 10.10.0.1 netmask 0.0.0.0 dev wlan0 metric 1

página de manual do Debian para o comando route

    
por 24.11.2015 / 20:40
3

(Combinando vários comentários em uma resposta)

Atualmente, não é possível modificar a métrica de uma rota. Como uma a mensagem de 2005 nos estados LKML :

[...] The metric/priority cannot be changed because we do not have separate fields for the fields to match and the new values so if you specify a metric the entry simply won't be found and the request fails with ENOENT because NLM_F_CREATE is not specified. This is a limitation of the current protocol and it might be a good idea to to change this, however it's non trivial [...]

Isso parece se aplicar a ip route change e ip route replace - o primeiro resulta em um erro para mim, enquanto o segundo cria uma rota adicional conforme anunciado (sua página man indica que replace substituirá ou crie uma rota). Isso é consistente com o kernel respondendo com ENOENT e ip route replace seguindo com uma solicitação de criação de rota.

Portanto, a solução é excluir a rota existente e adicionar uma nova. por exemplo,

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
    
por 23.07.2018 / 18:57

Tags