Listing the routing table takes long time to complete

When I print routes defined on my computer using route, it takes about 5 to 20 seconds to complete. Why does it take so much time?

With VPN enabled:

$ time sudo route
Kernel IP routing table
(...)
real    0m21.423s
user    0m0.000s
sys 0m0.012s

With no VPN, this is about 5 seconds - still, computer can do a lot in this time. I've repeated my measurements few times, getting very similar results each try.

My machine is Ubuntu with 3.0.0 kernel, but as far as I know, route on the other computers works the same way.


The typical reason is that route tries to map the IP addresses in the table into their DNS names - and that can be quite slow because of the vagaries of the DNS system and your network.

You can verify that by passing the -n argument to route, asking it to display only numbers without doing any name resolution. If that is super-fast, you know that it is reverse DNS lookup that delays things.

(The time, in that case, is spent waiting on external systems to respond over the network. The local CPU is pretty much idle.)