What is a Full Table Route

BGP (Border Gateway Protocol) is the protocol used to connect different networks to one another. If Network A is buying IP transit from Network B, then Network B must provide a BGP route to the whole Internet. That is, Network B needs to provide a way for Network A to reach every IP address on the Internet.

For this to happen, the two networks create a BGP connection between one another. Network A, the customer, only sends their own routes to Network B. (A route is just a block of IPs such a 192.168.1.0/24).

Network B has to send the whole Internet to Network A. There are three common ways to do this: a default route, a partial table + default route, or a full table.

A default route just says 'You can reach everything through me'.

A partial route explicitly tells Network A what routes Network B announces. This is usually all the IP blocks that Network B controls plus all the IP blocks of Network B's customers. Along with this is a default route which says 'oh, and you can also reach everything else through my network'.

A full table is a full map of the Internet. Every route that Network B is able to access is announced to Network A. A full table shows how many networks must be traversed to reach a certain IP address. Sometimes networks announce a full table along with a default route.

Why Ask For A Full Table?

A full table is advantages when you have multiple upstreams. If you have a single upstream, a default route will work fine.

But when you have more than one upstream network providing you access to the Internet, a full table will allow your router(s) to choose the optimal path to all points on the Internet.

Say you buy IP transit from Cogent and Level 3. Also, let's say your network users only try to reach Google and Amazon. So you have two destinations (Google and Amazon) and you have two ways of reaching them (Cogent and Level 3).

One way to setup your network would be to simply balance traffic between Cogent and Level 3. Half the traffic goes to Cogent, half to Level 3. But what if Cogent has direct peering with Google and Level 3 does not, while Level 3 has direct peering with Amazon and Cogent does not. In this scenario your users would get the best performance if all Amazon traffic went to Level 3 and all traffic bound for Google went through Cogent. This cannot be done with two default routes.

A full table would allow your router to see that the shortest path to Google is through Cogent, and the shortest path to Amazon is through Level 3. The router could optimize outbound traffic and your users get a faster Internet experience.

A full table also lets you see any problem routes that your upstream may be having and will show you how many networks your data has to go through to reach its destination.

Full tables allow you to optimize your outbound traffic.

The biggest reason to not use a full table is the memory requirements. With a full table your router has to process all the IP blocks being announced on the Internet. This is a lot of blocks and if you run Ipv6 this number is constantly growing and more networks adapt Ipv6.

Older or less powerful routers are simply not able to efficiently use a full table. Your router needs enough memory and CPU power to accept a full table. Otherwise, either a partial table + default route or a default route are going to be your only options.