EVPN配置

1.EVPN VXLAN典型配置举例
 1.1 需求:
 Switch A、Switch B 为与服务器连接的 VTEP 设备;Switch C 为与广域网连接的集中式 EVPN 网关
 设备;Switch D 为 RR,负责在交换机之间反射 BGP 路由。
 虚拟机VM 1和VM 3属于VXLAN 10;VM 2和VM 4属于VXLAN 20。相同VXLAN之间可以二 层互通,不同 VXLAN 之间、VXLAN 与广域网之间可以通过集中式 EVPN 网关互通。
 1.2 拓扑图:

 1.3 配置步骤:
 1.配置 IP 地址和单播路由协议
 #根据拓扑图配置地址,每个交换机使用ospf协议,确保路由可达

2.配置【switch A】
 #开启L2VPN能力
 [SwitchA] l2vpn enable
 #关闭远端MAC地址和远端arp自动学习功能
 [SwitchA] vxlan tunnel mac-learning disable
 # 在 VSI 实例 vpna 下创建 EVPN 实例,并配置自动生成 EVPN 实例的 RD 和 RT。
 [SwitchA] vsi vpna
 [SwitchA-vsi-vpna] arp suppression enable
 [SwitchA-vsi-vpna] evpn encapsulation vxlan
 [SwitchA-vsi-vpna-evpn-vxlan] route-distinguisher auto
 [SwitchA-vsi-vpna-evpn-vxlan] vpn-target auto
 [SwitchA-vsi-vpna-evpn-vxlan] quit
 # 创建 VXLAN 10。
 [SwitchA-vsi-vpna] vxlan 10
 [SwitchA-vsi-vpna-vxlan-10] quit
 [SwitchA-vsi-vpna] quit
 # 在 VSI 实例 vpnb 下创建 EVPN 实例,并配置自动生成 EVPN 实例的 RD 和 RT。
 [SwitchA] vsi vpnb
 [SwitchA-vsi-vpnb] arp suppression enable
 [SwitchA-vsi-vpnb] evpn encapsulation vxlan
 [SwitchA-vsi-vpnb-evpn-vxlan] route-distinguisher auto
 [SwitchA-vsi-vpnb-evpn-vxlan] vpn-target auto
 [SwitchA-vsi-vpnb-evpn-vxlan] quit
 # 创建 VXLAN 20。
 [SwitchA-vsi-vpnb] vxlan 20
 [SwitchA-vsi-vpnb-vxlan-20] quit
 [SwitchA-vsi-vpnb] quit
 # 配置 BGP 发布 EVPN 路由。
 [SwitchA] bgp 200
 [SwitchA-bgp-default] peer 4.4.4.4 as-number 200
 [SwitchA-bgp-default] peer 4.4.4.4 connect-interface loopback 0
 [SwitchA-bgp-default] address-family l2vpn evpn
 [SwitchA-bgp-default-evpn] peer 4.4.4.4 enable
 [SwitchA-bgp-default-evpn] quit
 [SwitchA-bgp-default] quit
 # 在接入服务器的接口 Ten-GigabitEthernet1/0/1 上创建以太网服务实例 1000,该实例用来匹配
 VLAN 2 的数据帧。
 [SwitchA] interface ten-gigabitethernet 1/0/1
 [SwitchA-Ten-GigabitEthernet1/0/1] port link-type trunk
 [SwitchA-Ten-GigabitEthernet1/0/1] port trunk permit vlan 2 3
 [SwitchA-Ten-GigabitEthernet1/0/1] service-instance 1000
 [SwitchA-Ten-GigabitEthernet1/0/1-srv1000] encapsulation s-vid 2
 # 配置以太网服务实例 1000 与 VSI 实例 vpna 关联。
 [SwitchA-Ten-GigabitEthernet1/0/1-srv1000] xconnect vsi vpna
 [SwitchA-Ten-GigabitEthernet1/0/1-srv1000] quit
 # 在接口 Ten-GigabitEthernet1/0/1 上创建以太网服务实例 2000,该实例用来匹配 VLAN 3 的数据
 帧。
 [SwitchA-Ten-GigabitEthernet1/0/1] service-instance 2000
 [SwitchA-Ten-GigabitEthernet1/0/1-srv2000] encapsulation s-vid 3
 # 配置以太网服务实例 2000 与 VSI 实例 vpnb 关联。
 [SwitchA-Ten-GigabitEthernet1/0/1-srv2000] xconnect vsi vpnb
 [SwitchA-Ten-GigabitEthernet1/0/1-srv2000] quit
 [SwitchA-Ten-GigabitEthernet1/0/1] quit

3.配置【Switch B】
 # 开启 L2VPN 能力。
 [SwitchB] l2vpn enable
 # 关闭远端 MAC 地址自动学习功能。
 [SwitchB] vxlan tunnel mac-learning disable
 # 在 VSI 实例 vpna 下创建 EVPN 实例,并配置自动生成 EVPN 实例的 RD 和 RT。
 [SwitchB] vsi vpna
 [SwitchB-vsi-vpna] arp suppression enable
 [SwitchB-vsi-vpna] evpn encapsulation vxlan
 [SwitchB-vsi-vpna-evpn-vxlan] route-distinguisher auto
 [SwitchB-vsi-vpna-evpn-vxlan] vpn-target auto
 [SwitchB-vsi-vpna-evpn-vxlan] quit
 # 创建 VXLAN 10。
 [SwitchB-vsi-vpna] vxlan 10
 [SwitchB-vsi-vpna-vxlan-10] quit
 [SwitchB-vsi-vpna] quit
 # 在 VSI 实例 vpnb 下创建 EVPN 实例,并配置自动生成 EVPN 实例的 RD 和 RT。
 [SwitchB] vsi vpnb
 [SwitchB-vsi-vpnb] arp suppression enable
 [SwitchB-vsi-vpnb] evpn encapsulation vxlan
 [SwitchB-vsi-vpnb-evpn-vxlan] route-distinguisher auto
 [SwitchB-vsi-vpnb-evpn-vxlan] vpn-target auto
 [SwitchB-vsi-vpnb-evpn-vxlan] quit
 # 创建 VXLAN 20。
 [SwitchB-vsi-vpnb] vxlan 20
 [SwitchB-vsi-vpnb-vxlan-20] quit
 [SwitchB-vsi-vpnb] quit
 # 配置 BGP 发布 EVPN 路由。
 [SwitchB] bgp 200
 [SwitchB-bgp-default] peer 4.4.4.4 as-number 200
 [SwitchB-bgp-default] peer 4.4.4.4 connect-interface loopback 0
 [SwitchB-bgp-default] address-family l2vpn evpn
 [SwitchB-bgp-default-evpn] peer 4.4.4.4 enable
 [SwitchB-bgp-default-evpn] quit
 [SwitchB-bgp-default] quit
 # 在接入服务器的接口 Ten-GigabitEthernet1/0/1 上创建以太网服务实例 1000,该实例用来匹配
 VLAN 2 的数据帧。
 [SwitchB] interface ten-gigabitethernet 1/0/1
 [SwitchB-Ten-GigabitEthernet1/0/1] port link-type trunk
 [SwitchB-Ten-GigabitEthernet1/0/1] port trunk permit vlan 2
 [SwitchB-Ten-GigabitEthernet1/0/1] service-instance 1000
 [SwitchB-Ten-GigabitEthernet1/0/1-srv1000] encapsulation s-vid 2
 # 配置以太网服务实例 1000 与 VSI 实例 vpna 关联。
 [SwitchB-Ten-GigabitEthernet1/0/1-srv1000] xconnect vsi vpna
 [SwitchB-Ten-GigabitEthernet1/0/1-srv1000] quit
 [SwitchB-Ten-GigabitEthernet1/0/1] quit
 # 在接口 Ten-GigabitEthernet1/0/2 上创建以太网服务实例 2000,该实例用来匹配 VLAN 3 的数据
 帧。
 [SwitchB] interface ten-gigabitethernet 1/0/2
 [SwitchB-Ten-GigabitEthernet1/0/2] port link-type trunk
 [SwitchB-Ten-GigabitEthernet1/0/2] port trunk permit vlan 3
 [SwitchB-Ten-GigabitEthernet1/0/2] service-instance 2000
 [SwitchB-Ten-GigabitEthernet1/0/2-srv2000] encapsulation s-vid 3
 # 配置以太网服务实例 2000 与 VSI 实例 vpnb 关联。
 [SwitchB-Ten-GigabitEthernet1/0/2-srv2000] xconnect vsi vpnb
 [SwitchB-Ten-GigabitEthernet1/0/2-srv2000] quit
 [SwitchB-Ten-GigabitEthernet1/0/2] quit

4.配置【Switch C 】
 # 开启 L2VPN 能力。
 [SwitchC] l2vpn enable
 # 关闭远端 MAC 地址自动学习功能。
 [SwitchC] vxlan tunnel mac-learning disable
 # 在 VSI 实例 vpna 下创建 EVPN 实例,并配置自动生成 EVPN 实例的 RD 和 RT。
 [SwitchC] vsi vpna
 [SwitchC-vsi-vpna] evpn encapsulation vxlan
 [SwitchC-vsi-vpna-evpn-vxlan] route-distinguisher auto
 [SwitchC-vsi-vpna-evpn-vxlan] vpn-target auto
 [SwitchC-vsi-vpna-evpn-vxlan] quit
 # 创建 VXLAN 10。
 [SwitchC-vsi-vpna] vxlan 10
 [SwitchC-vsi-vpna-vxlan-10] quit
 [SwitchC-vsi-vpna] quit
 # 在 VSI 实例 vpnb 下创建 EVPN 实例,并配置自动生成 EVPN 实例的 RD 和 RT。
 [SwitchC] vsi vpnb
 [SwitchC-vsi-vpnb] evpn encapsulation vxlan
 [SwitchC-vsi-vpnb-evpn-vxlan] route-distinguisher auto
 [SwitchC-vsi-vpnb-evpn-vxlan] vpn-target auto
 [SwitchC-vsi-vpnb-evpn-vxlan] quit
 # 创建 VXLAN 20。
 [SwitchC-vsi-vpnb] vxlan 20
 [SwitchC-vsi-vpnb-vxlan-20] quit
 [SwitchC-vsi-vpnb] quit
 # 配置 BGP 发布 EVPN 路由。
 [SwitchC] bgp 200
 [SwitchC-bgp-default] peer 4.4.4.4 as-number 200
 [SwitchC-bgp-default] peer 4.4.4.4 connect-interface loopback 0
 [SwitchC-bgp-default] address-family l2vpn evpn
 [SwitchC-bgp-default-evpn] peer 4.4.4.4 enable
 [SwitchC-bgp-default-evpn] quit
 [SwitchC-bgp-default] quit
 # 创建 VSI 虚接口 VSI-interface1,并为其配置 IP 地址,该 IP 地址作为 VXLAN 10 内虚拟机的网
 关地址。
 [SwitchC] interface vsi-interface 1
 [SwitchC-Vsi-interface1] ip address 10.1.1.1 255.255.255.0
 [SwitchC-Vsi-interface1] quit
 # 配置 VXLAN 10 所在的 VSI 实例和接口 VSI-interface1 关联。
 [SwitchC] vsi vpna
 [SwitchC-vsi-vpna] gateway vsi-interface 1
 [SwitchC-vsi-vpna] quit
 # 创建 VSI 虚接口 VSI-interface2,并为其配置 IP 地址,该 IP 地址作为 VXLAN 20 内虚拟机的网
 关地址。
 [SwitchC] interface vsi-interface 2
 [SwitchC-Vsi-interface2] ip address 10.1.2.1 255.255.255.0
 [SwitchC-Vsi-interface2] quit
 # 配置 VXLAN 20 所在的 VSI 实例和接口 VSI-interface1 关联。
 [SwitchC] vsi vpnb
 [SwitchC-vsi-vpnb] gateway vsi-interface 2
 [SwitchC-vsi-vpnb] quit
   
5.配置【Switch D】
 # 配置 Switch D 与其他交换机建立 BGP 连接。
 [SwitchD] bgp 200
 [SwitchD-bgp-default] group evpn
 [SwitchD-bgp-default] peer 1.1.1.1 group evpn
 [SwitchD-bgp-default] peer 2.2.2.2 group evpn
 [SwitchD-bgp-default] peer 3.3.3.3 group evpn
 [SwitchD-bgp-default] peer evpn as-number 200
 [SwitchD-bgp-default] peer evpn connect-interface loopback 0
 # 配置 BGP 发布 EVPN 路由,并关闭 BGP EVPN 路由的 VPN-Target 过滤功能。
 [SwitchD-bgp-default] address-family l2vpn evpn
 [SwitchD-bgp-default-evpn] peer evpn enable
 [SwitchD-bgp-default-evpn] undo policy vpn-target
 # 配置 Switch D 为路由反射器。
 [SwitchD-bgp-default-evpn] peer evpn reflect-client
 [SwitchD-bgp-default-evpn] quit
 [SwitchD-bgp-default] quit

6.验证配置
 6.1 命令:
 dis bgp l2vpn evpn
 dis interface tunnel
 dis interface vsi-interface
 dis l2vpn vsi verbose
 dis evpn route arp