Многие из тех, кто постоянно работает с сетями 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, для потребителя услуг провайдера выглядит как виртуальный патчкорд.
Представим, что у нас есть очень важный клиент, которому необходимо объединить два филиала (Москва и Владивосток) в один сегмент сети, с единой сквозной IP-адресацией. Здесь и приходит на помощь AToM.


Настроить его намного проще, чем кажется на первый взгляд (мы говорим о минимальной базовой настройке).
Основная настройка MPLS на этом закончена.
Здесь я представил настройку лишь одного маршрутизатора. В самом конце статьи можно посмотреть конфиги всех маршрутизаторов.
Вся настройка сводится к созданию sub-интерфейсов на обоих маршрутизаторах.
С одной стороны:
С другой стороны:
Некоторые моменты поподробнее:
encapsulation dot1Q 100 — указываем тег dot1Q. Если проще — номер VLAN, по которому будет ходить трафик клиента от маршрутизатора до его порта на коммутаторе. На другом маршрутизаторе это значение может отличаться. Что позволяет нам объединить два совершено разных VLANа.
xconnect 1.1.1.3 — создаем иксконнект до необходимого маршрутизатора. Туда, куда включена вторая точка нашего клиента.
123456789 — Значение Virtual Circuit. Должно быть одинаковым на обоих маршрутизаторах. Именно это значение идентифицирует наш канал. Значние VC может быть в диапазоне от 1 до 4294967295.
И детальная информация:
Необходимо помнить, что при работе MPLS, к пакету Ethernet дополнительно добавляется 12 байт.
Чтобы избежать фрагментации пакетов, на интерфейсах можно указать «mpls mtu 1512». Но в данном случае, все устройства, находящие на пути следования, должны поддерживать пропускание пакетов с размером MTU, больше чем 1500.
P.S. Конфиги всех роутеров как и обещал.
Описать абсолютно все аспекты в одной статье невозможно. Постарался рассказать как можно кратко тот минимум, который необходим для работы.
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.
Настроить его намного проще, чем кажется на первый взгляд (мы говорим о минимальной базовой настройке).
- Для начала включим 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 |
Описать абсолютно все аспекты в одной статье невозможно. Постарался рассказать как можно кратко тот минимум, который необходим для работы.