Could you help me understand the practical use of the "local tables" ( versus the "main routing table"), displayed with command : ip route show table rt_eno2

My understanding of basic routing is that for a given destination the Kernel will find the best interface to use to output the packet based on destination IP address ( whichever the packet source is local or non-local via Ipv4_forward)
whichever it is a connected interface or a static route ( specific or default), this process is made globally to the kernel and not per interface.

( being a CCIE myself , I assume it should work pretty much like a Cisco router , beside vrf)

I don't see any practical case where we would need to use this sub-routing table , versus using the main routing table. The only case that comes to my mind is if we have two Linux interfaces in the same subnet with a different default gateway configured in each local table. You will then like to use one gateway or the other to send your packet to, and will need to force destination to one interface or the other. But I also understand that having two interface in the same subnet leads to confusion inside the Kernel . ( example with Eno1= and eno2= , on which interface should I send back a packet with destination ?)

Anyway, I'm using Linux quite a lot and I only use the main table, I wanted to understand the practical use case of this "per-interface" / local routing tables option in the Linux.

  • What type of tables. (I only got as for as the title and first sentance). Can you fix the title to tell us what the question is about. (A kernel has many tables) Jul 17, 2019 at 0:33

1 Answer 1


The local table contains routes that are destined for the local host. The local table is used for example when the destination is ::1 or The local table also contains entries for the IP addresses of the host, which prevents packets with a destination of our own IP address to go out on the wire. These routes are not displayed by default using the ip route command, but can be seen with ip route show table local. The local routing table is not a "per-interface" routing table.

Multiple routing tables (you can have more than just the main and local tables) in general makes it possible to make routing decisions on more than just the destination address, like the source address, ToS, etc. See man ip-rule or search for "Linux Policy Routing".

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .