"Ip route get" mostra o endereço IP de origem errado

8

Eu tenho uma máquina com uma interface que possui dois endereços IP:

inet 192.168.1.15/32 scope global eth0
inet 10.10.118.45/24 brd 10.10.118.255 scope global eth0:hosts4

Se eu executar, por exemplo ip -s route get 8.8.8.8, de acordo com isso, o pacote de saída terá um endereço IP de origem 10.10.118.45:

8.8.8.8 via 10.10.118.254 dev eth0  src 10.10.118.45 
    cache  users 1 used 1

No entanto, quando eu, por exemplo pingou SSHpara 8.8.8.8, o IP de origem é 192.168.1.15:

15:19:38.092508 IP 192.168.1.15 > 8.8.8.8: ICMP echo request, id 9135, seq 2, length 64
15:19:38.097962 IP 8.8.8.8 > 192.168.1.15: ICMP echo reply, id 9135, seq 2, length 64

Por que motivo, neste caso ip route get, não mostra o endereço IP de origem correto?

Martin
fonte
1
Qual é o resultado de ip rule list? E para cada tabela listada, qual é o resultado ip route list table $table?
Jesusaur
1
O que ip route show to match 8.8.8.8diz?
Zeppelin #
2
@Martin ip route getimprime o resultado do algoritmo de seleção de roteamento e imprime o endereço de origem no srccampo da entrada da tabela de roteamento correspondente. No entanto, um aplicativo pode vincular um endereço ao soquete, que é usado como o endereço de origem nos pacotes IP. Consulte Seleção de endereço de origem . Talvez o seu programa de ping faça isso? (Existem vários programas de ping, a partir de qual pacote é a sua?)
Johan Myréen

Respostas:

1

Uma máquina pode ter apenas um gateway padrão. Você pode usar o ping -i para escolher qual interface você quer que um pacote venha. A partir das informações que você forneceu, parece que seu IP padrão é 192.168.1.15. 10.10.118.45 parece ser um alias. Verifique se o seu /etc/networks, /etc/sysconfig/networkbem como o interior de configuração da interface/etc/network-scripts/ifcfg-*

Aqui está um exemplo de saída de configuração semelhante.

[root@cp-rc ~]# ip route show
default via 192.185.130.1 dev eth0 proto static metric 100
10.1.1.0/24 dev eth1 proto kernel scope link src 10.1.1.9 metric 100
192.185.130.0/24 dev eth0 proto kernel scope link src 192.185.130.90 metric 100
[root@cp-rc ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.185.130.1   0.0.0.0         UG    100    0        0 eth0
10.1.1.0        0.0.0.0         255.255.255.0   U     100    0        0 eth1
192.185.130.0   0.0.0.0         255.255.255.0   U     100    0        0 eth0
digital_chocolate
fonte
Bem-vindo ao U&L. Por favor, leia o passeio , ele fornece algumas informações úteis. Se você tiver saída de programa de várias linhas (ou código), selecione as linhas e clique em {}para obter um texto melhor legível.
Anthon
0

Talvez seja possível que seu 10.10.118.45/24endereço seja dhcp? você pode tentar remover o endereço estático

klaypez
fonte