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:

                    Данная таблица называется LIBLabel Information Base, или LFIBLabel Forwarding Information Base, в ней есть метки для всех известных R1 префиксов.

                    Local Label метку генерирует сам роутер при включении LDP,

                    Outgoing Labelметка, полученная от соседа, при включении LDP для всех IGP префиксов (не для BGP) в table route, роутер генерирует некое число – Local Label, и отдает эту метку всем LDP соседям и соседи ставят эту метку в столбец Outgoing Label.

                    Пример:

Рассмотрим префикс 8.8.8.8/32:






 R7 сгенерировал метку – Local Label = 40 для префикса 8.8.8.8/32 и передал ее в сторону R4.

                    На 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 друг друга: 

                    Есть трасса: 

                    Но транзитные роутеры не знают о данных префиксах: 


 





Комментарии

Популярные сообщения из этого блога