EVPN Asymmetric Routing Example
Note
EVPN feature is only available on X86 platforms.
PICOS version 4.0 and higher offer both Symmetric and Asymmetric routing for BGP EVPN hosts. In this document we will examine the case of Asymmetric EVPN routing with two hosts in different VNIs on two devices, R1 and R2.
Figure 1 depicts how packet exchange between two hosts occurs in asymmetric BGP EVPN routing model. In the asymmetric routing model, the two end hosts, Host1 and Host2 are in two different VLANs and different VNIs. Host1 intends to communicate with Host2, sends a packet with destination MAC address of of R1 because R1 is configured as the gateway on Host1. On R1, the gateway is configured on an interface that belongs to VNI 30. The packet from Host1 on ingress at R1 is first routed to VNI 30 within R1 and then bridged to R2 over the VXLAN tunnel VNI 30. On receiving the packet, R2 will strip off the VXLAN header and forward the packet to Host2.
Figure 1. EVPN Asymmetric Routing Model
The one limitation in this model is that both the devices must have the two VXLAN VNIs configured regardless if there are any hosts connected to it. In Figure 1, Host1 belongs to VNI 10 but both VNI 10 and VNI 30 are configured on R1. Similarly, Host2 belongs to VNI 30 but both VNI 10 and VNI 30 are configured on R2 for asymmetric routing to work properly.
Router Configuration
R1 Configuration
Step 1: Configure VLAN ID, L3 VLAN interfaces loopback interfaces and IP addressing.
admin@R1# set interface gigabit-ethernet te-1/1/1 family ethernet-switching native-vlan-id 4094 admin@R1# set interface gigabit-ethernet te-1/1/2 family ethernet-switching native-vlan-id 10 admin@R1# set interface gigabit-ethernet te-1/1/10 family ethernet-switching native-vlan-id 10 admin@R1# set l3-interface loopback lo address 1.1.1.1 prefix-length 32 admin@R1# set l3-interface loopback vrf1 address 201.201.201.201 prefix-length 32 admin@R1# set l3-interface vlan-interface vlan4094 address 40.94.0.2 prefix-length 24 admin@R1# set l3-interface vlan-interface vlan10 vrf "vrf1" admin@R1# set l3-interface vlan-interface vlan10 address 10.1.1.201 prefix-length 24 admin@R1# set l3-interface vlan-interface vlan1111 vrf "vrf1" admin@R1# set l3-interface vlan-interface vlan1111 router-mac 00:16:16:16:16:16 admin@R1# set vlans vlan-id 10 l3-interface "vlan10" admin@R1# set vlans vlan-id 30 l3-interface "vlan30" admin@R1# set vlans vlan-id 1111 l3-interface "vlan1111" admin@R1# set vlans vlan-id 4094 l3-interface "vlan4094" admin@R1# set vxlans source-interface lo address 1.1.1.1 admin@R1# set vxlans vni 100 vlan 1111 admin@R1# set vxlans vni 10 vlan 10 admin@R1# set vxlans vni 30 vlan 30 admin@R1# set vxlans vrf vrf1 l3-vni 100 prefix-routes-only
Step 2: Configure VXLAN VNI and map VNI IDs to VLAN IDs.
admin@R1# set vxlans source-interface lo address 1.1.1.1 admin@R1# set vxlans vni 100 vlan 1111 admin@R1# set vxlans vni 10 vlan 10 admin@R1# set vxlans vni 30 vlan 30
Step 3: Enable IP routing and configure VRF and hostname.
admin@R1# set ip routing enable true admin@R1# set ip vrf vrf1
Step 4: Configure BGP and OSPF related configuration
admin@R1# set protocols bgp local-as 65001 admin@R1# set protocols bgp router-id 1.1.1.1 admin@R1# set protocols bgp neighbor 2.2.2.2 remote-as "internal" admin@R1# set protocols bgp neighbor 2.2.2.2 update-source "1.1.1.1" admin@R1# set protocols bgp neighbor 2.2.2.2 evpn activate true admin@R1# set protocols bgp ipv4-unicast admin@R1# set protocols bgp evpn advertise-all-vni admin@R1# set protocols bgp evpn advertise ipv4-unicast admin@R1# set protocols bgp vrf vrf1 local-as 65001 admin@R1# set protocols bgp vrf vrf1 router-id 1.1.1.1 admin@R1# set protocols bgp vrf vrf1 evpn advertise ipv4-unicast admin@R1# set protocols ospf router-id 1.1.1.1 admin@R1# set protocols ospf network 40.94.0.0/24 area 0.0.0.0 admin@R1# set protocols ospf network 1.1.1.1/32 area 0.0.0.0
R2 Configuration
Step 1: Configure VLAN ID, L3 VLAN interfaces loopback interfaces and IP addresses. Interface ge-1/1/10 connects to PC2.
root@R2# set evpn vrf vrf1 vni 100 prefix-routes-only root@R2# set interface gigabit-ethernet ge-1/1/1 family ethernet-switching native-vlan-id 4094 root@R2# set interface gigabit-ethernet ge-1/1/10 family ethernet-switching native-vlan-id 30 root@R2# set l3-interface loopback lo address 2.2.2.2 prefix-length 32 root@R2# set l3-interface loopback vrf1 address 134.134.134.134 prefix-length 32 root@R2# set l3-interface vlan-interface vlan1111 vrf "vrf1" root@R2# set l3-interface vlan-interface vlan30 vrf "vrf1" root@R2# set l3-interface vlan-interface vlan30 address 30.1.1.134 prefix-length 24 root@R2# set l3-interface vlan-interface vlan4094 address 40.94.0.1 prefix-length 24 root@R2# set vlans vlan-id 10 l3-interface "vlan10" root@R2# set vlans vlan-id 30 l3-interface "vlan30"
Step 2: Configure VXLAN VNI and map VNI IDs to VLAN IDs.
root@R2# set vlans vlan-id 1111 l3-interface "vlan1111" root@R2# set vlans vlan-id 4094 l3-interface "vlan4094" root@R2# set vxlans source-interface lo address 2.2.2.2 root@R2# set vxlans vni 100 vlan 1111 root@R2# set vxlans vni 10 vlan 10 root@R2# set vxlans vni 30 vlan 30
Step 3: Enable IP routing and configure VRF and hostname.
root@R2# set system hostname "R2" root@R2# set ip routing enable true root@R2# set ip vrf vrf1
Step 4: Configure BGP and OSPF related configuration
root@R2# set protocols bgp local-as 65001 root@R2# set protocols bgp router-id 2.2.2.2 root@R2# set protocols bgp neighbor 1.1.1.1 remote-as "internal" root@R2# set protocols bgp neighbor 1.1.1.1 update-source "2.2.2.2" root@R2# set protocols bgp neighbor 1.1.1.1 evpn activate true root@R2# set protocols bgp evpn advertise-all-vni root@R2# set protocols bgp evpn advertise ipv4-unicast root@R2# set protocols bgp vrf vrf1 local-as 65001 root@R2# set protocols bgp vrf vrf1 router-id 2.2.2.2 root@R2# set protocols bgp vrf vrf1 evpn advertise ipv4-unicast root@R2# set protocols ospf router-id 2.2.2.2 root@R2# set protocols ospf network 40.94.0.0/24 area 0.0.0.0 root@R2# set protocols ospf network 2.2.2.2/32 area 0.0.0.0
Verify Configuration
On R1 run the command run show route vrf vrf1 to display the routes. Notice below that there is a route to subnet 30.1.1.0/24.
admin@R1# run show route vrf vrf1 show ip route vrf vrf1 ======================= Codes: K - kernel route, C - connected, S - static, R - RIP, O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP, T - Table, v - VNC, V - VNC-Direct, A - Babel, D - SHARP, F - PBR, f - OpenFabric, > - selected route, * - FIB route, q - queued route, r - rejected route VRF vrf1: K>* 0.0.0.0/0 [255/8192] unreachable (ICMP unreachable), 04:07:17 C>* 10.1.1.0/24 is directly connected, vlan10, 04:06:28 B>* 11.11.11.147/32 [200/0] via 2.2.2.2, vlan1111 onlink, weight 1, 04:05:30 C>* 30.1.1.0/24 is directly connected, vlan30, 04:06:28 C>* 201.201.201.201/32 is directly connected, vrf1, 04:07:17 show ipv6 route vrf vrf1 ========================= Codes: K - kernel route, C - connected, S - static, R - RIPng, O - OSPFv3, I - IS-IS, B - BGP, N - NHRP, T - Table, v - VNC, V - VNC-Direct, A - Babel, D - SHARP, F - PBR, f - OpenFabric, > - selected route, * - FIB route, q - queued route, r - rejected route VRF vrf1: C * fe80::/64 is directly connected, vlan1111, 04:06:27 C * fe80::/64 is directly connected, vlan30, 04:06:28 C>* fe80::/64 is directly connected, vlan10, 04:06:28
admin@R2# run show route vrf vrf1 show ip route vrf vrf1 ======================= Codes: K - kernel route, C - connected, S - static, R - RIP, O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP, T - Table, v - VNC, V - VNC-Direct, A - Babel, D - SHARP, F - PBR, f - OpenFabric, > - selected route, * - FIB route, q - queued route, r - rejected route VRF vrf1: K>* 0.0.0.0/0 [255/8192] unreachable (ICMP unreachable), 00:12:12 C>* 10.1.1.0/24 is directly connected, vlan10, 00:11:23 C>* 30.1.1.0/24 is directly connected, vlan30, 00:11:23 show ipv6 route vrf vrf1 ========================= Codes: K - kernel route, C - connected, S - static, R - RIPng, O - OSPFv3, I - IS-IS, B - BGP, N - NHRP, T - Table, v - VNC, V - VNC-Direct, A - Babel, D - SHARP, F - PBR, f - OpenFabric, > - selected route, * - FIB route, q - queued route, r - rejected route VRF vrf1: C * fe80::/64 is directly connected, vlan1111, 00:11:22 C * fe80::/64 is directly connected, vlan30, 00:11:22 C * fe80::/64 is directly connected, vlan10, 00:11:22 C>* fe80::/64 is directly connected, vlan40, 00:11:22
Run the command run show vxlan evpn route on either R1 or R2 to check the VXLAN EVPN routes.
admin@R1# run show vxlan arp IP-ADDRESS MAC-ADDRESS VNI REMOTE-VTEP Interface Status Age --------------- ----------------- -------- --------------- ---------- ------- ---- 10.1.1.2 18:5a:58:3c:42:a1 10 te-1/1/10 Dynamic 249 10.1.1.1 18:5a:58:03:35:81 10 2.2.2.2 Static 30.1.1.1 18:5a:58:03:35:81 30 2.2.2.2 Static 30.1.1.2 1c:72:1d:c9:1b:e1 30 2.2.2.2 Static
To check the VXLAN tunnels on either devices, run the command run show vxlan tunnel.
admin@R2# run show vxlan tunnel Total number of tunnels: 2 VNI 10, Encap:service-vlan-delete, Decap:service-vlan-add-replace src addr:2.2.2.2, dst addr:1.1.1.1, state:UP traffic type:all Vtep type:EVPN nexthops:40.94.0.2 output ports:ge-1/1/1 VNI 30, Encap:service-vlan-delete, Decap:service-vlan-add-replace src addr:2.2.2.2, dst addr:1.1.1.1, state:UP traffic type:all Vtep type:EVPN nexthops:40.94.0.2 output ports:ge-1/1/1
Copyright © 2025 Pica8 Inc. All Rights Reserved.