MPLS Part 3. Практика.
MPLS LDP Tunnels Part 3.
2023.05.10. Kurapov Alexey.
MPLS Part 3
MPLS LDP Tunnels Part 3
Схема сети такая же, как и раньше:
Рассмотрим откуда берутся метки.
В выводе команды show ip cef, также есть MPLS метка:
Откуда
берутся метки? Как только включаем LDP на интерфейсах, появляется дополнительная таблица – таблица
MPLS Forwarding:
Данная
таблица называется LIB – Label Information Base, или LFIB – Label Forwarding Information Base, в ней есть метки для всех известных R1 префиксов.
Local Label –метку генерирует сам роутер при
включении LDP,
Outgoing Label – метка, полученная от соседа, при
включении LDP для
всех IGP префиксов
(не для BGP) в table route, роутер генерирует некое число – Local Label, и отдает эту метку всем LDP соседям и соседи ставят эту метку в
столбец Outgoing Label.
Пример:
Рассмотрим префикс 8.8.8.8/32:
На R4 видим метку, полученную от R7 в столбце Outgoing Label = 41. В свою очередь R4 сгенерировал метку для 8.8.8.8/32 – Local Label =40 и передал ее R1.
На R1 видим метку Outgoing Label = 40, полученную от R4 и в свою очередь R1 сгенерировал метку для 8.8.8.8/32 – Local Label = 40, равенство меток на R1 является совпадением.
R3 получает от R1 метку = 40 и помещает ее в столбец Outgoing Label, и в свою очередь генерирует для
префикса 8.8.8.8/32 Local Label = 42.
Также
видим, что R3
получил префикс 8.8.8.8/32 от R9 и R2 с другими Outgoing Label = 42 и 41 соответственно. Проверим Local
Label на R9 и R2 для 8.8.8.8/32:
Т.о. метки распространяются от источника в сторону LDP соседей. Эти метки видим в выводе команды traceroute, а также в Wireshark, пакетах ICMP Echo Request – для ping и udp – для traceroute.
Первое правило оптимизации
пространства меток.
В
сетях все взаимодействия чаще всего строятся от Loopback-ов и для транзитных сетей между
роутерами нет необходимости генерировать и передавать метки. Можно генерировать
и передавать метки только для Loopback-ов. Но возникает проблема передачи
транзитных префиксов, далее рассмотрим ее решение.
Сейчас
настроим генерацию и передачу меток только для Loopbak-ов, два способа:
1.
С помощью ACL:
а. Отключаем передачу меток:
no mpls ldp advertise-labels
б. Создаем ACL, в котором описываем все наши Loopback-и:
access-list
1 permit 1.1.1.1
access-list
1 permit 2.2.2.2
…
access-list 1 permit 10.10.10.10
в. Включаем передачу меток, согласно ACL:
mpls ldp advertise-labels for 1 – где 1 – имя ACL.
2. Без ACL:
Команда - mpls ldp advertise-labels
interface loopback 0
Применим данную команду на R3:
На данном оборудовании эта команда не поддерживается.
Используем ACL.
1.
До настройки:
Есть метки для всех префиксов, в т.ч. для /24.
2. Создаем ACL для всех int Loopback0 всех роутеров:
3.
На всех роутерах отключаем передачу
меток для всех префиксов и включаем для префиксов из ACL 1:
Проверка:
Видим локально метки генерируются по прежнему для все префиксов, в т.ч. для /24, команда mpls ldp advertise-labels interface loopback 0 – помогла бы не делать этого. Но благодаря ACL1 передаются только метки для префиксов /32, а именно int Lo0 всех роутеров.
В выводе команды traceroute, также видим метки при просмотре трассы до int Lo0, но меток нет в трассах до транспортных подсетей:
На R3 и R8 имеются интерфейсы Loopback 1, предположим, что это не
транспортная инфраструктура, а клиентские префиксы, сделаем так, чтобы они не
появлялись на всех транспортных (промежуточных) роутерах между R3 и R8.
Сейчас, например, R4 и R5 знают про эти подсети:
Выключим на R3 и R8
OSPF для всех подсетей, и включим только
для транспортных подсетей и нулевых Loopback-ов:
Теперь
префиксы 33.33.33.33/32 и 88.88.88.88/32 не объявляются в OSPF, транзитные роутеры про них не знают,
нет трасс на R3
до 88.88.88.88/32 и на R8 до 33.33.33.33/32:
Как передать указанные префиксы между R3 и R8? Чтобы транзитные роутеры не знали о них? Можем с помощью BGP - построить multihop BGP сессию между R3 и R8 с Loopback 0, транзитом через остальные роутеры.
Проверка R3 и R8 знают о int Lo1 друг друга:
Есть трасса:
Но транзитные роутеры не знают о данных префиксах:
Комментарии
Отправить комментарий