Внедрение MPLS на оборудовании CISCO. Если интересно, как они устанавливают TCP-соединение

Курс 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
, я же начну с примера и по ходу повествования буду пояснять непонятные вещи:).
Представим себя, ненадолго, провайдером. У нас имеется в распоряжении группа роутеров расположенных на определенной территории, между которыми настроено сетевое взаимодействие. К нам обратились два клиента и попросили организовать связь между их подразделениями, находящимися на приличном удалении друг от друга. Причем оказалось, что у этих клиентов существует уже настроенная 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


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

VPN (Virtual Private Network) - это виртуальная частная сеть или логическая сеть, которая создается поверх незащищённых сетей (сетей оператора связи или сервис-провайдера Интернет). VPN – это технология, которая обеспечивает защиту данных при передаче их по незащищенным сетям. Виртуальная частная сеть позволяет организовать туннель в незащищённых сетях (между двумя точками сети), например в ATM, FR или IP-сетях.

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

Известны основные виды VPN и их комбинации:

  • Intranet VPN (внутрикорпоративные VPN);
  • Extranet VPN (межкорпоративные VPN);
  • Remote Access VPN (VPN с удаленным доступом);
  • Client/Server VPN (VPN между двумя узлами корпоративной сети).

В настоящее время для построения корпоративных территориально распределенных сетей в разделяемой инфраструктуре сервис-провайдеров и операторов связи применяются следующие технологий:

  • IP-туннели с использованием технологий GRE или IPSec VPN;
  • SSL, к которой относятся OpenVPN и SSL VPN (SSL/TLS VPN) для организации безопасных каналов связи;
  • MPLS в сети оператора (L3 VPN) или VPN в сети BGP/MPLS;
  • Metro Ethernet VPN в сети оператора (L2 VPN). Наиболее перспективная технология, используемая в Metro Ethernet VPN, - это VPN на базе MPLS (MPLS L2 VPN) или VPLS.

Что касается применения выделенных линий и технологий Frame Relay, ATM для организации корпоративных территориально распределенных сетей, то они уже для этих целей практически не применяются. Сегодня, как правило, КВС строятся на основе оверлейных сетей (клиент-серверных и одноранговых сетей), которые работают в разделяемой инфраструктуре операторов, и являются «надстройками» над классическими сетевыми протоколами.

Для организации территориально распределенных корпоративных сетей провайдеры предоставляют заказчикам следующие основные модели VPN в среде Интернет:

  • модель IP VPN (GRE, IPSec VPN, OpenVPN) через WAN сеть, в которой настройка VPN обеспечивается заказчиком;
  • модель L 3 VPN или MPLS L3 VPN через WAN сеть, в которой настройка VPN обеспечивается сервис-провайдером или оператором связи;
  • модель L2 VPN через MAN сеть, в которой настройка VPN обеспечивается провайдером или оператором связи:
    • point-to-point (AToM, 802.1Q, L2TPv3);
    • multipoint (VPLS и H-VPLS).

Технологии VPN можно классифицировать и по способам их реализации с помощью протоколов: аутентификации, туннелирования и шифрования IP-пакетов. Например, VPN (IPSec, OpenVPN, PPTP) основаны на шифровании данных заказчиков, VPN (L2TP и MPLS) базируются на разделении потоков данных между заказчиками VPN, а SSL VPN основана на криптографии и аутентификации трафика. Но, как правило, VPN используют смешанные варианты, когда совместно используются технологии: аутентификации, туннелирования и шифрования. В основном организация VPN-сетей осуществляется на основе протоколов канального и сетевого уровней модели OSI.

Необходимо отметить, что для мобильных удаленных пользователей была разработана технология SSL VPN (Secure Socket Layer - уровень защищенных сокетов), которая основана на ином принципе передачи частных данных (данных пользователей) через Интернет. Для организации SSL VPN используется протокол прикладного уровня HTTPS. Для HTTPS используется порт 443, по которому устанавливается соединение с использованием TLS (Transport Layer Security - безопасность транспортного уровня).

TLS и SSL (TLS и SSL- протоколы 6 уровня модели OSI) - это криптографические протоколы, которые обеспечивают надежную защиту данных прикладного уровня, так как используют асимметричную криптографию, симметричное шифрование и коды аутентичности сообщений. Но поскольку в стеке TCP/IP определены 4 уровня, т.е. отсутствуют сеансовый и представительский уровни, то эти протоколы работают над транспортным уровнем в стеке TCP/IP, обеспечивая безопасность передачи данных между узлами сети Интернет.

Модель IP VPN, в которой настройка VPN обеспечивается заказчиком

Модель IP VPN может быть реализована на базе стандарта IPSec или других протоколов VPN (PPTP, L2TP, OpenVPN). В этой модели взаимодействие между маршрутизаторами заказчика устанавливается через WAN сеть сервис-провайдера. В этом случае провайдер не участвует в настройке VPN, а только предоставляет свои незащищённые сети для передачи трафика заказчика. Сети провайдеров предназначены только для инкапсулированного или наложенного (прозрачного) соединения VPN между офисами заказчика.

Настройка VPN осуществляется телекоммуникационными средствами заказчика, т.е. заказчик сам управляет маршрутизацией трафика. VPN соединение – это соединение поверх незащищённой сети типа точка-точка: «VPN шлюз - VPN шлюз» для объединения удаленных локальных сетей офисов, «VPN пользователь - VPN шлюз» для подключения удаленных сотрудников к центральному офису.

Для организации VPN-сети в каждый офис компании устанавливается маршрутизатор, который обеспечивает взаимодействие сети офиса с VPN-сетью. На маршрутизаторы устанавливается программное обеспечение для построения защищённых VPN, например, бесплатный популярный пакет OpenVPN (в этом случае пакет OpenVPN надо сконфигурировать для работы в режиме маршрутизации). Технология OpenVPN основана на SSL стандарте для осуществления безопасных коммуникаций через Интернет.

OpenVPN обеспечивает безопасные соединения на основе 2-го и 3-го уровней OSI. Если OpenVPN сконфигурировать для работы в режиме моста - он обеспечивает безопасные соединения на основе 2 уровня OSI, если в режиме маршрутизации - на основе 3-го уровня. OpenVPN в отличие от SSL VPN не поддерживает доступ к VPN-сети через web-браузер. Для OpenVPN требуется дополнительное приложение (VPN-клиент).

Маршрутизатор головного офиса компании настраивается в качестве VPN-сервера, а маршрутизаторы удаленных офисов в качестве VPN-клиентов. Маршрутизаторы VPN-сервер и VPN-клиенты подключаются к Интернету через сети провайдера. Кроме того, к главному офису можно подключить ПК удаленного пользователя, настроив на ПК программу VPN-клиента. В итоге получаем модель IP VPN (скриншот представлен на рис. 1).

Рис. 1. Модель сети IP VPN (Intranet VPN + Remote Access VPN)

Модель MPLS L3 VPN или L3 VPN, в которой настройка VPN обеспечивается сервис-провайдером или оператором связи (поставщиком услуг)

Рассмотрим процесс организации VPN-сети для трех удаленных локальных сетей офисов заказчика услуг (например, корпорации SC-3), размещенных в различных городах, с помощью магистральной сети MPLS VPN поставщика услуг, построенной на базе технологии MPLS L3 VPN. Кроме того, к сети корпорации SC-3 подключен ПК удаленного рабочего места и ноутбук мобильного пользователя. В модели MPLS L3 VPN оборудование провайдера участвует в маршрутизации клиентского трафика через сеть WAN.

В этом случае доставка клиентского трафика от локальных сетей офисов заказчика услуг к магистральной сети MPLS VPN поставщика услуг осуществляется с помощью технологии IP. Для организации VPN-сети в каждый офис компании устанавливается периферийный или пограничный CE-маршрутизатор (Customer Edge router), который соединяется физическим каналом с одним из пограничных РЕ-маршрутизаторов (Provider Edge router) сети MPLS провайдера (оператора). При этом на физическом канале, соединяющем CE и PE маршрутизаторы, может работать один из протоколов канального уровня (PPP, Ethernet, FDDI, FR, ATM и т.д.).

Сеть поставщика услуг (сервис-провайдера или оператора связи) состоит из периферийных РЕ-маршрутизаторов и опорной сети (ядра сети) с коммутирующими по меткам магистральными маршрутизаторами P (Provider router). Таким образом, MPLS L3 VPN состоит из офисных локальных IP-сетей заказчика и магистральной сети MPLS провайдера (домена MPLS), которая объединяет распределенные локальные сети офисов заказчика в единую сеть.

Удаленные локальные сети офисов заказчика обмениваются IP-пакетами через сеть провайдера MPLS, в которой образуются туннели MPLS для передачи клиентского трафика по опорной сети поставщика. Скриншот модели сети MPLS L3 VPN (Intranet VPN + Remote Access VPN) представлен на рис. 2. С целью упрощения схемы сети приняты следующие начальные условия: все ЛВС офисов относятся к одной VPN, а опорная (магистральная) сеть является доменом MPLS (MPLS domain), находящаяся под единым управлением национального сервис-провайдера (оператора связи).

Необходимо отметить, что MPLS L3 VPN может быть организована с помощью нескольких доменов MPLS разных сервис-провайдеров. На рисунке 2 представлена полносвязная топология VPN.


Рис. 2. Модель сети MPLS L3 VPN (Intranet VPN + Remote Access VPN)

Функционирование PE-маршрутизаторов

Периферийные маршрутизаторы CE и PE (заказчика и провайдера) обмениваются друг с другом маршрутной информацией одним из внутренних протоколов маршрутизации IGP (RIP, OSPF или IS-IS). В результате обмена маршрутной информацией каждый РЕ-маршрутизатор создает свою отдельную (внешнюю) таблицу маршрутизации VRF (VPN Routing and Forwarding) для локальной сети офиса заказчика, подключенной к нему через CE-маршрутизатор. Таким образом, маршрутная информация, полученная от CE, фиксируется в VRF-таблице PE.

Таблица VRF называется виртуальной таблицей маршрутизации и продвижения. Только РЕ-маршрутизаторы знают о том, что в сети MPLS организована VPN для заказчика. Из модели сети MPLS L3 VPN следует, что между CE-маршрутизаторами заказчика не осуществляется обмен маршрутной информацией, поэтому заказчик не участвует в маршрутизации трафика через магистраль MPLS, настройку VPN (РЕ-маршрутизаторов и Р-маршрутизаторов) осуществляет провайдер (оператор).

К РЕ-маршрутизатору могут быть подключены несколько VPN-сетей разных заказчиков (рис.3). В этом случае на каждый интерфейс (int1, int2 и т.д.) PE-маршрутизатора, к которому подключена локальная сеть офиса заказчика, устанавливается отдельный протокол маршрутизации. Для каждого интерфейса РЕ-маршрутизатора один из протоколов IGP создает таблицу маршрутизации VRF, а каждая таблица маршрутизации VRF соответствует VPN-маршрутам для каждого заказчика.

Например, для заказчика SC-3 и его сети LAN0 (главного офиса), подключенной через CE0 к PE0, на PE0 будет сформирована таблица VRF1 SC-3, для LAN1 заказчика SC-3 на PE1 будет создана VRF2 SC-3, для LAN2 на PE2 - VRF3 SC-3 и т.д., а принадлежат они одной VPN SC3. Таблица VRF1 SC-3 является общей для маршрутной информации CE0 и CE4. Необходимо отметить, что таблицы VRF пополняются информацией об адресах локальных сетей всех других офисов данного заказчика с помощью протокола MP-BGP (multiprotocol BGP). Протокол MP-BGP используется для обмена маршрутами непосредственно между РЕ-маршрутизаторами и может переносить в маршрутной информации адреса VPN-IPv4.

Адреса VPN-IPv4 состоят из исходных адресов IPv4 и префикса RD (Route Distinguisher) или различителя маршрутов, который идентифицирует конкретную VPN. В итоге на маршрутизаторах РЕ будут созданы VRF-таблицы с идентичными маршрутами для одной сети VPN. Только те РЕ-маршрутизаторы, которые участвуют в организации одной и той же VPN-сети заказчика, обмениваются между собой маршрутной информацией по протоколу MP-BGP. Префикс RD конфигурируется для каждой VRF-таблицы.

Маршрутная информация, которой обмениваются РЕ-маршрутизаторы по протоколу MP-BGP через глобальный или внутренний интерфейс:

  • Адрес сети назначения (VPN-IPv4);
  • Адрес следующего маршрутизатора для протокола (next hop);
  • Метка Lvpn – определяется номером интерфейса (int) РЕ-маршрутизатора, к которому подключена одна из ЛВС офиса заказчика;
  • Атрибут сообщения RT (route-target) – это атрибут VPN, который идентифицирует все ЛВС офисов, принадлежащие одной корпоративной сети заказчика или одной VPN.

Рис. 3. РЕ-маршрутизатор

Кроме того, каждый РЕ-маршрутизатор обменивается маршрутной информацией с магистральными P-маршрутизаторами одним из внутренних протоколов маршрутизации (OSPF или IS-IS) и создает также отдельную (внутреннюю) глобальную таблицу маршрутизации (ГТМ) для магистральной сети MPLS. Внешняя (VRF) таблица и внутренняя (ГТМ) глобальная таблицы маршрутизации в РЕ-маршрутизаторах изолированы друг от друга. P-маршрутизаторы обмениваются маршрутной информацией между собой и PЕ-маршрутизаторами с помощью традиционных протоколов внутренней IP-маршрутизации (IGP), например OSPF или IS-IS, и создают свои таблицы маршрутизации.

На основе таблиц маршрутизации с помощью протоколов распределения меток LDP или протоколов RSVP на основе технологии Traffic Engineering строятся таблицы коммутации меток на всех маршрутизаторах P (на PE создаются FTN), образующих определенный маршрут LSP (Label Switched Paths). В результате формируются маршруты с коммутацией по меткам LSP, по которым IP-пакеты продвигаются на основе значений меток заголовка MPLS и локальных таблиц коммутации, а не IP-адресов и таблиц маршрутизации.

Заголовок MPLS добавляется к каждому IP-пакету, поступающему на входной PE-маршрутизатор, и удаляется выходным PE-маршрутизатором, когда пакеты покидают сеть MPLS. В заголовке MPLS используется не метка, а стек из двух меток, т.е. входной PE назначает пакету две метки. Одна из них внешняя L, другая внутренняя Lvpn. Внешняя метка или метка верхнего уровня стека используется непосредственно для коммутации пакета по LSP от входного до выходного PE.

Необходимо отметить, что PE направляет входной трафик в определенный виртуальный путь LSP на основании FEC (Forwarding Equivalence Class – класса эквивалентности продвижения). FEC – это группа пакетов к условиям, транспортировки которых предъявляются одни и те же требования. Пакеты, принадлежащие одному FEC, перемещаются по одному LSP. Классификация FEC может осуществляться различными способами, например: по IP-адресу сети (префиксу сети) назначения, типу трафика, требованиям инжиниринга и т.д.

Если использовать классификацию по IP-адресу сети назначения, то для каждого префикса сети назначения создается отдельный класс. В этом случае протокол LDP полностью автоматизирует процесс создание классов и назначение им значений меток (табл. 1). Каждому входящему пакету, который направляется маршрутизатором PE на определенный IP-адрес сети офиса, назначается определенная метка на основании таблицы FTN.

Таблица 1. FTN (FEC To Next hop) на маршрутизаторе PE1

Из таблицы 1 следует, что значение внешней метки назначает входной маршрутизатор PE1 на основании IP-адреса локальной сети офиса. Внутренняя метка или метка нижнего уровня стека в процессе коммутации пакета по LSP от входного до выходного PE не участвует, а она определяет VRF или интерфейс на выходном PE, к которому присоединена ЛВС офиса заказчика.

Обмен информацией о маршрутах VPN по протоколу MP-BGP

Маршрутная информация (информация о маршрутах VPN), которую передает маршрутизатор PE1 маршрутизатору PE2 по протоколу BGP (красные линии):

  • Адрес VPN-IPv4: 46.115.25.1:106:192.168.1.0;
  • Next Hop = 46.115.25.1;
  • Lvpn=3;
  • RT= SC-3.

Различитель маршрутов RD=46.115.25.1:106 добавляется к IPv4-адресу сети LAN1 регионального офиса 1. Где 46.115.25.1 – это IP-адрес глобального интерфейса маршрутизатора PE1, через который PE1 взаимодействует с P-маршрутизаторами. Для данного маршрута VPN SC-3 администратор сети провайдера в маршрутизаторе PE1 или PE1 назначает метку (номер), например 106.

Когда маршрутизатор PE2 получает от PE1 адрес сети назначения VPN-IPv4, он отбрасывает разграничитель маршрутов RD, помещает адрес 192.168.1.0 в таблицу VRF3 SC-3 и отмечает, что запись была сделана протоколом BGP. Кроме того, он объявляет этот маршрут, подключенному к нему маршрутизатору заказчика CE2 для данной VPN SC-3.

Таблица VRF3 SC-3 также пополняется протоколом MP-BGP – об адресах сетей других ЛВС офисов данной VPN SC-3. Маршрутизатор PE1 направляет по протоколу MP-BGP маршрутную информация также другим маршрутизаторам: PE0 и PE3. В итоге, все маршруты в таблицах VRF маршрутизаторов (PE0, PE1, PE2 и PE3) содержат адреса всех сетей ЛВС офисов данного заказчика в формате IPv4.

Рис. 4. Таблицы VRF маршрутизаторов (PE0, PE1, PE2 и PE3)

Маршрутная информация, которую передает маршрутизатор PE2 маршрутизатору PE1 по протоколу MP-BGP (красные линии):

  • Адрес VPN-IPv4: 46.115.25.2:116:192.168.2.0;
  • Next Hop = 46.115.25.2;
  • Lvpn=5;
  • RT=SC-3.
Передача данных между ПК в корпоративной сети организованной на базе технологии MPLS L3 VPN

Рассмотрим, как происходит обмен данными между ПК 2 (IP: 192.168.1.2) сети LAN1 и ПК 1 (IP: 192.168.3.1) сети LAN. Для доступа к файлам, размещенным в директориях или логических дисках ПК 1 (LAN) с общим доступом, необходимо на ПК 2 (LAN1) в строке "Найти программы и файлы" (для ОС Win 7) ввести \\192.168.3.1 и нажать клавишу Enter. В результате на экране ПК 2 будут отображены директории с общим доступом ("расшаренные" директории или папки), которые размещены на ПК 1. Как это происходит?

При нажатии клавишу Enter в ПК 2 (LAN1) на сетевом уровне сформировался пакет с IP-адресом назначения 192.168.3.1. В первую очередь пакет поступает на маршрутизатор CE1 (рис. 5), который направляет его в соответствии с таблицей маршрутизацией на интерфейс int3 маршрутизатора PE1, так как он является следующим маршрутизатором для доступа к сети 192.168.3.0/24, в которой находятся ПК 1 (LAN ГО) с IP-адресом 192.168.3.1. С интерфейсом int3 связана таблица маршрутизации VRF2 SC-3, поэтому дальнейшее продвижение пакета осуществляется на основе ее параметров.

Как следует из таблицы VRF2 SC-3, следующим маршрутизатором для продвижения пакета к сети 192.168.3/24 является PE0 и эта запись была выполнена протоколом BGP. Кроме того, в таблице указано значение метки Lvpn=2, которая определяет интерфейс выходного маршрутизатора PE0. Отсюда следует, что дальнейшее продвижение пакета к сети 192.168.3/24 определяется параметрами глобальной таблицы маршрутизации ГТМ PE1.

Рис. 5. Передача данных между ПК2 (192.168.1.2) и ПК1 (192.168.3.1) сетей LAN1 и LAN главного офиса КС SC-3

В глобальной таблице (ГТМ PE1) адресу следующего маршрутизатора (NH - Next Hop) PE0 соответствует начальное значение внешней метки L=105, которая определяет путь LSP до PE0. Продвижение пакета по LSP происходит на основании L-метки верхнего уровня стека (L=105). Когда пакет проходит через маршрутизатор P3, а затем через маршрутизатор P1, метка L анализируется и заменяется новыми значениями. После достижения пакетом конечной точки LSP, маршрутизатор PE0 удаляет внешнюю метку L из стека MPLS.

Затем маршрутизатор PE0 извлекает из стека метку нижнего уровня стека Lvpn=2, которая определяет интерфейс int2, к которому присоединен маршрутизатор CE0 локальной сети главного офиса заказчика (LAN ГО). Далее из таблицы (VRF1 SC-3), содержащей все маршруты VPN SC3, маршрутизатор PE0 извлекает запись о значении метки Lvpn=2 и о связанном с ней маршруте к сети 192.168.3/24, который указывает на CE0 в качестве следующего маршрутизатора. Из таблицы следует, что запись о маршруте была помещена в таблицу VRF1 SC-3 протоколом IGP, поэтому путь движения пакета от PE0 до CE0 осуществляется по IP-протоколу.

Дальнейшее движение пакета от CE0 к ПК 1 с IP-адресом 192.168.3.1 осуществляется по MAC-адресу, так как CE0 и ПК 1 (192.168.3.1) находятся в одной ЛВС. После получения пакета-запроса от ПК 2 операционная система компьютера ПК 1 отправит копии своих директорий с общим доступом для ПК 2. Операционная система ПК 2, получив копии директорий с общим доступом от ПК 1, отображает их на экране монитора. Таким образом, через общественные сети MPLS провайдера по виртуальным каналам LSP осуществляется обмен данными между двумя ПК, принадлежащим разным ЛВС офисов одного заказчика.

Что касается подключения удаленного мобильного пользователя к ресурсам территориально распределенной корпоративной сети, то его можно реализовать с помощью одной из технологий Remote Access VPN (Remote Access IPSec VPN и SSL VPN). Необходимо отметить, что технология SSL VPN поддерживает два типа доступа: полный сетевой доступ и clientless. Технология clientless SSL VPN обеспечивает удаленный доступ к сети через стандартный веб-браузер, но в этом случае доступны только сетевые приложения с web-интерфейсом. Технология SSL VPN с полным сетевым доступом, после установки на ПК дополнительного приложения (VPN-клиента) обеспечивает доступ ко всем ресурсам территориально распределенной корпоративной сети.

Как правило, подключение удалённого пользователя к MPLS L3 VPN производится посредством сервера удаленного доступа (RAS), который подключается к одному из PE-маршрутизаторов MPLS сети. В нашем случае мобильный пользователь через сеть доступа (Интернет) подключен с помощью Remote Access IPSec VPN к RAS, который соединен с маршрутизатором PE0. Таким образом, мобильный пользователь через IPSec VPN подключается к своей корпоративной сети (корпорации SC-3), организованной на основе MPLS L3 VPN.

Модель MPLS L2 VPN, в которой настройка VPN обеспечивается провайдером или оператором связи (поставщиком услуг)

Организовать единое информационное пространство в трех офисах (например, корпорации SC-3), расположенных в пределах одного города можно на базе широкополосной Metro Ethernet сети оператора связи (L2 VPN). Одной из услуг сетей Metro Ethernet является организация корпоративных сетей через магистральные сети MAN (сети оператора связи в масштабах города). Для организации Metro Ethernet VPN (L2 VPN) используются различные технологии, например AToM (в основном EoMPLS), 802.1Q, L2TPv3 и так далее, но наиболее перспективной является технология MPLS L2 VPN или VPLS. В этом случае доставка клиентского трафика от локальных сетей офисов заказчика услуг к опорной сети MPLS VPN поставщика услуг осуществляется с помощью технологии второго уровня (Ethernet, Frame Relay или ATM).

Операторы связи предоставляют два типа услуг Ethernet сетей для организации виртуальных частных сетей на втором уровне модели OSI, которые формируются на базе технологии MPLS - это VPWS (Virtual Private Wire Services) и VPLS (Virtual Private LAN Services). Эти VPN строятся на базе псевдоканалов (pseudowire), которые связывают пограничные PE-маршрутизаторы сети провайдера (MPLS domain). Туннели LSP или логические каналы создаются при помощи меток, внутри которых прокладываются псевдоканалы (эмулированные VC) и по этим псевдоканалам передаются пакеты MPLS. VPWS основана на Ethernet over MPLS (EoMPLS). Но в VPLS в отличие от сетей point-to-point (P2P) VPWS организация псевдоканалов осуществляется с помощью многоточечных соединений (P2M).

В VPLS существует два способа установления псевдоканалов между любыми двумя PE, которые входят в состав данной VPLS (с помощью протокола BGP и протокола рассылки меток LDP). Расширенный протокол BGP (MP-BGP) обеспечивает автоматическое определения PE, которые взаимодействуют при построении территориально распределенной ЛВС на основе сервиса VPLS, и сигнализацию меток (vc-labels) виртуальных каналов. Для сигнализации vc-labels можно использовать и расширенный протокол LDP. В этом случае выявление всех PE-маршрутизаторов, которые входят в состав данной VPLS, осуществляется в режиме ручной настройки.

Можно также использовать системы управления, которые автоматизируют поиск и настройку PE устройств для организации VPLS сервисов. Для передачи кадров использует стек меток, верхняя метка предназначена для туннелей LSP, которая используется для достижения выходного PE. Нижняя метка - это метка VC Label, которая используется для демультиплексирования виртуальных каналов (pseudowires), передаваемых внутри одного туннеля. В одном туннеле может быть проложено множество псевдоканалов для разных экземпляров VPLS.

Для каждого экземпляра VPLS на PE создаются отдельные виртуальные коммутаторы VSI. Коммутаторы VSI изучают MAC-адреса и строят таблицы продвижения MPLS-пакетов. На основании данных таблицы продвижения коммутаторы VSI, получив кадры, инкапсулированные в пакеты MPLS, направляют их в псевдоканалы ведущие к пограничным PE, к которым подключены пограничные коммутаторы CE сегментов ЛВС офисов заказчика.

На базе VPWS (point-to-point) можно объединить две подсети офисов корпорации в одиную сеть, с единой сквозной IP-адресацией. VPLS – это технология, которая обеспечивает многоточечные соединения поверх пакетной сетевой инфраструктуры IP/MPLS. VPLS позволяет объединить несколько территориально распределенных локальных сетей офисов корпорации в единую локальную сеть. В этом случае магистральная сеть MPLS сервис-провайдера представляет собой виртуальный Ethernet-коммутатор (L2-коммутатор), который пересылает Ethernet-фреймы между сегментами ЛВС отдельных офисов заказчика. Схема территориально распределенной (в пределах города) локальной сети корпорации представлена на рис. 6.

Рис. 6. Схема территориально распределенной (в пределах города) локальной сети корпорации

Суть концепции VPLS заключается в прозрачной передаче Ethernet-фреймов ПК локальных сетей офисов (сегментов сетей офисов заказчика) заказчика по магистральной сети MPLS провайдера. Пограничными устройствами на стороне заказчика VPLS 1 служат коммутаторы CE0, CE1, CE2, которые соединены с устройствами PE0, PE1, PE2. PE-маршрутизаторы взаимодействуют друг с другом, с целью выявления всех PE, подключенных к VPLS 1. Устройства PE и P строят таблицы маршрутизации, на основе которых создаются каналы LSP и псевдоканалы.

В качестве протоколов сигнализации могут использоваться как BGP, так и LDP. Виртуальные коммутаторы VSI 1 устройств PE0, PE1, PE2 строят таблицы продвижения MPLS-пакетов. Например, VSI 1 устройства PE0 формирует таблицу коммутации, представленную на рис. 6. При поступлении Ethernet-фрейма c одного из ПК сети LAN главного офиса на вход устройства PE0 он инкапсулирует Ethernet-фрейм в MPLS пакет и, используя таблицу коммутации, направляет его в туннель, по которому пакет поступает на выходное устройство PE1.

Для продвижения пакета через MPLS сеть (через псевдоканалы в туннелях LSP) используется стек меток, который состоит из метки туннеля LSP и метки псевдоканала VC Label, например, 15. На выходном устройстве PE1 пакеты MPLS преобразуются в Ethernet-фреймы и направляются на коммутатор С1, к которому подключен ПК назначения с MAC-адресом 90:5C:E7:C8:56:93. В документах RFC 4761 и RFC 4762 подробно изложены методы сигнализации на базе протоколов BGP и LDP для локальных сетей организованных с помощью услуг VPLS.

Список источников информации:

1. Компьютерные сети. Принципы, технологии, протоколы: Учебник для вузов. 4-е изд. / В.Г. Олифер, Н.А. Олифер –СПб. Питер, 2010. – 944 с.

2. Олвейн, Вивек. Структура и реализация современной технологии MPLS.: Пер. с англ. – М. : Издательский дом «Вильямс», 2004. – 480 с.



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

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

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