«Ip route get» affiche une adresse IP source incorrecte

8

J'ai une machine avec une interface qui a deux adresses 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

Si j'exécute par exemple ip -s route get 8.8.8.8, alors selon cela, le paquet de sortie aura une adresse IP source 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

Cependant, lorsque je par exemple pingou SSHà 8.8.8.8, alors l'IP source est 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

Quelle est la raison pour laquelle dans ce cas ip route getn'affiche pas l'adresse IP source correcte?

Martin
la source
1
Quelle est la sortie de ip rule list? Et pour chaque table répertoriée, quelle est la sortie de ip route list table $table?
Jesusaur
1
Que ip route show to match 8.8.8.8dit-on?
zeppelin
2
@Martin ip route getimprime le résultat de l'algorithme de sélection de routage et imprime l'adresse source à partir du srcchamp de l'entrée de table de routage correspondante. Cependant, une application peut lier une adresse au socket, qui est ensuite utilisé à la place comme adresse source dans les paquets IP. Voir Sélection de l'adresse source . Peut-être que votre programme ping fait cela? (Il existe plusieurs programmes de ping; à partir de quel package est le vôtre?)
Johan Myréen

Réponses:

1

Une machine ne peut avoir qu'une seule passerelle par défaut. Vous pouvez utiliser ping -i pour choisir l'interface dont vous voulez que le paquet provienne. D'après les informations que vous avez fournies, il apparaît que votre IP par défaut est 192.168.1.15. 10.10.118.45 semble être un alias. Vérifiez votre /etc/networks, /etc/sysconfig/networkainsi que la configuration de l' interface à l' intérieur/etc/network-scripts/ifcfg-*

Voici un exemple de sortie d'une configuration similaire.

[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
la source
Bienvenue chez U&L. Veuillez lire la visite , elle fournit des informations utiles. Si vous avez une sortie de programme multi-lignes (ou code), sélectionnez les lignes, puis cliquez {}pour un texte plus lisible.
Anthon
0

Peut-être est-il possible que votre 10.10.118.45/24adresse soit DHCP? vous pouvez essayer de supprimer l'adresse statique

klaypez
la source