# 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 ```