BGP Full Table Size

full dinner table painting

A BGP transit provider will often send their customer a 'full table.' A full table is a table of all the routes and prefixes that the transit provider can connect to. This should be a table of all the IP address blocks available on the public Internet.

Different transit provider's 'full table' or Internet global routing table size can vary. This is because some routes will be aggregated. There are ways to shape traffic using BGP, and the most specific route will always beat all other BGP metrics. Because of this, some networks send other networks more specific routes.

For example, network A may have a paid peering session with network B and a free peering sessions with network C. Let us say that network A have a /23 block that they wish to announce to the Internet using BGP. Because traffic traveling between network A and C is free, network A would rather have more traffic go through that connection than their connection to network B.

One way to do this is for network A to send more specific routes to network C. So network A would send a /23 to network B, the paid session. Network A would then send two /24s to network C, the free peering session.

If the above happens, then network B has two prefixes (two /24s) to add to their global routing table, while network B only has one block (the /23) to add to their global routing table. So the size of the Internet global routing tables differs by one.

This is why different transit providers will have slightly different sized global routing tables.

Current Size Of The Global Routing Table

The Internet global routing table is constantly changing. As of March 19th, 2017, an IPv4 full table should be well over 600k routes. Because different providers have slightly different numbers, and because routes get added and removed from the Internet on a regular basis, there is no exact number. But there are some good resources to see an estimate of how many routs are in a full table.

The IPv6 global routing table should contain at least 30k routes.

Here's a few places to check to see how many routes are being announced over the Internet:

Why Full Table

A full table is nice if you have multiple transit providers. It allows you to see exactly what they are seeing and your network can then decide which of your transit providers has a preferred route to every destination. Your traffic will be taking the optimal route to reach it's destination.

If you have a single uplink, then there is no need for a full table. Just get a default route.

A compromise is to get a default route + just the customer routes for each transit provider.