16.1. Настройка VXLAN

Назначение

Virtual Extensible LAN (VXLAN) - это сетевая технология, которая инкапсулирует Ethernet-кадры на основе MAC-адресов в пакеты UDP для объединения и туннелирования нескольких сетей уровня L2 в инфраструктуре L3.

Описание

VXLAN может быть масштабирован до 16 миллионов логических сетей. Архитектура многоадресной передачи используется для широковещательных/многоадресных/неизвестных пакетов.

Настройка

Настройка VXLAN

Ниже приведена настройка коммутаторов в соответствии с представленной сетевой конфигурацией.

image

Рис. 16.1 Конфигурация сети

В данном примере коммутаторы “Switch1” и “Switch2” соединены маршрутом уровня 3. Трафик VLAN 20 инкапсулируется в VNI 20000, чтобы пройти через сети уровня 3.

В случае отсутствия конкретных указаний, настройка выполняется на обоих коммутаторах.

Шаг 1: Вход в режим “Global config”

Switch# configure terminal

Шаг 2: Создание VLAN, включение оверлея для каждого VLAN

Switch(config)# vlan database
Switch(config-vlan)# vlan 20
Switch(config-vlan)# vlan 20 overlay enable
Switch(config-vlan)# exit

Шаг 3: Настройка портов

На коммутаторе “Switch1”:

Switch(config)# interface eth-0-1
Switch(config-if)# switchport access vlan 20
Switch(config-if)# no shutdown
Switch(config-if)# exit
Switch(config)# interface eth-0-2
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add 20
Switch(config-if)# no shutdown
Switch(config-if)# exit
Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# ip address 9.9.9.1/24
Switch(config-if)# overlay uplink enable
Switch(config-if)# no shutdown
Switch(config-if)# exit
Switch(config)# interface loopback0
Switch(config-if)# ip address 1.0.1.1/32
Switch(config-if)# exit

На коммутаторе “Switch2”:

Switch(config)# interface eth-0-1
Switch(config-if)# switchport access vlan 20
Switch(config-if)# no shutdown
Switch(config-if)# exit
Switch(config)# interface eth-0-2
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add 20
Switch(config-if)# no shutdown
Switch(config-if)# exit
Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# ip address 9.9.9.2/24
Switch(config-if)# overlay uplink enable
Switch(config-if)# no shutdown
Switch(config-if)# exit
Switch(config)# interface loopback0
Switch(config-if)# ip address 1.0.1.2/32
Switch(config-if)# exit

Шаг 4: Создание статического маршрута

На коммутаторе “Switch1”:

Switch(config)# ip route 1.0.1.2/32 9.9.9.2

На коммутаторе “Switch2”:

Switch(config)# ip route 1.0.1.1/32 9.9.9.1

Шаг 5: Настройка оверлея

На коммутаторе “Switch1”:

Switch(config)# overlay
Switch(config-overlay)# source 1.0.1.1
Switch(config-overlay)# remote-vtep 1 ip-address 1.0.1.2 type vxlan
Switch(config-overlay)# vlan 20 vni 20000
Switch(config-overlay)# vlan 20 remote-vtep 1
Switch(config-overlay)# exit

На коммутаторе “Switch2”:

Switch(config)# overlay
Switch(config-overlay)# source 1.0.1.2
Switch(config-overlay)# remote-vtep 1 ip-address 1.0.1.1 type vxlan
Switch(config-overlay)# vlan 20 vni 20000
Switch(config-overlay)# vlan 20 remote-vtep 1
Switch(config-overlay)# exit

Шаг 6: Выход из режима “Global config”

Switch(config)# end

Шаг 7: Проверка

Вывод результата на коммутаторе “Switch1”:

Switch# show overlay vlan 20
-------------------------------------------------------------------------------
ECMP Mode        : Normal
Source VTEP      : 1.0.1.1
-------------------------------------------------------------------------------
VLAN ID                       : 20
VNI                           : 20000
EVPN Tunnel Data-fdb Learning : Enable
Remote VTEP NUM               : 1
          Index: 1, Ip address: 1.0.1.2, Source ip: 1.0.1.1, Type: VxLAN, Protocol: Static
DVR Gateway NUM: 0
-------------------------------------------------------------------------

Вывод результата на коммутаторе “Switch2”:

Switch# show overlay vlan 20
-------------------------------------------------------------------------------
ECMP Mode        : Normal
Source VTEP      : 1.0.1.2
-------------------------------------------------------------------------------
VLAN ID                       : 20
VNI                           : 20000
EVPN Tunnel Data-fdb Learning : Eanble
Remote VTEP NUM               : 1
          Index: 1, Ip address: 1.0.1.1, Source ip: 1.0.1.2, Type: VxLAN, Protocol: Static
DVR Gateway NUM: 0
-------------------------------------------------------------------------------

Настройка маршрутизации VXLAN

Ниже приведена настройка коммутаторов в соответствии с представленной сетевой конфигурацией.

image

Рис. 16.2 Конфигурация сети

В следующем примере VM-1 и VM-3 инкапсулируются в один VNI, чтобы создать распределенный маршрут через VXLAN. VM-2 и VM-4 инкапсулируются в другой VNI, чтобы создать распределенный маршрут через VXLAN.

В случае отсутствия конкретных указаний, настройка выполняется на обоих коммутаторах.

Шаг 1: Вход в режим “Global config”

Switch# configure terminal

Шаг 2: Создание VLAN, включение оверлея для каждого VLAN

Switch(config)# vlan database
Switch(config-vlan)# vlan 20,30
Switch(config-vlan)# vlan 20 overlay enable
Switch(config-vlan)# vlan 30 overlay enable
Switch(config-vlan)# exit

Шаг 3: Создание экземпляра VRF

Switch(config)# ip vrf tenant
Switch(config-vrf)# exit

Шаг 4: Создание L3-интерфейса и настройка IP-адреса

На коммутаторе “Switch1”:

Switch(config)# interface vlan 20
Switch(config-if)# ip vrf forwarding tenant
Switch(config-if)# ip address 2.2.2.111/24
Switch(config-if)# exit
Switch(config)# interface vlan 30
Switch(config-if)# ip vrf forwarding tenant
Switch(config-if)# ip address 3.3.3.111/24
Switch(config-if)# exit

На коммутаторе “Switch2”:

Switch(config)# interface  vlan 20
Switch(config-if)# ip vrf forwarding tenant
Switch(config-if)# ip address 2.2.2.222/24
Switch(config-if)# exit
Switch(config)# interface  vlan 30
Switch(config-if)# ip vrf forwarding tenant
Switch(config-if)# ip address 3.3.3.222/24
Switch(config-if)# exit

Шаг 5: Настройка портов

Switch(config)# interface eth-0-1
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add 20
Switch(config-if)# no shutdown
Switch(config-if)# exit
Switch(config)# interface eth-0-2
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add  30
Switch(config-if)# no shutdown
Switch(config-if)# exit

На коммутаторе “Switch1”:

Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# ip address 9.9.9.1/24
Switch(config-if)# overlay uplink enable
Switch(config-if)# no shutdown
Switch(config-if)# exit
Switch(config)# interface loopback0
Switch(config-if)# ip address 1.0.1.1/32
Switch(config-if)# exit

На коммутаторе “Switch2”:

Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# ip address 9.9.9.2/24
Switch(config-if)# overlay uplink enable
Switch(config-if)# no shutdown
Switch(config-if)# exit
Switch(config)# interface loopback0
Switch(config-if)# ip address 1.0.1.2/32
Switch(config-if)# exit

Шаг 6: Настройка оверлея

На коммутаторе “Switch1”:

Switch(config)# overlay
Switch(config-overlay)# source 1.0.1.1
Switch(config-overlay)# remote-vtep 1 ip-address 1.0.1.2 type vxlan
Switch(config-overlay)# remote-vtep 1 virtual-mac 22.22.22
Switch(config-overlay)# vlan 20 vni 20000
Switch(config-overlay)# vlan 30 vni 30000
Switch(config-overlay)# vlan 20 remote-vtep 1
Switch(config-overlay)# vlan 30 remote-vtep 1
Switch(config-overlay)# vlan 20 gateway-mac a.a.a
Switch(config-overlay)# vlan 30 gateway-mac b.b.b
Switch(config-overlay)# exit

На коммутаторе “Switch2”:

Switch(config)# overlay
Switch(config-overlay)# source 1.0.1.2
Switch(config-overlay)# remote-vtep 1 ip-address 1.0.1.1 type vxlan
Switch(config-overlay)# remote-vtep 1 virtual-mac 11.11.11
Switch(config-overlay)# vlan 20 vni 20000
Switch(config-overlay)# vlan 30 vni 30000
Switch(config-overlay)# vlan 20 remote-vtep 1
Switch(config-overlay)# vlan 30 remote-vtep 1
Switch(config-overlay)# vlan 20 gateway-mac a.a.a
Switch(config-overlay)# vlan 30 gateway-mac b.b.b
Switch(config-overlay)# exit

Шаг 7: Создание статических маршрутов и маршрутов VXLAN

На коммутаторе “Switch1”:

Switch(config)# ip route 1.0.1.2/32 9.9.9.2
Switch(config)# ip route vrf tenant 2.2.2.2/32 remote-vtep 1 vni 20000 inner-macda 3.3.3
Switch(config)# ip route vrf tenant 3.3.3.2/32 remote-vtep 1 vni 30000 inner-macda 4.4.4

На коммутаторе “Switch2”:

Switch(config)# ip route 1.0.1.1/32 9.9.9.1
Switch(config)# ip route vrf tenant 2.2.2.1/32 remote-vtep 1 vni 20000 inner-macda 1.1.1
Switch(config)# ip route vrf tenant 3.3.3.1/32 remote-vtep 1 vni 30000 inner-macda 2.2.2

Шаг 8: Выход из режима “Global config”

Switch(config)# end

Шаг 9: Проверка

Вывод результата на коммутаторе “Switch1”:

Switch# show ip route vrf tenant
Codes: K - kernel, C - connected, S - static, R - RIP, B - BGP
       O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       Dc - DHCP Client
       [*] - [AD/Metric]
       * - candidate default
S        2.2.2.2/32 is in overlay remote vxlan vtep:1.0.1.1->1.0.1.2, vni:20000
S        3.3.3.2/32 is in overlay remote vxlan vtep:1.0.1.1->1.0.1.2, vni:30000

Вывод результата на коммутаторе “Switch2”:

Switch# show ip route vrf tenant
Codes: K - kernel, C - connected, S - static, R - RIP, B - BGP
       O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       Dc - DHCP Client
       [*] - [AD/Metric]
       * - candidate default
S        2.2.2.1/32 is in overlay remote vxlan vtep:1.0.1.2->1.0.1.1, vni:20000
S        3.3.3.1/32 is in overlay remote vxlan vtep:1.0.1.2->1.0.1.1, vni:30000

Настройка распределенной маршрутизации VXLAN с помощью EBGP EVPN

Ниже приведена настройка коммутаторов в соответствии с представленной сетевой конфигурацией.

image

Рис. 16.3 Конфигурация сети

В следующем примере VM-1 и VM-2 инкапсулированы в один и тот же VNI, чтобы сформировать распределенный маршрут через VXLAN с помощью EBGP EVPN для отправки информации о туннеле VXLAN и сетевом узле.

В случае отсутствия конкретных указаний, настройка выполняется на обоих коммутаторах.

Шаг 1: Вход в режим “Global config”

Switch# configure terminal

Шаг 2: Создание VLAN, включение оверлея

Switch(config)# vlan database
Switch(config-vlan)# vlan 10, 20
Switch(config-vlan)# vlan 10 overlay enable
Switch(config-vlan)# exit

Доступно включение подавления широковещательной передачи ARP для VLAN:

Switch(config-vlan)# vlan 10 arp-broadcast-suppress enable

Шаг 3: Создание VLAN mapping VNI для VXLAN

Switch(config)# overlay
Switch(config-overlay)# vlan 10 vni 10000
Switch`(config-vlan)# exit

Можно отключить внутреннее обучение FDB для оверлея:

Switch(config-overlay)# vlan 10 mac-address-tunnel learning-disable

Шаг 4: Создание экземпляра EVPN

Switch(config)# evpn
Switch(config-evpn)# vni 10000
Switch(config-evi)# rd auto
Switch(config-evi)# route-target both 1:10000
Switch(config-evi)# exit

Шаг 5: Создание экземпляра VRF и включение EVPN

На коммутаторе “Switch1”:

Switch1(config)# ip vrf tenant
Switch1(config-vrf)# rd 1:20000
Switch1(config-vrf)# route-target both 1:10000 evpn
Switch1(config-vrf)# vxlan vni 20000
Switch1(config-vrf)# exit

На коммутаторе “Switch2”:

Switch2(config)# ip vrf tenant
Switch2(config-vrf)# rd 2:20000
Switch2(config-vrf)# route-target both 1:10000 evpn
Switch2(config-vrf)# vxlan vni 20000
Switch2(config-vrf)# exit

Шаг 6: Создание L3-интерфейса, установка IP-адреса и включение распределенного шлюза

На коммутаторе “Switch1”:

Switch1(config)# interface  vlan 10
Switch1(config-if)# ip vrf forwarding tenant
Switch1(config-if)# overlay distributed-gateway enable
Switch1(config-if)# overlay host-collect enable
Switch1(config-if)# ip address 10.1.1.1/24
Switch1(config-if)# exit
Switch1(config)# interface  vlan 20
Switch1(config-if)# ip address 20.1.1.1/24
Switch1(config-if)# exit

На коммутаторе “Switch2”:

Switch2(config)# interface  vlan 10
Switch2(config-if)# ip vrf forwarding tenant
Switch2(config-if)# overlay distributed-gateway enable
Switch2(config-if)# overlay host-collect enable
Switch2(config-if)# ip address 10.1.1.2/24
Switch2(config-if)# exit
Switch2(config)# interface  vlan 20
Switch2(config-if)# ip address 20.1.1.2/24
Switch2(config-if)# exit

Шаг 7: Настройка портов

Switch(config)# interface eth-0-1
Switch(config-if)# switchport access vlan 10
Switch(config-if)# no shutdown
Switch(config-if)# exit
Switch(config)# interface eth-0-9
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add  20
Switch(config-if)# vxlan uplink enable
Switch(config-if)# no shutdown
Switch(config-if)# exit

Шаг 8: Создание NVE

На коммутаторе “Switch1”:

Switch1(config)# interface loopback 1
Switch1(config-if)# ip address 1.1.1.1/32
Switch1(config-if)# exit
Switch1(config)# interface nve 1
Switch1(config-if)# source loopback 1
Switch1(config-if)# member vni 10000
Switch1(config-if)# member vni 20000 associate-vrf
Switch1(config-if)# exit

На коммутаторе “Switch2”:

Switch2(config)# interface loopback 1
Switch2(config-if)# ip address 2.2.2.2/32
Switch2(config-if)# exit
Switch2(config)# interface nve 1
Switch2(config-if)# source loopback 1
Switch2(config-if)# member vni 10000
Switch2(config-if)# member vni 20000 associate-vrf
Switch2(config-if)# exit

Можно настроить атрибут туннеля EVPN:

Switch(config-if)# keep-vlan-tag enable
Switch(config-if)# split-horizon disable
Switch(config-if)# encapsulation-dscp-strategy custom-assign 63
Switch(config-if)# virtual-mac a.a.a

Шаг 9: Создание BGP EVPN

На коммутаторе “Switch1”:

Switch1(config)# router bgp 100
Switch1(config-router)# neighbor 20.1.1.2 remote-as 200
Switch1(config-router)# address-family l2vpn evpn
Switch1(config-router-af)# neighbor 20.1.1.2 activate
Switch1(config-router-af)# neighbor 20.1.1.2 send-community extended
Switch1(config-router-af)# neighbor 20.1.1.2 attribute-unchanged next-hop
Switch1(config-router-af)# exit
Switch1(config-router)# exit

На коммутаторе “Switch2”:

Switch2(config)# router bgp 200
Switch2(config-router)# neighbor 20.1.1.1 remote-as 100
Switch2(config-router)# address-family l2vpn evpn
Switch2(config-router-af)# neighbor 20.1.1.1 activate
Switch2(config-router-af)# neighbor 20.1.1.1 send-community extended
Switch2(config-router-af)# neighbor 20.1.1.1 attribute-unchanged next-hop
Switch2(config-router-af)# exit
Switch2(config-router)# exit

Шаг 10: Создание статических маршрутов

На коммутаторе “Switch1”:

Switch1(config)# ip route 2.2.2.2/32 20.1.1.2

На коммутаторе “Switch2”:

Switch(config2)# ip route 1.1.1.1/32 20.1.1.1

Шаг 11: Выход из режима “Global config”

Switch(config)# end

Шаг 12: Проверка

Вывод результата на коммутаторе “Switch1”:

Switch1# show bgp evpn all
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete

   Network          Next Hop            Metric LocPrf Weight Path
Route Distinguisher: 1:10000 (L2VNI 10000)
*> [2]:[0]:[48]:[4623.28ef.da00]:[32]:[0.0.0.0]/136
                    1.1.1.1                            32768 i
*> [2]:[0]:[48]:[4623.28ef.da00]:[32]:[10.1.1.3]/136
                    1.1.1.1                            32768 i
*> [2]:[0]:[48]:[ac7f.1cc5.fe00]:[32]:[0.0.0.0]/136
                    2.2.2.2                            0 200 i
*> [2]:[0]:[48]:[ac7f.1cc5.fe00]:[32]:[10.1.1.4]/136
                    2.2.2.2                            0 200 i
*> [3]:[0]:[32]:[1.1.1.1]/80
                    1.1.1.1                            32768 i
*> [3]:[0]:[32]:[10.20.30.40]/80
                    2.2.2.2                            0 200 i

Route Distinguisher: 1:10000
*> [2]:[0]:[48]:[ac7f.1cc5.fe00]:[32]:[0.0.0.0]/136
                    2.2.2.2                            0 200 i
*> [2]:[0]:[48]:[ac7f.1cc5.fe00]:[32]:[10.1.1.4]/136
                    2.2.2.2                            0 200 i
*> [3]:[0]:[32]:[2.2.2.2]/80
                    2.2.2.2                            0 200 i

Route Distinguisher: 1:20000 (L3VNI 20000)
*> [2]:[0]:[48]:[ac7f.1cc5.fe00]:[32]:[10.1.1.4]/136
                    2.2.2.2
Switch1# show overlay tunnel
-------------------------------------------------------------------------------
Vlan Vni       Type   Remote-vtep IP-Address       Src-Address      Head-end-flooding Protocol
10   10000     VxLAN  0           2.2.2.2          1.1.1.1          Enable            Evpn 
Вывод результата на коммутаторе "Switch2":
Head-end-floodingSwitch2# show bgp evpn all
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete

   Network          Next Hop            Metric LocPrf Weight Path
Route Distinguisher: 1:10000 (L2VNI 10000)
*> [2]:[0]:[48]:[4623.28ef.da00]:[32]:[0.0.0.0]/136
                    1.1.1.1                                0 100 i
*> [2]:[0]:[48]:[4623.28ef.da00]:[32]:[10.1.1.3]/136
                    1.1.1.1                                0 100 i
*> [2]:[0]:[48]:[ac7f.1cc5.fe00]:[32]:[0.0.0.0]/136
                    2.2.2.2                        32768 i
*> [2]:[0]:[48]:[ac7f.1cc5.fe00]:[32]:[10.1.1.4]/136
                    2.2.2.2                        32768 i
*> [3]:[0]:[32]:[1.1.1.1]/80
                    1.1.1.1                                0 100 i
*> [3]:[0]:[32]:[2.2.2.2]/80
                    2.2.2.2                        32768 i

Route Distinguisher: 1:10000
*> [2]:[0]:[48]:[4623.28ef.da00]:[32]:[0.0.0.0]/136
                    1.1.1.1                                0 100 i
*> [2]:[0]:[48]:[4623.28ef.da00]:[32]:[10.1.1.3]/136
                    1.1.1.1                                0 100 i
*> [3]:[0]:[32]:[1.1.1.1]/80
                    1.1.1.1                                0 100 i

Route Distinguisher: 2:20000 (L3VNI 20000)
*> [2]:[0]:[48]:[4623.28ef.da00]:[32]:[10.1.1.3]/136
                    1.1.1.1                                0 100 i
Switch2# show overlay tunnel
-------------------------------------------------------------------------------
Vlan Vni       Type   Remote-vtep IP-Address       Src-Address      Head-end-flooding Protocol
10   10000     VxLAN  0           1.1.1.1          2.2.2.2          Enable            Evpn 

Настройка распределенной маршрутизации VXLAN с помощью IBGP EVPN

Ниже показана настройка коммутаторов в соответствии с представленной сетевой конфигурацией.

image

Рис. 16.4 Конфигурация сети

В данном примере VM-1 и VM-2 инкапсулированы в один и тот же VNI, чтобы составить распределенный маршрут через VXLAN с помощью IBGP EVPN для отправки информации о туннеле VXLAN и сетевом узле. Обмен маршрутами EVPN осуществляется с помощью BGP-рефлектора (BGP route reflector).

В случае отсутствия конкретных указаний, настройка выполняется на всех коммутаторах.

Шаг 1: Вход в режим “Global config”

Switch# configure terminal

Шаг 2: Создание VLAN, создание оверлея

На коммутаторе “Switch1”:

Switch1(config)# vlan database
Switch1(config-vlan)# vlan 10, 20
Switch1(config-vlan)# vlan 10 overlay enable
Switch1(config-vlan)# exit

На коммутаторе “Switch2”:

Switch2(config)# vlan database
Switch2(config-vlan)# vlan 20, 30
Switch2(config-vlan)# exit

На коммутаторе “Switch3”:

Switch3(config)# vlan database
Switch3(config-vlan)# vlan 10, 30
Switch3(config-vlan)# vlan 10 overlay enable
Switch3(config-vlan)# exit

Можно включить подавление широковещательной передачи ARP для VLAN:

Switch(config-vlan)# vlan 10 arp-broadcast-suppress enable

Шаг 3: Создание VLAN mapping VNI для VXLAN

На коммутаторе “Switch1”:

Switch1(config)# overlay
Switch1(config-overlay)# vlan 10 vni 10000
Switch1(config-vlan)# exit

Доступно отключение внутреннего обучения FDB для оверлея:

Switch1(config-overlay)# vlan 10 mac-address-tunnel learning-disable

На коммутаторе “Switch3”:

Switch3(config)# overlay
Switch3(config-overlay)# vlan 10 vni 10000
Switch3(config-vlan)# exit

Доступно отключение внутреннего обучения FDB для оверлея:

Switch3(config-overlay)# vlan 10 mac-address-tunnel learning-disable

Шаг 4: Создание экземпляра EVPN

На коммутаторе “Switch1”:

Switch1(config)# evpn
Switch1(config-evpn)# vni 10000
Switch1(config-evi)# rd 2:2
Switch1(config-evi)# route-target both 20:20
Switch1(config-evi)# exit

На коммутаторе “Switch2”:

Switch2(config)# evpn

На коммутаторе “Switch3”:

Switch3(config)# evpn
Switch3(config-evpn)# vni 10000
Switch3(config-evi)# rd 4:4
Switch3(config-evi)# route-target both 20:20
Switch3(config-evi)# exit

Шаг 5: Создание экземпляра VRF и включение EVPN

На коммутаторе “Switch1”:

Switch1(config)# ip vrf tenant
Switch1(config-vrf)# rd 22:22
Switch1(config-vrf)# route-target both 20:20 evpn
Switch1(config-vrf)# vxlan vni 20000
Switch1(config-vrf)# exit

На коммутаторе “Switch3”:

Switch3(config)# ip vrf tenant
Switch3(config-vrf)# rd 44:44
Switch3(config-vrf)# route-target both 20:20 evpn
Switch3(config-vrf)# vxlan vni 20000
Switch3(config-vrf)# exit

Шаг 6: Создание L3-интерфейса

Создание L3-интерфейса, установка IP-адреса и включение распределенного шлюза:

На коммутаторе “Switch1”:

Switch1(config)# interface  vlan 10
Switch1(config-if)# ip vrf forwarding tenant
Switch1(config-if)# overlay distributed-gateway enable
Switch1(config-if)# overlay host-collect enable
Switch1(config-if)# ip address 10.1.1.2/24
Switch1(config-if)# exit
Switch1(config)# interface  vlan 20
Switch1(config-if)# ip address 20.1.1.1/24
Switch1(config-if)# exit

На коммутаторе “Switch2”:

Switch2(config)# interface  vlan 20
Switch2(config-if)# ip address 20.1.1.2/24
Switch2(config-if)# exit
Switch2(config)# interface  vlan 30
Switch2(config-if)# ip address 30.1.1.1/24
Switch2(config-if)# exit

На коммутаторе “Switch3”:

Switch3(config)# interface  vlan 10
Switch3(config-if)# ip vrf forwarding tenant
Switch3(config-if)# overlay distributed-gateway enable
Switch3(config-if)# overlay host-collect enable
Switch3(config-if)# ip address 10.1.1.3/24
Switch3(config-if)# exit 
Switch3(config)# interface  vlan 30
Switch3(config-if)# ip address 30.1.1.2/24
Switch3(config-if)# exit

Шаг 7: Настройка портов

На коммутаторе “Switch1”:

Switch1(config)# interface eth-0-10
Switch1(config-if)# switchport access vlan 10
Switch1(config-if)# no shutdown
Switch1(config-if)# exit
Switch1(config)# interface eth-0-20
Switch1(config-if)# switchport mode trunk
Switch1(config-if)# switchport trunk allowed vlan add  20
Switch1(config-if)# vxlan uplink enable
Switch1(config-if)# no shutdown
Switch1(config-if)# exit

На коммутаторе “Switch2”:

Switch2(config)# interface eth-0-20
Switch2(config-if)# switchport mode trunk
Switch2(config-if)# switchport trunk allowed vlan add  20
Switch2(config-if)# vxlan uplink enable
Switch2(config-if)# no shutdown
Switch2(config-if)# exit
Switch2(config)# interface eth-0-30
Switch2(config-if)# switchport mode trunk
Switch2(config-if)# switchport trunk allowed vlan add  30
Switch2(config-if)# vxlan uplink enable
Switch2(config-if)# no shutdown
Switch2(config-if)# exit

На коммутаторе “Switch3”:

Switch3(config)# interface eth-0-10
Switch3(config-if)# switchport access vlan 10
Switch3(config-if)# no shutdown
Switch3(config-if)# exit
Switch3(config)# interface eth-0-30
Switch3(config-if)# switchport mode trunk
Switch3(config-if)# switchport trunk allowed vlan add  30
Switch3(config-if)# vxlan uplink enable
Switch3(config-if)# no shutdown
Switch3(config-if)# exit

Шаг 8: Создание NVE

На коммутаторе “Switch1”:

Switch1(config)# interface loopback 2
Switch1(config-if)# ip address 2.2.2.2/32
Switch1(config-if)# exit
Switch1(config)# interface nve 1
Switch1(config-if)# source 2.2.2.2
Switch1(config-if)# member vni 10000
Switch1(config-if)# member vni 20000 associate-vrf
Switch1(config-if)# exit

На коммутаторе “Switch2”:

Switch2(config)# interface loopback 3
Switch2(config-if)# ip address 3.3.3.3/32
Switch2(config-if)# exit

На коммутаторе “Switch3”:

Switch3(config)# interface loopback 4
Switch3(config-if)# ip address 4.4.4.4/32
Switch3(config-if)# exit
Switch3(config)# interface nve 1
Switch3(config-if)# source 4.4.4.4
Switch3(config-if)# member vni 10000
Switch3(config-if)# member vni 20000 associate-vrf
Switch3(config-if)# exit

Доступна настройка атрибутов туннеля EVPN:

Switch(config-if)# keep-vlan-tag enable
Switch(config-if)# split-horizon disable
Switch(config-if)# encapsulation-dscp-strategy custom-assign 63
Switch(config-if)# virtual-mac a.a.a

Шаг 9: Создание BGP EVPN

На коммутаторе “Switch1”:

Switch1(config)# router bgp 100
Switch1(config-router)# neighbor 3.3.3.3 remote-as 100
Switch1(config-router)# neighbor 3.3.3.3 update-source loopback2
Switch1(config-router)# neighbor 20.1.1.2 remote-as 100
Switch1(config-router)# address-family ipv4
Switch1(config-router-af)# network 2.2.2.2 mask 255.255.255.255
Switch1(config-router-af)# neighbor 20.1.1.2 weight 32768
Switch1(config-router-af)# exit
Switch1(config-router)# address-family l2vpn evpn
Switch1(config-router-af)# neighbor 3.3.3.3 activate
Switch1(config-router-af)# neighbor 3.3.3.3 send-community extended
Switch1(config-router-af)# exit
Switch1(config-router)# exit

На коммутаторе “Switch2”:

Switch2(config)# router bgp 100
Switch2(config-router)# neighbor 2.2.2.2 remote-as 100
Switch2(config-router)# neighbor 2.2.2.2 update-source loopback3
Switch2(config-router)# neighbor 4.4.4.4 remote-as 100
Switch2(config-router)# neighbor 4.4.4.4 update-source loopback3
Switch2(config-router)# neighbor 20.1.1.1 remote-as 100
Switch2(config-router)# neighbor 30.1.1.2 remote-as 100
Switch2(config-router)# address-family ipv4
Switch2(config-router-af)# network 3.3.3.3 mask 255.255.255.255
Switch2(config-router-af)# network 20.1.1.0 mask 255.255.255.0
Switch2(config-router-af)# network 30.1.1.0 mask 255.255.255.0
Switch2(config-router-af)# neighbor 20.1.1.1 weight 32768
Switch2(config-router-af)# neighbor 20.1.1.1 route-reflector-client
Switch2(config-router-af)# neighbor 20.1.1.1 next-hop-self
Switch2(config-router-af)# neighbor 30.1.1.2 weight 32768
Switch2(config-router-af)# neighbor 30.1.1.2 route-reflector-client
Switch2(config-router-af)# neighbor 30.1.1.2 next-hop-self
Switch2(config-router-af)# exit
Switch2(config-router)# address-family l2vpn evpn
Switch2(config-router-af)# neighbor 2.2.2.2 activate
Switch2(config-router-af)# neighbor 2.2.2.2 route-reflector-client
Switch2(config-router-af)# neighbor 2.2.2.2 send-community extended
Switch2(config-router-af)# neighbor 4.4.4.4 activate
Switch2(config-router-af)# neighbor 4.4.4.4 route-reflector-client
Switch2(config-router-af)# neighbor 4.4.4.4 send-community extended
Switch2(config-router-af)# exit
Switch2(config-router)# exit

На коммутаторе “Switch3”:

Switch3(config)# router bgp 100
Switch3(config-router)# neighbor 3.3.3.3 remote-as 100
Switch3(config-router)# neighbor 3.3.3.3 update-source loopback4
Switch3(config-router)# neighbor 30.1.1.1 remote-as 100
Switch3(config-router)# address-family ipv4
Switch3(config-router-af)# network 4.4.4.4 mask 255.255.255.255
Switch3(config-router-af)# neighbor 30.1.1.1 weight 32768
Switch3(config-router-af)# exit
Switch3(config-router)# address-family l2vpn evpn
Switch3(config-router-af)# neighbor 3.3.3.3 activate
Switch3(config-router-af)# neighbor 3.3.3.3 send-community extended
Switch3(config-router-af)# exit
Switch3(config-router)# exit

Шаг 10: Выход из режима “Global config”

Switch(config)# end

Шаг 11: Проверка

Вывод результатов на коммутаторе “Switch1”:

Switch1# show bgp evpn all
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete

   Network          Next Hop            Metric LocPrf Weight Path
Route Distinguisher: 2:2 (L2VNI 10000)
*> [2]:[0]:[48]:[988b.123a.4000]:[32]:[0.0.0.0]/136
                    2.2.2.2                            32768 i
*> [2]:[0]:[48]:[988b.123a.4000]:[32]:[10.1.1.1]/136
                    2.2.2.2                            32768 i
*> [3]:[0]:[32]:[2.2.2.2]/80
                    2.2.2.2                            32768 i
*>i[3]:[0]:[32]:[4.4.4.4]/80
                    4.4.4.4                       100      0 i

Route Distinguisher: 4:4
*>i[3]:[0]:[32]:[4.4.4.4]/80
                    4.4.4.4                       100      0 i
Switch1# show overlay tunnel
-------------------------------------------------------------------------------
Vlan Vni       Type   Remote-vtep IP-Address       Src-Address      Head-end-flooding Protocol
10   10000     VxLAN  0           4.4.4.4          2.2.2.2          Enable            Evpn   

Вывод результатов на коммутаторе “Switch2”:

Switch2# show bgp evpn all
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete

   Network          Next Hop            Metric LocPrf Weight Path
Route Distinguisher: 2:2
*>i[2]:[0]:[48]:[988b.123a.4000]:[32]:[0.0.0.0]/136
                    2.2.2.2                       100      0 i
*>i[2]:[0]:[48]:[988b.123a.4000]:[32]:[10.1.1.1]/136
                    2.2.2.2                       100      0 i
*>i[3]:[0]:[32]:[2.2.2.2]/80
                    2.2.2.2                       100      0 i

Route Distinguisher: 4:4
*>i[3]:[0]:[32]:[4.4.4.4]/80
                    4.4.4.4                       100      0 i

Вывод результатов на коммутаторе “Switch3”:

Switch3# show bgp evpn all
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete

   Network          Next Hop            Metric LocPrf Weight Path
Route Distinguisher: 2:2
*>i[2]:[0]:[48]:[988b.123a.4000]:[32]:[0.0.0.0]/136
                    2.2.2.2                       100      0 i
*>i[2]:[0]:[48]:[988b.123a.4000]:[32]:[10.1.1.1]/136
                    2.2.2.2                       100      0 i
*>i[3]:[0]:[32]:[2.2.2.2]/80
                    2.2.2.2                       100      0 i

Route Distinguisher: 4:4 (L2VNI 10000)
*>i[2]:[0]:[48]:[988b.123a.4000]:[32]:[0.0.0.0]/136
                    2.2.2.2                       100      0 i
*>i[2]:[0]:[48]:[988b.123a.4000]:[32]:[10.1.1.1]/136
                    2.2.2.2                       100      0 i
*>i[3]:[0]:[32]:[2.2.2.2]/80
                    2.2.2.2                       100      0 i
*> [3]:[0]:[32]:[4.4.4.4]/80
                    4.4.4.4                            32768 i

Route Distinguisher: 44:44 (L3VNI 20000)
*>i[2]:[0]:[48]:[988b.123a.4000]:[32]:[10.1.1.1]/136
                    2.2.2.2                       100      0 i
Switch3# show overlay tunnel
-------------------------------------------------------------------------------
Vlan Vni       Type   Remote-vtep IP-Address       Src-Address      Head-end-flooding Protocol
10   10000     VxLAN  0           2.2.2.2          4.4.4.4          Enable            Evpn
Switch3# show mac address-table
          Mac Address Table
-------------------------------------------
(*)  - Security Entry     (M)  - MLAG Entry
(MO) - MLAG Output Entry  (MI) - MLAG Input Entry
Vlan    Mac Address       Type        Ports
----    -----------       --------    -----
30      fcc0.9318.0a00    dynamic     eth-0-9
10      988b.123a.4000    dynamic     VxLAN: 4.4.4.4->2.2.2.2(EI)
Switch3# show ip route vrf tenant
Codes: K - kernel, C - connected, S - static, R - RIP, B - BGP
       O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       Dc - DHCP Client
       [*] - [AD/Metric]
       * - candidate default

C        10.1.1.0/24 is directly connected, vlan10
C        10.1.1.3/32 is in local loopback, vlan10
B        10.1.1.1/32 is in overlay remote vxlan vtep:4.4.4.4->2.2.2.2, vni:20000