Телефон +7 (812) 718-6184
СПб, Московский пр. 118

Протоколы BGP и MPLS

11.01.2019

Что касается BGP, то с ним все более, менее понятно. BGP на сегодняшний день, единственный протокол динамической маршрутизации, который применяется для обмена маршрутами между автономными системами. Построение любых корпоративных сетей и даже довольно несложных, сопровождается внедрением протоколов внутренней динамической маршрутизации. В курсах CCNA и CCNP R&S этим протоколам уделяется достаточно много времени.
При этом на сегодняшний день выбор среди этих протоколов не велик, RIP практически не масштабируемый и может применяться только в очень редких случаях. EIGRP совсем не плох, имеет возможность агрегирования маршрутов в любой точке, поддерживает балансировку нагрузки по маршрутам с разной метрикой, довольно точно определяет стоимости маршрутов и имеет быструю сходимость. Но к сожалению, поддерживается только компанией CISCO.
Остается OSPF, как стандарт. Причем совсем неплохой вариант, с учетом возможностей масштабирования и серьезного тюнинга. При этом все эти протоколы можно встретить сегодня в рабочих сетях и даже такой экзотический вариант, как IS-IS тоже встречается. Целью всех этих протоколов является поиск оптимальных маршрутов к сетям, из которых состоит маршрутный домен или, скажем, автономная система. Причем оптимальность у каждого протокола, как раз и определяется тем, что вкладывается в понятие метрики, которой они оперируют. Однако, когда мы стыкуем несколько автономных систем, то на передний план выходит уже вопрос политик и безопасности. И вот здесь у нас выбор совсем прост, это протокол BGP, который обладая богатым набором атрибутов, описывающих маршрут или путь, как раз и позволяет нам безопасно соединять автономные системы и гибко влиять на выбор маршрутов.
Понятно, что провайдеры стыкуют свои автономные системы друг с другом с помощью протокола BGP. И здесь без вариантов. При этом и конечному заказчику так же может понадобиться протокол BGP, в случае если ему потребуется определенный уровень отказоустойчивости и автономии. Получив в свое распоряжение номер автономной системы и блок независимых от провайдера адресов, организация, подключившись к нескольким провайдерам, может самостоятельно анонсировать в мир адреса своих сетей. Таким образом исключается зависимость от жизнеспособности одного провайдера. Организация может получить гибкость в плане оптимального обращения из своей сети к сетям в интернете, через одного или другого провайдера. Плюс к этому есть возможность попытаться повлиять на то, через какого провайдера трафик будет идти в сети организации. Для этого необходимо правильно настроить BGP.  При этом организация вряд ли захочет, чтобы сервис провайдеры пересылали трафик между сетями интернета, через ее сети, так называемый транзитный трафик. Чтобы такого не случилось опять же необходимо корректно настроить BGP.
А вот со стороны сервис провайдера, как раз наоборот. Сети провайдера изначально и позиционируются, как транзитные в интернет для своих абонентов, плюс транзит между автономными системами. И здесь много внимания необходимо уделить тому, какой трафик нужно пускать через свою автономную систему, а какой нет. Естественно необходимо защищаться от ошибочных действий соседей и получения не корректных маршрутов. Таким образом BGP гораздо более гибкий, интересный, но и довольно сложный протокол, который требует хорошего понимания для развертывания, что в сетях организаций, что в сетях интернет провайдеров.
В курсе BGP детально рассматривается теоретическая часть протокола, особенности его конфигурирования для различных ситуаций. Много внимания уделяется вопросам оптимизации и поиску неисправностей. Так же курс включает практические задания на основе различных топологий и с учетом постановки конкретных задач. Детальную информацию по темам курса и лабораторным работам можно посмотреть в описании на сайте https://edu.eureca.ru/study/course/cisco/bgp/



А что же MPLS? Изначально похоже протокол разрабатывался, как некий вариант замещения маршрутизации на основе адресов на коммутацию на основе меток. Основная мысль понятна из курсов CCNA и CCNP R&S. Сети с коммутацией пакетов проигрывают сетям с коммутацией каналов в части скорости обработки. В упрощенном варианте физический канал можно представить, как выделенную для передачи информации пару проводов. И такой канал вообще не требует адресной информации и промежуточное оборудование не теряет время на анализ адресной информации и поиск маршрута для пересылки данных. Плюс в таком канале нет ситуации, когда чьи-то еще данные находятся в этом канале. Но минусом такой реализации является то, что в моменты простоя, мощности этого канала не могут быть никем использованы. Более экономичный вариант это, когда данные всех абонентов передаются по общим каналам, но при этом снабжаются адресной информацией, для того, чтобы промежуточные устройства могли переслать эти данные в нужном направлении. И тут проявляются недостатки, связанные с тем, что на промежуточных устройствах должна быть таблица маршрутизации, описывающая маршруты во все сети, составляющие составную сеть. Классический пример, это как раз сеть с маршрутизацией ip пакетов Internet. И полные BGP таблицы сети Интернет составляют на сегодня более 500 тысяч записей. При обработке каждого ip пакета необходимо тратить время на просмотр таблицы маршрутизации. Как же преодолеть эти сложности. Решения уже были. Это сети с коммутацией пакетов, дополненные техникой виртуальных каналов, например, Frame-relay, ATM и другие. В таких сетях с коммутацией пакетов, промежуточные устройства оперируют понятием виртуальных каналов. Адресная информация на промежуточных устройствах есть, но она локальна относительно этого устройства и таблицы сравнительно малы. Можем назвать такие адреса метками. В ip сетях для ускорения обработки тоже можно воспользоваться метками. Маршрутизатор будет анализировать только заголовок канального уровня, в котором содержится метка. На самом маршрутизаторе будут прописаны соответствия: интерфейс и метка на входе с интерфейсом и меткой на выходе. Получается некий виртуальный канал. В очень упрощенном виде идея представлена на рисунке. Маршрутизатору не нужно просматривать всю таблицу маршрутизации, достаточно посмотреть на соответствие меток. При этом метки не уникальны и могут быть использованы на разных маршрутизаторах. Пара (интерфейс:метка - интерфейс:метка), как раз и показывает виртуальный канал.



 
На сегодня скорость обработки играет уже не такую важную роль, поскольку появились технологии типа CEF. Но MPLS все еще интересен, поскольку можно пользоваться его туннельными возможностями. Фактически для MPLS не важно, какой протокол верхнего уровня переносить и это дает возможность передавать поверх классической ipv4 сети трафик других протоколов. Например, это удобно для переноса ipv6 трафика поверх, существующей магистрали. Широкие возможности открываются по предоставлению MPLS VPN туннелей для заказчиков. При этом MPLS может переносить, как ip пакеты, так и ethernet фреймы и тем самым можно предоставить заказчику L2 или L3 VPN по его желанию. Грубо говоря, оператор может переносить любой транзитный трафик через свою сеть без какого-либо вмешательства в ее архитектуру и увеличения нагрузки на оборудование. Кроме того, MPLS позволяет довольно гибко выбирать пути в зависимости от потребностей, так называемый трафик инжиниринг. Очень полезен MPLS и для BGP. Внутри автономной системы можно сделать так, чтобы маршрутной информацией по BGP обменивались только граничные маршрутизаторы, не нагружая такой информацией магистраль. А трафик между граничными устройствами будет переноситься через MPLS туннель. Но и BGP в свою очередь очень полезен для MPLS, поскольку его можно задействовать в технике передачи маршрутной информации для VPN нескольких заказчиков. Для этого применяется MPBGP с добавленным address family.
С детальной информацией по содержимому курса MPLS можно ознакомиться по ссылке https://edu.eureca.ru/study/course/cisco/mpls1_v3.0/
Коротко резюмируя. Обе технологии нужны и важны. Мало того иногда нуждаются друг в друге. Важным моментом стоит выделить, что для изучения этих протоколов, необходимо предварительно хорошо знать материал по сетевым технологиям, ip адресации, маршрутизации в ip сетях и внутренним протоколам динамической маршрутизации.
Курсы будут очень полезны для сертификации CCNP Service Provider. В сертификацию CCNP Service Provider входят четыре экзамена: 642-883 SPROUTE, 642-885 SPADVROUTE, 642-887 SPCORE, 642-889 SPEDGE. Значительную часть материалов для подготовки и вопросов в экзаменах занимают темы MPLS и BGP. Ниже можно видеть, какую часть вопросов в экзаменах занимают вопросы по технологиям MPLS и BGP. Информация взята непосредственно с сайта компании CISCO.




 
 
 
 
 




 
Курсы MPLS и BGP являются вспомогательными для получения сертификации уровня CCNP Service Provider. Курсы взаимно дополняют друг друга и рекомендованы к прослушиванию последовательно.

Олег Годунов