Skip to content

Large Configuration File

Stefan Schlesinger edited this page Oct 17, 2016 · 7 revisions

An ExaBGP configuration file with the full internet routing table can have up to nearly 3 million lines and weights over 50 MB.

Parsing such a file takes ages, therefore we recommend an alternate approach: there is an undocumented API command in the code "announce attribute", by undocumented we mean not officially supported yet, as the code is a bad hack in need of good cleanup.

The syntax would be something like

 announce attributes next-hop 192.168.0.1 med 100 nlri 10.0.0.0/16 192.0.2.0/24

It prevents ExaBGP from parsing the attribute multiple times and provides an enormous gain on the "normal" announce syntax for a full internet routing table.

To best use it you should make sure every peer has :

auto-flush false;
group-updates true;

It disables automatic update generation: updates will only be sent to the routers when you explicitly request it and make sure NLRI are grouped in the same update when the packet is generated.

Then once you have announced enough routes you can force route propagation when useful.

flush route

This should give you much better performance than a single large configuration file, but should you need to have a single file we advise you to use the latest version of ExaBGP and the single line syntax for the routes.