Как стать автором
Обновить

Настраиваем EoMPLS на маршрутизаторах Cisco

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

image


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


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.

Как это видит клиент

image

Как это видит провайдер

image

Перед непосредственной настройкой 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 ip

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

#interface GigabitEthernet0/1
ip address 1.0.0.6 255.255.255.252
mpls ip

#interface GigabitEthernet0/2
ip address 1.0.0.2 255.255.255.252
mpls ip

#interface Loopback2
ip address 1.1.1.2 255.255.255.255



Владивосток
#mpls ip

#router ospf 100
log-adjacency-changes
network 1.1.1.3 0.0.0.0 area 0
network 1.0.0.6 0.0.0.3 area 0

#interface GigabitEthernet0/2
ip address 1.0.0.5 255.255.255.252
mpls ip

#interface Loopback3
ip address 1.1.1.3 255.255.255.255

#interface GigabitEthernet0/1.40
encapsulation dot1Q 40
xconnect 1.1.1.1 123456789 encapsulation mpls



Описать абсолютно все аспекты в одной статье невозможно. Постарался рассказать как можно кратко тот минимум, который необходим для работы.
Теги:
Хабы:
Всего голосов 26: ↑25 и ↓1+24
Комментарии42

Публикации