Автор: Андрей Вишняков vishnya@gmail.com

Сигнализация VPLS: LDP или BGP?

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

Введение

Работы по стандартизации подобных решений ведутся в рамках IETF рабочей группы Layer 2 Virtual Private Networks (l2vpn), которая в частности ставит своей задачей разработку L2 сервисов (Virtual Private LAN Service), имитирующих LAN сеть по IP и MPLS/IP сети оператора. Такая виртуальная LAN сеть позволяет стандартным  Ethernet устройствам взаимодействовать "каждый с каждым", как будто они подключены к одному широковещательному Ethernet сегменту.
В соответствии с определением рабочей группы l2vpn, выделяют следующие направления работ:
В настоящий момент на рассмотрении рабочей группы находятся два предложения к стандартизации (драфт) по сигнализации, это "Virtual Private LAN Service" (draft-ietf-l2vpn-vpls-bgp) [L2VPN-BGP], основанный на протоколе BGP, и " Virtual Private LAN Services over MPLS " (draft-ietf-l2vpn-vpls-ldp) [L2VPN-LDP] на основе LDP.
Сравнение двух подходов будет проводиться по следующим критериям:

Сигнализации VPLS на основе L2VPN-LDP

Драфт описывает использование MPLS или  IP туннелей для передачи трафика VPLS сервисов. Документ определяют дополнительный набор меток (так называемые метки виртуальных каналов - vc-labels), служащих для разделения, демультиплексирования виртуальных каналов (pseudowires),  передаваемых внутри одного туннеля. Отметим (это верно при использовании MPLS как транспортной инфраструктуры), что один или несколько виртуальных каналов могут передаваться по одному MPLS туннелю, несколько путей Label Switch Pass (LSP) могут использоваться для организации одного MPLS  туннеля, к примеру, основной и запасной (standby) пути.
Для сигнализации vc-labels предлагается использовать расширение протокола LDP. PE маршрутизаторы договариваются об использовании vc-labels меток в рамках данной VPLS для определения соответствия полученного пакета какому-либо VPLS сервису, то есть задается соответствие между виртуальным каналом и VPLS.

Рис. N1. Организация LDP сессий (target LDP) между взаимодействующими в рамках организации VPLS устройствами.

Эффективность распространения сигнальной информации

LDP  - сигнальный протокол "точка-точка", с возможностью расширения на основе определения новых TLV соответствий, может использоваться для сигнализации, установления виртуальных каналов между устройствами, взаимодействующих при построении VPLS сети. Если учесть, что для построения некоторой VPLS может быть задействована лишь небольшая часть всех PE маршутизаторов оператора, то намного эффективнее позволить PE устройствам напрямую взаимодействовать друг с другом, чем рассылать сигнальную информацию всем устройствам сети с возможностью дальнейшей фильтрации ими полученных данных.
Достигается эффективность распространения сигнальной информации в смысле минимизации нагрузки на маршрутизаторы, отстутствия "лишнего" трафика в сети за счет увеличения административных накладных.

Эффективность распределением меток

MPLS метки представляют собой довольно ценный ресурс, так как PE маршрутизаторы обычно поддерживают единое пространство меток на устройство (к примеру, это верно для frame-mode интерфейсов согласно RFC 3036). Если учесть, что  MPLS метки используются следующими протоколами:
Вопрос масштабирования требует динамического выделения/возврата меток в пул по запросам от сигнальных протоколов.
Использование LDP полностью устраняет необходимость административного контроля за распределением меток, используемых для сигнализации VPLS, что крайне немаловажно в больших сетях.

Поиск взаимодействующих в рамках VPLS PE устройств

Драфт L2VPN-LDP не определяет механизмов автоматического поиска PE устройств (auto-discovery), взаимодействующих в рамках построения какой-либо VPLS сети. В современных реализаций VPLS сервиса необходимо явно указать - к каким PE маршрутизаторам подключены клиентские устройства. В большинстве случаев на практике для этого используется система управления. В последнем случае механизм auto-discovery будет лишним, привнесет дополнительную сложность в протокол сигнализации и затруднит отладку.
Отметим, что драфт не отрицает возможности использования механизмов автоматического поиска взаимодействующих устройств на основе, к примеру, BGP или RADIUS.
На данный момент все производители оборудования, реализующие VPLS на базе LDP,  разработали системы управления автоматизирующие поиск, настройку PE устройств для организации L2 сервисов.

Масштабируемость

Архитектура VPLS предполагает "плоскую" или иерархическую топологию. В случае "плоской" топологии необходима организация IP или IP/MPLS туннелей и установление LDP сессий между всеми PE устройствами (target-LDP сессии) для согласования VC меток виртуальных каналов (pseudo-wires). В данном случае вопрос масштабируемости следует рассматривать с позиции числа target-LDP сессий, которые могут поддерживать PE устройства. Если число подобных сессий ограничено производительностью маршрутизаторов, то единственным выходом наращивания сети является иерархическая архитектура, ограничивающая число устройств в полносвязном ядре. Как видно на рисунке, полносвязный граф LDP сессий и IP/MPLS туннелей между PE устройствами заменен на 'hub' ядро и 'spoke' ответвления в сети оператора. Иерархический VPLS использует протокол LDP для установления hub и spoke соединений. Подобный подход за счет единого сигнального протокола и использования IP/MPLS во всей сети предоставляет унифицированный механизм установления соединений, резервирования туннелей, обеспечения качества сервиса и администрирования.

Рис. N2. Минимизация числа target-LDP сессий при переходе от полносвязной топологии к иерархической.
Иерархическая структура позволяет переложить функциональность spoke маршрутизаторов на более дешевые устройства, поддерживающие MPLS, LDP сигнализацию и pseudo-wire туннели до маршрутизаторов ядра. В конечном счете, использование MPLS в сети доступа позволяет избежать использования протоколов подобных Spanning-Tree.

Использование компонент, проверенных на практике

В то время как сам по себе сервис VPLS является относительно новым, использование протокола LDP для сигнализации в VPLS идентично подходу, применяемому для сигнализации Virtual Leased Line сервисов (сервисов передачи Ethernet фреймов "точка-точка"), которые в настоящее время реализованы большинством производителей и довольно успешно применяются на практике. Более того, протокол LDP широко используется для сигнализации транспортных LSP при построении  L3 VPN (RFC2547).  
В качестве референса приведем таблицу, отражающую применение расширений стандартных протоколов к построению новых VPN сервисов.
Сервис
Сигнализация
LSP-сигнализация
Механизмы автоматического определения устройств PE
Virtual Leased Line
LDP
RSVP-TE/LDP
нет
VPLS-LDP
LDP
RSVP-TE/LDP
любой
VPLS-BGP
BGP
RSVP-TE/LDP BGP
RFC2547bis
BGP
RSVP-TE/LDP BGP

Организация VPLS сервиса поверх сетей нескольких операторов

Требования к построению VPLS поверх сетей нескольких операторов:
  1. Архитектура: Архитектура должна быть эффективна в смысле сигнализации и репликации пакетов, то есть эффективность напрямую зависит от необходимости установления туннелей между всеми PE устройствами через границу сетей операторов. Действительно, если все PE устройства соединены MPLS туннелями, то в случае передачи широковещательного пакета, он будет передан по каналу связи между операторами несколько раз. Использование LDP spoke сигнализации при иерархическом построение VPLS, очень кстати оказывается при построении межоператорского VPLS сервиса.  Как показано на рисунке, межоператорская VPLS может быть построена на основе определения нового уровня иерархии между пограничными PE устройствами операторов.

    Рис. N3. Организация межоператорской сети как следствие развития концепции иерархической VPLS.
  2. Уникальный глобальный идентификатор: для организации любого междоменного или межоператорского сервиса необходим глобальный уникальный идентификатор. В случае VPLS-LDP используется 32 битный параметр VC-id, его значения должны совпадать в сетях двух операторов для одной и той же VPLS.
  3. Разрешение петель: драфт VPLS-LDP устраняет необходимость в Spanning Tree протоколе за счет реализации split-horizon коммутации пакетов на full-mesh соединениях. Например, если пакет получен на одном full-mesh виртуальном канале (виртуальный канал образует hub сети), то PE устройство не пересылает пакет никому другому в ядре, так как считает, что все устройства получили данный пакет благодаря полносвязной схеме туннелей, но в тоже время пересылает пакет в 'spoke' ответвление.
  4. Безопасность: так же как и в BGP, MD5 аутентификация может использоваться в LDP для аутентификации сессий между PE маршрутизаторами на границе доменов операторов.
Использование LDP сигнализации для организации межоператорского VPLS сервиса не требует разработки дополнительных процедур, усложнения настройки, однако необходимо отметить, что способы резервирования соединения между сетями операторов в настоящее время не стандартизованы и большинство производителей оборудования в этой области реализуют собственные подходы.

Инструментарий управления и отладки

Для администрирования VPLS сервиса необходимы средства отладки сигнализации, передачи Ethernet фреймов и заучивания MAC адресов. Драфт stokes-vkompella определяет механизмы VPLS Ping и VPLS Traceroute, позволяющие проверить:
Так как LDP сигнализация применяется и в ядре сети, и на границе, то нет необходимости разрабатывать отдельный механизм отладки в случае иерархической VPLS.

Сигнализация VPLS на основе L2VPN-BGP

Драфт L2VPN-BGP описывает механизм автоматического определения PE устройств, взаимодействующих при построении VPLS сервисов, и сигнализации меток виртуальных каналов на основе расширения протокола BGP. Данное расширение, а именно MP-BGP, уже используется при построении L3 VPN (RFC 2547). Рассмотрим, насколько протокол BGP применим для сигнализации VPLS.

Эффективность распространения сигнальной информации

При использовании протокола BGP для распространения сигнальной информации необходима full-mesh связь между всеми PE маршрутизаторами, этого можно избежать при использовании Route Reflectors (RR). В последнем случае каждый маршрутизатор должен поддерживать только одно TCP соединение с RR или несколько, в случае кластера RR для целей обеспечения отказоустойчивости. На первый взгляд проблема масштабирования сети устранена, однако объем информации ранее передаваемой по множеству full-mesh соединений теперь передается по одному, то есть достигнута только эффективность конфигурации, но не объема передаваемых данных.
Рисунок отражает объем реплицируемых данных в случае всего лишь трех VPLS сервисов, в среднем образуемых 3 PE маршрутизаторами.

Рис. N4. Объем реплицируемых данных растет как (число PE)*(среднее число VPN на устройство)
В настоящее время BGP используется как протокол маршрутизации сети Интернет, где доказал свою эффективность при распространении сотен тысяч IP маршрутов - определенно неэффективность распространения сигнальной информации не скажется на работоспособности сети, возможно несколько замедлит скорость сходимости BGP, но это в большинстве случаев не критично. Преимуществом является уменьшение ручной настройки.

Эффективность распределением меток, сигнализирующих виртуальные каналы

Принцип работы протокола BGP определяет режим передачи сигнальной информации point-to-multipoint, что означает принципиальную невозможность распределять метки, сигнализирующие виртуальные каналы  на основе механизма "запрос-ответ" (в принципе, конечно, можно, но с учетом того, что подобная информация будет рассылаться всем PE устройствам сети это неэффективно). Решением данной проблемы является анонсирование PE маршрутизаторами диапазона меток, что могут использоваться взаимодействующими устройствами при организации виртуальных каналов, составляющих VPLS. Столкновений при выборе меток не происходит, так как все маршрутизаторы знают число устройств, организующих VPLS сервис.
Подобный подход априорного задания множества меток виртуальных каналов VPLS и соответственно максимального числа PE устройств, организующих VPLS сервис, приводит к нерациональному использованию пространства меток, его фрагментации, что негативно сказывается на масштабируемости сети и сложности конфигурации.

Поиск взаимодействующих в рамках VPLS PE устройств

При использовании протокола BGP сигнальная информация распространяется всем PE маршрутизаторам в пределах автономной системы. Для фильтрации, получения только необходимой в рамках организации определенной VPLS информации, применяются routing policies. Применение подобных механизмов на границе автономной системы является обычным дело, но внутри может привести к трудно отлавливаемым ошибкам. Например, число VPLS сервисов в сети может быть несколько сотен, и для каждой должен быть настроен разрешающий фильтр в routing policies. По логике работы протокола BGP база данных RIB-IN может содержать NLRI для всех VPLS, даже тех, в образовании которых маршрутизатор не участвует. Этого можно избежать двумя способами:
Встроенный механизм обнаружения взаимодействующих PE устройств значительно упрощает жизнь администраторам, однако при росте сети можно негативно сказаться на масштабируемости.

Масштабируемость

VPLS может строиться на основе "плоской" или иерархичекой топологии виртуальных каналов. В случае LDP сигнализации иерархическая топология предлагает большие возможности масштабирования за счет ограничения числа устройств, образующих полносвязную сеть виртуальных каналов.  Вариант построения VPLS с использованием BGP сигнализации не страдает проблемой ограниченного числа target-LDP сессий между PE устройствами. На первый взгляд иерархическая топология здесь кажется лишней,  однако нужно учесть, что в случае "плоской" топологии все PE устройства должны быть дорогостоящими маршрутизаторами с полноценным BGP. Драфт L2VPN-BGP определяет иерархическую топологию на основе использования устройств Layer 2 агрегации, то есть  организацию уровня доступа на базе L2 коммутаторов, что в итоге негативно  сказывается на устойчивости сети за счет использования Spanning-Tree протокола.

Рис. N5. Организация иерархической топологии на базе Layer 2 устройств агрегации трафика.

Использование компонент, проверенных на практике

BGP как протокол междоменной маршрутизации доказал свою состоятельность,  немного позже был удачно применен для распространения сигнальной информации L3 VPN (RFC25457). Действительно, имело смысл применить проверенный, масштабируемый мезанизм для сигнализации VPLS сервисов. Однако не было учтено, что сигнализация L2 VPN имеет мало общего с IP маршрутизацией - по сути, пришлось разрабатывать новый протокол, а также то, что для построения VLL все равно придется использовать LDP, так что подход не бесспорен.

Организации VPLS на сетях нескольких взаимодействующих операторов

Для передачи информации внутри автономной системы (AS) используется iBGP, при организации VPLS сервиса на сетях нескольких операторов возникает вопрос о сигнализации между AS и организации MPLS туннелей между PE маршрутизаторами в разных  автономных системах. Драфт L2VPN-BGP предлагает следующие решения:
  1. На границе автономных систем VPLS терминируется в определенный VLAN, то есть для PE маршрутизаторов межоператорский канал связи выглядит обычным абонентским подключением. Для резервирования подобных подключений требуется применение протокола Spanning Tree, что сказывается на масштабировании.
  2. Организация eBGP сессий между PE ASBR маршрутизаторами операторов.
  3. eBGP сессия между RR операторов. ASBR маршрутизаторы на границах сетей в данном случае не взаимодействуют по eBGP, а только коммутируют MPLS пакеты, выполняют функциональность P маршрутизаторов. RR передают NLRI информацию о VPLS сервисах с применением опции next-hop-unchanged, что позволяют сигнализировать MPLS туннели между PE маршрутизаторами операторов. Решение аналогично описываемому в драфте draft-ietf-l3vpn-rfc2547bis раздел 10(c).
В случае резервирования каналов связи между операторами в двух последних случаях не требуется применение Spanning Tree протокола, разрешение колец в топологии происходит за счет работы протокола BGP.
В случаях b) и c) так или иначе устанавливаются туннели между всеми PE устройствами (full-mesh), что означает многократную передачу широковещательных (broadcast, multicast, unknown) данных по каналу связи между операторами.

Рис. N6. Многократная пересылка широковещательных данных по каналу связи между операторами.
С учетом тенденции переложить на BGP задачи сигнализации межоператорских MPLS L3 VPN unicast/multicast сервисов, использование протокола BGP для сигнализации VPLS выглядит продолжением единой концепции, однако очень проблематичны вопросы администрирования, поиска неисправностей.

Инструментарий администрирования и отладки

Никаких специализированных механизмов отладки L2VPN-BGP в настоящее время не разрабатывается, остается надеяться только на собственные навыки работы с протоколом BGP.

Вместо заключения

В настоящее время VPLS сервис на основе LDP поддерживается такими производителями как Alcatel, Cisco, Riverstone. Иерархический VPLS с поддержкой PWE3-CONTROL (то есть используется не Q-in-Q, а LDP) пока реализует только Alcatel. Драфт на основе BGP был разработан и реализован Juniper.
В IETF ведутся работы по обоим предложениям к стандартизации, однако следует учитывать, что драфт может стать RFC только в случае его реализации тремя производителями, так что положение Juniper выглядит не столь безоблачным.
Подводя итог, хотелось бы представить таблицу, в которую можно было бы свести все "за и против" предложенных решений. Уточню, таблица отражает мнение автора, основанное на понимании драфтов и особенностей их реализации в устройствах, все возражения и дополнения можно обсудить на форуме.
Критерий
L2VPN-LDP L2VPN-BGP
Эффективность распространения сигнальной информации
Высокая
Низкая
Эффективность распределением меток, использования их как ресурса
Высокая, полностью автоматизировано
Низкая, требует настройки
Поиск взаимодействующих в рамках VPLS PE устройств
Опционален
Встроенный механизм
Масштабируемость
Высокая
Высокая - средняя
Использование компонент, проверенных на практике.
Да
Да
Возможность организации VPLS на сетях нескольких взаимодействующих операторов
Легкость конфигурации
Сложность конфигурации, неоптимальное распространение широковещательных данных
Наличие специализированного инструментария администрирования и отладки
Да
Использование средств BGP

Документация

  1. TiMetra Networks, "VPLS SIGNALING: LDP OR BGP?"
  2. "Framework for Layer 2 Virtual Private Networks (L2VPNs)" (draft-ietf-l2vpn-l2-framework)
  3. "Virtual Private LAN Service" (draft-ietf-l2vpn-vpls-bgp)
  4. " Virtual Private LAN Services over MPLS " (draft-ietf-l2vpn-vpls-ldp)
  5. "BGP/MPLS IP VPNs" (draft-ietf-l3vpn-rfc2547bis)