lab06-VxLAN-L3

Задание VxLAN. L3 VNI

Цель: Настроить маршрутизацию в рамках Overlay между клиентами.

Описание/Пошаговая инструкция выполнения домашнего задания: В этой самостоятельной работе мы ожидаем, что вы самостоятельно:

Настроите каждого клиента в своем VNI Настроите маршрутизацию между клиентами. Зафиксируете в документации - план работы, адресное пространство, схему сети, конфигурацию устройств

Схема стенда

stand-plan

Стенд делаем по принципу - хосты linux, leaf - frr, spine - eos (arista)

Распределение адресного пространства для Underlay

План составлен с учетом 10.x.y.z, где x - номер DC, y - номер spine, z - по очереди для подключения leaf Адреса для хостов - 172.16.x.z/24, где x - номер leaf, z - по порядку адрес хоста, на leaf ip .1 Адреса loopback 192.168.a.b/32, где a - 1 для spine, 2 - для leaf, b - номер spine, leaf по порядку Адресацию ipv6 делаем по прицнипу из fd00::[IPv4]

Interconnect ipv4 ipv6

Device A
Interface A
IPv4 A
IPv6 A
Device B
Interface B
IPv4 B
IPv6 B

Spine-1

Eth1

10.1.1.0/31

fd00::10:1:1:0/127

Leaf-1

Eth1

10.1.1.1/31

fd00::10:1:1:1/127

Spine-1

Eth2

10.1.1.2/31

fd00::10:1:1:2/127

Leaf-2

Eth1

10.1.1.3/31

fd00::10:1:1:3/127

Spine-1

Eth3

10.1.1.4/31

fd00::10:1:1:4/127

Leaf-3

Eth1

10.1.1.5/31

fd00::10:1:1:5/127

Spine-2

Eth2

10.1.2.0/31

fd00::10:2:1:0/127

Leaf-1

Eth2

10.1.2.1/31

fd00::10:2:1:1/127

Spine-2

Eth2

10.1.2.2/31

fd00::10:2:1:2/127

Leaf-2

Eth2

10.1.2.3/31

fd00::10:2:1:3/127

Spine-2

Eth3

10.1.2.4/31

fd00::10:2:1:4/127

Leaf-3

Eth2

10.1.2.5/31

fd00::10:2:1:5/127

Host-1

Eth1

172.16.1.11/24

fd00::172:16:1:b/116

Leaf-1

Eth3

access vlan red

access vlan red

Host-2

Eth1

172.16.2.12/24

fd00::172:16:2:c/116

Leaf-2

Eth3

access vlan blue

access vlan blue

Host-3

Eth1

172.16.1.13/24

fd00::172:16:3:e/116

Leaf-3

Eth3

access vlan red

access vlan red

Host-4

Eth1

172.16.2.14/24

fd00::172:16:4:d/116

Leaf-3

Eth4

access vlan blue

access vlan blue

loopback

Device
Loopback ipv4
loopback ipv6

Spine-1

192.168.1.1

fd00::192:168:1:1

Spine-2

192.168.1.2

fd00::192:168:1:2

Leaf-1

192.168.2.1

fd00::192:168:2:1

Leaf-2

192.168.2.2

fd00::192:168:2:2

Leaf-3

192.168.2.3

fd00::192:168:2:3

Vlan-if

Device
VLAN id
VLANif ipv4
VLANif ipv6
VARP ipv4

Leaf-1

1000

172.16.1.3/24

fd00::172:16:1:3/116

172.16.1.100/24

Leaf-2

1001

172.16.2.4/24

fd00::172:16:2:4/116

172.16.2.100/24

Leaf-3

1000

172.16.1.5/24

fd00::172:16:1:5/116

172.16.1.100/24

Leaf-3

1001

172.16.2.5/24

fd00::172:16:2:5/116

172.16.2.100/24

Собираем топологию на базе ospf+ibgp. Area ospf 0, bgp as 65500

Запуск лабараторной в среде netlab

Особенностей в запуске не было, для того чтобы не мешать в одну кучу сервисы и транспорт, ввел vrf - user в который поместил оба vlan-if что позволит хостам общаться между собой. Так же так как в основном я работаю с решением centralized gateway, когда l3 приземляется на border-leaf, решил попробовать distributed gateway, чтобы посмотреть как оно настраивается и forwadит. Единственное модуль gateway, обеспечивающий работу протоколов fhrp растягивает только ipv4 адрес между оборудованием, попытки подружить его с ipv6 не очень получились.

Конфиг-файлarrow-up-right или под катом

chevron-righttopology.ymlhashtag

Проверка работы

Именно в этом этапе и пришла идея засунуть в vrf хосты(сервера), чтобы можно было смотреть и показывать таблицы роутинга без перемешивания. Исходя из топологии у нас все хосты должны видеть друг друга, включая interface vlan на всех коммутаторах.

chevron-righth1 pingshashtag

С других хостов пинговать смысла наверное нет, т.к. все видят всех, и имеют общую таблицу маршрутизации, вот она с leaf-3(там более показательно так как на нем оба vlan)

chevron-rightleaf-3 show ip route vrf userhashtag

Как видим у нас дублируются маршруты, происходит это потому что bgp evpn у нас поднят и на ipv4 и на ipv6. Уж не знаю поднимает ли кто фабрику с dual-stack evpn, но в целом идея интересная. Надо бы попробовать собрать смешанную фабрику где spine-1 ipv4 only, spine-2 ipv6 only, но отложим эксперимент на другой раз. Ниже выводы подтверждающие тезис о дублировании

chevron-rightleaf-3 show ip route vrf userhashtag

Все вернулось на свое место. Кстати по умолчанию ipv6 peer для evpn на аристах работать не захотел, пришлось поправить темплейт арист для настройке в файле usr/local/lib/python3.10/dist-packages/netsim/ansible/templates/evpn/eos.j2

Раз роутинг между хостами заработал, а ведь ради этого и собирались, посмотрим как видят происходящее фабрика.

Вот что показывает spine-1 о наших evpn

chevron-rightspine-1 show evpnhashtag

Получается у нас есть 3 vni - 101000, 101001 l2 домен, и 10000 который bindится к vrf user. То есть у нас symmetric IRB.

Вот что мы увидим если заглянем в wireshark на leaf-3 То есть в случае когда у нас идет взаимодействие в рамках одного l2 домена используется 1 vxlan, а когда нужно межвзаимодействие между разными то другой. Если честно то я не очень уверен, что это должно работать именно так, но очень похоже на правду. То есть vlan-if и нужные vni мы заводим только на тех leaf к которым подключены хосты непосредственно в них, а для обмена между ними заводим ip-vrf который и будет маршрутизировать трафик между разными vxlan.

посмотрим в таблицу evpn маршрутов на leaf-1

chevron-rightleaf-1 show bgp evpn routehashtag

В которой и видим маршруты типов 2 и 3 для l2 vni, и маршрут 5го типа для l3 vni.

Конфигурационные файлы устройств:

Spine-1arrow-up-right Spine-2arrow-up-right Leaf-1arrow-up-right Leaf-2arrow-up-right Leaf-3arrow-up-right

Последнее обновление