Часть 8. VxLAN. Routing
Цель
Реализовать маршрутизацию между "клиентами" (tentant) через EVPN route-type 5
Ожидаемый результат
Два "клиента" размещены в разных VRF в рамках одной фабрики.
Настроена маршрутизацию между клиентами через внешнее устройство (граничный роутер\фаерволл\etc).
В документации зафиксированы - план работы, адресное пространство, схему сети, настройки сетевого оборудования.
Достижение результата
Введение
В этой части не будет ничего про автоматизацию. Нужно глобально переделывать шаблоны для поддержки multitentant'ости ¯_(ツ)/¯_
Представим, что у нас есть два тентанта - "red" и "green" (они помечены соответствующими цветами в схеме. Внезапно :xD ). Тентантам принадлежат следующие сети:
red
192.168.101.0/24
red
192.168.103.0/24
green
192.168.102.0/24
На leaf'ах настроены anycast gateway на vlan-интерфейсах, а сами интерфейсы определены в соответствующие vrf:
interface Vlan101
vrf red
ip address virtual 192.168.101.254/24
!
interface Vlan102
vrf green
ip address virtual 192.168.102.254/24
!
interface Vlan103
vrf red
ip address virtual 192.168.103.254/24
!
Схема сети
Модернизируем схему и встраиваем в нее NGFW Palo Alto Networks (PAN-OS 11.0.0). FW будет подключен аггрегированным линком в no-osl-dc1-f1-r03k04-lf01 и no-osl-dc1-f1-r03k04-lf02 Оказалось, что PA-VM не поддерживает агрегированные интерфейсы.


Согласно схемы имеем следующие подключения:
NGFW PA-VM
Ethernet 1/1
10.16.2.17/31
no-osl-dc1-f1-r03k04-lf01
Ethernet 3
10.16.2.16/31
red
NGFW PA-VM
Ethernet 1/2
10.16.2.19/31
no-osl-dc1-f1-r03k04-lf01
Ethernet 4
10.16.2.18/31
green
NGFW PA-VM
Ethernet 1/3
10.16.2.21/31
no-osl-dc1-f1-r03k04-lf02
Ethernet 3
10.16.2.20/31
red
NGFW PA-VM
Ethernet 1/4
10.16.2.23/31
no-osl-dc1-f1-r03k04-lf02
Ethernet 4
10.16.2.22/31
green
Файлы конфигураций устройств
Традиционно не вмешиваемся в настройки spine'ов, а работаем только с leaf'ами. Собственно, бОльшая часть конфигурации приходится на border leaf'ы и сам файрвол.
Ниже ссылки на конфиги leaf'ов
Файрвол ничего не файрволит, а только маршрутизирует :)
Для простоты созданы 2 зоны - trust и untrust. В trust помещены все интерфейсы, идущие к leaf'ам, в untrust - вымышленный интерфейс в интернет.
Создана одна единственная политика безопасности, которая разрешает все отовсюду.
Настройки интерфейсов:

Настройки BGP для PAN-OS:
BGP. General
Тут нас интересует включение поддержки 4-byte AS

BGP. Advanced
Здесь я отметил ECMP Multiple AS Support

BGP. Peer Group

BGP. Import
Тут ничего не делал

BGP. Export
Вот тут настроена политика экспорта. Не претендую на изящное и правильное решение, но, как-будто, работает как нужно.
1-ая политика явно разрешает экспорт маршрута 0.0.0.0/0.
2-ая политика запрещает экспорт маршрутов, полученных от пиров. Надеюсь, я правильно интерпретировал настройку.

Таблицы маршрутизации устройств
В итоговом виде таблицы маршрутизации выглядят следующим образом:
no-osl-dc1-f1-r03k04-lf01
sh ip route vrf red
VRF: red
Codes: C - connected, S - static, K - kernel,
O - OSPF, IA - OSPF inter area, E1 - OSPF external type 1,
E2 - OSPF external type 2, N1 - OSPF NSSA external type 1,
N2 - OSPF NSSA external type2, B - Other BGP Routes,
B I - iBGP, B E - eBGP, R - RIP, I L1 - IS-IS level 1,
I L2 - IS-IS level 2, O3 - OSPFv3, A B - BGP Aggregate,
A O - OSPF Summary, NG - Nexthop Group Static Route,
V - VXLAN Control Service, M - Martian,
DH - DHCP client installed default route,
DP - Dynamic Policy Route, L - VRF Leaked,
G - gRIBI, RC - Route Cache Route
Gateway of last resort:
B E 0.0.0.0/0 [200/0] via 10.16.2.17, Ethernet3
C 10.16.2.16/31 is directly connected, Ethernet3
B E 10.16.2.20/31 [200/0] via VTEP 10.16.4.8 VNI 120101 router-mac 50:01:00:a1:60:83 local-interface Vxlan1
B E 192.168.101.5/32 [200/0] via VTEP 10.16.4.5 VNI 120101 router-mac 50:00:00:15:f4:e8 local-interface Vxlan1
C 192.168.101.0/24 is directly connected, Vlan101
B E 192.168.103.6/32 [200/0] via VTEP 10.16.4.6 VNI 120101 router-mac 50:00:00:88:fe:27 local-interface Vxlan1
C 192.168.103.0/24 is directly connected, Vlan103
sh ip route vrf green
VRF: green
Codes: C - connected, S - static, K - kernel,
O - OSPF, IA - OSPF inter area, E1 - OSPF external type 1,
E2 - OSPF external type 2, N1 - OSPF NSSA external type 1,
N2 - OSPF NSSA external type2, B - Other BGP Routes,
B I - iBGP, B E - eBGP, R - RIP, I L1 - IS-IS level 1,
I L2 - IS-IS level 2, O3 - OSPFv3, A B - BGP Aggregate,
A O - OSPF Summary, NG - Nexthop Group Static Route,
V - VXLAN Control Service, M - Martian,
DH - DHCP client installed default route,
DP - Dynamic Policy Route, L - VRF Leaked,
G - gRIBI, RC - Route Cache Route
Gateway of last resort:
B E 0.0.0.0/0 [200/0] via 10.16.2.19, Ethernet4
C 10.16.2.18/31 is directly connected, Ethernet4
B E 10.16.2.22/31 [200/0] via VTEP 10.16.4.8 VNI 12010 router-mac 50:01:00:a1:60:83 local-interface Vxlan1
C 192.168.102.0/24 is directly connected, Vlan102
Вывод указывает на то, что для vrf 'red' маршрут по умолчанию получен через интерфейс Ethernet 3 и следует через FW и его интерфейс Ethernet 1/1, а для vrf 'green' маршрут по умолчанию получен через интерфейс Ethernet 4 и пойдет через FW и интерфейс Ethernet 1/2.
sh ip bgp summary vrf red
BGP summary information for VRF red
Router identifier 10.16.1.7, local AS number 4200131337
Neighbor Status Codes: m - Under maintenance
Neighbor V AS MsgRcvd MsgSent InQ OutQ Up/Down State PfxRcd PfxAcc
10.16.2.17 4 4200131350 3497 4118 0 0 19:28:26 Estab 1 1
sh ip bgp summary vrf green
BGP summary information for VRF green
Router identifier 10.16.1.7, local AS number 4200131337
Neighbor Status Codes: m - Under maintenance
Neighbor V AS MsgRcvd MsgSent InQ OutQ Up/Down State PfxRcd PfxAcc
10.16.2.19 4 4200131350 2957 3318 0 0 19:28:31 Estab 1 1
no-osl-dc1-f1-r03k04-lf02
ip route vrf red
VRF: red
Codes: C - connected, S - static, K - kernel,
O - OSPF, IA - OSPF inter area, E1 - OSPF external type 1,
E2 - OSPF external type 2, N1 - OSPF NSSA external type 1,
N2 - OSPF NSSA external type2, B - Other BGP Routes,
B I - iBGP, B E - eBGP, R - RIP, I L1 - IS-IS level 1,
I L2 - IS-IS level 2, O3 - OSPFv3, A B - BGP Aggregate,
A O - OSPF Summary, NG - Nexthop Group Static Route,
V - VXLAN Control Service, M - Martian,
DH - DHCP client installed default route,
DP - Dynamic Policy Route, L - VRF Leaked,
G - gRIBI, RC - Route Cache Route
Gateway of last resort:
B E 0.0.0.0/0 [200/0] via 10.16.2.21, Ethernet3
B E 10.16.2.16/31 [200/0] via VTEP 10.16.4.7 VNI 120101 router-mac 50:01:00:02:f6:c5 local-interface Vxlan1
C 10.16.2.20/31 is directly connected, Ethernet3
B E 192.168.101.5/32 [200/0] via VTEP 10.16.4.5 VNI 120101 router-mac 50:00:00:15:f4:e8 local-interface Vxlan1
C 192.168.101.0/24 is directly connected, Vlan101
B E 192.168.103.6/32 [200/0] via VTEP 10.16.4.6 VNI 120101 router-mac 50:00:00:88:fe:27 local-interface Vxlan1
C 192.168.103.0/24 is directly connected, Vlan103
sh ip route vrf green
VRF: green
Codes: C - connected, S - static, K - kernel,
O - OSPF, IA - OSPF inter area, E1 - OSPF external type 1,
E2 - OSPF external type 2, N1 - OSPF NSSA external type 1,
N2 - OSPF NSSA external type2, B - Other BGP Routes,
B I - iBGP, B E - eBGP, R - RIP, I L1 - IS-IS level 1,
I L2 - IS-IS level 2, O3 - OSPFv3, A B - BGP Aggregate,
A O - OSPF Summary, NG - Nexthop Group Static Route,
V - VXLAN Control Service, M - Martian,
DH - DHCP client installed default route,
DP - Dynamic Policy Route, L - VRF Leaked,
G - gRIBI, RC - Route Cache Route
Gateway of last resort:
B E 0.0.0.0/0 [200/0] via 10.16.2.23, Ethernet4
B E 10.16.2.18/31 [200/0] via VTEP 10.16.4.7 VNI 12010 router-mac 50:01:00:02:f6:c5 local-interface Vxlan1
C 10.16.2.22/31 is directly connected, Ethernet4
C 192.168.102.0/24 is directly connected, Vlan102
sh ip bgp summary vrf red
BGP summary information for VRF red
Router identifier 10.16.1.8, local AS number 4200131338
Neighbor Status Codes: m - Under maintenance
Neighbor V AS MsgRcvd MsgSent InQ OutQ Up/Down State PfxRcd PfxAcc
10.16.2.21 4 4200131350 2807 3392 0 0 19:42:36 Estab 1 1
sh ip bgp summary vrf green
BGP summary information for VRF green
Router identifier 10.16.1.8, local AS number 4200131338
Neighbor Status Codes: m - Under maintenance
Neighbor V AS MsgRcvd MsgSent InQ OutQ Up/Down State PfxRcd PfxAcc
10.16.2.23 4 4200131350 2798 3146 0 0 19:42:39 Estab 1 1
NGFW PA-VM
show routing route
flags: A:active, ?:loose, C:connect, H:host, S:static, ~:internal, R:rip, O:ospf, B:bgp, Oi:ospf intra-area, Oo:ospf inter-area, O1:ospf ext-type-1, O2:ospf ext-type-2, E:ecmp, M:multicast
VIRTUAL ROUTER: default (id 1)
==========
destination nexthop metric flags age interface next-AS
0.0.0.0/0 0.0.0.0 1 A ~
10.16.1.50/32 0.0.0.0 0 A H
10.16.2.16/31 10.16.2.16 ?B 65336 4200131337
10.16.2.16/31 10.16.2.17 0 A C ethernet1/1
10.16.2.17/32 0.0.0.0 0 A H
10.16.2.18/31 10.16.2.18 ?B 65336 4200131337
10.16.2.18/31 10.16.2.19 0 A C ethernet1/2
10.16.2.19/32 0.0.0.0 0 A H
10.16.2.20/31 10.16.2.20 ?B 65336 4200131338
10.16.2.20/31 10.16.2.21 0 A C ethernet1/3
10.16.2.21/32 0.0.0.0 0 A H
10.16.2.22/31 10.16.2.22 ?B 65336 4200131338
10.16.2.22/31 10.16.2.23 0 A C ethernet1/4
10.16.2.23/32 0.0.0.0 0 A H
192.168.101.0/24 10.16.2.16 A?B E 65336 4200131337
192.168.101.0/24 10.16.2.20 A?B E 65336 4200131338
192.168.101.5/32 10.16.2.16 A?B E 3988 4200131337
192.168.101.5/32 10.16.2.20 A?B E 3988 4200131338
192.168.102.0/24 10.16.2.18 A?B E 65336 4200131337
192.168.102.0/24 10.16.2.22 A?B E 65336 4200131338
192.168.103.0/24 10.16.2.16 A?B E 65336 4200131337
192.168.103.0/24 10.16.2.20 A?B E 65336 4200131338
192.168.103.6/32 10.16.2.16 A?B E 3988 4200131337
192.168.103.6/32 10.16.2.20 A?B E 3988 4200131338
total routes shown: 24
Тут можно проследить, что для префиксов tentant'ов 'red' и 'green' (192.168.101.0/24, 192.168.102.0/24, 192.168.103.0/24) работает ECMP.
Тестирование на отключение одного leaf'а
Тестировать будем пингами с 192.168.103.6 до 192.168.102.5

Смотрим в логи NGFW и отмечаем Ingress и Egress интерфейсы. Видим, что трафик обрабатывается на no-osl-dc1-f1-r03k04-lf02


Отключаем leaf! (/) (°,,°) (/)
После перестроения маршрутов видим, что трафик пошел через leaf no-osl-dc1-f1-r03k04-lf01
Это видно по Ingress и Egress интерфейсам. Теперь это ethernet1/1 и ethernet1/2, соотвественно:

Выводы
Таким образом можно сделать следующие выводы:
маршрутизация между сетями внутри одного tentant'а отработает внутри EVPN фабрики
маршрутизация между сетями разным tentent'ов отработает через NGFW PA-VM за пределами EVPN фабрики за счет анонса префикса 0.0.0.0/0 со стороны NGFW.
удалось добиться какой-то отказоустойчивости по линкам и border leaf'ам.
Last updated