EBGP Data Center Fabric

We want to create EBGP-only leaf-and-spine. The fabric will have two leaves (l1, l2) and two spines (s1, s2).

The only routing protocol running in the network is BGP.

module: [ bgp ]

The default device type is Arista EOS:

defaults:
  device: eos

The network topology has four nodes. Each node has a different AS number:

nodes:
  s1:
    bgp:
      as: 65000
  s2:
    bgp:
      as: 65001
  l1:
    bgp:
      as: 65100
  l2:
    bgp:
      as: 65101

The inter-switch links form a leaf-and-spine fabric:

links:
- s1-l1
- s1-l2
- s2-l1
- s2-l2

By default, each switch advertises its loopback interface into BGP (there are no stub links in the network topology).

Resulting Data Structures

Data structures generated by the BGP data transformation module include the list of BGP neighbors. Each node has two EBGP neighbors – here is the data structure describing S2:

- bgp:
    as: 65001
    neighbors:
    - as: 65100
      ipv4: 10.1.0.9
      name: l1
      type: ebgp
    - as: 65101
      ipv4: 10.1.0.13
      name: l2
      type: ebgp
    next_hop_self: true

Resulting Device Configurations

The above topology generates the following BGP-related device configuration for S1 (Arista EOS):

router bgp 65000
  neighbor 10.1.0.1 remote-as 65100
  neighbor 10.1.0.1 description l1
!
  neighbor 10.1.0.5 remote-as 65101
  neighbor 10.1.0.5 description l2
!
 address-family ipv4
!
  network 10.0.0.3/32
!
!
  neighbor 10.1.0.1 activate
  neighbor 10.1.0.5 activate

This is the BGP configuration for an Arista EOS leaf switch:

router bgp 65000
  neighbor 10.0.0.3 remote-as 65000
  neighbor 10.0.0.3 description s1
  neighbor 10.0.0.3 update-source Loopback0
  neighbor 10.0.0.3 next-hop-self
!
  neighbor 10.0.0.4 remote-as 65000
  neighbor 10.0.0.4 description s2
  neighbor 10.0.0.4 update-source Loopback0
  neighbor 10.0.0.4 next-hop-self
!
 address-family ipv4
!
  network 10.0.0.2/32
!
!
  neighbor 10.0.0.3 activate
  neighbor 10.0.0.4 activate

Complete network topology

module: [ bgp ]

defaults:
  device: eos

nodes:
  s1:
    bgp:
      as: 65000
  s2:
    bgp:
      as: 65001
  l1:
    bgp:
      as: 65100
  l2:
    bgp:
      as: 65101

links:
- s1-l1
- s1-l2
- s2-l1
- s2-l2