Eu tenho dois canais da Internet e Gateway no freebsd. Quando troco de canal com o comando route change default chan2
, o comando netstat -nr
mostra a rota padrão alterada. Mas traceroute
mostra que os pacotes passam pela rota antiga chan1.
Exemplo:
$netstat -nr
Routing tables Internet: Destination Gateway Flags Refs Use Netif Expire
default xxx.xxx.183.54 US 0 8432 em3
$sudo route change default xxx.xxx.144.125
change net default: gateway> xxx.xxx.144.125
$netstat -nr
Routing tables Internet: Destination Gateway Flags Refs Use Netif Expire
default xxx.xxx.144.125 US 2 16450 em3
MAS
$ traceroute 8.8.8.8
traceroute to 8.8.8.8 (8.8.8.8), 64 hops max, 52 byte packets
1 xxx.xxx.183.53 (xxx.xxx.183.53) 0.527 ms 0.415 ms 0.483ms
Tudo funciona se eu executar a seguinte combinação:
$ sudo route del default
$ sono 10
A rota $ sudo adiciona o padrão xxx.xxx.144.125
uname -a
deve mostrar)?netstat -rnf inet
?arp -d -a
e / ou as tabelas de roteamentoroute flush
antes de adicionar a nova rota padrão. Possivelmente, o espaço do kernel / usuário está consultando dados obsoletos.Respostas:
Se você usar o
route change
comando, precisará reiniciar o serviço de rede para aplicar as alterações, por exemplo:fonte
É possível que você tenha uma rota em cache para 8.8.8.8? A saída completa de
netstat -nr
mostraria isso. Nesse caso, você precisaria removê-lo antes de testar sua alteração - especificamente essa rota ou você poderiaroute flush
adicionar e não alterar o gateway padrão (mas lembre-se de que isso interromperá o tráfego não local enquanto estiver entre os dois comandos) maneira).fonte