Сети VPNна базе технологии MPLS. Настраиваем EoMPLS на маршрутизаторах Cisco. Вопрос. В какой части пакета устанавливается метка

Цель работы

Познакомить студентов с базовыми принципами функционирования MPLS. В работе используются следующие технологии: IPv4, CEF, MPLS, OSPF и BGP.

Работа выполняется при помощи эмулятора GNS3. Предполагается, что обучающийся уже хорошо знаком с теоретической частью, которая в данной работе не поясняется.

Схема сети

Описание работы

На схеме выше представлена небольшая сеть некой компании (маршрутизаторы R1-R6), подключённая к двум интернет-провайдерам (маршрутизаторы ISP1 и ISP2). Сеть рассматриваемой компании должна выполнять функции транзитной автономной системы для связи между сетями провайдеров, то есть передавать трафик между маршрутизаторами ISP1 и ISP2. Используйте маршрутизаторы 7200 серии и свежий стабильный IOS.

  1. Для приведённой выше схемы предложите адресный план, назначьте IP-адреса на интерфейсы, используемые для связи между маршрутизаторами. На каждом маршрутизаторе создайте интерфейс Loopback 0 и назначьте IP-адреса. На маршрутизаторах ISP1 и ISP2 также создайте интерфейсы Loopback 0, которые будут эмулировать некие сети в интернет.
  2. На каждом маршрутизаторе компании настройте протокол OSPF так, чтобы он работал на всех линках внутри сети компании и не работал между вами и операторским оборудованием.
  3. Передайте информацию о подключённых к маршрутизаторам компании сетях в протокол динамической маршрутизации.
  4. Убедитесь, что каждый из шести маршрутизаторов обладает информацией обо всех префиксах компании, а также IP-сетях, используемых между компанией и операторами.
  5. Настройте BGP между вашими граничными маршрутизаторами (R1 и R6) и оборудованием провайдеров.
  6. Настройте BGP между вашими граничными устройствами (R1 и R6). Маршрутизаторы R2-R5 не участвуют в BGP. Для установки iBGP сессии между R1 и R6 должны использоваться интерфейсы Loopback 0.
  7. Убедитесь, что каждый из операторов в своих таблицах маршрутизации видит префиксы, анонсируемые другим оператором связи.
  8. Убедитесь, что с маршрутизатора первого оператора недоступны сети, анонсируемые маршрутизатором второго оператора. Объясните данный эффект.
  9. На маршрутизаторах R1 и R6 настройте передачу маршрутов из протокола OSPF в BGP. Убедитесь, что операторы получили обновления о соответствующих префиксах.
  10. Убедитесь, что маршруты из BGP не попадают в OSPF.
  11. Убедитесь, что каждый из операторов может получить доступ к локальным сетям вашей компании, но по-прежнему не имеют связности друг с другом. Объясните данный эффект.
  12. На маршрутизаторах R1-R6 включите поддержку CEF командой ip cef . Современный IOS имеют настройку по умолчанию, использующую CEF, однако лишний раз не мешает убедиться в том, что технологий Cisco Express Forwarding используется. Изучите вывод команды sho ip cef , объясните, что именно вы видите.
  13. На маршрутизаторах R1-R6 с помощью команды mpls ip режима глобальной конфигурации, включите поддержку MPLS на маршрутизаторах.
  14. На внутренних интерфейсах маршрутизаторов R1-R6, то есть не на линках между компанией и операторами, включите поддержку MPLS с помощью команды mpls ip .
  15. На тех же самых линках, которые конфигурировались в предыдущем пункте, настройте значение MPLS MTU с помощью интерфейсной команды mpls mtu override 1540 . Данное действие необходимо выполнить в связи с тем, что дополнительный MPLS-заголовок, расположенный между Ethernet и IP заголовками увеличивает длину кадра.
  16. Убедитесь в успешности применения команды из предыдущего пункта с помощью вызова show mpls interface interface_name detail , где в качестве interface_name укажите названия сконфигурированных вами интерфейсов.
  17. С помощью команды mpls ldp router-id loopback0 force режима глобальной конфигурации укажите идентификатор маршрутизатора для протокола LDP.
  18. Убедитесь, что каждый из маршрутизаторов R1-R6 видит всех своих LDP-соседей с помощью команды sho mpls ldp neighbor .
  19. На маршрутизаторах R1-R6 проверьте содержимое таблицы LIB с помощью команды sho mpls ldp binding . Объясните, какие префиксы в ней присутствуют/отсутствуют и почему.
  20. На маршрутизаторах R2-R5 убедитесь в отсутствии внешних префиксов (от устройств операторов ISP1 и ISP2) в таблице LIB. Объясните, почему их там не должно быть.
  21. На маршрутизаторах R1-R6 просмотрите содержимое таблицы LFIB с помощью команды sho mpls forwarding-table .
  22. Убедитесь, что передача данных между ISP1 и ISP2 начала происходить.
  23. Запустите перехват трафика на линках R1-R2, R2-R3 и R2-R4. Просмотрите содержимое пакетов, передаваемых между ISP1 и ISP2. Сравните используемые метки с теми, что вы видели в таблицах LIB и LFIB. Объясните, почему, в некоторых пакетах нет меток.
, я же начну с примера и по ходу повествования буду пояснять непонятные вещи:).
Представим себя, ненадолго, провайдером. У нас имеется в распоряжении группа роутеров расположенных на определенной территории, между которыми настроено сетевое взаимодействие. К нам обратились два клиента и попросили организовать связь между их подразделениями, находящимися на приличном удалении друг от друга. Причем оказалось, что у этих клиентов существует уже настроенная IP – адресация, от которой они не хотят отказываться и, мало того, она пересекается.
Для реализации такой задачи простыми методами не обойтись. Вот тут и появляются нам на помощь технологии VRF и MPLS (конечно же, можно использовать и другие способы, например, IPsec VPN, но это уже темы других постов). По большому счету, технология VRF близка к понятию VPN. Но VPN – это принцип объединения узлов клиента, находящихся под единым административным подчинением, через публичную сеть оператора, а VRF – это больше описание VPN в приделах одного устройства, которое включает в себя атрибуты и правила распространения маршрутной информации, отдельную таблицу маршрутизации и так далее. Другими словами, VRF-ы делят один физический роутер, на определенное количество виртуальных роутеров, которые работают независимо друг от друга. Таким образом получается, что сколько у нас будет запланировано VPN-ов, столько VRF-ов нам необходимо будет создать на устройстве.
Собравшись с мыслями, обдумав, как решить такую задачу, появилось вот такое решение, которое я и предлагаю вам сегодня реализовать:


    Что мы имеем:
  • Router_1 и Router_5 – Customer Edge (CE) роутеры, к которым подключены клиентские сети.
  • Router_2 и Router_4 – роутеры на границе MPLS домена (ELSR – Edge Label Switch Router или PE – Provider Edge router).
  • Router_3 – роутер, находящийся внутри домена MPLS (LSR – Label Switch Router или P – Provider router).
  • Host_1 – пользователь для проверки от клиента №1 (IP – 192.168.1.10/24).
  • Host_2 – пользователь для проверки от клиента №2 (IP – 172.16.1.10/24).
Клиент №1 имеет у себя сети с адресацией из следующих диапазонов: 172.16.1.0/24 и 192.168.2.0/24. Клиент №2 имеет у себя сети с адресацией из следующих диапазонов: 172.16.1.0/24 и 192.168.2.0/24. Для сетей клиентов мы будем использовать sub – интерфейсы на CE роутерах. Клиент №1 будет относиться к VRF_A, клиент №2 будет относиться к VRF_B. На CE роутерах прописаны default маршруты в сторону ELSR-ов (на ELSR роутерах прописаны статические маршруты в обратную сторону к сетям клиентов).
Для организации сетевой доступности внутри MPLS домена используется протокол маршрутизации OSPF. Для обмена маршрутной информацией VRF-ов между ELSR-ми используется протокол MP-BGP.
Зачем же нужен MPLS, спросите вы? А он нам понадобится для того, чтобы перенести данные протокола BGP, работающего между ELSR-ми.
Рассмотрим следующую ситуацию. Нам нужно добраться из сети 192.168.1.0/24 в сеть 172.16.1.0/24 (сети клиента №1, VRF_A). Согласно статическому маршруту на Router_1 пакет долетит до Router_2, который, в свою очередь, согласно информации от протокола BGP, отправит его в сторону Router_4. По внутреннему протоколу маршрутизации (OSPF) Router_2 знает, что его сосед по BGP Router_4 находится за роутером Router_3. И тут произойдет следующее, Router_3, приняв пакет, просто отбросит его, так как он не знает о сети 172.16.1.0/24. Почему так произойдет? А потому, что Router_3 не участвует в процессе BGP. Чтобы этого не случилось, на нем тоже надо включать этот протокол (об этом можно посмотреть в моем посте по настройке протокола BGP , я затрагивал там эту тему в общих чертах). Это в наши планы не входит (это только тут у нас один роутер, а в реальной сети их может быть очень много и включать на каждом роутере BGP как то не хочется).
Вот тут то и приходит нам на помощь MPLS. Именно организовав MPLS домен, мы сможем обеспечить быстрый проброс информации BGP между нужными нам точками без включения самого протокола на всех роутерах.
Как будет работать пример выше после того, как мы настроим MPLS? Теперь, приняв пакет, Router_2 (ELSR) поймет, что он относится к VRF_A, пометит его 2-мя метками и отправит дальше. Первая метка будет использоваться для коммутации этого пакета при прохождении его по MPLS домену. Вторая метка, будет использоваться либо для идентификации нужного VRF, либо для идентификации интерфейса, куда надо будет послать пакет дальше на конечном ELSR (Router_4). При настроенном PHP (Penultimate Hop Popping) первая метка будет снята с пакета на последнем роутере, стоящем перед ELSR (в нашем случае на Router_3). Таким образом, Router_4 примет пакет уже с одной меткой, которая поможет ему определить, куда отправить пакет. В итоге, пакет благополучно дойдет до адресата.
Надеюсь, немного разобрались. Перейдем непосредственно к настройкам. Как всегда, начнем с организации обычной сетевой доступности.
Настроим сначала CE роутеры Router_1 и Router_5.
Router_1:

R1>en
R1#conf t
R1(config)#hostname Router_1
Router_1(config)#int loopback 0
Router_1(config-if)#ip address 10.10.10.10 255.255.255.255
Router_1(config-if)#exit
Router_1(config)#int fa 0/0.3
Router_1(config-subif)#encapsulation dot1Q 3 – создаем sub-интерфейс ;
Router_1(config-subif)#ip address 192.168.1.1 255.255.255.0
Router_1(config-subif)#exit
Router_1(config)#int fa 0/0
Router_1(config-if)#no sh
Router_1(config-if)#no shutdown
Router_1(config-if)#exit
Router_1(config)#int fa 1/0
Router_1(config-if)#ip address 1.1.1.2 255.255.255.252
Router_1(config-if)#exit
Router_1(config)#ip route 0.0.0.0 0.0.0.0 1.1.1.1 – прописываем маршрут по умолчанию ;
Router_1(config)#exit
Router_1#wr
Router_1#
Router_5:

R5>en
R5#conf t
R5(config)#hostname Router_5
Router_5(config)#int loopback 0
Router_5(config-if)#ip address 50.50.50.50 255.255.255.255
Router_5(config-if)#exit
Router_5(config)#int fa 0/0.4
Router_5(config-subif)#encapsulation dot1Q 4
Router_5(config-subif)#ip address 172.16.1.1 255.255.255.0
Router_5(config-subif)#exit
Router_5(config)#int fa 0/0

Router_5(config-if)#exit
Router_5(config)#int fa 1/0
Router_5(config-if)#ip address 4.4.4.2 255.255.255.252
Router_5(config-if)#no shutdown
Router_5(config-if)#exit
Router_5(config)#ip route 0.0.0.0 0.0.0.0 4.4.4.1
Router_5(config)#exit
Router_5#wr
Router_5#
Теперь перейдем к роутерам, которые, впоследствии, будут подключены к MPLS домену.
Router_2:

R2>en
R2#conf t
R2(config)#hostname Router_2
Router_2(config)#int loopback 0
Router_2(config-if)#ip address 20.20.20.20 255.255.255.255
Router_2(config-if)#exit
Router_2(config)#int fa 0/0
Router_2(config-if)#ip address 1.1.1.1 255.255.255.252

Router_2(config-if)#exit
Router_2(config)#int fa 1/0
Router_2(config-if)#ip address 2.2.2.1 255.255.255.252
Router_2(config-if)#no shutdown
Router_2(config-if)#exit
Router_2(config)#int fa 2/0

Router_2(config-if)#no shutdown
Router_2(config-if)#exit
Router_2(config)#router ospf 1 – настраиваем внутренний протокол маршрутизации (OSPF) ;
Router_2(config-router)#passive-interface default
Router_2(config-router)#no passive-interface fa 1/0
Router_2(config-router)#network 20.20.20.20 0.0.0.0 area 0
Router_2(config-router)#network 2.2.2.0 0.0.0.3 area 0
Router_2(config-router)#exit
Router_2(config)#ip route 192.168.1.0 255.255.255.0 1.1.1.2
Router_2(config)#exit
Router_2#wr
Router_2#
Router_3:

R3>en
R3#conf t
R3(config)#hostname Router_3
Router_3(config)#int loopback 0
Router_3(config-if)#ip address 30.30.30.30 255.255.255.255
Router_3(config-if)#exit
Router_3(config)#int fa 0/0
Router_3(config-if)#ip address 2.2.2.2 255.255.255.252

Router_3(config-if)#exit
Router_3(config)#int fa 1/0
Router_3(config-if)#ip address 3.3.3.2 255.255.255.252
Router_3(config-if)#no shutdown
Router_3(config-if)#exit
Router_3(config)#router ospf 1
Router_3(config-router)#network 30.30.30.30 0.0.0.0 area 0
Router_3(config-router)#network 2.2.2.0 0.0.0.3 area 0
Router_3(config-router)#network 3.3.3.0 0.0.0.3 area 0
Router_3(config-router)#exit
Router_3(config)#exit
Router_3#wr
Router_3#
Router_4:

R4>en
R4#conf t
R4(config)#hostname Router_4
Router_4(config)#int loopback 0
Router_4(config-if)#ip address 40.40.40.40 255.255.255.255
Router_4(config-if)#exit
Router_4(config)#int fa 0/0
Router_4(config-if)#ip address 3.3.3.1 255.255.255.252

Router_4(config-if)#exit
Router_4(config)#int fa 1/0

Router_4(config-if)#no shutdown
Router_4(config-if)#exit
Router_4(config)#int fa 2/0

Router_4(config-if)#no shutdown
Router_4(config-if)#exit
Router_4(config)#router ospf 1
Router_4(config-router)#passive-interface default
Router_4(config-router)#no passive-interface fa 0/0
Router_4(config-router)#network 40.40.40.40 0.0.0.0 area 0
Router_4(config-router)#network 3.3.3.0 0.0.0.3 area 0
Router_4(config-router)#exit
Router_4(config)#ip route 172.16.1.0 255.255.255.0 4.4.4.2 – не волнуйтесь насчет этого маршрута, он немного будет немного переделан при настройке VFR-ов, сейчас он нужен чисто для вида ;
Router_4(config)#exit
Router_4#wr
Router_4#
Остановимся и посмотрим, что мы имеем на данный момент. Зайдем на Router_2:


Видим, что OSPF работает. Сетевая доступность присутствует. Сеть 172.16.1.0/24 пока не доступна.
Посмотрим, куда может «достучаться» Host_1:


Шлюз доступен (1), доступен IP – адрес, смотрящий в сторону Router_3, сеть 172.16.1.0/24 так же пока не доступна (3).
Двигаемся дальше. Так как VRF-ы настраиваются локально на устройстве, то их надо настроить только на роутерах Router_2 и Router_4. Возвращаемся на Router_2:

Router_2#conf t
Router_2(config)#ip vrf VRF_A – создаем первый VRF ;
Router_2(config-vrf)#rd 1:1 – задаем уникальный идентификатор, который будет использоваться для определения принадлежности маршрутной информации тому или иному VPN-у. Он может задаваться двумя способами: 16-bit номер: 32-bit номер (пример, 1:3 ) или 32-bit IP адрес: 16-bit номер (пример, 172.16.1.1:1 ) ;
Router_2(config-vrf)#route-target export 1:1 – определяем идентификатор, описывающий правила экспорта маршрутов (сети, которые будут выходить из данного VRF (можно настроить передачу сетей между VRF-ми)) ;
Router_2(config-vrf)#route-target import 1:1 – определяем идентификатор, описывающий правила импорта маршрутов (сети, которые будут входить в данный VRF (можно настроить передачу сетей между VRF-ми)) ;
Router_2(config-vrf)#exit
Router_2(config)#ip vrf VRF_B
Router_2(config-vrf)#rd 2:1
Router_2(config-vrf)#route-target export 2:1
Router_2(config-vrf)#route-target import 2:1
Router_2(config-vrf)#exit
Router_2(config)#int fa 0/0
Router_2(config-if)#ip vrf forwarding VRF_A – назначаем принадлежность интерфейса нужному VRF-у ;
% Interface FastEthernet0/0 IP address 1.1.1.1 removed due to enabling VRF VRF_A – при назначении интерфейса в VRF с него снимается IP-адрес (если он был настроен) ;
Router_2(config-if)#ip address 1.1.1.1 255.255.255.252 – заново назначаем IP-адрес на интерфейсе ;
Router_2(config-if)#exit
Router_2(config)#int fa 2/0
Router_2(config-if)#ip vrf forwarding VRF_B
% Interface FastEthernet2/0 IP address 192.168.2.1 removed due to enabling VRF VRF_B
Router_2(config-if)#ip address 192.168.2.1 255.255.255.0
Router_2(config-if)#exit
Router_2(config)#no ip route 192.168.1.0 255.255.255.0 1.1.1.2 –убираем статический маршрут из общей конфигурации ;
Router_2(config)#ip route vrf VRF_A 192.168.1.0 255.255.255.0 1.1.1.2 –добавляем этот маршрут в нужный VRF ;
Router_2(config)#exit
Router_2#wr
Router_2#
Теперь Router_4:

Router_4>en
Router_4#conf t
Router_4(config)#ip vrf VRF_A
Router_4(config-vrf)#rd 1:1
Router_4(config-vrf)#route-target both 1:1 – вместо двух команд (смотри выше), можно использовать одну. Результат один и тот же ;
Router_4(config-vrf)#exit
Router_4(config)#ip vrf VRF_B
Router_4(config-vrf)#rd 2:1
Router_4(config-vrf)#route-target both 2:1
Router_4(config-vrf)#exit
Router_4(config)#int fa 1/0
Router_4(config-if)#ip vrf forwarding VRF_B
Router_4(config-if)#ip address 4.4.4.1 255.255.255.252
Router_4(config-if)#exit
Router_4(config)#int fa 2/0
Router_4(config-if)#ip vrf forwarding VRF_A
Router_4(config-if)#ip address 172.16.1.1 255.255.255.0
Router_4(config-if)#exit
Router_4(config)#no ip route 172.16.1.0 255.255.255.0 4.4.4.2
Router_4(config)#ip route vrf VRF_B 172.16.1.0 255.255.255.0 4.4.4.2
Router_4(config)#exit
Router_4#wr
Router_4#
Итак, VRF-ы настроены. Теперь, для того чтобы выполнить команду ping с этих роутеров, нужно добавлять параметр VRF. Выглядит это так: ping vrf VRF_A 192.168.1.1 .
Двигаемся дальше. Теперь настроим BGP соседство между этими роутерами и определим сети, которыми они должны обмениваться (определим политику редистрибуции). Если со статическими маршрутами все понятно, то для сетей 192.168.2.0/24 (Router_2) и 17216.1.0/24 VRF_A (Router_4), которые являются directly connected, следует создать route-map, согласно которому в BGP будут попадать только они (так как помимо них есть еще и другие directly connected сети). Так же в этом блоке настроим связку BGP и VRF.
Снова возвращаемся на Router_2:

Router_2#conf t
Router_2(config)#ip access-list extended FOR_BGP – создаем список доступа, согласно которому пропускаться будет только нужная нам сеть ;
Router_2(config-ext-nacl)#permit ip 192.168.1.0 0.0.0.255 any –определяем эту сеть ;
Router_2(config-ext-nacl)#deny ip any any – запрещаем все остальное ;
Router_2(config-ext-nacl)#exit
Router_2(config)#route-map PERMIT_CONNECTED permit 10 – создаем «пропускающую» route-map ;
Router_2(config-route-map)#match ip address FOR_BGP – привязываем к ней список доступа ;
Router_2(config-route-map)#exit
Router_2(config)#router bgp 6500 – включаем процесс BGP и определяем номер AS ;
Router_2(config-router)#no auto-summary – выключаем автоматическое суммирование маршрутов (если включено) ;
Router_2(config-router)#no synchronization – выключаем синхронизацию (если включена) ;
Router_2(config-router)#neighbor 40.40.40.40 remote-as 6500 –прописываем IP-адрес соседа, находящегося в этой же AS ;
Router_2(config-router)#neighbor 40.40.40.40 update-source loopback 0 –указываем, что в качестве источника обновлений информации будет выступать IP-адрес loopback 0 интерфейса ;
Router_2(config-router)#bgp router-id 20.20.20.20 – определяем ID роутера в процессе BGP ;
Router_2(config-router)#address-family vpnv4 – переходим в режим конфигурирования VPN ;
Router_2(config-router-af)#neighbor 40.40.40.40 activate – активируем ранее указанного «соседа» (разрешаем обмен информацией) ;
Router_2(config-router-af)#neighbor 40.40.40.40 send-community extended – включаем рассылку расширенных атрибутов BGP ;
выходим из этого режима ;
Router_2(config-router)#address-family ipv4 vrf VRF_A – определяем семейство адресов для данного VRF-а ;
Router_2(config-router-af)#redistribute static – указываем, что для данного VRF-а для объявления использовать адреса сетей, полученные через редистрибуцию статических маршрутов ;
Router_2(config-router-af)#exit-address-family
Router_2(config-router)#address-family ipv4 vrf VRF_B
Router_2(config-router-af)#redistribute connected route-map PERMIT_CONNECTED – указываем, что для данного VRF-а для объявления использовать адреса сетей, полученные через редистрибуцию connected маршрутов, соответствующих ранее настроенной route-map ;
Router_2(config-router-af)#exit-address-family
Router_2(config-router)#exit
Router_2(config)#exit
Router_2#wr
Router_2#
Теперь Router_4:

Router_4#conf t
Router_4(config)#ip access-list extended FOR_BGP
Router_4(config-ext-nacl)#permit ip 172.16.1.0 0.0.0.255 any
Router_4(config-ext-nacl)#deny ip any any
Router_4(config-ext-nacl)#exit
Router_4(config)#route-map PERMIT_CONNECTED permit 10
Router_4(config-route-map)#match ip address FOR_BGP
Router_4(config-route-map)#exit
Router_4(config)#router bgp 6500
Router_4(config-router)#no auto-summary
Router_4(config-router)#no synchronization
Router_4(config-router)#neighbor 20.20.20.20 remote-as 6500
Router_4(config-router)#neighbor 20.20.20.20 update-source loopback 0
Router_4(config-router)#bgp router-id 40.40.40.40
*Mar 1 05:29:56.526: %BGP-5-ADJCHANGE: neighbor 20.20.20.20 Up
Router_4(config-router)#address-family vpnv4
Router_4(config-router-af)#neighbor 20.20.20.20 activate
*Mar 1 05:31:24.206: %BGP-5-ADJCHANGE: neighbor 20.20.20.20 Down Address family activated
*Mar 1 05:31:26.342: %BGP-5-ADJCHANGE: neighbor 20.20.20.20 Up –соседство установилось ;
Router_4(config-router-af)#neighbor 20.20.20.20 send-community extended

Router_4(config-router)#address-family ipv4 vrf VRF_A
Router_4(config-router-af)#redistribute connected route-map PERMIT_CONNECTED
Router_4(config-router-af)#exit-address-family
Router_4(config-router)#address-family ipv4 vrf VRF_B
Router_4(config-router-af)#redistribute static
Router_4(config-router-af)#exit-address-family
Router_4(config-router)#exit
Router_4(config)#exit
Router_4#wr
Router_4#
Проверим, что у нас есть на данный момент. Зайдем на Router_2:


Как видно из рисунка, на роутере присутствуют две разные таблицы маршрутизации для соответствующих VRF-ов. «Сосед» по BGP тот, который нужен. Но помимо этих двух таблиц, существует и третья общая таблица (не относящаяся ни к одному из VRF). Она сформирована с использованием протокола OSPF, и по ней видно, как добраться до роутера Router_4 (40.40.40.40):


Видно, что путь к Router_4 лежит через Router_3. По идее, должно все работать, но если вы попробуете сделать команду ping с Host_1 на адрес удаленной сети 172.16.1.1/24:


то у вас ничего не получиться (2). Напомню, это происходит из-за того, что Router_2 не знает о сети 172.16.1.0/24 (да и о других сетях тоже). Из рисунка также можно проследить работу VRF. Ping на IP-адрес Router_2 (1), находящийся в VRF_A, проходит, а вот на IP-адрес, находящийся в VRF_B (3), роутер возвращает ответ, что он не знает о такой сети («Заданный узел недоступен»).
Теперь перейдем к окончательной настройке нашей сети. Настроим MPLS на роутерах провайдера. Начнем с Router_2:

Router_2#conf t
Router_2(config)#mpls ip – глобально включаем MPLS ;
Router_2(config)#mpls label protocol ldp – определяем протокол для обмена метками ;
Router_2(config)#mpls ldp router-id loopback 0 – указываем ID роутера для использования в MPLS домене ;
Router_2(config)#int fa 1/0
Router_2(config-if)#mpls ip – включаем MPLS на интерфейсе ;
Router_2(config-if)#mpls mtu 1512 – увеличиваем размер mtu для MPLS ;
Router_2(config-if)#exit
Router_2(config)#exit
Router_2#wr
Router_2#
Теперь Router_3:

Router_3#conf t
Router_3(config)#mpls ip
Router_3(config)#mpls label protocol ldp
Router_3(config)#mpls ldp router-id loopback 0
Router_3(config)#int fa 0/0
Router_3(config-if)#mpls ip
*Mar 1 02:35:28.639: %LDP-5-NBRCHG: LDP Neighbor 20.20.20.20:0 (1) is UP – соседство по протоколу LDP установилось ;

Router_3(config-if)#exit
Router_3(config)#int fa 1/0
Router_3(config-if)#mpls ip
Router_3(config-if)#mpls mtu 1512
Router_3(config-if)#exit
Router_3(config)#exit
Router_3#wr
Router_3#
И Router_4:

Router_4#conf t
Router_4(config)#mpls ip
Router_4(config)#mpls label protocol ldp
Router_4(config)#mpls ldp router-id loopback 0
Router_4(config)#int fa 0/0
Router_4(config-if)#mpls ip
*Mar 1 02:37:52.559: %LDP-5-NBRCHG: LDP Neighbor 30.30.30.30:0 (1) is UP
Router_4(config-if)#mpls mtu 1512
Router_4(config-if)#exit
Router_4(config)#exit
Router_4#wr
Router_4#

Ну вот, вроде и все:). Теперь давайте все проверим. Сделаем ping с конечных хостов, посмотрим, что твориться на роутерах и отловим парочку пакетов:).
Host_1 и Host_2:


Видно, что Host_2 успешно ping-ует удаленную сеть (1) (192168.2.0/24), которая относится, как и он сам, к VRF_B. Ping на IP-адрес из другого VRF_A не проходит (2). Host_1 успешно «достукивается» до сети 172.16.1.0/24 (3) и не может попасть в сеть, где находится Host_2 (4), так как это уже другой VRF (хоть IP - адресация в этой сети такая же).
Что есть на Router_2 и Router_4:


Как видно из рисунка, все работает. MPLS пометила нужные маршруты (в графе «Outgoing» видны сети, которые относятся к VFR-ам, помеченные символом «V»; параметр «Untaged» означает, что данная сеть доступна через НЕ MPLS интерфейс и пакет, адресованный ей, после снятия метки будет отправлен основываясь на обычной таблице маршрутизации (FIB), «Aggregate» означает, что сеть появилась через редистрибуцию directly connected сетей), видны таблицы маршрутизации BGP для каждого VRF-а. Так же, обычные таблицы маршрутизации VRF_A и VRF_B содержат нужные маршруты.
Теперь посмотрим на содержимое пакетов. Отловим пакет ICMP request от Host_1 в сторону 172.16.1.1 на интерфейсе Router_2 (Int Fa 1/0), смотрящем в сторону Router_3:


Присутствуют две метки. №17 (1) – метка, используемая для доставки пакета по MPLS домену. №21 (1) – метка, используемая для идентификации VRF-а (или интерфейса, через который далее отправлять пакет). Если вы посмотрите на предыдущий рисунок, то в таблице LFIB роутера Router_4 заметите, что метке №21 соответствует directly connected сеть 172.16.1.0/24.
Посмотрим на тот же пакет уже на входе в роутер Router_4 (Int Fa 0/0):


Видно, что метка №17 уже снята и осталась только метка с №21. Согласно таблице LFIB у нее стоит параметр «Aggregate», это означает, что данная сеть попала через редистрибуцию directly connected сетей в BGP. Router_4 снимет эту метку, определит, что она относится к VRF_A и отправит пакет по месту назначения.
ICMP reply обрабатывается таким же образом, только в другую сторону. На Router_4 навешиваются две метки (одна для продвижения пакета по MPLS домену, вторая для идентификации VRF-а на другой стороне и так далее).
Для сравнения, давайте еще посмотрим на пакет ICMP reply от Router_2, идущий обратно на ICMP request от Host_2 на роутере Router_4 (Int Fa 0/0):


Видно, что метка уже имеет значение №22. Теперь Router_4, согласно своей таблице LFIB видит, что пакет соответствует VRF_B и, после снятия метки, его следует отправить через интерфейс Int Fa 1/0 (next hop 4.4.4.2).
Ну что же, осилили:). Поздравляю вас!!! Все работает.
На этом, я хочу закончить этот пост. Как всегда надеюсь, что он был для вас познавательным, не скучным и информативным.

Многие из тех, кто постоянно работает с сетями Internet, наверняка слышали о такой замечательной технологии как MPLS.
MPLS открывает нам такие новые возможности как AToM (Any Transport over Mpls),Traffic Engineering и пр.
AToM позволяет передавать поверх сети IP/MPLS трафик таких протоколов второго уровня как ATM, Frame Relay, Ethernet, PPP, и HDLC.
В данной статье я бы хотел остановиться на технологии EoMPLS.

Немного теории

MPLS - (англ. Multiprotocol Label Switching) - мультипротокольная коммутация по меткам.
В модели OSI теоретически можно расположить между вторым и третьим уровнями.

В соответствии с технологией MPLS, пакетам присваиваются метки для их передачи по сети. Метки включаются в заголовок MPLS, вставляемый в пакет данных.

Эти короткие метки фиксированной длины переносят информацию, которая показывает каждому коммутирующему узлу (маршрутизатору), как обрабатывать и передавать пакеты от источника к получателю. Они имеют значение только на участке локального соединения между двумя узлами. Поскольку каждый узел передает пакет, он заменяет текущую метку соответствующей меткой для обеспечения маршрутизации пакета к следующему узлу. Этот механизм обеспечивает очень высокоскоростную коммутацию пакетов по базовой сети MPLS.

MPLS объединяет в себе все лучшее от IP-маршрутизации 3-го уровня и коммутации 2-го уровня.
В то время как маршрутизаторам требуется интеллект сетевого уровня, чтобы определить, куда передавать трафик, коммутаторам нужно только передать данные на следующий транзитный участок, а это естественно проще, быстрее и дешевле. MPLS полагается на традиционные протоколы маршрутизации IP, чтобы объявить и установить сетевую топологию. Затем MPLS накладывается поверх этой топологии. MPLS предопределяет путь распространения данных по сети и кодирует эту информацию в виде метки, которую понимают маршрутизаторы сети.
Поскольку планирование маршрута происходит в начальный момент времени и на краю сети (где состыковываются сети потребителя и провайдера услуг), MPLS-помеченные данные требуют меньше вычислительных возможностей от маршрутизаторов, чтобы пересечь ядро сети провайдера услуг.

AToM
Для создания VPN Layer 2 по схеме точка-точка (point-to-point) разработана технология Any Transport Over MPLS (AToM), обеспечивающая передачу Layer 2 фреймов через MPLS сеть. AToM – это интегральная технология, включающая Frame Relay over MPLS, ATM over MPLS, Ethernet over MPLS.

EoMPLS инкапсулирует Ethernet фреймы в MPLS пакеты и использует стек меток для продвижения через MPLS сеть.

Канал, построенный на технологии EoMPLS, для потребителя услуг провайдера выглядит как виртуальный патчкорд.

Итак, поехали… Как же создать VPN Layer 2 с использованием EoMPLS?

Представим, что у нас есть очень важный клиент, которому необходимо объединить два филиала (Москва и Владивосток) в один сегмент сети, с единой сквозной IP-адресацией. Здесь и приходит на помощь AToM.
Как это видит клиент
Как это видит провайдер

Перед непосредственной настройкой VPN необходимо обеспечить работу MPLS.

Настроить его намного проще, чем кажется на первый взгляд (мы говорим о минимальной базовой настройке).
  1. Для начала включим IP CEF и MPLS в глобальной настройке нашего маршрутизатора.
    MSK-1#conf t
    MSK-1(config)#ip cef
    MSK-1(config)#mpls ip

    Если такую команду маршрутизатор отказывается понимать, то либо текущая версия IOS, либо само оборудование не поддерживает MPLS.
  2. Создаем loopback интерфейс, через который и будет работать наш MPLS.
    MSK-1#conf t
    MSK-1(config)#int lo1
    MSK-1(config-if)#ip address 1.1.1.1 255.255.255.255

    Технически может работать и непосредственно на интерфейсах, обеспечивающих связь между двумя маршрутизаторами. Но такая схема создает только лишь дополнительные трудности. Например, смена IP-адресации на участке между маршрутизаторами.
  3. Настраиваем роутинг для обеспечения связи маршрутизаторов через loopback интерфейсы.
    Можно использовать либо статические маршруты, либо динамические протоколы маршрутизации. Возьмем к примеру, OSPF.
    MSK-1#conf t
    MSK-1(config)#router ospf 100
    MSK-1(config-router)#log-adjacency-changes
    MSK-1(config-router)#network 1.1.1.1 0.0.0.0 area 0
    MSK-1(config-router)#network 1.0.0.0 0.0.0.3 area 0
    MSK-1(config-router)#

    В качестве network указывается loopback-интерфейс и сети интерфейсов для связи между маршрутизаторами.

    Проверяем командой ping, что все работает.

    MSK-1#ping 1.1.1.3
    Type escape sequence to abort.
    Sending 5, 100-byte ICMP Echos to 1.1.1.3, timeout is 2 seconds:
    ! ! ! ! !
    Success rate is 100 percent (5/5), round-trip min/avg/max = 1/3/4 ms
    MSK-1#
  4. Укажем нашему роутеру, что в качестве «router-id» будет использоваться loopback интерфейс.
    MSK-1#conf t
    MSK-1(config)#mpls ldp router-id Loopback1 force
  5. Включаем MPLS на интерфейсах, которые связывают маршрутизаторы между собой.
    MSK-1#conf t
    MSK-1(config)#int gi0/2
    MSK-1(config-if)#mpls ip
  6. Смотрим, что связь по MPLS установлена.
    MSK-1#sh mpls ldp neighbor Peer LDP Ident: 1.1.1.2:0; Local LDP Ident 1.1.1.1:0 TCP connection: 1.1.1.2.12817 - 1.1.1.1.646 State: Oper; Msgs sent/rcvd: 36243/37084; Downstream Up time: 01:39:49 LDP discovery sources: Targeted Hello 1.1.1.1 -> 1.1.1.2, active, passive GigabitEthernet0/2, Src IP addr: 1.0.0.2 Addresses bound to peer LDP Ident: 1.1.1.2 1.0.0.2 1.1.1.6 Peer LDP Ident: 1.1.1.3:0; Local LDP Ident 1.1.1.1:0 TCP connection: 1.1.1.3.48545 - 1.1.1.1.646 State: Oper; Msgs sent/rcvd: 347/127; Downstream Up time: 01:39:49 LDP discovery sources: Targeted Hello 1.1.1.1 -> 1.1.1.3, active, passive Addresses bound to peer LDP Ident: 1.0.0.5 1.1.1.3 MSK-1#

Основная настройка MPLS на этом закончена.
Здесь я представил настройку лишь одного маршрутизатора. В самом конце статьи можно посмотреть конфиги всех маршрутизаторов.

Переходим к настройке канала EoMPLS для нашего воображаемого клиента.

Вся настройка сводится к созданию sub-интерфейсов на обоих маршрутизаторах.

С одной стороны:

MSK-1#conf t
MSK-1(config)int gi0/1.100
MSK-1(config-subif)#encapsulation dot1Q 100
MSK-1(config-subif)#xconnect 1.1.1.3 123456789 encapsulation mpls

С другой стороны:

Vladi-1#conf t
Vladi-1(config)int gi0/1.40
Vladi-1(config-subif)#encapsulation dot1Q 40
Vladi-1(config-subif)#xconnect 1.1.1.1 123456789 encapsulation mpls

Некоторые моменты поподробнее:
encapsulation dot1Q 100 - указываем тег dot1Q. Если проще - номер VLAN, по которому будет ходить трафик клиента от маршрутизатора до его порта на коммутаторе. На другом маршрутизаторе это значение может отличаться. Что позволяет нам объединить два совершено разных VLANа.
xconnect 1.1.1.3 - создаем иксконнект до необходимого маршрутизатора. Туда, куда включена вторая точка нашего клиента.
123456789 - Значение Virtual Circuit. Должно быть одинаковым на обоих маршрутизаторах. Именно это значение идентифицирует наш канал. Значние VC может быть в диапазоне от 1 до 4294967295.

Теперь остается лишь проверить, что наш канал заработал, и радоваться жизни.
MSK-1#sh mpls l2transport vc 123456789 Local intf Local circuit Dest address VC ID Status Gi0/1.100 Eth VLAN 100 1.1.1.3 123456789 UP MSK-1#

И детальная информация:

MSK-1#sh mpls l2transport vc 123456789 detail Local interface: Gi0/1.100 up, line protocol up, Eth VLAN 100 up Destination address: 1.1.1.3, VC ID: 123456789, VC status: up Next hop: 1.0.0.2 Output interface: Gi0/2, imposed label stack {599 17} Create time: 02:33:18, last status change time: 02:33:14 Signaling protocol: LDP, peer 1.1.1.3:0 up MPLS VC labels: local 140, remote 17 Group ID: local 0, remote 0 MTU: local 1500, remote 1500 Remote interface description: Sequencing: receive disabled, send disabled VC statistics: packet totals: receive 1391338893, send 1676515662 byte totals: receive 2765021070, send 3317727319 packet drops: receive 0, send 0 MSK-1#

Проблемы с MTU

Необходимо помнить, что при работе MPLS, к пакету Ethernet дополнительно добавляется 12 байт.
Чтобы избежать фрагментации пакетов, на интерфейсах можно указать «mpls mtu 1512». Но в данном случае, все устройства, находящие на пути следования, должны поддерживать пропускание пакетов с размером MTU, больше чем 1500.

P.S. Конфиги всех роутеров как и обещал.

Москва
#mpls ip

#router ospf 100
log-adjacency-changes
network 1.1.1.1 0.0.0.0 area 0
network 1.0.0.0 0.0.0.3 area 0

#interface GigabitEthernet0/2
ip address 1.0.0.1 255.255.255.252
mpls ip

#interface Loopback1
ip address 1.1.1.1 255.255.255.255

#interface GigabitEthernet0/1.100
encapsulation dot1Q 100
xconnect 1.1.1.3 123456789 encapsulation mpls


Описать абсолютно все аспекты в одной статье невозможно. Постарался рассказать как можно кратко тот минимум, который необходим для работы.

Курс MPLS 3.0 – 5-дневный курс под руководством инструктора, специально разработанный для того, чтобы предоставить слушателям глубокие знания по технологии MPLS, которая используется в сетях провайдеров для организации высокоэффективной маршрутизации трафика, а также для создания VPN-сетей нового поколения.

Курс рассматривает теоретические вопросы строения и функционирования технологии MPLS на маршрутизаторах CISCO, а также детально покрывает вопросы обнаружения и устранения неисправностей при настройке и работе с технологией MPLS. Также в курсе подробно рассматривается использование MPLS для создания MPLS VPN и участие в них протокола MP-BGP. В обновленной версии курса добавлен раздел, описывающий возможность управления трафиком в MPLS (технология MPLS-TE).

Большая часть курса состоит из практических заданий, позволяющих применить полученные знания и умения в тестовой лабораторной сети. Технический контент курса был обновлен и адаптирован под Cisco IOS Software Release 15. Все лабораторные работы производятся на виртуальном стенде.

Курс предназначен для сетевых инженеров, сотрудников технических служб, а также специалистов, которые занимаются поддержкой и внедрением технологии MPLS, профессионалов, которые хотят повысить свой уровень в области технологий провайдеров, работы технологии MPLS и ее использования, архитекторов корпоративных сетей и сетей сервис-провайдеров.

  • Специалистам по работе с сетями, которым необходимо правильно реализовывать решения на основе маршрутизации в соответствии с сетевым дизайном, предлагаемым Cisco. Реализация включает в себя планирование, конфигурирование и проверку;
  • Сетевым инженерам и персоналу технической поддержки;
  • Администраторам, которые занимаются настройкой и проверкой работы протоколов маршрутизации в сетях предприятий.

По окончании курса вы будете уметь

  • Понимать основные принципы работы технологии MPLS
  • Понимать способы назначения и распространения меток
  • Конфигурировать и отлаживать frame-mode MPLS на оборудовании CISCO
  • Понимать принципы построения распределенной архитектуры MPLS-сетей и правила маршрутизации и распространения пакетов в таких сетях
  • Конфигурировать, отлаживать и мониторить MPLS VPN сети
  • Понимать принципы использования MPLS для создания систем управляемых сервисов
  • Понимать принципы работы различных моделей доступа в Интернет, а также преимущества и недостатки каждой модели
  • Внедрять технологию MPLS TE

Требуемая подготовка

  • Сертификация Cisco Certified Network Associate (CCNA) или аналогичный уровень знаний и опыта
  • Рекомендуется освоение материалов курса CCNA Basics и ICND или аналогичный уровень знаний и опыта, который может быть получен при прохождении курсов Cisco
  • Курс построения масштабируемых сетей Cisco (BSCI) и Конфигурирование BGP на роутерах Cisco (BGP)
  • Настоятельно рекомендуется обладание практическим опытом построения и эксплуатации сетей на оборудовании Cisco
  • Курс QoS рекомендуется, так как знание QoS подразумевается в некоторых частях курса

Программа курса

Модуль 1. Функции MPLS

  • Технология MPL
  • Описание меток и стеков меток MPLS
  • Сервисы MPLS

Модуль 2. Назначение и распределение меток

  • Протокол LDP
  • Распределение меток в Frame-Mode MPLS
  • Описание сходимости в Frame-Mode MPLS

Модуль 3. Внедрение Frame-Mode MPLS на платформе Cisco IOS

  • Использование коммутации Cisco Express Forwarding
  • Настройка Frame-Mode MPLS на платформе Cisco IOS
  • Проверка Frame-Mode MPLS на платформе Cisco IOS
  • Поиск и устранение неисправностей в Frame-Mode MPLS на платформе Cisco IOS

Модуль 4. Технология MPLS VPN

  • Знакомство с VPN
  • Знакомство с архитектурой MPLS VPN
  • Знакомство с моделью маршрутизации MPLS VPN
  • Пересылка пакетов MPLS VPN
  • Использование механизмов MPLS VPN на платформах Cisco IOS
  • Настройка таблиц VRF
  • Настройка MP-BGP сессий между пограничными маршрутизаторами провайдера
  • Настройка протоколов маршрутизации малой масштабируемости между маршрутизаторами провайдера и клиента
  • Проверка работы MPLS VPN
  • Настройка OSPF как протокола маршрутизации между маршрутизаторами провайдера и клиента
  • Настройка BGP как протокола маршрутизации между маршрутизаторами провайдера и клиента
  • Поиск и устранение неисправностей MPLS VPN

Модуль 5. Комплексные MPLS VPN

  • Знакомство с Overlapping VPN
  • Знакомство с Central Services VPN
  • Использование расширенных функций импорта и экспорта VRF
  • Знакомство с сервисом управляемых маршрутизаторов клиента

Модуль 6. Доступ в интернет и MPLS VPN

  • Комбинирование доступа в интернет и MPLS VPN
  • Внедрение раздельных сервисов доступа в интернет и VPN
  • Внедрение доступа в интернет как отдельного VPN

Модуль 7. Обзор MPLS TE

  • Знакомство с концепцией Traffic Engineering
  • Обзор компонентов MPLS TE
  • Настройка MPLS TE на платформе Cisco IOS
  • Проверка настроек MPLS TE на платформе Cisco IOS

Сертификации и экзамены

Данный курс готовит к экзаменам, входящим в программы подготовки сертифицированных специалистов международного уровня:

  • Cisco Certified Internetwork Professional









Введение

В данном документе содержатся ответы на наиболее часто задаваемые вопросы, касающиеся многопротокольной коммутации по меткам (MPLS) для специалистов начального уровня подготовки.

Вопрос. Что такое многопротокольная коммутация по меткам (MPLS)?

Ответ. Многопротокольная коммутация по меткам (MPLS) - это технология переадресации пакетов, которая использует метки для принятия решений о перенаправлении данных. С помощью MPLS проводится однократный анализ заголовка третьего уровня (при поступлении пакета в домен MPLS). Анализ метки приводит к дальнейшей переадресации пакета. MPLS предлагает следующие удобные приложения:

  • Virtual Private Networking (VPN)
  • Traffic Engineering (TE)
  • Quality of Service (QoS)
  • Any Transport over MPLS (AToM)

Кроме того, эта технология уменьшает время перенаправления пакета на основных маршрутизаторах. Технологии MPLS применимы к любым протоколам сетевого уровня.

Вопрос. Что такое метка? Какова структура метки?

Ответ. Метка имеет небольшой размер, равный четырем байтам, фиксированную длину и устанавливается локально, что используется для идентификации класса эквивалентной переадресации (FEC). Метка, присвоенная определенному пакету, содержит данные о FEC, которому назначен этот пакет.

  • Label - значение метки (неструктурированно), 20 бит
  • Exp - экспериментальное использование, 3 бита; в текущий момент используется в качестве поля Class of Service (CoS).
  • S - нижняя граница стека, 1 бит
  • TTL - время жизни, 8 бит

Вопрос. В какой части пакета устанавливается метка?

Ответ. Метка устанавливается между заголовком уровня канала данных (второй уровень) и заголовком сетевого уровня (третий уровень). Верхняя граница стека меток отображается первой в пакете, а нижняя - последней. Пакет сетевого уровня непосредственно следует последней метке из стека меток.

Вопрос. Что такое класс эквивалентной переадресации (FEC)?

Ответ. Класс эквивалентной переадресации FEC является группой IP-пакетов, которые переадресуются одинаковым образом по одному и тому же маршруту и с одной и той же обработкой переадресации. FEC может соответствовать адресу IP-подсети назначения, кроме того, FEC может соответствовать любому классу трафика, который Edge-LSR рассматривает в качестве важного. Например, весь трафик с определенным значением IP-приоритета может служить основой для FEC.

Вопрос. Что такое восходящий маршрутизатор коммутирующий по меткам (LSR)? Что такое нисходящий маршрутизатор коммутирующий по меткам?

Ответ. Восходящий и нисходящий являются относительными понятиями для MPLS. Они всегда обращаются к префиксу (правильнее говорить о FEC). Это объясняется в следующем примере.

Для FEC 10.1.1.0/24, R1 является "нисходящим" маршрутизатором коммутирующим по меткам в R2.

Для FEC 10.1.1.0/24, R2 является "восходящим" маршрутизатором коммутирующим по меткам в R1?

Для FEC 10.1.1.0/24, R1 является "нисходящим" маршрутизатором коммутирующим по меткам в R2. А R2 является "нисходящим" маршрутизатором коммутирующим по меткам в R3.

Для FEC 10.1.1.0/24, R1 является "нисходящим" маршрутизатором коммутирующим по меткам в R2. Для FEC 10.2.2.0/24, R2 является "нисходящим" маршрутизатором коммутирующим по меткам в R1.

Для достижения этой сети данные передаются от восходящего к нисходящему маршрутизатору.

В таблице маршрутизации R4 содержатся данные о R1 и R2, как о следующих сетевых сегментах для достижения 10.1.1.0/24.

Вопрос. Является ли R3 "нисходящим" маршрутизатором коммутирующим по меткам в R4 для 10.1.1.0/24?

Ответ. Нет. Данные передаются от восходящего к нисходящему маршрутизатору.

Вопрос. Что означают термины "входящий", "исходящий", "локальный" и "удаленный" применительно к меткам?

Ответ. В данной топологии рассмотрим маршрутизаторы R2 и R3. R2 распределяет метку L для FEC F в R3. R3 использует метку L при перенаправлении данных к FEC-F (так как R2 является его нисходящим маршрутизатором коммутирующим по меткам для FEC-F). В данном примере:

  • L является входящей меткой для F на R2.
  • L является исходящей меткой для FEC-F на R3.
  • L является локальным значением для FEC-F на R2.
  • L является удаленной меткой для FEC-F на R3.

Вопрос. Может ли маршрутизатор коммутирующий по меткам использоваться для отправки и (или) получения на MPLS-интерфейс собственного IP-пакета (не MPLS)?

Ответ. Да, если на интерфейсе может использоваться IP-протокол. Собственные пакеты передаются и принимаются как обычно. IP - это всего лишь другой протокол. Пакеты MPLS имеют другую кодировку второго уровня. Принимающий маршрутизатор коммутирующий по меткам распознает пакет MPLS, основанный на кодировке второго уровня.

Вопрос. Может ли маршрутизатор коммутирующий по меткам использоваться для отправки и (или) получения помеченных пакетов на интерфейс отличный от MPLS?

Ответ. Нет. Пакеты никогда не передаются на интерфейс, который не допускает использование этого протокола. MPLS обладает определенным типом кодировки Ether, связанным с многопротокольной коммутацией по меткам (точно так же, как IP, IPX и Appletalk обладают уникальными типами Ether). При получении маршрутизатором Cisco пакета с типом Ether, которые не может использоваться на интерфейсе, происходит отклонение такого пакета. Например, если маршрутизатор получает пакет Appletalk на интерфейсе, который не может обрабатывать пакеты Appletalk, то происходит отклонение пакета. Аналогично этому, если пакет MPLS получен на интерфейсе, который не может его обработать, то этот пакет отклоняется.

Вопрос. Какие платформы и операционные системы Cisco IOS поддерживают работу с многопротокольной коммутацией по меткам (MPLS)?

Ответ. Многопротокольную коммутацию по меткам могут использовать Cisco Series 2691, 3640, 3660, 3725, 3745, 6400-NRP-1, 6400-NRP-2SV, 6400-NSP, Catalyst 5000 с модулем маршрутизации коммутатора (RSM), 7200, 7301, 7400, 7500, Catalyst 6500/Cisco 7600 Series с WS-SUP720-3B и WS-SUP720-3BXL, Gigabit Switch Router (GSR), Route Processor Module (RPM), Universal Broadband Router (UBR) 7200, AS5350 и IGX8400-URM.

Эти платформы поддерживают Cisco TDP-протокол в качестве протокола распределения меток.

Сведения о LDP-протоколе, RSVP-протоколе и BGP-протоколе могут быть найдены с помощью служебной программы (только для пользователей ). Software Advisor предоставляет сведения о полном списке наборов функций, поддерживаемых в различных версиях Cisco IOS и на различных платформах.

Вопрос. GRE-туннель использует служебные данные размером 24 байта. Какой размер служебных данных соответствует туннелю MPLS LSP?

Ответ. Туннель MPLS LSP имеет одну метку (четыре байта) или две метки (например, при использовании переадресации быстрого защищенного канала) в области служебных данных. В отличии от туннеля GRE, туннель MPLS не может изменять заголовки IP-пакетов. Вместо этого, стек меток применяется к пакету проходящему по пути туннеля.

Вопрос. Как маршрутизатор коммутирующий по меткам определяет какая метка из стека меток считается верхней, нижней или средней?

Ответ. Метка, расположенная сразу после заголовка второго уровня, является верхней меткой, а метка с битом S = 1 является нижней меткой. Средние метки не считываются и не идентифицируются маршрутизатором коммутирующим по меткам. При этом метка будет средней меткой, если она не находится вверху стека и бит S = 0.

Вопрос. Каков диапазон значений метки? Какие значения метки могут быть получены? Что означают полученные значения?

Ответ. Эти значения также могут быть найдены в документе RFC3032 - MPLS Label Stack Encoding (RFC3032 - кодировка меток стека MPLS) .

Теоретически диапазон значений от 0 до (2 20 -1). Значения меток 0-15 зарезервированы, а значения 4-15 зарезервированы для последующего использования. Значения 0-3 определяются следующим образом:

  • Значение 0 соответствует "IPv4 Explicit NULL Label". Эта метка указывает на то, что пакет должен быть извлечен из стека меток, а переадресация пакета должна быть основана на основе IP-заголовка версии 4. Это помогает сохранить бит Exp неизменным до выхода из маршрутизатора. Он используется в QoS на основе MPLS.
  • Значение 1 соответствует "Router Alert Label". Если полученный пакет содержит это значение метки вверху стека меток, то пакет доставляется модулю локального программного обеспечения для обработки. Фактическая переадресация пакета определяется его меткой в стеке. Однако если пакет переадресуется далее, то метка Router Alert Label должна быть возвращена обратно в стек меток перед выполнением переадресации. Использование этой метки аналогично использованию метки "Router Alert Option" в IP-пакетах (например, проверка связи с параметром записи маршрутизатора)
  • Значение 2 соответствует "IPv6 Explicit NULL Label". Эта метка указывает на то, что пакет должен быть извлечен из стека меток, а переадресация пакета должна быть основана на основе IP-заголовка версии 6.
  • Значение 3 соответствует "Implicit NULL Label". Это метка, которую маршрутизатор коммутирующий по меткам может назначать и распределять. Однако она никогда не отображается в инкапсуляции. Это указывает на то, что маршрутизатор коммутирующий по меткам выталкивает верхнюю метку из стека и направляет оставшуюся часть пакета (с меткой или без) через исходящий интерфейс (для каждой записи Lfib). Хотя это значение может никогда не отображаться в инкапсуляции, необходимо задать LDP-протокол так, чтобы зарезервировать значение.

Вопрос. Какой протокол и номер порта позволяют использовать протоколы LDP и TDP для распределения меток в узлах LDP/TDP?

Ответ. LDP-протокол использует TCP-порт 646, а TDP-протокол использует TCP-протокол 711. Эти порты открыты на интерфейсе маршрутизатора только когда mpls ip настраивается на этот интерфейс. Использование TCP в качестве транспортного протокола приводит к надежной доставке данных LDP/TDP с помощью надежных механизмов управления потоком и обработки перегрузок.

Вопрос. Какие ограничения на использование MPLS существуют для маршрутизаторов Catalyst 6500 и 7600 Optical Services (OSR)?

Ответ. Интерфейс, связанный с доменом MPLS, должен использовать один из оптических служебных модулей (OSM) (например, любой модуль, который использует комплекс Parallel Express Forwarding (PXF)) или интерфейс в модуле FlexWAN. Те же самые ограничения существуют и для многопротокольной коммутации по меткам третьего уровня VPN. Именно поэтому IP-кадр должен поступать на WAN-интерфейс, который может быть либо оптическим служебным модулем, либо интерфейсом в модуле FlexWAN. Эти ограничения не распространяются на Supervisor 720.



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: