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?

1 Answer

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
$ 
4

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like