BGP L2VPN/EVPN support via VXLAN transport



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
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=


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

cli set vxlan.0.brdev=lan0


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

					cli set bgp.status=1
cli set
cli set

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=
cli set
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


Accessing daemons

From the router shell access  the daemon service

					telnet bgpd

password: bgp

print all available bgp commands


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 zebra

password: zebra

print all available zebra commands


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, 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
*     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
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:
*> [2]:[0]:[48]:[00:00:00:08:00:6b]
                                                       32768 i
                    ET:8 RT:65000:6001
*> [2]:[0]:[48]:[00:60:e9:1a:3d:af]
                                                       32768 i
                    ET:8 RT:65000:6001
*> [2]:[0]:[48]:[2e:0d:0e:7e:91:3b]
                                                       32768 i
                    ET:8 RT:65000:6001
*> [2]:[0]:[48]:[3c:18:a0:45:a8:9c]
                                                       32768 i
                    ET:8 RT:65000:6001
*> [3]:[0]:[32]:[]
                                                       32768 i
                    ET:8 RT:65000:6001

Displayed 5 prefixes (5 paths)