Как настроить протокол LDP в MPLS на маршрутизаторах Cisco

Как настроить протокол LDP в MPLS на маршрутизаторах Cisco

Label Distribution Protocol (LDP) — это протокол, предназначенный для автоматической генерации и обмена метками (labels) между маршрутизаторами в MPLS-сети. Каждый маршрутизатор самостоятельно создает метки для собственных сетей и распространяет эти значения меток своим соседям.

Содержание:

  1. Введение
  2. Топология
    1. Настройки маршрутизатора R1
    2. Настройки маршрутизатора R2
    3. Настройки маршрутизатора R3
  3. Настройка протокола OSPF
  4. Активация протокола LDP
  5. Проверка работы
    1. Соседские отношения LDP
    2. Управление LDP
    3. Передача данных в LDP
  6. Выводы

Введение

LDP является открытым стандартом, созданным на основе проприетарного протокола CiscoTDP (Tag Distribution Protocol, протокол распределения меток). Ситуация аналогична другим примерам из истории сетевых технологий, таким как 802.1Q и ISL или PaGP и LACP: сначала компания Cisco разработала собственный протокол, а позже был утвержден открытый стандарт. В настоящее время большинство специалистов используют в своих сетях именно LDP вместо устаревшего TDP.

Как и многие другие сетевые протоколы, LDP сначала устанавливает соседские отношения (neighbor adjacency), прежде чем начать обмен метками. Однако процесс установления соседства в LDP имеет свои особенности.

Изначально маршрутизаторы рассылают Hello-пакеты с помощью многоадресной расслылки пакетов UDP (UDP multicast), чтобы обнаружить других потенциальных соседей. Если два маршрутизатора принимают решение о формировании соседских отношений, они устанавливают TCP-соединение, которое в дальнейшем используется для обмена информацией о метках. Обычно для этой цели применяется IP-адрес интерфейса Loopback. Ниже на рисунке показан пример:

 


Как настроить протокол LDP в MPLS на маршрутизаторах Cisco

 

Как видно в примере, два маршрутизатора отправляют Hello-пакеты на интерфейсы GigabitEthernet друг друга. Ниже показан пример перехвата пакета Hello Message:

 

Как настроить протокол LDP в MPLS на маршрутизаторах Cisco

 

Из перехвата пакета можно узнать следующую информацию:

  • Оба маршрутизатора отправляют Hello-пакеты по адресу многоадресной рассылки 224.0.0.2 с использованием UDP-порта 646 (как источник, так и назначение). Внутри Hello-пакета содержится так называемый транспортный IP-адрес (transport address), который будет использован для установления TCP-соединения между маршрутизаторами.
  • Кроме того, каждый маршрутизатор идентифицируется с помощью уникального LSR ID (Label Switch Router ID). По умолчанию в качестве LSR ID выбирается наивысший IP-адрес среди интерфейсов Loopback. Если интерфейсы Loopback отсутствуют, то используется наивысший IP-адрес среди физических интерфейсов.

Примечание: важно, чтобы транспортный IP-адрес, выбранный LDP, был доступен через используемый маршрутизирующий протокол (например, OSPF или IS-IS). В противном случае маршрутизаторы смогут получать Hello-пакеты друг друга, но не смогут установить соседские отношения, поскольку транспортные адреса окажутся недостижимыми.

Отличия LDP от других протоколов маршрутизации

Протокол LDP формирует соседство иным способом, чем такие протоколы, как OSPF или EIGRP. Например, при использовании OSPF маршрутизаторы устанавливают соседские отношения на всех интерфейсах, где активирован протокол:

 

Как настроить протокол LDP в MPLS на маршрутизаторах Cisco

 

В отличие от этого, LDP формирует только одно соседское отношение, независимо от количества физических интерфейсов между маршрутизаторами:

 

Как настроить протокол LDP в MPLS на маршрутизаторах Cisco

 

Такой подход напоминает поведение протокола BGP, особенно при использовании Loopback-интерфейсов в качестве источника соединения. В BGP необходимо вручную указывать интерфейс-источник командой update-source, тогда как LDP автоматически выбирает IP-адрес источника, как правило, IP-адрес интерфейса Loopback.

Обмен информацией о метках

После установления LDP-соседства маршрутизаторы приступают к обмену информацией о метках. Чтобы понять, как именно это работает, необходимо кратко вспомнить структуру таблиц маршрутизации (RIB и FIB) в традиционной IP-сети:

 

Как настроить протокол LDP в MPLS на маршрутизаторах Cisco

 

  • RIB (Routing Information Base) — база маршрутов (таблица маршрутизации), которая содержит информацию, полученную от протоколов маршрутизации (OSPF, EIGRP, BGP и др.).
  • FIB (Forwarding Information Base) — таблица пересылки, которая создается на основе RIB и используется для реальной маршрутизации IP-пакетов.

Однако в MPLS-сетях, и особенно при использовании LDP, дополнительно используются собственные таблицы:

 

Как настроить протокол LDP в MPLS на маршрутизаторах Cisco

 

  • LIB (Label Information Base) — база меток. В Cisco IOS маршрутизатор с LDP создает метку для каждой сети, найденной в RIB, за исключением BGP-сетей. Эти метки и составляют содержимое LIB.
  • LFIB (Label Forwarding Information Base) — таблица пересылки MPLS-пакетов. Она строится на основе LIB и используется для принятия решений при пересылке маркированных MPLS-пакетов.

Таким образом:

  • LIB по своему назначению похожа на RIB, но хранит метки для сетей.
  • LFIB аналогична FIB, но используется для MPLS-пересылки.

Два маршрутизатора, сформировавшие LDP-соседство, обмениваются данными из своих LIB, чтобы сообщить друг другу, какие метки использовать для каких сетей. Это позволяет всем маршрутизаторам, которые участвуют в LDP, согласованно обрабатывать и пересылать MPLS-пакеты, используя назначенные метки:

 

Как настроить протокол LDP в MPLS на маршрутизаторах Cisco

 

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

Топология

Исследуемая топология состоит из трех маршрутизаторов (Cisco 1941 с образом Cisco IOS Version 15.9(3)M6) и одного коммутатора (Cisco 2960 с ПО Cisco IOS 15.0(2)SE6 LAN Base). Допускается использование других моделей и версий программного обеспечения Cisco IOS. В зависимости от модели и версии программного обеспечения Cisco IOS доступные команды и полученные результаты могут отличаться от показанных в этой статье.

Схема топологии следующая:

 

Как настроить протокол LDP в MPLS на маршрутизаторах Cisco

 

У каждого маршрутизатора имеется интерфейс Loopback, который будет использоваться для установления LDP-соседства. IP-адреса этих интерфейсов будут автоматически выбраны в качестве LSR ID и транспортных адресов.

Настройки маршрутизатора R1

Настройки маршрутизатора R2

Настройки маршрутизатора R3

Настройка протокола OSPF

Чтобы LDP мог сгенерировать метки, необходимо иметь информацию в RIB (таблице маршрутизации). Для этого настроим OSPF на всех маршрутизаторах в топологии, который будет анонсировать все интерфейсы этих маршрутизаторов:

Маршрутизатор R1:

 

Маршрутизатор R2:

 

Маршрутизатор R3:

 

На этом этапе маршрутизаторы смогут обменяться маршрутной информацией, и в таблицах RIB появятся все необходимые префиксы.

Активация протокола LDP

Существует два способа включения LDP в Cisco IOS:

  1. На уровне интерфейса с помощью команды mpls ip.
  2. Глобально в процессе OSPF с помощью команды mpls ldp autoconfig.

Оба метода позволяют включить LDP, и в обоих случаях по умолчанию будет создана метка для каждого префикса. В данном примере используем настройку на уровне интерфейса:

Маршрутизатор R1:

 

Маршрутизатор R2:

 

Маршрутизатор R3:

 

Спустя несколько секунд после включения LDP на интерфейсах, на консоли маршрутизаторов появится сообщение об успешном формировании соседства:

 

На этом этапе настройка завершена. Теперь можно приступить к проверке работы LDP и анализу таблиц, таких как LIB и LFIB.

Проверка работы

Сообщения на консоли показывают, что соседство LDP сформировано, но всё же полезно самостоятельно провести несколько проверок.

Соседские отношения LDP

Для начала проверим, активирован ли LDP на интерфейсах:

Маршрутизатор R1:

 

Маршрутизатор R2:

 

Маршрутизатор R3:

 

Команда show mpls interfaces — это быстрый способ определить, активирован ли LDP. Она показывает, какие интерфейсы поддерживают LDP и находятся ли они в рабочем состоянии.

Далее проверим наличие LDP-соседей на R2:

 

Как настроить протокол LDP в MPLS на маршрутизаторах Cisco

 

Из вывода команды можно узнать следующую информацию:

  1. R1 и R2 являются соседями LDP:
    • R2 использует LSR ID 2.2.2.2, а R11.1.1.1.
    • TCP-соединение установлено между 2.2.2.2 и 1.1.1.1.
    • Hello-пакеты прошли через интерфейс GigabitEthernet0/0.
  2. R2 и R3 также являются соседями LDP:
    • R2 использует LSR ID 2.2.2.2, а R3 3.3.3.3.
    • TCP-соединение установлено между 2.2.2.2 и 3.3.3.3.
    • Hello-пакеты прошли через интерфейс GigabitEthernet0/1.

Теперь, когда наличие соседей LDP подтвердилось, можно перейти к меткам.

Управление LDP

По умолчанию все маршрутизаторы назначают метки, начиная с 16. Это может немного сбивать с толку, особенно если несколько маршрутизаторов используют одинаковые метки. Чтобы упростить анализ таблиц, вручную зададим разные диапазоны меток:

Маршрутизатор R1:

 

Маршрутизатор R2:

 

Маршрутизатор R3:

 

После выполнения этих команд требуется перезагрузка маршрутизаторов — очистка соседства LDP недостаточна!

После перезагрузки всех маршрутизаторов в топологии, посмотрим таблицу маршрутизации R1:

 

Отлично, префиксы присутствуют в таблице маршрутизации. Теперь посмотрим на таблицу информации о метках (LIB) на R1:

 

 

Как настроить протокол LDP в MPLS на маршрутизаторах Cisco

 

Из вывода команды можно узнать следующую информацию о метках:

  • Первая запись относится к префиксу 1.1.1.1/32, который соответствует Loopback-интерфейсу маршрутизатора R1. Метка для этой записи не присваивается, поскольку сеть подключена напрямую. Однако от маршрутизатора R2 поступила информация, что он использует метку 202 для этого префикса.
  • Вторая запись — для 2.2.2.2/32. Маршрутизатор R1 выбрал метку 101 для этой записи. Также видно, что маршрутизатор R2 не использует метку для данного префикса, что логично, так как сеть подключена напрямую к нему.
  • Третья запись для 3.3.3.3/32 имеет локальное значение метки 103. От маршрутизатора R2 поступила информация об использовании метки 203 для этой записи.
  • Четвертая запись — 192.168.10.0/24. Метка не используется, так как сеть напрямую подключена. Аналогично, маршрутизатор R2 также не использует метку для этой сети по той же причине.
  • Пятая запись касается сети 192.168.20.0/24. Для неё маршрутизатор R1 использует метку 101.

 

Теперь давайте посмотрим на таблицу LFIB, которая используется для пересылки пакетов MPLS:

 

Как настроить протокол LDP в MPLS на маршрутизаторах Cisco

 

LFIB значительно меньше по размеру. Следует учитывать, что она аналогична таблице CEF, которая используется при IP-маршрутизации. Записи для сетей 1.1.1.1/32 и 192.168.10.0/24 отсутствуют, поскольку для этих сетей не назначены метки.

При передаче пакета к 3.3.3.3/32 в заголовок MPLS добавляется метка со значением 203, после чего пакет пересылается на маршрутизатор R2.

Если маршрутизатор R1 получает пакет для 2.2.2.2/32 или 192.168.20.0/24, то перед пересылкой на R2 происходит удаление метки (Pop Label). Этот процесс называется предпоследнее удаление метки (penultimate hop popping). Его цель — сэкономить ресурсы маршрутизатора R2 за счет предварительного удаления MPLS-заголовка.

 

Далее посмотрим на таблицы RIB, LIB и LFIB маршрутизатора R2:

Таблица RIB:

 

Таблица LIB:

 

Таблица LFIB:

 

Также посмотрим на таблицы RIB, LIB и LFIB маршрутизатора R3:

Таблица RIB:

 

Таблица LIB:

 

Таблица LFIB:

Передача данных в LDP

Все вышеупомянутые таблицы позволяют проверить работоспособность уровня управления (control plane), но как насчёт уровня передачи данных (data plane)? Для этого можно воспользоваться простой командой traceroute на маршрутизаторе R1, чтобы убедиться, что используется коммутация на основе меток:

 

Как настроить протокол LDP в MPLS на маршрутизаторах Cisco

 

При использовании traceroute на устройствах MPLS отображаются метки, которые задействованы в процессе пересылки. Такой маршрут называется маршрутом с коммутацией по меткам (Label Switched Path, LSP).

Итоги

В этой статье был рассмотрен механизм работы LDP, в частности — как он использует многоадресную рассылку (multicast) для отправки Hello-пакетов с целью обнаружения других маршрутизаторов LDP. Также был проанализирован процесс установления соседских отношений (neighbor adjacency) с использованием TCP-соединения и транспортных адресов, указанных в Hello-пакете.

Были рассмотрены различные таблицы, применяемые при маршрутизации IP и MPLS-трафика. И наконец, продемонстрирована работа некоторых меток на практике.

Выводы

Спасибо за уделенное время на прочтение статьи. Теперь Вы настроить протокол LDP в MPLS на маршрутизаторах Cisco.

Если возникли вопросы — задавайте их в комментариях.

Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!

Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco, курсы по кибербезопасности, полный курс по кибербезопасности, курсы DevNet / DevOps (программируемые системы) от Академии Cisco, курсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).

Курсы Cisco, Linux, кибербезопасность, DevOps / DevNet, Python с трудоустройством!

Спешите подать заявку! Группы стартуют 25 января, 26 февраля, 22 марта, 26 апреля, 24 мая, 21 июня, 26 июля, 23 августа, 20 сентября, 25 октября, 22 ноября, 20 декабря.
Что Вы получите?
  • Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
  • Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
  • Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
Как проходит обучение?
  • Проведем вечерние онлайн-лекции на нашей платформе.
  • Согласуем с вами удобное время для практик.
  • Если хотите индивидуальный график — обсудим и реализуем.
  • Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
  • Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
А еще поможем Вам:
  • отредактировать или создать с нуля резюме;
  • подготовиться к техническим интервью;
  • подготовиться к конкурсу на понравившуюся вакансию;
  • устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.
Чтобы учиться на курсах Cisco, Linux LPI, кибербезопасность, DevOps / DevNet, Python, подайте заявку или получите бесплатную консультацию.

Больше похожих постов

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Заполните поле
Заполните поле
Пожалуйста, введите корректный адрес email.
Вы должны согласиться с условиями для продолжения


Поиск по сайту
Лучшее
Популярное
Рубрики