[ixpmanager] question re: compare-route-server-prefixes.pl

Barry O'Donovan barry.odonovan at inex.ie
Tue Jul 18 10:03:42 IST 2017



Andreas Polyrakis wrote:
>>> NB: presence in the master table is not an indication of (1) for the
>>> peer under consideration. Larger members can and often do transit for
>>> smaller members.

Sorry, I take that back. Proper interrogation of the master table will
show all routes for a prefix, not just the 'winning' one.

> Can you elaborate a little bit on this? I cannot understand how
> something can be present in the master table but not "advertised and
> accepted".

Peer A peers directly with the route server.
Peer B peers directly with the route server.

Peer A and peer B both provide transit for an upstream network C who
does not peer at the exchange.

C prepends its adverts to A.

The route server thus choses C's routes via B as the best path.

> At some point we modified our (test) bird configuration to accept more
> specific prefixes. I.e, instead of 10.0.0/8, the configuration file
> contained 10.0.0.0/8+. After this change, the (unmodified) script would
> still categorize 10.0.0.8/24 as "advertised but not accepted"; although
> it was actually accepted.

Yip, noted in:

https://github.com/inex/IXP-Manager/issues/235

which has now been incorporated into:

https://github.com/inex/IXP-Manager/issues/329

> At that point we realized parsing the config files can sometimes be
> tricky and give results that differ from reality (eg the example already
> given, misconfiguration in filters (eg not correctly applied), route
> server bugs etc). It might make more sense to calculate this bases on
> queries on the route daemon.

Based on the above, it sounds like it may work but a few caveats:

- I haven't done any testing

- it will require a lot more parsing and more complex that what's
current there. E.g.: one prefix from two sessions:

bird> show route table master 178.167.128.0/17
178.167.128.0/17   via 185.6.36.58 on ens33 [pb_0100_as34218 2017-06-13]
* (100) [AS34218i]
                   via 185.6.36.17 on ens33 [pb_0034_as2110 2017-06-13]
(100) [AS34218i]

- the medium term plan is still to remove the perl script in favour of
Birdseye.


>>> Now that we have Birdseye, we can make this tool realtime and against
>>> any of the targeted six route servers.
>>>
>>> The main issue we need to bear in mind (note to self) is what happens if
>>> the configuration is out of sync with the database as a tool using
>>> Birdseye will not have access to the config. However, it will know the
>>> last time a route server was updated.

> Ok, that makes sense. However it is not easy with birdseye to query for
> filtered prefixes. Do you plan to add such functionality?

I suspect we just need to query the protocol table and the master table
as you've suggested above.

If anything needs to be added, we'll add it :-D

 - Barry




More information about the ixpmanager mailing list