Краткий обзор стандарта EVPN (RFC 7432)
Пересказ статьи с блога rickmur.com
EVPN или Ethernet VPN - это новый стандарт, который наконец то официально задокументирован в RFC. Многие производители работают над реализацией этого стандарта со времени появления первых черновых версий, а Juniper уже использовал похожую технологию в своей системе QFabric. RFC 7432 был ранее известен как draft-ietf-l2vpn-evpn. EVPN изначально позиционировался как технология Data Center Interconnect, однако уже сейчас используется не только для объединения дата-центров, но и внутри них.
Зачем?
Объединение дата-центров исторически сложно реализовывать в силу особенностей Layer 2 трафика и ограниченных возможностей по его контролю и управлению. На сегодняшний день, если вы хотите объединить дата-центры, у вас есть несколько вариантов, которые часто не масштабируется или являются проприетарными. Несколько примеров:
- Темное волокно
- Каналы xWDM
- L2 сервисы от ISP
- VPLS
- G.8032
- Cisco OTV или другие проприетарные решения
Большинство технологий, таких как каналы xWDM или темное волокно, хорошо работают только в конфигурации point-to-point (2 дата-центра) или с небольшим количеством площадок/сайтов в случае VPLS. Только проприетарные решения имеют control-plane, который управляет изучением и распространением MAC-адресов. Все прочие технологии представляют собой всего-лишь длинные Ethernet кабели, объединяющие разные дата-центры. Не смотря на то, что в VPLS имеется MAC learning, он все равно не подходит для DCI (Data Center Interconnect), т.к. в нем слишком ограниченный функционал по балансировке трафика и он не очень подходит для проброса большого количества VLAN и MAC-адресов между дата-центрами.
Теперь, почему это так опасно?
Большое количество простоев дата-центров случилось из-за отсутствия control-plane, который управлял бы изучением MAC-адресов. Когда возникала проблема наподобие ARP flooding или другого флуда трафика, она распространялась на другие дата-центры через интерконнекты. Для предотвращения данной ситуации, необходимы такие функции как storm-control и т.п. В большинстве случаев, дата-центры размещают в разных регионах для обеспечения высокой доступности, но такие инциденты на Layer 2 сводят на нет все старания.
EVPN решает эту проблему!
Как?
Технически, EVPN представляет из себя еще один address family в Multi Protocol (MP) BGP. Этот новый address family позволяет передавать MAC-адрес так же, как и маршруты в анонсах BGP. Запись может содержать только MAC-адрес или IP адрес + MAC-адрес (ARP запись). Всё это может быть записано в сочетании с тэгом VLAN, либо без него. Формат сообщения изображен на диаграмме ниже.
Преимущества BGP
Сейчас, сиюминутная выгода использования протокола BGP для этого случая заключается в том, что протокол BGP хорошо масштабируется. У нас не возникнет никаких проблем при передаче сотен тысяч MAC адресов в анонсах BGP.
Коммутация L2 трафика по всем активным маршрутам
Второе преимущество заключается в том, что мы имеем информацию о MAC-адресах в нашей таблице маршрутизации и мы можем производить коммутацию на её основе. Это означает, что мы можем использовать несколько активных путей между центрами обработки данных и не привязаны к одному линку (который имеет место во всех ранее упомянутых технологиях Data Center Interconnect). Единственный вид трафика, который будет ограничен 1 линком, это так называемый BUM трафик (Broadcast, Unknown unicast и Multicast). Для BUM трафика, на каждый процесс EVPN назначается Designated Forwarder (DF). Эта технология не нова и также встречается в протоколах таких как TRILL и других проприетарных реализациях.
ARP и Unknown Unicast
ARP трафик будет обрабатываться иначе, чем остальной L2 трафик в интерконнекте. В первую очередь, включается Proxy-ARP на всех интерфейсах, где включен EVPN. Пограничный шлюз ДЦ будет отвечать на ARP запросы, только тогда, когда он знает ответ на них. Отсюда сразу следует очень важное правило. Когда ARP запрос приходит на IP адрес, который пограничный шлюз не знает, или когда принятый трафик имеет Destination MAC, который ему тоже неизвестен, он отбросит этот трафик! Это немедленно ограничивает unknown unicast флуд в пределах одного дата-центра, который довольно часто является причиной проблем. Пограничный шлюз одного ДЦ сначала должен узнать о MAC адресе или записи ARP от пограничного шлюза в другом ДЦ, прежде чем он разрешит передачу трафика.
Multi-homing (множественная адресация)
Очевидно, мы хотели бы иметь 2 шлюза на границе нашего дата-центра для резервирования. Поэтому у нас должна быть поддержка multi-homing (множественной адресации). EVPN позволяет использовать все возможные варианты multi-homing. Кроме того нам нужно ограничить распространение BUM трафика (flooding), почему мы и выбираем выделенный маршрутизатор, называемый Designated Forwarder в каждом процессе EVPN, который несет ответственность за получение и рассылку BUM трафика. Нам так же нужна поддержка метода расщепления горизонта (split-horizon), для предотвращения ситуации, когда трафик, исходящий из нашего дата-центра, возвращался бы обратно через другие пограничные шлюзы в нем. Это делается при помощи поля ESI (Ethernet Segment Identifier) в анонсах BGP. ESI является идентификатором каждой площадки, где находится дата-центр. Оба шлюза в одном дата-центре должны иметь одинаковый номер ESI, что бы предотвратить возникновение петель. Остальные дата-центры должны использовать другие номера ESI. Это означает, что каждый ДЦ должен иметь только 1 номер ESI.
MAC Mobility
Функционал EVPN разработан для очень быстрой сходимости. Частой проблемой в дата-центрах является так называемый MAC flapping. Это ситуация, когда виртуальная машина перемещается на другой физический сервер со своим MAC адресом, который должен быть снова изучен на новом порту, а старая запись при этом должна быть удалена. В рамках одного L2 домена это происходит довольно быстро, что вызывает проблемы дублирования MAC-адреса в сети. Когда одна и та же запись изучена на разных портах и возникает MAC Flapping. EVPN решает эту проблему введением счетчика перемещений MAC-адреса с места на место в ДЦ. Когда это происходит слишком часто в течение определенного периода времени (по умолчанию 5 раз в 180 секунд), изучение этого MAC-адреса отключается, пока не истечет таймер. Преимуществом использования счетчика перемещений MAC-адреса является то, что, когда пограничные маршрутизаторы увидят анонс для MAC-адреса с более высоким порядковым номером, они немедленно удалят старую запись, что существенно ускорит время сходимости после переезда виртуальной машины.
Улучшение L3 маршрутизации
Последнее преимущество, которое можно подчеркнуть, это то, что пограничные шлюзы знают где в сети находится хост и используют это для улучшения L3 маршрутизации. Решение о маршрутизации может быть принято как L2 так и L3, потому что шлюзы знают и о маршрутах в сети, и о ARP записях.
Data Planes
В настоящий момент существуют 1 стандарт и 2 проекта, которые базируются на единой технологии EVPN, под EVPN в данном случае подразумевается именно control-plane. Первый - это текущий стандарт RFC7432, где EVPN используется вместе с MPLS в качестве data-plane. Второй проект это EVPN-VXVLAN, где используется тот же control-plane, но в качестве data-plane используется либо VXVLAN, либо другая Overlay технология. Третий проект основан на использовании PBB-инкапсуляции вместе с EVPN в качестве control-plane и MPLS в качестве data-plane.
Что?
Напоследок рассмотрим, какие продукты поддерживают эту технологию и могут её применять. В настоящее время Juniper реализует RFC 7432 (EVPN-MPLS) на своих маршрутизаторах серии МХ, начиная от MX5 и заканчивая MX2020 и на коммутаторах серии EX9200. Функционал EVPN-MPLS предназначен для объединения центров обработки данных (DCI).
Т.к. серия MX имеет полностью программируемые чипы, в Juniper также реализована поддержка нескольких похожих технологий, например VxLAN. Это означает, что мы можем объединить VxLAN сети, Ethernet-bridge домены, L2 псевдо провода и L3 VPN-сети (IRB Интерфейсы) в один EVPN процесс.
Резюме
Все это означает, что теперь у нас есть швейцарский армейский нож, полный инструментов для использования в нашем ДЦ и мы можем соединять вместе различные сетевые приложения в нескольких центрах обработки данных, используя единый уровень абстракции называемый EVPN!
В следующей статье будет продемонстрирована настройка EVPN на платформе MX от Juniper из которой будет видно, как легко сделать оптимальный Data Center Interconnect.
Оригинал rickmur.com