Русский
Русский
English
Статистика
Реклама

Cisco nexus

VxLAN фабрика. Часть 3

16.09.2020 14:04:44 | Автор: admin

Привет, Хабр. Заканчиваю цикл статей, посвященных запуску курса "Сетевой инженер" от OTUS, по технологии VxLAN EVPN по маршрутизации внутри фабрики и использовании Firewall для ограничения доступа между внутренними сервисами



Предыдущие части цикла можно найти по ссылкам:



Сегодня продолжим изучать логику маршрутизация внутри фабрики VxLAN. В предыдущей части мы рассматривали маршрутизацию внутри фабрики в рамках одного VRF. Однако в сети может быть огромное количество сервисов-клиентов и всех надо распределить в разные VRF, для разграничения доступа между ними. Дополнительно к сетевому разграничению, у бизнеса может быть потребность подключить Firewall, для ограничения доступа между этими сервисами. Да, нельзя назвать это лучшим решением, однако современные реалии требуют "современных решений".


Рассмотрим два варианта маршрутизации между VRF:


  1. Маршрутизация, не выходя из VxLAN фабрики;
  2. Маршрутизация на внешнем оборудовании.

Начнем с логики маршрутизации между VRF. Есть определенное количество VRF. Чтобы маршрутизировать между VRF, необходимо выделить устройство в сети, которое будет знать обо всех VRF (или части, между которыми нужна маршрутизация).Таким устройством может стать, например, один из Leaf коммутаторов (или все сразу). Выглядеть такая топология будет следующим образом:



Какие недостатки в такой топологии?


Верно, каждый Leaf должен знать обо всех VRF (и всей информации, что есть в них) в сети, что ведет к потере памяти и повышению нагрузке на сеть. Ведь довольно часто каждому Leaf коммутатору не надо знать обо всем, что есть в сети.


Однако рассмотрим такой способ подробнее, так как для небольших сетей такой вариант вполне подойдет (если нет каких-либо специфичных требований бизнеса)


На этом моменте у вас может появится вопрос, как передавать информацию из VRF в VRF, ведь смысл этой технологии как раз в том, что распространение информации должно быть ограничено.


И ответ кроется в таких функциях как export и import маршрутной информации (настройку данной технологии рассматривали во второй части цикла). Кратко повторю:


При задании VRF в AF необходимо указать route-target для import и export маршрутной информации. Указать его можно в автоматическом режиме. Тогда в значение попадет ASN BGP и L3 VNI, привязанный к VRF. Это удобно, когда у вас в фабрике используется только одна ASN:


vrf context PROD20  address-family ipv4 unicast    route-target export auto      ! В автоматическом режиме экспортируется RT-65001:99000    route-target import auto

Однако если у вас больше одной ASN и необходимо передавать маршруты между ними, то более удобным и масштабируемым вариантом будет ручная настройка route-target. Рекомендация в ручной настройке первое число, использовать удобное Вам, например, 9999.
Второе следует сделать равным VNI для этого VRF.


Настроим следующим образом:


vrf context PROD10  address-family ipv4 unicast    route-target export 9999:99000              route-target import 9999:99000    route-target import 9999:77000         ! Пример 1 import из другого VRF    route-target import 9999:77000         ! Пример 2 import из другого VRF

Как выглядит в таблице маршрутизации:


Leaf11# sh ip route vrf prod<.....>192.168.20.0/24, ubest/mbest: 1/0    *via 10.255.1.20%default, [200/0], 00:24:45, bgp-65001, internal, tag 65001(evpn) segid: 99000 tunnelid: 0xaff0114 encap: VXLAN          ! префикс доступен через L3VNI 99000

Рассмотрим второй вариант маршрутизации между VRF через внешнее оборудование, например Firewall.


Можно предположить несколько вариантов работы через внешнее устройство:


  1. Устройство знает, что такое VxLAN и мы можем добавить его в часть фабрики;
  2. Устройство ничего не знает об VxLAN.

На первом варианте останавливаться не будем, так как логика будет практически такая же, как показано выше доводим все VRF до Firewall и на нем настраивает маршрутизацию между VRF.


Рассмотрим второй вариант, когда наш Firewall ничего не знает о VxLAN (сейчас, конечно, появляется оборудование с поддержкой VxLAN. Например, Checkpoint анонсировал его поддержку в версии R81. Почитать об этом можно тут, однако это все на стадии тестирования и нет уверенности в стабильности работы).


При подключении внешнего устройства у нас получается следующая схема:



Как видно по схеме появляется узкое место на стыке с Firewall. Необходимо это учитывать в дальнейшем при планировании сети и оптимизации сетевого трафика.


Однако, вернемся к изначальной задаче маршрутизации между VRF. В результате добавления Firewall мы приходим к тому, что Firewall должен знать обо всех VRF. Для этого на пограничных Leaf так же должны быть настроены все VRF, а Firewall подключаем в каждый VRF отдельным линком.


В результате схема с Firewall:



То есть на Firewall необходимо настроить интерфейс в каждый VRF, находящийся в сети. В целом логика выглядит не сложно и единственное, что может тут не нравится, так это огромное количество интерфейсов на Firewall, но тут пора задуматься об автоматизации.


Хорошо. Подключили Firewall, добавили его во все VRF. Но как теперь заставить трафик с каждого Leaf идти через этот Firewall?


На Leaf, подключенному к Firewall, никаких проблем не возникнет, так как все маршруты локальные:


0.0.0.0/0, ubest/mbest: 1/0    *via 10.254.13.55, [1/0], 6w5d, static       ! маршрут по-умолчанию через Firewall

Однако как быть с удаленными Leaf? Как передать им внешний маршрут по-умолчанию?


Верно, через EVPN route-type 5, как и любой другой префикс по VxLAN фабрике. Однако с этим не все так просто (если мы говорим про cisco, как у других вендоров не проверял)


Анонсировать маршрут по-умолчанию необходимо с Leaf, к которому подключен Firewall. Однако для передачи маршрута, Leaf должен сам его знать. И тут возникает некоторая проблема (возможно только у меня), маршрут необходимо прописать статикой в том VRF, где вы хотите анонсировать такой маршрут:


vrf context PROD10    ip route 0.0.0.0/0 10.254.13.55

Далее в настройке BGP задать этот маршрут в AF IPv4:


router bgp 65001    vrf prod        address-family ipv4 unicast            network 0.0.0.0/0

Однако это не все. Таки образом маршрут по-умолчанию не попадет в семейство l2vpn evpn. Дополнительно к этому необходимо настроить редистрибуцию:


router bgp 65001    vrf prod        address-family ipv4 unicast            network 0.0.0.0/0            redistribute static route-map COMMON_OUT

Указываем какие именно префиксы попадут в BGP через редистрибуцию


route-map COMMON_OUT permit 10  match ip address prefix-list COMMON_OUTip prefix-list COMMON_OUT_GATE seq 10 permit 0.0.0.0/0

Теперь префикс 0.0.0.0/0 попадает в EVPN route-type 5 и передается остальным Leaf:


0.0.0.0/0, ubest/mbest: 1/0    *via 10.255.1.5%default, [200/0], 5w6d, bgp-65001, internal, tag 65001, segid: 99000 tunnelid: 0xaff0105 encap: VXLAN    ! 10.255.1.5 - Виртуальный адрес Leaf(так как Leaf выступают в качестве VPС пары), к которому подключен Firewall

В таблице BGP так же можем наблюдать полученный route-type 5 с маршрутом по-умолчанию через 10.255.1.5:


* i[5]:[0]:[0]:[0]:[0.0.0.0]/224                      10.255.1.5                        100          0 i*>i                   10.255.1.5                        100          0 i

На этом закончим цикл статей посвященных EVPN. В дальнейшем постараюсь рассмотреть работу VxLAN в связке с Multicast,
так как такой способ считается более масштабируемым (на данный момент спорное утверждение)


Если же у вас остались вопросы/предложения на тему, рассмотреть какой-либо функционал EVPN напишите, рассмотрим дополнительно.

Подробнее..

VxLAN фабрика часть 5. Multisite

12.04.2021 14:15:58 | Автор: admin

Привет, Хабр! Наконец заканчиваю цикл статей,посвященных запуску курса"Дизайнер сетей ЦОД"от OTUS, по технологии VxLAN EVPN. И сегодня обсудим реализацию подключений различных ЦОД или сайтов.

Предыдущие части цикла можно найти по ссылкам:

1 часть цикла - L2 связанность между серверами
2 часть цикла - Маршрутизация между VNI
2.5 часть цикла - Теоретическое отступление
3 часть цикла - Подключение внешнего маршрутизатора/firewall
4 часть цикла - Multipod



Сегодня рассмотрим второй способ подключение различных ЦОД - Multisite.

Для начала вспомним как строится Underlay при построении фабрики с помощью Multipod. И снова получаем несколько вариантов построения такой сети. То есть:

  1. Underlay сеть может быть единой и, например, использовать OSPF для IP связанности между всеми устройствами в фабрике.

  2. Underlay повторяет логику BGP для настройки EVPN и каждый POD находится в своей AS, как показано на рисунке ниже

Однако, вспоминая предыдущую часть, приходим к тому, что во всех случаях возникают свои проблемы. Так в 1 случае, при едином OSPF процессе, может появиться слишком большое количество устройств (например более 100-150 устройств) и динамическая маршрутизация станет работать заметно медленнее и больше нагружать сетевые устройства. Во 2-м случае возникает еще больше проблем (ниже указаны не все проблемы, а только основные):

  1. Смена Next-Hop. С использованием eBGP, при выходе update из AS, Next-hop меняется. То есть не забываем делать соответствующие настройки;

  2. Общая проблема для обоих случаев - значение Route-target в автоматическом режиме работать не будет. То есть необходимо использовать статическую настройку, однако это решается автоматизацией таких настроек и сети в целом;

  3. С увеличением количества клиентов, увеличивается и количество MAC/IP адресов и BUM трафик соответственно.

Исходя из перечисленных выше недостатков приходим к тому, что необходимо сегментировать сеть и реализуется это через технологию Multisite.

Для начала обсудим какие преимущества дает сегментация сети:

  1. Уменьшение домена рассылки Broadcast для поиска какого-либо клиента сети;

  2. Упрощается объединение различных подов через сеть интернет;

  3. Проблемы в одном сайте никак не влияют на другой сайт;

  4. Так как теперь каждый сайт независим от другого, то возможно использовать на одном сайте ingress replication, а на другом Multicast. То есть ЦОДы с различными технологиями объединяются без каких-либо проблем миграции.

Осталось разобраться как работает данная технология. Для начала рассмотрим теоретическую часть.

При реализации Multisite в сети появляется еще одна роль устройства - BGW(Border Gateway), которая может быть присвоена Spine, а может стать отдельным устройством в сети. В логической схеме дополнительное устройство встраивается выше Spine, как показано на рисунке ниже:

Но на самом деле, поставить BGW возможно в любое место в сети, главное обеспечить IP связанность

Осталось разобраться как же это все работает. Однако, для начала вернемся к предыдущим частям и вспомним как все работает в рамках одного POD. В одном POD тоннель устанавливается напрямую между VTEP, как показано ниже и LEAF коммутаторы напрямую обмениваются информацией о MAC/IP адресах.

То есть каждый LEAF должен знать о всех VTEP находящихся в его сети.
Теперь, когда вспомнили как работает сеть в рамках одно пода или нескольких, можем перейти к логике Multisite. Для начала приведу общую схему с логикой работы сети. Объяснение происходящего приведу ниже.

Получается что в Multisite тоннель от Leaf строится до BGW, далее BGW строит совершенно другой тоннель до второго BGW, находящего на другом сайте, и далее строится еще один тоннель уже в рамках другого сайта. Именно такая логика работы, когда между сайтами строится отдельный тоннель, позволяет сегментировать сеть, упростить поиск и устранение неисправностей, так как удаленный сайт полностью скрывается за 1 устройством(но рекомендуется использовать как минимум 2 BGW на каждом сайте для отказоустойчивости). Далее перейдем к настройке BGW, так как все остальные устройства не меняют свою настройку и никакие изменения на них не совершаются. Для начала на BGW необходимо включить следующие feature:

feature ospf - для организации Underlay в своем сайте

Настройка самой Underlay сети в данном разделе рассматриваться не будет, так как ничем не отличается от обычной реализации пода. При этом для IP связанности так же можно использовать IP unnumbered или адреса на point-to-point линках с маской /30 или /31.

После настройки Uderlay сети на BGW необходимо указать интерфейс, который смотрит в локальный сайт:

Interface Ethernet1/50description SITE-INTERNALevpn multisite fabric-tracking - указываем где находится локальный сайт

Далее готовим настройки для Overlay сети. Выглядят они практически аналогично настройкам на Leaf коммутаторах. В целом это логично, так как BGW так же имеет роль VTEP.

feature bgpfeature nv overlaynv overlay evpn

После включения необходимых фич, определяем коммутаторов как BGW и привязываем его к номеру сайта. Каждый BGW в одном сайте должен иметь одинаковый идентификатор.

evpn multisite border-gateway <site-id> номер сайта одинаковый у всех BGW в одном сайте

Продолжаем настройку BGW и создаем интерфейс NVE

interface nve1  host-reachability protocol bgp  source-interface loopback1 - как и на LEAF, интерфейс используется для построения тоннеля в рамках своего сайта  multisite border-gateway interface loopback100 - новая настройка, используется для построения тоннеля между сайтами

Если у вас есть несколько BGW(а их должно быть хотя бы 2), то loopback100 должен иметь одинаковый адрес на всех устройствах с этой ролью - anycast адрес для сайта

Далее настраиваем протокол BGP для работы в локальном сайте. Настройка ничем не отличается от настройки на других устройствах в сетевой фабрике:

router bgp 65501  neighbor 10.100.100.201    remote-as 65501    update-source loopback0    address-family l2vpn evpn      send-community      send-community extended   neighbor 10.100.100.202    remote-as 65501    update-source loopback0    address-family l2vpn evpn      send-community      send-community extended

На данном этапе мы произвели настройки необходимые для первого тоннеля между LEAF и BGW

Переходим ко второй части настройки - тоннель между сайтами. Сразу уточню, что этот тоннель всегда должен работать только в режиме ingress replication.

interface Ethernet1/1  evpn multisite dci-tracking - команда указания, что интерфейс является внешним локального сайта и смотрит в сторону второго сайта

Последнее, что осталось настроить - BGP соседство со вторым сайтом:

router bgp 65501  neighbor 10.52.52.52 - удаленный сосед    remote-as 65036    update-source loopback0 - устанавливаем так же с loopback    ebgp-multihop 5    peer-type fabric-external - указываем, что удаленный пир, относится к фабрике в другом сайте    address-family l2vpn evpn      send-community      send-community extended      rewrite-evpn-rt-asn - Так как можем использоваться автоматическая настройки RT, то его необходимо изменить на новое значение

Напомню, что RT - это route-target и в автоматическом режиме формируется из двух значений AS:VNI

Аналогично необходимо завести всех остальных соседей в других сайтах. При этом необходимо настроить Full-Mesh между всеми маршрутизаторами с ролью BGW во всех сайтах. Либо возможно использовать Route-reflector в eBGP. Настройка RR выглядит следующим образом:

router bgp 65036  address-family l2vpn evpn    retain route-target all - принимаем все анонсы с любом RT  template peer OVERLAY-PEERING    update-source loopback0    ebgp-multihop 5    address-family l2vpn evpn      send-community both      route-map UNCHANGED out - запрещаем менять значение атрибута Next-Hop neighbor 10.100.100.21 remote-as 65501    inherit peer OVERLAY-PEERING    address-family l2vpn evpn      rewrite-evpn-rt-asn - так же переписываем значение RT, при автоматическом режиме установки RTroute-map UNCHANGED permit 10 - route-map в котором указываем запрет смены NH  set ip next-hop unchanged 

Этап выше настраивает тоннель между сайтами, как показано на рисунке ниже:

Настройка Multisite, закончена, однако предлагаю рассмотреть варианты работы нескольких BGW в одном сайте. На сегодняшний день доступно 3 вида подключения BGW:

  1. Вариант, что рассмотрели выше, без каких-либо настроек;

  2. VPC BGW - до 2-х устройств;

  3. Anycast BGW - до 4-х устройств.

Первый подход подробно рассматривать не будет, но, замечу, что для его реализации необходимо иметь линк между BGW в рамках одного сайта, как показано ниже.

Далее рассмотрим оставшиеся 2 подхода к реализации BGW и начнем с VPC BGW:

  • только 2 устройства с физическим Peer-link и keepalive link(возможно использовать виртуальный, однако с точки зрения надежности я бы рекомендовал использовать прямой физический канал), что добавляет еще больше линков, нежели в 1 варианте подключения;

  • Используется для небольших внедрений

Настройка VPC ничем не отличается от настройки VPC на Leaf коммутаторах. Так же требуется на интерфейсе Loopback создать secondary адрес, до которого будет строится VxLAN тоннель.

Anycast BGW и тут может возникнуть вопрос, чем же Anycast лучше. Разберемся по порядку. :

  • до 6 устройств BGW в одном сайте;

  • простой сценарий отработки проблем в сети, то есть все устройства независимы друг от друга, в отличии от VPC(да-да, там тоже разный Controle-Plane, однако это не спасает от багов);

  • сеть любой сложности;

  • простое развертывание с нуля устройств BGW, не влияя на сеть в целом.

То есть все устройства BGW Anycast прячутся за одним виртуальным адресом, как показано на рисунке ниже

Настройка мало чем отличается от реализации рассмотренной в начале данного материала:

 interface loopback100 - интерфейс указанный как multisite border-gateway description MULTI-SITE INTERFACE  ip address 10.10.10.10/32 - одинаковый адрес на всех BGW  ip router ospf UNDERLAY area 0.0.0.0 - IP связанность в рамках локального сайта

На этом настройка связанности между сайтами закончена. На момент написания данного материала не получается реализовать mulisite в виртуальной среде. На железе все запускается без особых проблем. Возможно в новых виртуальных образах ситуация исправлена.

Ниже предлагаю пройти опрос, на какой стадии использования VxLAN EVPN вы сейчас находитесь.

Подробнее про работу технологии можно посмотреть в RFC-7432 и в draft-ietf-bess-evpn-overlay, draft-ietf-bess-evpn-prefix-advertisement, draft-ietf-bess-evpn-inter-subnet-forwarding


Современная IT инфраструктура все больше виртуализируется, уплывая в Облака. Модели "все как сервис"- SaaS, PaaS, IaaS используются повсеместно, но все эти решения, по-прежнему используют сети передачи данных и машинные ресурсы для их обработки. За последние 20 лет, сети ЦОД, претерпели множество изменений, с которыми попробуем познакомиться ближе и разобрать основные технологические этапы этой эволюции с присущими им технологиями и архитектурными решениями в рамках бесплатного демо-урока по теме: "Эволюция сетевых технологий в ЦОД".

Записаться на демо-урок

Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru