> For the complete documentation index, see [llms.txt](https://1ops.gitbook.io/learn-vxlan.1ops.uz/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://1ops.gitbook.io/learn-vxlan.1ops.uz/postroenie-fabriki-vxlan-evpn-s-ispolzovaniem-infrastructure-as-a-code-podkhoda/chast-5.-vxlan.-evpn-l2.md).

# Часть 5. VxLAN. EVPN L2

### Цель

* Настроить Overlay на основе VxLAN EVPN для L2 связанности между клиентами

**Ожидаемый результат**

* Настроен BGP peering между Leaf и Spine в AF l2vpn evepn.
* Настроена и проверена IP связанность между клиентами в первой зоне.
* В документации зафиксирован план работ, адресное пространство, схема сети и конфигурация устройств.

### Небольшое введение

Перед началом работы на этим Д/З немного меняем топологию сети. Делаем задел на будущее - масштабирование в пределах одного ДЦ, масштабирование в 2 и более ДЦ с растягиваением L2 (чего делать очень не рекомендуют), включение в схему с l2vni файрволов.&#x20;

<figure><img src="https://2583098987-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjvdcVCWSiIRM9xAgAyMA%2Fuploads%2FsMixYIZQljXpxVd02Wn3%2FHW-5-map_adressing.png?alt=media&amp;token=60e7fa59-3c76-4960-9eae-531905a55e89" alt=""><figcaption><p>IP-адресация</p></figcaption></figure>

<figure><img src="https://2583098987-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjvdcVCWSiIRM9xAgAyMA%2Fuploads%2FFCFCMQgfgusNnbFtL8Z2%2FHW-5-map.png?alt=media&amp;token=ebdd1b0f-274c-48ef-8309-5829658e5ccc" alt=""><figcaption><p>Общая схема</p></figcaption></figure>

Представляем, что у нас:

* 2 Spine-коммутатора в разных сетевых стойках
* 2 стойки и в каждой по 2 Leaf-коммутатора и 1 гипервизор на базе VMware ESXi 8.x
* 1 стойка с парой border-leaf и/или service-leaf. Всего в схеме теперь 8 коммутаторов и 2 гипервизора.

Идем в свой выдуманный ДЦ в Netbox и смотрим на расположение оборудования:

<figure><img src="https://2583098987-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjvdcVCWSiIRM9xAgAyMA%2Fuploads%2FzZR8r3NnsmR2TJGEr0b4%2Fimage.png?alt=media&amp;token=61a9bb84-d876-4715-907c-b6a21cc014e9" alt=""><figcaption></figcaption></figure>

Мы же в самом начале этого увлекательного путешествия решили, что:

1. Spine-коммутаторы расположены в разных серверных стойках
2. Leaf-коммутаторы сгруппированы по 2 в качестве Top of Rack устройств (пока это standalone устройства, дальше будем пробовать их в m-lag).

Из-за добавившихся устройств возникла необходимость в обновлении BGP сессий внутри Netbox. Проблема с автоматизацией или генерацией все еще актуальна и не решена, но для минимизации ошибок воспользуемся Excel'ем.&#x20;

{% file src="/files/NjAxiSey2IEVs8YWMlhV" %}

В файле нет рокет сайнс. На первом листе справочники устройств, AS и адресов. На втором листе их можно выбрать из drop-down меню:

<figure><img src="https://2583098987-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjvdcVCWSiIRM9xAgAyMA%2Fuploads%2FzBCOu8JU0P4kjLfg3VBq%2Fimage.png?alt=media&amp;token=0fd34821-6f6c-4c99-b150-e7411a41fdf6" alt=""><figcaption></figcaption></figure>

А потом скопировать и вставить в поле импорта Netbox:

<figure><img src="https://2583098987-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjvdcVCWSiIRM9xAgAyMA%2Fuploads%2F7BxflXiQPJtUpqs6eo9f%2Fimage.png?alt=media&amp;token=495083d7-f392-4310-be54-c2b3081e69a9" alt=""><figcaption></figcaption></figure>

В результате получается вполне годный список сессий для последующего использования в Netbox `Provisioning -> Config Templates`

<figure><img src="https://2583098987-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjvdcVCWSiIRM9xAgAyMA%2Fuploads%2Fj9jpH6zICVOQolgukOmq%2Fimage.png?alt=media&amp;token=9d81375c-4832-4df0-83c1-20a6f6ac5c03" alt=""><figcaption></figcaption></figure>

*Здесь стоит сделать паузу. Куратор курса дал направление в сторону динамических соседей. Это нужно обдумать, так как инфо в Netbox нужно будет отдавать с устройств. Подумаем позже над этим.*

### Достижение результата

#### Шаблон конфигурации

Как и прежде, конфигурация устройств генерируется внутри Netbox на основе его данных через шаблоны. Методом проб и ошибок я пришел к тому, что шаблон нужно разделить для групп устройств. Теперь их два - один для Spine'ов hw5\_netbox\_spine\_bgp\_template.jinja2, второй - для Leaf'ов hw5\_netbox\_leaf\_bgp\_template.jinja2.

{% file src="/files/yzl0NBAd6EtPa6BakNzr" %}

{% file src="/files/qql83QMJ5pvUiAHM38m7" %}

Тут, пожалуй, стоит подробнее остановиться на том, как шаблоны работают.

<details>

<summary>SPINE</summary>

Этот шаблон Jinja2 генерирует конфигурацию сетевого устройства (под управлением Arista EOS), используя данные из NetBox и связанных контекстов. Его цель — автоматически сформировать готовый к применению конфиг на основе инвентаря устройства, его интерфейсов, IP-адресов, BGP-сессий, VRF, VLAN, параметров STP и маршрутов.

Ниже — более детальный разбор того, что делает шаблон:

1. Базовые настройки безопасности и управления:

* no aaa root: Выключает определённые AAA настройки по умолчанию.
* Настройка пользователя admin с ролью network-admin и заданным секретом.
* transceiver qsfp default-mode 4x10G: Определяет режим работы QSFP-трансиверов.
* service routing protocols model multi-agent: Переключение модели протоколов маршрутизации на «multi-agent» (особенность Arista EOS).

2. Hostname и VRF для управления:

* hostname {{ device.name }}: Устанавливает имя устройства согласно данным из NetBox.
* vrf instance {{ vrfs.mgmt }}: Создаёт VRF для управления (management VRF), имя которого берётся из шаблона vrfs.mgmt.

3. Управление через API и VRF:

* В блоке: Настраивается management api http-commands, включается no shutdown для default VRF и управленческого VRF, что позволяет управлять устройством по API из правильного VRF.

4. Маршрутизация:

* Включается IP-маршрутизация (ip routing).
* no ip routing vrf {{ vrfs.mgmt }} — отключение маршрутизации в этом VRF.
* Настройка статического маршрута по умолчанию в management VRF (ip route vrf {{ vrfs.mgmt }} 0.0.0.0/0 {{ mgmt\_default\_gw }}), указывая на шлюз по умолчанию для управления.

5. Spanning-tree режим:

* Перебираются настройки STP, заданные в stp\_mode, и устанавливается режим spanning-tree.

6. Настройка интерфейсов:

* Перебираются все интерфейсы устройства (device.interfaces.all()).
* Для Ethernet-интерфейсов:
* Если есть IP-адрес: интерфейс переводится в L3-режим (no switchport), задаётся MTU, настраивается BFD и назначается IP. Включается или выключается исходя из флага enabled.
* Если IP-адреса нет: интерфейс остаётся L2 (switchport), выбирается access или trunk режим, VLANы, native VLAN для trunk при необходимости.
* Описание интерфейса, если указано.
* Для Loopback-интерфейсов:
* Назначение IP-адресов.
* Добавление описания, если оно есть.
* Для Management-интерфейсов:
* Назначение IP-адресов и привязка к VRF для управления.
* Добавление описания, если есть.

7. Настройка BGP EVPN:

* Цикл по BGP-сессиям, сгруппированным по local\_as.
* Устанавливается router bgp \<local\_asn> с router-id, взятым из IP Loopback0.
* maximum-paths 2: Разрешает множественные пути.
* Настраивается peer-group (leaf\_peers), bfd, отправка расширенных сообществ (send-community extended).
* Перебираются BGP-сессии (sessions): для каждого соседа устанавливается neighbor ... remote-as ... и назначение в peer-group.
* Включается address-family evpn с neighbor ... activate для обмена EVPN-маршрутами.

8. Команда end: Завершение конфигурационного файла.

Итог: Шаблон берёт данные о устройстве, его интерфейсах, IP-адресах, BGP-сеансах, VRF, STP-режиме и т.д. из NetBox (и связанных переменных device, vrfs, stp\_mode, bgp\_peer\_groups, mgmt\_default\_gw) и формирует полный конфигурационный скрипт для сетевого устройства. Он автоматизирует процесс конфигурации, устраняет необходимость ручной настройки и снижает риск ошибок.

</details>

<details>

<summary>LEAF</summary>

Этот шаблон Jinja2 автоматически генерирует конфигурацию сетевого коммутатора (под управлением Arista EOS) на основе данных, полученных из NetBox или других контекстных переменных. Рассмотрим основные аспекты, которые он реализует:

1. Начальные настройки устройства:

* no aaa root: Отключение некоторых настроек AAA по умолчанию.
* Создание пользователя admin с заданной ролью и секретом.
* Настройка трансиверов QSFP в режим 4x10G.
* Переключение модели протоколов маршрутизации на multi-agent.
* Установка hostname устройства (hostname {{ device.name }}).

2. Настройка VRF и управления:

* Создаёт VRF для управления (vrf instance {{ vrfs.mgmt }}).
* В блоке management api http-commands включается доступ к API и отключение shutdown для default и management VRF.

3. Маршрутизация:

* Включается IP-маршрутизация (ip routing).
* no ip routing vrf {{ vrfs.mgmt }} — специфическое отключение маршрутизации в mgmt VRF.
* Настройка prefix-list для loopback10 (ip prefix-list loopback-list).
* Добавление статического маршрута по умолчанию в management VRF (ip route vrf {{ vrfs.mgmt }} 0.0.0.0/0 {{ mgmt\_default\_gw }}).
* route-map loopback-map для фильтрации и распространения loopback-маршрутов.

4. Spanning-Tree и VLAN:

* Настраивает режимы spanning-tree, используя данные из stp\_mode.
* Генерирует конфигурацию для всех VLAN, связанных с сайтом устройства: vlan `<vid>` с name `<vlan.name>`.

5. Настройка интерфейсов:

* Перебирает все интерфейсы устройства:
* Ethernet интерфейсы:
* Если есть IP-адрес: задаётся MTU, L3-режим (no switchport), BFD, IP-адрес. Интерфейс поднимается или выключается по флагу enabled, добавляется description при наличии.
* Если IP-адресов нет: интерфейс становится L2 (access или trunk), назначаются VLAN согласно mode и untagged/tagged VLAN.
* Loopback интерфейсы: Назначаются IP-адреса, описание при наличии.
* Management интерфейсы: Назначаются IP-адреса, привязываются к управленческому VRF, описание при наличии.

6. VXLAN конфигурация:

* Создаётся интерфейс Vxlan1.
* Указывается vxlan source-interface Loopback10, vxlan udp-port 4789.
* Перебираются VLAN сайта и для каждого создаётся сопоставление `vxlan vlan <vid> vni <100000 + vid>` — таким образом, каждому VLAN назначается свой VNI.

7. BGP EVPN конфигурация:

* Перебираются BGP-сессии, сгруппированные по локальному AS.
* Настраивается router bgp \<local\_asn> с router-id, равным адресу Loopback0.
* Задаётся peer-group для leaf (spine\_peers), включается BFD, send-community extended.
* Добавляются соседи (neighbor) из sessions с указанием remote-as.
* redistribute connected route-map loopback-map позволяет распространить локальные loopback маршруты через BGP.
* Настройка EVPN address-family: активируется соседи из peer-group для EVPN. Дополнительно, для каждого VLAN генерируется EVPN-секция:

`vlan <vid> rd auto route-target both <vid>:<100000+vid> redistribute learned`

Это добавляет L2VPN EVPN параметры для каждого VLAN, определяя RD и RT, необходимые для обмена EVPN-маршрутами (MAC/IP) между участниками EVPN-фабрики.

Итог: Шаблон собирает вместе множество данных о устройстве и его окружении (имя, интерфейсы, IP-адреса, VRF, VLAN, BGP, EVPN) и генерирует полноценную конфигурацию, готовую к применению. Он автоматически настраивает базовые параметры безопасности и управления, линейные и петлевые интерфейсы, L2/L3 параметры, VXLAN/EVPN для мульти-тенантной сети, а также объявляет маршруты и параметры BGP для обмена маршрутами (включая EVPN).

</details>

Например, для устройства no-osl-dc1-f1-r03k01-lf01 на основании настроек интерфейсов в Netbox сгенерируется следующий конфиг

<details>

<summary>no-osl-dc1-f1-r03k01-lf01.conf</summary>

{% code title="no-osl-dc1-f1-r03k01-lf01.conf" lineNumbers="true" %}

```
no aaa root
!
username admin role network-admin secret sha512 $6$rrnahywJrf./cxZU$WLwjSO8L/iXagrGAHvaZfp4zFCmX017V3NR0vfqm9Xj0gg24gyCi/5pHahpF503vWpWMjtyKqTp.Q/YqEfPmT/
!
transceiver qsfp default-mode 4x10G
!
service routing protocols model multi-agent
!
hostname no-osl-dc1-f1-r03k01-lf01
!
vrf instance mgmt
!
management api http-commands
   no shutdown
   !
   vrf default
      no shutdown
   !
   vrf mgmt
      no shutdown
!
ip routing
no ip routing vrf mgmt
!
ip prefix-list loopback-list
  seq 10 permit 10.16.4.1/32
!
ip route vrf mgmt 0.0.0.0/0 172.16.108.1
!
route-map loopback-map permit 10
   match ip address prefix-list loopback-list
!
spanning-tree mode mstp
!
vlan 10
  name vmware_vlan
!
vlan 20
  name vm_vlan_20
!
vlan 30
  name vm_vlan_30
!
interface Ethernet1
  mtu 9214
  no switchport
  bfd interval 200 min-rx 200 multiplier 3
  ip address 10.16.2.1/31
  no shutdown
!
interface Ethernet2
  mtu 9214
  no switchport
  bfd interval 200 min-rx 200 multiplier 3
  ip address 10.16.2.101/31
  no shutdown
!
interface Ethernet3
  switchport
  switchport mode access
  switchport access vlan 10
  no shutdown
!
interface Ethernet4
  switchport
  switchport mode access
  switchport access vlan 1
  shutdown
!
interface Ethernet5
  switchport
  switchport mode access
  switchport access vlan 1
  shutdown
!
interface Ethernet6
  switchport
  switchport mode access
  switchport access vlan 1
  shutdown
!
interface Ethernet7
  switchport
  switchport mode access
  switchport access vlan 1
  shutdown
!
interface Ethernet8
  switchport
  switchport mode access
  switchport access vlan 1
  shutdown
!
interface Ethernet9
  switchport
  switchport mode access
  switchport access vlan 1
  shutdown
!
interface Ethernet10
  switchport
  switchport mode access
  switchport access vlan 1
  shutdown
!
interface Ethernet11
  switchport
  switchport mode access
  switchport access vlan 1
  shutdown
!
interface Ethernet12
  switchport
  switchport mode access
  switchport access vlan 1
  shutdown
!
interface Ethernet13
  switchport
  switchport mode access
  switchport access vlan 1
  shutdown
!
interface Ethernet14
  switchport
  switchport mode access
  switchport access vlan 1
  shutdown
!
interface Ethernet15
  switchport
  switchport mode access
  switchport access vlan 1
  shutdown
!
interface Ethernet16
  switchport
  switchport mode access
  switchport access vlan 1
  shutdown
!
interface Loopback0
  ip address 10.16.1.1/32
  description Loopback for RE
!
interface Loopback10
  ip address 10.16.4.1/32
  description Loopback for VTEP
!
interface Management1
  ip address 172.16.108.111/24
  vrf mgmt
!
!
interface Vxlan1
   vxlan source-interface Loopback10
   vxlan udp-port 4789
   vxlan vlan 10 vni 100010
   vxlan vlan 20 vni 100020
   vxlan vlan 30 vni 100030
!
router bgp 4200131331
   router-id 10.16.1.1
   maximum-paths 2
   neighbor SPINE-PEERS peer group
   neighbor SPINE-PEERS bfd
   neighbor SPINE-PEERS send-community extended
   neighbor 10.16.2.0 peer group SPINE-PEERS
   neighbor 10.16.2.0 remote-as 4200131329
   neighbor 10.16.2.100 peer group SPINE-PEERS
   neighbor 10.16.2.100 remote-as 4200131329
   redistribute connected route-map loopback-map
   !
   vlan 10
      rd auto
      route-target both 10:100010
      redistribute learned
   !
   vlan 20
      rd auto
      route-target both 20:100020
      redistribute learned
   !
   vlan 30
      rd auto
      route-target both 30:100030
      redistribute learned
   !
   !
   address-family evpn
      neighbor SPINE-PEERS activate
!
end
```

{% endcode %}

</details>

#### Конфигурационные файлы

Сгенерированные в Netbox файлы подложены как start-up config в лабе EVE-NG как есть без ручных изменений:

{% file src="/files/ao49GkenEccXY6tIdJH9" %}
[no-osl-dc1-f1-r01k01-spn01](https://github.com/anton-sap/otus-dc-network-design/blob/master/HW-5%20-%20VxLAN%20EVPN%20L2/files/no-osl-dc1-f1-r01k01-spn01.txt)
{% endfile %}

{% file src="/files/20FSm6DU1lPnDRc2hElV" %}
[no-osl-dc1-f1-r02k01-spn01](https://github.com/anton-sap/otus-dc-network-design/blob/master/HW-5%20-%20VxLAN%20EVPN%20L2/files/no-osl-dc1-f1-r02k01-spn01.txt)
{% endfile %}

{% file src="/files/tI8QZR6fz1IltnY52DHs" %}
[no-osl-dc1-f1-r03k01-lf01](https://github.com/anton-sap/otus-dc-network-design/blob/master/HW-5%20-%20VxLAN%20EVPN%20L2/files/no-osl-dc1-f1-r03k01-lf01.txt)
{% endfile %}

{% file src="/files/ZPKmatI07RRTtFHefPB9" %}
[no-osl-dc1-f1-r03k01-lf02](https://github.com/anton-sap/otus-dc-network-design/blob/master/HW-5%20-%20VxLAN%20EVPN%20L2/files/no-osl-dc1-f1-r03k01-lf02.txt)
{% endfile %}

{% file src="/files/MIPVMqBkj3VPgZAwae7I" %}
[no-osl-dc1-f1-r03k02-lf01](https://github.com/anton-sap/otus-dc-network-design/blob/master/HW-5%20-%20VxLAN%20EVPN%20L2/files/no-osl-dc1-f1-r03k02-lf01.txt)
{% endfile %}

{% file src="/files/vfKWQoMc0HPKusnYzG4q" %}
[no-osl-dc1-f1-r03k02-lf02](https://github.com/anton-sap/otus-dc-network-design/blob/master/HW-5%20-%20VxLAN%20EVPN%20L2/files/no-osl-dc1-f1-r03k02-lf02.txt)
{% endfile %}

{% file src="/files/xIjvcoHMKs5iP2gbqzyq" %}
[no-osl-dc1-f1-r03k03-lf01](https://github.com/anton-sap/otus-dc-network-design/blob/master/HW-5%20-%20VxLAN%20EVPN%20L2/files/no-osl-dc1-f1-r03k03-lf01.txt)
{% endfile %}

{% file src="/files/lT1g3uQAFFKVIiS1rH1i" %}
[no-osl-dc1-f1-r03k03-lf02](https://github.com/anton-sap/otus-dc-network-design/blob/master/HW-5%20-%20VxLAN%20EVPN%20L2/files/no-osl-dc1-f1-r03k03-lf02.txt)
{% endfile %}

#### Проверка настроек

Ниже приложены скриншоты с устройства `no-osl-dc1-f1-r03k03-lf02`, к которому подключен тестовый PC на Ubuntu. С этого PC запушены ping до всех гипервизиров: 192.168.10.1, 192.168.10.2, 192.168.10.3

Вывод команды `show interfaces vxlan 1`

<figure><img src="https://2583098987-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjvdcVCWSiIRM9xAgAyMA%2Fuploads%2FUoYHdyWi8EZEM2Ww2Dgg%2Fimage.png?alt=media&amp;token=19d8cbae-7043-4a57-95f8-2893caf24314" alt=""><figcaption><p><code>show interfaces vxlan 1</code></p></figcaption></figure>

Вывод команды `show vxlan vtep`

<figure><img src="https://2583098987-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjvdcVCWSiIRM9xAgAyMA%2Fuploads%2FNpCIJW4niwzWwExA0Psd%2Fimage.png?alt=media&amp;token=72153d0d-f6ff-45f7-950e-a6988515cf37" alt=""><figcaption><p><code>show vxlan vtep</code></p></figcaption></figure>

Вывод команд `show mac address-table` и `show vxlan address-table`

<figure><img src="https://2583098987-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjvdcVCWSiIRM9xAgAyMA%2Fuploads%2FSdH3r3aMQeLIgZblznoV%2Fimage.png?alt=media&amp;token=42dba987-e748-4c50-9b52-d2376b75b6be" alt=""><figcaption><p><code>show mac address-table</code> и <code>show vxlan address-table</code></p></figcaption></figure>

Вывод команды `show bgp evpn route-type mac-ip`

<figure><img src="https://2583098987-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjvdcVCWSiIRM9xAgAyMA%2Fuploads%2F0clD0gxODeGMUnvCMz9s%2Fimage.png?alt=media&amp;token=4f9747de-1577-42de-9f67-eeb660e0c023" alt=""><figcaption><p><code>show bgp evpn route-type mac-ip</code></p></figcaption></figure>

#### Тестирование на отказ

**Сценарий 1. Перезагрузка одного из Spine-коммутаторов**

В данном сценарии перезапускаем `no-osl-dc1-f1-r01k01-spn01`

<figure><img src="https://2583098987-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjvdcVCWSiIRM9xAgAyMA%2Fuploads%2FnllSR0NIlXq4jwdSN7It%2Fimage.png?alt=media&amp;token=e0c7c4e4-602b-4258-a85b-22162cefc077" alt=""><figcaption></figcaption></figure>

Проверяем устройство `no-osl-dc1-f1-r03k03-lf02`

<figure><img src="https://2583098987-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjvdcVCWSiIRM9xAgAyMA%2Fuploads%2F603UE1dplssh9jRPQIb5%2Fimage.png?alt=media&amp;token=58c199ca-77e2-4060-b650-0f5b30f4151f" alt=""><figcaption></figcaption></figure>

Видим в логе сообщения

`Dec 13 07:08:14 no-osl-dc1-f1-r03k03-lf02 Bgp: %BGP-3-NOTIFICATION: sent to neighbor 10.16.2.10 (VRF default AS 4200131329) 6/10 (Cease/BFD down <Hard Reset>) 0 bytes`

И проверяем доступность гипервизоров с тестового PC

<figure><img src="https://2583098987-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjvdcVCWSiIRM9xAgAyMA%2Fuploads%2FRm2M71scxyUc4r6qWy8d%2Fimage.png?alt=media&amp;token=07804925-e51b-4952-a158-2512c3e689d1" alt=""><figcaption></figcaption></figure>

**Сценарий 2. Перезагрузка одного из Leaf-коммутаторов в паре Rack 1**

В данном сценарии перезапускаем `no-osl-dc1-f1-r03k01-lf01`

<figure><img src="https://2583098987-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjvdcVCWSiIRM9xAgAyMA%2Fuploads%2Fkp9zUFoogti9NnGEBzvh%2Fimage.png?alt=media&amp;token=b2099ded-27cf-441d-ba83-8132b9d927f2" alt=""><figcaption></figcaption></figure>

Проверяем доступность гипервизора и он не доступен xD

<figure><img src="https://2583098987-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjvdcVCWSiIRM9xAgAyMA%2Fuploads%2FhmQgVfEhONA5BEoXW1iQ%2Fimage.png?alt=media&amp;token=4aa2395e-5ff6-4e74-bf70-727ef9bb9c16" alt=""><figcaption></figcaption></figure>

Пробуем Suspend Link в EVE-NG

<figure><img src="https://2583098987-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjvdcVCWSiIRM9xAgAyMA%2Fuploads%2FMwFgoGSKHIRPYe8vklJP%2Fimage.png?alt=media&amp;token=fef31ab8-3854-46ca-9212-3e44d1e34c80" alt=""><figcaption></figcaption></figure>

Убеждаемся, что гипервизор доступен через Leaf `no-osl-dc1-f1-r03k01-lf02`

<figure><img src="https://2583098987-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjvdcVCWSiIRM9xAgAyMA%2Fuploads%2F8Oo82T2NkQEuBnutVqoV%2Fimage.png?alt=media&amp;token=3f4974b9-c94c-48b3-8d80-44e08fdef402" alt=""><figcaption></figcaption></figure>

В данном случае обращаем внимание на вывод:

```
    * >Ec    RD: 10.16.1.2:10 mac-ip 0050.5666.b8eb
    10.16.4.2             -       100     0       4200131329 4200131332 i
    *  ec    RD: 10.16.1.2:10 mac-ip 0050.5666.b8eb
       10.16.4.2             -       100     0       4200131329 4200131332 i
```

Это значит, что mac-адрес 0050.5666.b8eb стал доступен через leaf `no-osl-dc1-f1-r03k01-lf02`

А вывод команды `show vxlan address-table`:

```
              Vxlan Mac Address Table
    ----------------------------------------------------------------------
    
    VLAN  Mac Address     Type      Prt  VTEP             Moves   Last Move
    ----  -----------     ----      ---  ----             -----   ---------
      10  0050.5660.0d45  EVPN      Vx1  10.16.4.5        1       0:02:21 ago
      10  0050.5662.ee8e  EVPN      Vx1  10.16.4.4        1       0:02:22 ago
      10  0050.5666.b8eb  EVPN      Vx1  10.16.4.2        2       0:01:01 ago
    Total Remote Mac Addresses for this criterion: 3
```

Говорит о том, что mac-адрес переезжал и был получен через другой VTEP

### Послесловие

Отличное задание!

Хочу выразить благодарность кураторам курса за наводящие ответы и неравнодушным однопоточникам за подсказку при траблшутинге. Особенно за команду `neighbor SPINE-PEERS send-community extended`, без которой не работало вообще ничего :xD
