Страница 1 из 1

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

Добавлено: 09 сен 2016, 04:26
xor
Источник: https://habrahabr.ru/post/64073/

Настраиваем EoMPLS на маршрутизаторах Cisco
Многие из тех, кто постоянно работает с сетями 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.

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

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

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

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

Код: Выделить всё

MSK-1#conf t
MSK-1(config)#ip cef
MSK-1(config)#mpls ip
Если такую команду маршрутизатор отказывается понимать, то либо текущая версия IOS, либо само оборудование не поддерживает MPLS.
Создаем 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-адресации на участке между маршрутизаторами.
Настраиваем роутинг для обеспечения связи маршрутизаторов через 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#
Укажем нашему роутеру, что в качестве «router-id» будет использоваться loopback интерфейс.

Код: Выделить всё

MSK-1#conf t
MSK-1(config)#mpls ldp router-id Loopback1 force
Включаем MPLS на интерфейсах, которые связывают маршрутизаторы между собой.

Код: Выделить всё

MSK-1#conf t
MSK-1(config)#int gi0/2
MSK-1(config-if)#mpls ip
Смотрим, что связь по 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
Описать абсолютно все аспекты в одной статье невозможно. Постарался рассказать как можно кратко тот минимум, который необходим для работы.