Фабрика Vxlan. Часть 2.5

Всем привет. У меня здесь было интервью и возникла идея следующей части серии статей, посвященный запуску курса «Сетевой инженер» от ОТУС , сделайте его более теоретическим, чтобы ответить на некоторые вопросы, с которыми я столкнулся во время интервью.



Фабрика VxLAN. Часть 2.5

Многие вещи здесь будут скорее базового уровня с точки зрения VxLAN и не должны вызывать затруднений.

  • Часть 1 цикла — L2-связность между серверами
  • Часть 2 серии — Маршрутизация между VNI


I. Откуда структура VxLAN узнает о MAC-адресах?

Да, мы уже разобрались, что MAC- и IP-адреса передаются по маршруту EVPN типа 2. Но как EVPN о них узнает? Все достаточно просто и работает аналогично логике обычного VLAN:
  • Кадр от источника поступает в порт коммутатора (VTEP)
  • Коммутатор, если он не знает исходный MAC-адрес, записывает его в свою таблицу TCAM.
  • Поскольку коммутатор выполняет функцию VTEP, он передает информацию об исходных MAC- и IP-адресах по маршруту EVPN типа 2 (как именно, зависит от заводских настроек.

    В нашем случае используется Route-reflector(RR), поэтому информация отправляется в РР и от него в остальные ВТЭП)



Фабрика VxLAN. Часть 2.5

С источником все понятно, а что делать с Назначением? В конце концов, хост-источник, скорее всего, не знает MAC-адрес назначения и отправит запрос ARP. Появятся два варианта:
  1. не используйте функцию Suppress-ARP
  2. используйте функцию Suppress-ARP
В первом случае все достаточно просто, но не оптимально.

При получении широковещательного запроса VTEP отправит его дальше в пределах VNI, от которого пришел запрос.

То есть этот запрос будет разослан по всей фабрике в виде одноадресных сообщений.



Фабрика VxLAN. Часть 2.5

Во втором случае при получении ARP-запроса VTEP сам отвечает ARP-ответом, и ARP REQ дальше не отправляется.



Фабрика VxLAN. Часть 2.5

Однако эта логика работает только в том случае, если VTEP уже знает MAC-адрес назначения.

Если адрес неизвестен, то пойдем по первому пути.

Более подробно работу и настройку Suppress-ARP я рассмотрел в первый части цикла.



II. Почему используется UDP?

Вопрос не менее интересный и ответ довольно простой.

Для этого вспомним логику фабрики VxLAN. К кадру, поступающему на порт VTEP, добавляется метка VxLAN с номером VNI. Далее полученный кадр упаковывается в UDP, инкапсулируется в новый IP-пакет и передается по сети Underlay. Так почему же исходный кадр с тегом VxLAN нельзя упаковать в IP и почему необходимо использовать UDP? А все из-за одного поля в заголовке IP-протокола — Protocol, которое указывает, какой протокол выше.

Примеры протоколов и их номера ( вики ):

   

ICMP - 1 TCP - 6 UDP - 17 GRE - 47

И в этом весь секрет - у VxLAN нет такого номера, а значит протокол IP не сможет об этом сказать и уважающая себя сеть не пропустит такой пакет, поэтому инженеры обошли эту проблему путем используя протокол UDP.

Фабрика VxLAN. Часть 2.5

Вторая причина использования UDP заключается в методе балансировки трафика, основанном на:
  • протокол
  • src_ip
  • dest_ip
  • src_port
  • dest_port
Спасибо @Карроплан за чаевые.

И тут может возникнуть второй вопрос — а почему не TCP, ведь он такой надежный и хороший? А все потому, что TCP такой надежный и хороший — он гарантирует доставку и для этой гарантии использует жутко длинные таймеры, проверки, регулирование пропускной способности и т. д. В результате TCP дает большую задержку, которая будет особенно заметна при работе VxLAN-клиента структура также использует TCP.

III. Разница между входной репликацией и многоадресной рассылкой

Тема достаточно обширная и дать ответ в виде краткого пояснения невозможно.

Поэтому работа Multicast будет рассмотрена в одной из следующих статей серии.

Однако я попытаюсь дать краткое описание различий между двумя технологиями.

Для начала давайте посмотрим, как передаются пакеты в обоих случаях.

при использовании ingress-репликации — при получении широковещательного трафика (например, ARP-запроса) — запрос инкапсулируется внутри VxLAN и передается каждому VTEP в VxLAN через Unicast-сообщения (например, откажемся от RR).

Поскольку VTEP будет больше 1, широковещательный трафик будет дублироваться:

Фабрика VxLAN. Часть 2.5

В случае использования Multicast каждый VTEP для каждого VNI подписывается на определенную группу Multicast. И теперь при получении широковещательного трафика VTEP инкапсулирует ARP-запрос в IP-пакет. В заголовках IP-пакетов адресом назначения является адрес группы многоадресной рассылки для этого VNI, а адресом источника — IP-адрес интерфейса NVE. Например, VNI 10000 связан с группой многоадресной рассылки 225.1.10.10.

Фабрика VxLAN. Часть 2.5

Таким образом, мы исключаем дублирование широковещательного трафика.

Плюс при правильной оптимизации трафика работа через Multicast будет более масштабируемой.

Единственная сложность заключается в том, что базовая сеть должна поддерживать Multicast-трафик.

Если у вас возник вопрос — Зачем вообще понадобился EVPN, если через Multicast всё может прекрасно работать, ведь это более масштабируемое решение? Здесь довольно сложно дать ответ и вам придется самостоятельно решить, какую технологию использовать.

На данный момент Multicast действительно является более масштабируемым решением.

Но EVPN постоянно совершенствуется и в нем появляются новые типы маршрутов для передачи все большего количества информации о сети для более гибкой настройки.

Кроме того, EVPN построен на основе BGP, а значит, можно использовать все методы оптимизации, которые присутствуют в самом BGP (например, мой стенд уже использует RR для уменьшения BUM-трафика и оптимизации рекламируемой информации).

Это получилась довольно маленькая часть, но думаю она поможет прояснить некоторые моменты в понимании технологии.




OSPF IPv6. Практические навыки


Теги: #cisco #cisco #Сетевые технологии #nexus #EVPN #vxlan
Вместе с данным постом часто просматривают: