how to find the gateway used for routing
This is in unix environment. I have multiple routes in a host (visible with 'ip route show' command). If I am pinging an address, how can I find out which gateway was used to route the tracffic?
I tried using traceroute command, but it does not show the immediate gateway.
From below output, 10.58.227.1 is my default gateway.
# 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
When I do traceroute to an external address, the gateway used (default gateway 10.58.227.1) is not shown in output.
# 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
Is there any option to view the same information as given by traceroute command, including the gateway used for routing?
You can use the ip route get <address>
command to ask the kernel to report the route it would use to send a packet to the specified address:
$ 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.1
is my default route. If I ask for an address that would not go over the default route:
$ ip route get 192.168.0.116
192.168.0.116 dev eth0 src 192.168.0.121
cache
$