Настройка LDP
Для начала обмена метками между маршрутизаторами необходимо настроить работу протокола LDP и включить функцию работы с метками на интерфейсах в сторону соседнего MPLS маршрутизатора.
Переход в режим настройки и активация протокола LDP.
ecorouter(config)#router ldpВключение LDP и функции работы с метками на интерфейсах.
ecorouter(config-if)#ldp enable ipv4
ecorouter(config-if)#label-switchingПосле включения LDP на маршрутизаторе, по команде show ldp будет доступен просмотр текущих настроек LDP. Если вы не производили никаких изменений настроек в контекстном режиме router ldp, в выводе вы получите настройки по умолчанию.
Просмотр информации о LDP-соседстве.
ecorouter#sh mpls ldp neighborДалее по тексту следуют команды доступные в контекстном режиме router ldp.
Router ID — идентификатор LDP-маршрутизатора. Задаётся командой router-id <A.B.C.D> в виде IPv4 адреса. Идентификатор должен быть уникальным в пределах MPLS-домена. Если router ID не задан, в качестве идентификатора будет выбран адрес loopback-интерфейса с наибольшим значением. Если loopback-интерфейсы отсутствуют, будет выбран наибольший адрес из всех имеющихся интерфейсов. Хорошим правилом является использование в качестве Router ID интерфейса loopback.0.
Слияния LSP (Label Switched Path):
global-merge-capability {merge-capable | non-merge-capable}Слияние путей переходов по меткам (LSP) подразумевает, что идущие через маршрутизатор и предназначенные для одного FEC (Forwarding equivalence class) LSP будут объединены в один маршрут, а все пакеты, принадлежащие этим LSP, будут отправлены далее под одной MPLS-меткой. Именно это поведение является поведением по умолчанию.
В противном случае, если слияние запретить, каждый LSP будет продолжен до пункта назначения FEC, каждый с новой меткой.
Команда global-merge-capability перекрывает настройку, установленную по умолчанию на всех интерфейсах заданной настройкой. merge-capable — это режим объединения LSP, non-merge-capable — это режим без объединения LSP. Режим non-merge-capable идентичен режиму по умолчанию.
Сохранение меток Label Preserve.
При изменении у FEC адреса next-hop (адрес следующего маршрутизатора) маршрутизатор генерирует для этого FEC новую метку и сообщает её своим соседям. Для того чтобы маршрутизатор использовал одну и ту же метку для одного FEC при изменении адреса next-hop, необходимо включить опцию ldp label preserve.
Метка сохраняется 30 секунд. Поэтому для корректной работы данной опции смена next-hop должна быть произведена за меньшее время.
Установка транспортного адреса маршрутизатора:
transport-address ipv4 <ip-address>Переключение режима распространения меток:
advertisement-mode {downstream-on-demand | downstream-unsolicited}В режиме downstream-unsolicited маршрутизатор будет рассылать метки для каждого известного ему FEC всем своим соседям. В режиме downstream-on-demand маршрутизатор будет ожидать запроса метки от своих соседей.
Переключение режима назначения меток:
control-mode {independent | ordered}В режиме independent маршрутизатор независимо и немедленно назначает и рассылает локальную метку для FEC, как только этот FEC появляется в его таблице маршрутизации. В режиме ordered маршрутизатор назначает и рассылает метки для FEC только если он является исходящим (egress) маршрутизатором или он уже получил метку для этого FEC от своего нижестоящего (next-hop) соседа .
Переключение режима удержания меток:
label-retention-mode {conservative | liberal}В режиме conservative маршрутизатор удерживает метки только лучших маршрутов (т.е. если они получены с допустимого следующего перехода согласно маршрутизации), остальные метки при этом удаляются. В режиме liberal маршрутизатор удерживает все метки полученные от других LSR, в том числе метки не лучших маршрутов.
Включение явной нулевой метки (Explicit Null Label):
explicit-nullВ данном режиме предпоследний перед выходным (Egress LSR) маршрутизатор установит метку “0” (ноль) и передаст пакет последнему по пути LSR маршрутизатору. По умолчанию установлен режим неявной нулевой метки (Implicit Null Label), в котором предпоследний маршрутизатор устанавливает метку “3” (три) и передаёт на последний маршрутизатор пакет без метки, реализуя тем самым механизм Penultimate Hop Popping.
Включение функции выявления петель LSP:
loop-detection Функция предотвращает зацикливание сообщений о запросах меток в присутствии маршрутизаторов LSR, не обеспечивающих слияние LSP. При включении loop-detection устанавливаются максимальные значения (255) для команд loop-detection-hop-count и loop-detection-path-vec-count.
Поддерживаются два метода обнаружения петель: обнаружения количества переходов и обнаружения вектора пути.
- Количество переходов — в процессе построения LSP, в сообщениях LDP будет передаваться количество маршрутизаторов LSR, которые прошло данное сообщение. LSR, обнаруживший, что количество переходов достигло заданного в
loop-detection-hop-countмаксимального значения, отреагирует так же, как если бы сообщение было зациклено. - Вектор пути — в процессе построения LSP в сообщениях LDP будет передаваться список идентификаторов маршрутизаторов LSR, которые прошло данное сообщение. Если маршрутизатор обнаружит свой идентификатор в списке, станет понятно, что сообщение прошло круг и зациклено. Если длина пути достигнет максимальной длины, указанной в
loop-detection-path-vec-count, маршрутизатор отреагирует так же, как если бы сообщение было зациклено.
Включение функции повторного запроса меток:
request-retryПозволяет маршрутизатору совершить пять повторных запросов метки после того, как запрос на метку был отклонён по уважительной причине.
Команда request-retry-timeout <1-65535> работает в паре с request-retry и устанавливает интервал в секундах между повторными запросами метки.
Включение функции распространения сообщений об освобождении меток
propagate-release Функция подразумевает, что уведомление об освобождении (release) метки пересылается (propagate) дальше по цепочке LSP от upstream-роутеров к downstream-роутерам. Маршрутизатор получивший сообщение об освобождении метки от вышестоящего LSR, не просто освобождает метку, но и передаёт сообщение об освобождении метки далее нижестоящему LSR.
Функция бережного перезапуска плоскости управления LDP:
graceful-restart enableБлагодаря этой функции маршрутизатор может перезагрузить LDP соседство без разрыва идущего MPLS-трафика и отношений сопряжения.
Механизм бережного перезапуска работает в связке между двумя роутерами:
- Restarter (Тот, кто перезагружается): Маршрутизатор, который выполняет перезагрузку.
- Helper (Тот, кто помогает): Соседний маршрутизатор, который знает о перезагрузке и помогает сохранить трафик и восстановить сессию.
Чтобы маршрутизатор работал именно в режиме Helper, нужно дать команду graceful-restart helper-mode.
Для функций бережного перезапуска в режиме Helper существуют два таймера:
graceful-restart timers neighbor-liveness <5-300>— время в секундах, которое маршрутизатор будет ожидать перезапуска и восстановления подключения от своего соседа. Значение времени по умолчанию составляет 120 секунд.graceful-restart timers max-recovery <15-600>— время в секундах, которое маршрутизатор будет ожидать полной повторной синхронизации. Значение времени по умолчанию составляет 120 секунд. За указанное время Restarter должен повторно запросить и получить все метки от Helper’а.
Команда graceful-restart disable отменит любую из двух команд: graceful-restart enable или graceful-restart helper-mode.
Для удаления таймеров из конфигурации нужно использовать команды no graceful-restart timers neighbor-liveness и no graceful-restart timers max-recovery соответственно.
Отключение функции рассылки многоадресных приветственных сообщений:
no multicast-hellosПо умолчанию функция включена на всех интерфейсах, поддерживающих LDP. Многоадресная рассылка приветственных (Hello) сообщений используется для автоматического обнаружения соседних LDP-маршрутизаторов в напрямую подключённых сетях.
Установка интервала рассылки приветственных сообщений:
hello-interval <1-21845>Команда задаёт частоту с которой маршрутизатор будет отправлять Hello сообщения своим соседям. Сообщение рассылается в виде UDP-дейтаграмм во все интерфейсы маршрутизатора где активирован LDP. Рассылка ведётся на мультикастовый адрес 224.0.0.2 и порт 646.
Заданное глобальное (в пределах маршрутизатора) значение hello-interval может быть переопределено на каждом интерфейсе командой ldp hello-interval <1-21845>.
Для достижения оптимальной производительности устанавливайте значение hello-interval не более чем в одну треть от значения времени удержания (hold-time).
Установка времени удержания до разрыва смежности:
hold-time <3-65535>Время удержания определяет время, в течение которого LSR будет ожидать следующего приветственного сообщения, прежде чем сочтёт его неработоспособным и разорвёт с ним отношения смежности.
Пара LSR согласовывает время удержания, используемое для приветствий друг от друга. Каждый предлагает своё значение времени удержания, и LSR использует меньшее из двух значений.
Заданное глобальное (в пределах маршрутизатора) значение hold-time может быть переопределено на каждом интерфейсе командой ldp hold-time <3-65535>.
Для оптимальной производительности установите это значение не менее чем в три раза больше указанного интервала приветствий (hello-interval).
Targeted-peer в LDP — это механизм установления LDP-сессии с удалённым маршрутизатором, который не является непосредственным соседом на канальном уровне (т.е. между ними есть другие маршрутизаторы).
Для установки интервала отправки юникаст-hello-сообщений для всех целевых узлов необходимо использовать команду targeted-peer-hello-interval <1-21845> в режиме конфигурации router ldp.
Для установки времени удержания приветственных сообщений для всех целевых равноправных узлов необходимо использовать команду targeted-peer-hold-time <3-65535> в режиме конфигурации router ldp.
Установка аутентификации на соседские отношения:
neighbor {A.B.C.D | X:X::X:X} auth md5 password <0-7> PASSГде: A.B.C.D — IPv4 адрес соседа; X:X::X:X — IPv6 адрес соседа; <0-7> — тип пароля; PASS — пароль. Идентичные тип пароля и пароль должны быть установлены на обоих соседних маршрутизаторах.
Аутентификация запрещает установление соседских отношений без пароля.
Переход в режим настройки и активация целевого равноправного узла:
targeted-peer {ipv4 | ipv6} <ADDRESS>На маршрутизаторе LSR может быть настроено несколько целевых узлов.
В режиме настройки целевого узла доступны настройки hello-interval и hold-time, аналогичные по своему действию глобальным настройкам этих же параметров, но применённые к конкретному целевому узлу.
Применение команд настройки целевых узлов (targeted-peer) в различных сценариях будут разобраны в следующих подразделах этого раздела.
Установка интервала отправки сообщений подтверждения работоспособности:
keepalive-interval <10-21845> Значение по умолчанию равно 10 секундам. Keepalive сообщения служат подтверждением сохранности TCP сессии между соседними маршрутизаторами.
Нет необходимости проверять TCP-соединение также часто, как искать соседей в broadcast-сегменте, поэтому рекомендуется устанавливать интервал рассылки Keepalive в разы больше чем интервал рассылки Hello сообщений.
Данное глобальное (в пределах маршрутизатора) значение перекрывается значением заданным на интерфейсе командой ldp keepalive-interval <10-21845>.
Установка интервала ожидания сообщения подтверждающего работоспособность:
keepalive-timeout <30-65535>Значение по умолчанию равно 30 секундам.
Маршрутизатор в течение указанного времени ожидает от соседнего маршрутизатора PDU или Keepalive сообщение. По истечении указанного времени, если не было получено ни одного LDP-пакета (ни Keepalive, ни Label Mapping, ни любого другого), TCP-соединение считается разорванным, и LDP-сессия прекращается.
Обычно значение keepalive-timeout должно втрое превосходить значение keepalive-interval.
Данное глобальное (в пределах маршрутизатора) значение перекрывается значением заданным на интерфейсе командой ldp keepalive-timeout <30-65535>.
Включение опции оптимизации LDP
ldp-optimizationОпция производит два действия:
- Сбрасывает таймер ожидания сообщений Keepalive при получении приветственного сообщения.
- Сбрасывает таймер удержания смежности при получении любого управляющего сообщения LDP. Такой режим работы может повысить стабильность и отказоустойчивость LDP-сессий в крупных и нестабильных сетях.
Advertise-labels. По умолчанию метки всех FEC объявляются всем LDP-соседям. С помощью команды контекстного режима router ldp advertise-labels можно гибко ограничивать рассылку меток LDP-соседям.
advertise-labels for any to none
advertise-labels for PREFIX_ACL to (PEER_ACL|any)Первая команда означает: “Все метки для всех адресатов не отправлять никому.” Другими словами — никакие метки не будут отправлены.
В случае второй команды, из префиксного списка PREFIX_ACL будут взяты подсети, чьи метки будут рассылаться, а из префиксного списка PEER_ACL соседние LSR-маршрутизаторы которым будет осуществляться рассылка. Параметр any заставит маршрутизатор рассылать отобранные метки всем доступным LSR.
Включение функции импорта BGP-маршрутов:
import-bgp-routesПо умолчанию маршруты BGP не импортируются в LDP. Импорт BGP-маршрутов в LDP необходим для того, чтобы расширить механизм распределения меток за пределы IGP-домена и обеспечить MPLS-транспортировку трафика до next-hop’ов, о которых известно только из BGP.
Нестрогий режим отзыва меток:
ldp withdraw-release non-strictРежим позволяет принимать запросы на отзыв (withdraw) и ответы об удалении меток (release) с такими дополнительными параметрами, как: VC_FEC_OPT_IF_MTU, VC_FEC_OPT_IF_VLAN, VC_FEC_OPT_IF_VCCV. В противном случае LDP сессия разрывается.
