EVPN
Раз уж мы настраиваем EVPN/VXLAN в рамках стандартной Clos-топологии, то стоит рассмотреть все части этой фразы. И стандартную Clos-топологии мы уже сделали в underlay.
Теперь же время рассмотреть EVPN/VXLAN (netlab поддерживает еще и MPLS, но VXLAN идет дефолтно). За его настройку отвечает отдельный модуль evpn и модуль vxlan.
Так как все лабы проводятся на образах arista, то выберем их подход в построении фабрики, то есть eBGP over eBGP ( ну и потому что iBGP over IGP прост, и нюансов при настройке в netlab почти нет).
Overlay
Для начала настроим bgp, чтобы evpn строился от lo интерфейсов с multihop
plugin: [ebgp.multihop, fabric] # добавим плагин для установления mh сессий
evpn.session: [] # отключаем глобально evpn, чтобы не строил лишнего
bgp.multihop.activate.ipv4: [evpn] # и активируем для mh соседства
bgp.community.ebgp: [standard, extended] # ну extended community, без него не заработает
bgp.sessions.ipv4: [ebgp] # и включаем ipv4 af только для ebgp соседства
# (а то попробует построить ibgp для spine)
bgp.multihop.sessions: # и нужно прописать какие сессии нужно устанавливать
- L1-S1
- L2-S1
- L3-S1
- L1-S2
- L2-S2
- L3-S2Теперь сконфигурируем фабрику
L2VNI
А теперь нужно сделать базовую связанность между хостами
L3VNI
И добавим l3 связанность (symmetric irb):
Теперь хосты из разных vlan могут общаться между собой.
Но есть проблема, на каждом лифе у одинаковых svi свои ip. А хотелось бы anycast. Давайте добавим. Для этого тоже есть отдельный модуль gateway.
Модуль берет последний адрес в сети как адрес для anycast gateway.
External connectivity
Добавим дополнительные роутер, и соединим с L3 в каждом vrf
При включеном bgp в vrf устанавливаются соседства между лифами по svi интерфейсам, а с выключеным не устанавливаются соседства с ext_rtr. Решаемо с помощью netlab config, но не критично в лабораторных.
В итоге получилась такая схема:

Схема сгенерирована с помощью netlab graph и визуализирована в dreampuf.github.io
Последнее обновление