Пример статического MPLS

В данном примере выполняется построение MPLS-сети между четырьмя маршрутизаторами путём статической настройки таблиц FTN (FEC To Next Hop и ILM (Incoming Label Map) для организации сквозных LSP. Маршрутизаторы R1 и R4 выполняют роль LER, присваивая и удаляя метки на границах MPLS-домена, а R2 и R3 функционируют как транзитные LSR, осуществляя коммутацию меток на основе предварительно прописанных правил.

Постройте схему в соответствии с рисунком ниже.

Рисунок

Настройте порты и интерфейсы на каждом из маршрутизаторов:

enable
configure
hostname R1
 
interface 2ge0
 label-switching
 ip address 10.0.1.1/24
port ge0
 service-instance 4ge0
  encapsulation untagged
  connect ip interface 2ge0
enable
configure
hostname R2
 
interface 2ge0
 label-switching
 ip address 10.0.1.2/24
port ge0
 service-instance 4ge0
  encapsulation untagged
  connect ip interface 2ge0
  
interface 2ge1
 label-switching
 ip address 10.0.2.2/24
port ge1
 service-instance 4ge1
  encapsulation untagged
  connect ip interface 2ge1
enable
configure
hostname R3
 
interface 2ge0
 label-switching
 ip address 10.0.3.3/24
port ge0
 service-instance 4ge0
  encapsulation untagged
  connect ip interface 2ge0
  
interface 2ge1
 label-switching
 ip address 10.0.2.3/24
port ge1
 service-instance 4ge1
  encapsulation untagged
  connect ip interface 2ge1
enable
configure
hostname R4
 
interface 2ge0
 label-switching
 ip address 10.0.3.4/24
port ge0
 service-instance 4ge0
  encapsulation untagged
  connect ip interface 2ge0

На R1 в конфигурационном режиме введите команду: mpls ftn-entry 10.0.3.0/24 111 10.0.1.2 2ge0. Команда вносит правило в FTN (FEC To Next hop) — таблицу сопоставления FEC и NextHop. Цель, к которой нужно проложить путь от R1, — это подсеть 10.0.3.0/24; именно этот префикс является FEC. В качестве входного MPLS-маршрутизатор (Ingress LER) R1 добавляет метку 111 и передаёт пакет на следующий узел — на интерфейс 2ge0 и адрес 10.0.1.2.

На R2 в конфигурационном режиме введите команду: mpls ilm-entry 111 2ge0 swap 222 2ge1 10.0.2.3 10.0.3.0/24. Команда вносит правило в ILM (Incoming Label Map) — таблицу, устанавливающую действие над пришедшим MPLS-пакетом в зависимости от его метки. На R2, пакет пришедший на интерфейс 2ge0 с меткой 111, перенаправляется на интерфейс 2ge1 и адрес 10.0.2.3 с заменой (SWAP) метки на 222.

На R3 в конфигурационном режиме введите команду: mpls ilm-entry 222 2ge1 swap 3 2ge0 10.0.3.4 10.0.3.0/24. Аналогично предыдущему действию, пакет перенаправляется в сторону R4 с меткой 3. Метка 3 имеет специфическое значение неявной нулевой метки (Implicit Null Label) и реализует механизм PHP (Penultimate Hop Popping), снимая метку уже на R3. В результате на R4 придёт уже обычный IP-пакет без MPLS заголовка.

Путь LSP (Label Switching Path) является однонаправленным. Для двусторонней связи необходимо проложить обратный путь.

На R4 в конфигурационном режиме введите команду: mpls ftn-entry 10.0.1.0/24 333 10.0.3.3 2ge0. Это полная аналогия правила введённого на R1, но теперь R4 выступает в роли Ingress LSR, а FEC — это адрес подсети 10.0.1.0/24.

На R3 в конфигурационном режиме введите команду: mpls ilm-entry 333 2ge0 swap 444 2ge1 10.0.2.2 10.0.1.0/24. R3 меняет пакету метку и отправляет дальше по цепочке на R2.

На R2 в конфигурационном режиме введите команду: mpls ilm-entry 444 2ge1 swap 0 2ge0 10.0.1.1 10.0.1.0/24. R2 предпоследний маршрутизатор перед Egress LSR R1. Здесь пакету присваивается специфическая метка 0 (явный нуль, Explicit Null), которая станет сигналом для R1, что метку нужно просто снять (POP) и обрабатывать пакет как обычный IP-пакет. При этом значения QoS и TTL придут на R1 вместе с MPLS-заголовком и будут доступны для обработки. Это можно легко увидеть, если применить анализатор трафика на соединении R1—R2.

На R1 выполните команду ping 10.0.3.4. Связь по всей цепочке R1—R2—R3—R4 построена средствами статического MPLS в обоих направлениях, и вы должны получить успешный обмен ICMP-пакетами.

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