Multicast-настройка VXLAN в Linux | OTUS

Курсы

Программирование
iOS Developer. Basic
-23%
Python Developer. Professional
-13%
Golang Developer. Professional
-17%
Python Developer. Basic
-16%
iOS Developer. Professional
-13%
C# ASP.NET Core разработчик
-18%
Unity Game Developer. Professional
-11%
React.js Developer
-12%
Android Developer. Professional
-7%
Software Architect
-12%
C++ Developer. Professional
-8%
Разработчик C#
-8%
Backend-разработчик на PHP
-8%
Архитектура и шаблоны проектирования
-12%
Программист С Разработчик на Spring Framework MS SQL Server Developer AWS для разработчиков Cloud Solution Architecture Разработчик голосовых ассистентов и чат-ботов Vue.js разработчик VOIP инженер Нереляционные базы данных Супер - интенсив по паттернам проектирования Супер-практикум по использованию и настройке GIT IoT-разработчик Advanced Fullstack JavaScript developer Супер-интенсив Azure
Инфраструктура
Мониторинг и логирование: Zabbix, Prometheus, ELK
-17%
DevOps практики и инструменты
-18%
Архитектор сетей
-21%
Инфраструктурная платформа на основе Kubernetes
-22%
Супер-интенсив «IaC Ansible»
-16%
Супер-интенсив по управлению миграциями (DBVC)
-16%
Administrator Linux. Professional
-5%
Administrator Linux.Basic
-10%
Супер-интенсив «ELK»
-10%
Базы данных Сетевой инженер AWS для разработчиков Cloud Solution Architecture Разработчик голосовых ассистентов и чат-ботов Внедрение и работа в DevSecOps Супер-практикум по работе с протоколом BGP Супер - интенсив по паттернам проектирования Супер - интенсив по Kubernetes Супер-интенсив «СУБД в высоконагруженных системах»
Специализации Курсы в разработке Подготовительные курсы
+7 499 938-92-02

Multicast-настройка VXLAN в Linux

VXLAN (Virtual eXtensible Local Area Network) – это оверлейная сеть, предназначенная для передачи Ethernet-трафика по существующей (масштабируемой и высокодоступной) IP-сети с одновременным размещением множества пользовательских групп. Именно такое определение мы увидим, если ознакомимся с технической спецификацией RFC 7348. В этой статье мы рассмотрим стандартную настройку сети VXLAN в Линукс в IP-сети мультивещания.

VXLAN вполне себе реализован в Linux, а уже начиная с версии 3.12, обеспечивается поддержка как мультивещания (multicast), так и одноадресной передачи (unicast), ну и, разумеется, IPv6 и IPv4. Так как традиционно VXLAN работают с применением групп мультивещания, о них и поговорим.

Вообще, термин “оверлейная” означает, что сеть VXLAN создаёт логические сети поверх физических: в нашем случае — логические сети L2 поверх IP-сети. В результате VXLAN имеет основные характеристики оверлейных сетей: • связь устанавливается между 2-мя конечными точками туннеля (VXLAN Tunnel Endpoints или VTEP); • в сети VXLAN оригинальные пакеты инкапсулируются в новый заголовок. К примеру, оверлейная технология IPSec VPN инкапсулирует в IP-заголовок оригинальный IP-кадр.

Перейдём к способам конфигурации VXLAN и рассмотрим пример развёртывания:

lab_2_v2_1-1801-4ac611.svg

Для иллюстрации наших примеров будем использовать следующие настройки: • транспортная IP-сеть (масштабируемая и высокодоступная); • три Linux-моста в качестве VTEP; • четыре сервера, находящиеся в общем Ethernet-сегменте.

VXLAN-туннель распределяет отдельные сегменты Ethernet по 3-м мостам, предоставляя тем самым единый виртуальный Ethernet-сегмент, где с одного хоста (к примеру, H1) можно связаться с остальными хостами, сделав это напрямую.

Screenshot_25-1801-40b438.png

Стандартная настройка VXLAN

В случае стандартного развёртывания, VXLAN использует IP-группу мультивещания (multicast) в целях соединения c другими VTEP:

Screenshot_26-1801-a227bb.png

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

Каждый VXLAN-сегмент связан с 24-битным ID, VXLAN Network Identifier либо VNI. В нашем случае в качестве VNI по дефолту указан id 100.

Когда сеть VXLAN впервые реализовали в Linux 3.7, порт UDP не был определен. Ряд вендоров использовали 8472, в результате чего Linux стал применять то же значение. Дабы не нарушать уже существующие конфигурации, такое значение применяется по умолчанию. Следовательно, если вам надо использовать порт, назначенный IANA, нужно точно указать его посредством dstport 4789.

Раз мы используем multicast, следует указать группу мультивещания (group ff05::100) и, разумеется, физическое устройство (dev eth0). При применении multicast значение TTL по дефолту равняется единице. Если же ваша multicast-сеть задействует какую-нибудь маршрутизацию, значение надо немного увеличить, допустим, как в примере выше — ttl 5.

Устройство vxlan100 играет функцию транспортного устройства для моста с удалёнными VTEP в виде виртуальных портов: • оно обеспечивает рассылку широковещательных, одноадресных и многоадресных (BUM) кадров всем VTEP, применяя группу мультивещания; • оно обеспечивает обнаружение связи MAC-адресов Ethernet с IP-адресами VTEP, изучая для этого адреса источников кадров.

Ниже отображена общая конфигурация с применением базы MAC (FDB, Forwarding Database) моста Линукс (с изучением локальных МАС-адресов) и FDB устройства VXLAN (с изучением удалённых МАС-адресов):

vxlan_bridge_v2_1-1801-40abe3.svg

Используя команду bridge, вы сможете посмотреть содержимое FDB на устройстве VXLAN. Когда MAC-адрес назначения существует, кадр посылается VTEP, который с ним связан (если речь идёт об одноадресной сети). Нулевой адрес применяется лишь в том случае, если МАС-адрес назначения не обнаружен.

Screenshot_27-1801-f00535.png

Какие преимущества несёт использование VXLAN в IP-сети мультивещания: • автоматическое обнаружение других VTEP внутри одной multicast-группы; • эффективное применение полосы пропускания (репликация пакетов осуществляется как можно позднее); • дизайн отличается децентрализованностью и не требует управления.

По материалам статьи «VXLAN & Linux».

Не пропустите новые полезные статьи!

Спасибо за подписку!

Мы отправили вам письмо для подтверждения вашего email.
С уважением, OTUS!

Автор
0 комментариев
Для комментирования необходимо авторизоваться