comment trouver la passerelle utilisée pour le routage

45

Ceci est dans l'environnement Unix. J'ai plusieurs itinéraires dans un hôte (visibles avec la commande 'ip route show'). Si je cingle une adresse, comment puis-je savoir quelle passerelle a été utilisée pour acheminer le trafic?

J'ai essayé d'utiliser la commande traceroute, mais elle ne montre pas la passerelle immédiate.

En dessous de la sortie, 10.58.227.1 est ma passerelle par défaut.

# ip r l
10.58.227.0/24 dev front_eth1  proto kernel  scope link  src 10.58.227.231
169.254.0.0/17 dev bond0  proto kernel  scope link  src 169.254.0.4
default via 10.58.227.1 dev front_eth1  proto gated

Lorsque je traceroute à une adresse externe, la passerelle utilisée (passerelle par défaut 10.58.227.1) n'est pas affichée en sortie.

# traceroute -n -I 10.63.21.118
traceroute to 10.63.21.118 (10.63.21.118), 30 hops max, 40 byte packets
 1  10.58.112.1  0.507 ms  1.008 ms  1.017 ms
 2  10.63.21.118  0.228 ms  0.233 ms  0.234 ms

Existe-t-il une option permettant d'afficher les mêmes informations que celles fournies par la commande traceroute, y compris la passerelle utilisée pour le routage?


la source

Réponses:

73

Vous pouvez utiliser la ip route get <address>commande pour demander au noyau de signaler l'itinéraire qu'il utiliserait pour envoyer un paquet à l'adresse spécifiée:

$ ip route get 4.2.2.1
4.2.2.1 via 192.168.0.1 dev eth0  src 192.168.0.121 
    cache 
$ 

192.168.0.1est mon itinéraire par défaut. Si je demande une adresse qui ne passerait pas par la route par défaut:

$ ip route get 192.168.0.116
192.168.0.116 dev eth0  src 192.168.0.121 
    cache 
$ 
sarnold
la source
Ça fait beaucoup. :) Cela résout le problème.
Question secondaire aléatoire - Si 192.168.0.1"route par défaut" ou "passerelle" ... à quel nom ferait-on référence 192.168.0.121? Juste "source"?
dtmland
@sarnold, s'il vous plaît confirmer si elle a besoin d'Internet sur ce serveur.
kd12
@ kd12, vous n'avez besoin d'une connexion Internet sur ce serveur que si vous souhaitez router les paquets vers Internet. Vous pouvez configurer des réseaux IP sans être connecté à Internet si vous le souhaitez. les tables de routage ne savent pas et s'en moquent, tout fonctionne de la même manière. :)
sarnold