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
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
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
(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