BGP L2VPN/EVPN support via VXLAN transport

Configuration

VxLAN

Enable the VxLAN status

				
					cli set vxlan.status=1
				
			

The Virtual Network Identifier (VNI) is the identifier used for this VXLAN connection. You can configure up to 16,777,215 VNIs.

				
					cli set vxlan.0.id=6001
				
			
You can change the port used for VxLAN traffic.The default VxLAN port is 4789, the standard port assigned by IANA.
				
					cli set vxlan.0.dport=4789


				
			

Configure a local interface address. It serves as a source interface for the local VTEP, but needs to be accessible form the core network.

				
					cli set vxlan.0.local=10.10.2.223

				
			

Create the “bridge” from the VxLAN tunnel to the router Ethernet LAN port.

				
					
cli set vxlan.0.brdev=lan0
				
			

BGP

In order to establish eBGP session the default configuration requires the following parameters.

				
					cli set bgp.status=1
cli set bgp.router.id=10.10.2.223
cli set bgp.as=65000
				
			

BGP neighbours, more commonly known as ‘peers’, are other routers that you connect to in order to exchange routing information.

				
					cli set bgp.neighbor.0.addr=10.10.2.2
cli set bgp.neighbor.0.as=65000
cli set bgp.neighbor.0.weight=0
cli set bgp.neighbor.0.multihop=0
				
			
Enable negotiation of the extended-nexthop capability with the neighbor.
				
					cli set bgp.neighbor.0.extended_nexthop=1
				
			

L2VPN-EVPN address family is capable of transporting MAC (Layer-2) reachability information. BGP EVPN provides the learnt information to all the devices within the network through a common control plane.

				
					cli set bgp.neighbor.0.address_family=l2vpn-evpn
				
			

In order to establish eBGP sessions where the remote peer address is via default route, the command zebra.ip.nht.resolve_via_default is required. Without this command, the next hop cannot be resolved.

				
					cli set zebra.ip.nht.resolve_via_default=1
				
			

Debugging

Accessing daemons

From the router shell access  the daemon service

				
					telnet 127.0.0.1 bgpd
				
			

password: bgp

print all available bgp commands

				
					list
				
			

Enable access to the daemon process

				
					echo "password zebra" >> /etc/frr/zebra.conf
/etc/init.d/frr restart
				
			

From the router shell access  the daemon service

				
					telnet 127.0.0.1 zebra
				
			

password: zebra

print all available zebra commands

				
					list
				
			

Debug Commands

Command show bgp l2vpn evpn summary will show us the summary of BGP peers.

				
					show bgp l2vpn evpn summary 
				
			

Example information returned

				
					rf-core-1# sh bgp l2vpn evpn summary 
BGP router identifier 10.10.2.223, local AS number 65000 vrf-id 0
BGP table version 0
RIB entries 13, using 2392 bytes of memory
Peers 6, using 123 KiB of memory
Peer groups 1, using 64 bytes of memory

Neighbor        V         AS MsgRcvd MsgSent   TblVer  InQ OutQ  Up/Down State/PfxRcd
*10.10.2.2     4      65000     100     172        0    0    0 01:29:21            2
				
			

Command show bgp l2vpn evpn route will provide us a list how packets are routed to reach their final destination.

				
					show bgp l2vpn evpn route
				
			

Example information returned

				
					BGP table version is 219, local router ID is 10.10.2.223
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal
Origin codes: i - IGP, e - EGP, ? - incomplete
EVPN type-1 prefix: [1]:[ESI]:[EthTag]:[IPlen]:[VTEP-IP]
EVPN type-2 prefix: [2]:[EthTag]:[MAClen]:[MAC]:[IPlen]:[IP]
EVPN type-3 prefix: [3]:[EthTag]:[IPlen]:[OrigIP]
EVPN type-4 prefix: [4]:[ESI]:[IPlen]:[OrigIP]
EVPN type-5 prefix: [5]:[EthTag]:[IPlen]:[IP]

   Network          Next Hop            Metric LocPrf Weight Path
                    Extended Community
Route Distinguisher: 10.10.2.223:2
*> [2]:[0]:[48]:[00:00:00:08:00:6b]
                    10.10.2.223(MINEX)
                                                       32768 i
                    ET:8 RT:65000:6001
*> [2]:[0]:[48]:[00:60:e9:1a:3d:af]
                    10.10.2.223(MINEX)
                                                       32768 i
                    ET:8 RT:65000:6001
*> [2]:[0]:[48]:[2e:0d:0e:7e:91:3b]
                    10.10.2.223(MINEX)
                                                       32768 i
                    ET:8 RT:65000:6001
*> [2]:[0]:[48]:[3c:18:a0:45:a8:9c]
                    10.10.2.223(MINEX)
                                                       32768 i
                    ET:8 RT:65000:6001
*> [3]:[0]:[32]:[10.10.2.223]
                    10.10.2.223(MINEX)
                                                       32768 i
                    ET:8 RT:65000:6001

Displayed 5 prefixes (5 paths)