ExaBGP and BIRD clue in the house?

Thomas Mangin thomas.mangin at exa-networks.co.uk
Thu Jul 2 20:30:51 UTC 2015


Hello Randy,

The current configuration parser is currently progressive: what exists 
when the neighbor is created (or in the neighbor group) is what will be 
associated (which is not really ideal) hence why I have passed the last 
three weeks totally rewriting it in view of version 4.0. This is still 
serious WIP tho.

ExaBGP is indeed “dumb” (outch, it hurts :p) when it comes to route 
filtering, advanced features are “left as an exercise for the end 
user” using the API. I did not see an immediate need to re-invent BIRD 
which covers this part of the ecosystem more than well.

You can find some good examples on how ExaBGP can be used on this site:
https://thepacketgeek.com/tag/exabgp/

Many people have released useful tools:
https://github.com/YoshiyukiYamauchi/mrtparse
https://github.com/dpiekacz/gixlg
https://github.com/abh/bgpapi
https://github.com/search?utf8=✓&q=exabgp returns quite a few more.

Obviously if you have any issues/questions, I am more than happy to help 
( via the mailing list, G+, Gitter, IRC #exabgp on freenode )

Once the connected program receive an update, it can decide to 
re-distribute it.

Have “fun”,

Thomas

http://exa.net.uk/about/contact-us
On 2 Jul 2015, at 18:14, Randy wrote:

> I think you overestimated exabgp's dead simplicity.
>
> After some more testing, I found moving the route higher in the config 
> file (before the neighbor definition rather than inside it), it 
> propagates.   So order matters more than anything.   You have to 
> define routes either BEFORE or WITHIN neighbors in each group scope.
>
> I also do not believe exa supports any sort of routing policy.   It's 
> a dumb tool for manually injecting routes and piping updates to 
> external apps.
>
> ~Randy
>
> On 07/02/2015 9:44 am, Owen DeLong wrote:
>> Exactly… It’s not an issue, it’s expected behavior.
>>
>> If you move the static up within the neighbor definition, it becomes
>> an Anchor Route and Exa knows you want it announced.
>>
>> If you leave it in the static routes section, then you either need a
>> redistribution policy from static to bgp (not recommended) or you 
>> need
>> some other sort of policy that tells exa that you want to announce 
>> the
>> route.
>>
>> Owen
>>
>>> On Jul 2, 2015, at 09:40 , Randy <amps at djlab.com> wrote:
>>>
>>> FYI, if the static is moved up within the neighbor definition, it 
>>> works.   So this is an Exa related issue/feature and not a problem 
>>> with BIRD.
>>>
>>> I'll move the noise to the Exa list if needed.
>>>
>>> ~Randy
>>>
>>> On 07/02/2015 9:13 am, Randy wrote:
>>>> Really, it's got to be something dead stupid.   Hoping to borrow 5
>>>> minutes of someone's time.   Replies on or off list are fine.
>>>> I've reduced it to a simple config:
>>>> BIRD:
>>>> protocol bgp {
>>>> description "ExaBGP-local";
>>>> local as 12345;
>>>> allow local as 1;
>>>> neighbor 10.0.0.2 as 12345;
>>>> next hop keep;
>>>> start delay time 5;
>>>> import all;
>>>> export all;
>>>> }
>>>> EXABGP:
>>>> group gixlg {
>>>> hold-time 180;
>>>> local-as 12345;
>>>> router-id 10.0.0.2;
>>>> family {
>>>>   ipv4 unicast;
>>>> }
>>>> neighbor 10.0.0.1 {
>>>>   router-id 10.0.0.2;
>>>>   local-address 10.0.0.2;
>>>>   peer-as 12345;
>>>>   description "Bird-local";
>>>>   group-updates;
>>>> }
>>>> static {
>>>>   route 1.2.3.4/32 next-hop 4.3.2.1;
>>>> }
>>>> }
>>>> Everything comes up.   But bird has no routes.
>>>> bird> sh protocols
>>>> name     proto    table    state  since       info
>>>> bgp1     BGP      master   up     12:06:00    Established
>>>> bird> show route all
>>>> bird>



More information about the NANOG mailing list