BGP

BGP

Warning

Work in progress.

eBGP

eBGP is configured automatically, if there is an edge in the physical graph between two nodes that belong to different Autonomous Systems:

if asn(s) != asn(t) for s,t in edges

iBGP

  • Peer column refers to connections at the same level (eg 2->2)
  • Parent column refers to connections to level above (eg 1->2)
  • There are no child connections (eg 3->2)
  • as_cluster is the entire AS

l2_cluster can be manually specified. If not specified, it defaults to being a PoP. If no PoPs specified, it defaults to being the AS.

l3_cluster defaults to asn if not set: we connect the l2 rr to all l3 rrs in the same AS.

Three types of ibgp connection:

  • up to a server
  • down to a client
  • over to a peer

Note

If the network only has level 1 route-reflectors, then the connections are labelled as peer

The below tables show the matching attributes to use.

1-level:

Level Peer Parent
1 asn None

2-level:

Level Peer Parent
1 None l2_cluster
2 asn None

3-level:

Level Peer Parent
1 None l2_cluster
2 l2_cluster l3_cluster
3 asn None
AutoNetkit.algorithms.bgp.ebgp_routers(network)[source]

List of all routers with an eBGP link

>>> network = ank.example_multi_as()
>>> sorted(ebgp_routers(network))
[1b.AS1, 1c.AS1, 2a.AS2, 2d.AS2, 3a.AS3]
AutoNetkit.algorithms.bgp.get_ebgp_graph(network)[source]

Returns graph of eBGP routers and links between them.

AutoNetkit.algorithms.bgp.ebgp_edges(network)[source]

Returns eBGP edges once configured from initialise_ebgp

AutoNetkit.algorithms.bgp.ibgp_routers(network)[source]

List of all routers with an iBGP link

AutoNetkit.algorithms.bgp.get_ibgp_graph(network)[source]

Returns iBGP graph (full mesh currently) for an AS.