Конфигурирование MPLS Layer-3 VPN

Процесс конфигурирования MPLS Layer-3 VPN можно разделить на следующие этапы:

  1. Установка соединения между PE-маршрутизаторами.
  2. Настройка iBGP соседства между PE1 и PE2.
  3. Создание VRF.
  4. Подключение интерфейсов к VRF.
  5. Настройка для таблиц VRF различителей маршрутов (RD) и целей маршрутов (RT).
  6. Настройка соседей CE для VPN.
  7. Проверка конфигурации перехода от MPLS к VPN.

В приведённом ниже примере топологии к опорной MPLS-VPN сети оператора Connector подключены для клиента: ComA и ComB. Сайты обоих клиентов находятся в Москве и Санкт-Петербурге. На рисунке ниже приведена топология сети, показывающая распределение BGP4-адресов между PE и CE маршрутизаторами. Далее описана последовательность действий по настройке клиентских виртуальных сетей поверх опорной MPLS-VPN.

Рисунок


Для установки соединения между маршрутизаторами требуется осуществить действия, описанные ниже.

Ниже приведена примерная конфигурация для включения коммутации по меткам (Labeled Switched Path, LSP) между маршрутизаторами PE1 и PE2.

PE1

PE1(config)#interface e1
PE1(config-if)#ip address 10.10.12.10/24
PE1(config-if)#label-switching
PE1(config-if)#ex
PE1(config)#port te1
PE1(config-port)#service-instance se1
PE1(config-service-instance)#encapsulation untagged
PE1(config-service-instance)#connect ip interface e1

P

P(config)#interface e1
P(config-if)#ip address 10.10.12.50/24
P(config-if)#label-switching
P(config-if)#ex
P(config)#port te1
P(config-port)#service-instance se1
P(config-service-instance)#encapsulation untagged
P(config-service-instance)#connect ip interface e1
P(config-service-instance)#ex
P(config-port)#ex
P(config)#interface e2
P(config-if)#ip address 10.10.13.50/24
P(config-if)#label-switching
P(config-if)#ex
P(config)#port te2
P(config-port)#service-instance se2
P(config-service-instance)#encapsulation untagged
P(config-service-instance)#connect ip interface e2

PE2

PE2(config)#interface e2
PE2(config-if)#ip address 10.10.13.10/24
PE2(config-if)#label-switching
PE2(config-if)#ex
PE2(config)#port te2
PE2(config-port)#service-instance se2
PE2(config-service-instance)#encapsulation untagged
PE2(config-service-instance)#connect ip interface e2

Ниже приведён пример конфигурации для установки соединения между двумя PE-маршрутизаторами PE1 и PE2.

Подробнее о настройке OSPF можно прочитать в соответствующем разделе “Open Shortest Path First”.

PE1

PE1(config)#router ospf 100
PE1(config-router)#network 10.10.12.0/24 area 0

P

P(config)#router ospf 100
P(config-router)#network 10.10.12.0/24 area 0
P(config-router)#network 10.10.13.0/24 area 0

PE2

PE2(config)#router ospf 100
PE2(config-router)#network 10.10.13.0/24 area 0

Протокол коммутации по меткам (Labeled Switched Path, LSP) используется для построения путей между PE-маршрутизаторами. В EcoRouterOS поддерживается протокол LDP.

Ниже приведён пример конфигурации для включения LDP на всём пути между PE1 и PE2. В конфигурации PE-маршрутизаторов присутствует настройка loopback-интерфейса, необходимая для работы LDP и BGP (см. ниже).

Подробнее о настройке LDP можно прочитать в соответствующем разделе “Label Distribution Protocol”.

PE1

PE1(config)#interface loopback.0
PE1(config-lo)#ip address 2.2.2.2/32
PE1(config-lo)#ex
PE1(config)#router ldp
PE1(config-router)#exit
PE1(config)#interface e1
PE1(config-if)#ldp enable ipv4
PE1(config-if)#ex
PE1(config)#router ldp
PE1(config-router)#advertisement-mode downstream-on-demand
PE1(config-router)#multicast-hellos

P

P(config)#interface e1
P(config-if)#ldp enable ipv4
P(config-if)#ex
P(config)#interface e2
P(config-if)#ldp enable ipv4
P(config-if)#ex
P(config)#router ldp
P(config-router)#advertisement-mode downstream-on-demand
P(config-router)#multicast-hellos

PE2

PE2(config)#interface loopback.0
PE2(config-lo)#ip address 3.3.3.3/32
PE2(config-lo)#ex
PE2(config)#router ldp
PE2(config-router)#exit
PE2(config)#interface e2
PE2(config-if)#ldp enable ipv4
PE2(config-if)#ex
PE2(config)#router ldp
PE2(config-router)#advertisement-mode downstream-on-demand
PE2(config-router)#multicast-hellos

Для передачи маршрутной информации частных сетей через сеть оператора используется протокол BGP и его многопротокольное расширение MP-BGP. Это позволяет обмениваться информацией между опосредованно соединёнными маршрутизаторами, а также передавать маршрутную информацию сетей VPN, минуя маршрутизаторы опорной сети оператора (P). Через P-маршрутизаторы информация передаётся прозрачно, как дополнительный BGP атрибут. В MPLS-VPN модели нет необходимости в том, чтобы P-маршрутизаторы принимали решения о маршрутах, основываясь на внутренней адресации сетей VPN. Они просто передают пакеты в соответствии со значениями прикреплённых меток. Таким образом, на P-маршрутизаторы не требуется добавлять конфигурацию сетей VPN.

Ниже приведён пример конфигурации для включения протокола BGP на PE1 и PE2.

Подробнее о настройке BGP можно прочитать в соответствующем разделе “Border Gateway Protocol”.

PE1

PE1(config)#router bgp 100
PE1(config-router)#neighbor 3.3.3.3 remote-as 100
PE1(config-router)#neighbor 3.3.3.3 update-source 2.2.2.2
PE1(config-router)#address-family vpnv4 unicast
PE1(config-router-af)#neighbor 3.3.3.3 activate

PE2

P2(config)#router bgp 100
P2(config-router)#neighbor 2.2.2.2 remote-as 100
P2(config-router)#neighbor 2.2.2.2 update-source 3.3.3.3
P2(config-router)#address-family vpnv4 unicast
P2(config-router-af)#neighbor 2.2.2.2 activate

Каждый PE-маршрутизатор в опорной сети MPLS-VPN подсоединён к сайтам, входящим в виртуальные частные сети клиентов. Для каждого сайта действуют маршруты соответствующей сети VPN. Поэтому на PE-маршрутизаторе должны содержаться таблицы VRF для тех сетей VPN, к сайтам которых он подключён. В приведённом примере — это обе сети VPN.

Для создания таблицы VRF введите команду конфигурационного режима ip vrf <VRF_NAME>. На каждом PE-маршрутизаторе должны быть созданы таблицы VRF с именами ComA и ComB. При вводе данной команды создаётся таблица маршрутизации VRF RIB (Routing Information Base), назначается VRF-ID, и консоль переключается в контекстный режим конфигурирования VRF.

PE1(config)#ip vrf ComB
PE1(config-vrf)#

После того как на каждом PE-маршрутизаторе определены таблицы VRF, необходимо указать, какой интерфейс маршрутизатора принадлежит к какой таблице VRF. VRF заполняются маршрутами с присоединённых сайтов. К одной таблице VRF могут быть подключены несколько интерфейсов. Для подключения интерфейса (подсоединённого к CE-маршрутизатору) используется команда контекстного режима конфигурации интерфейса ip vrf forwarding <VRF_NAME>.

В приведённом ниже примере интерфейс e2 маршрутизатора PE1 подключается к созданной ранее таблице VRF ComB.

PE1(config)#interface e2
PE1(config-if)#ip vrf forwarding ComB

После того как таблицы VRF созданы, настраиваются различители маршрутов и цели маршрутов.

Различители маршрутов (Route Distinguishers, RDs) обеспечивают уникальность каждого маршрута. Таким образом, в случае одинаковых маршрутов в разных сетях VPN, MP-BGP будет воспринимать их как уникальные. Для этого к каждому IPv4-адресу из виртуальной сети добавляется префикс длиной 64 бит (RD), преобразуя его в формат VPN-IPv4. BGP считает два IPv4-адреса с разными RD уникальными (несравнимыми), даже если у них совпадают и адрес, и маска.

RD состоит из номера автономной системы и присвоеного номера (ASN:nn) или IP-адреса и присвоеного номера (IP:nn), записанных через двоеточие ”:“.

Для того чтобы назначить RD каждой таблице VRF на PE-маршрутизаторе используется команда контекстного режима конфигурирования VRF rd <ASN:nn | IP:nn>.

В приведённом ниже примере назначается RD для VRF ComB на маршрутизаторе PE1.

PE1(config)#ip vrf ComB
PE1(config-vrf)#rd 168.12.2.1:1

Для просмотра таблицы маршрутизации данной таблицы VRF используется команда административного режима show ip route vrf <VRF_NAME> или команда административного режима show ip route vrf al для всех VRF.

Все полученные от клиентов маршруты анонсируются по всей сети по протоколу MP-BGP. Все маршруты, узнанные по MP-BGP, добавляются в соответствующую таблицу VRF. Цель маршрута (RT) помогает PE-маршрутизаторам идентифицировать, к какой таблице VRF относится маршрут.

Для того чтобы назначить RT каждой таблице VRF на PE-маршрутизаторе, используется команда контекстного режима конфигурирования VRF route-target {both | export | import} <ASN:nn | IP:nn>.

Команда route-target создаёт списки импорта и экспорта расширенных атрибутов сообщества (в том числе, RT) для VRF. RT идентифицирует целевую сеть VPN. Данную команду необходимо вводить отдельно для каждого сообщества. Все маршруты с указанными расширенными атрибутами сообщества импортируются во все VRF, относящиеся к тем же сообществам в качестве целевого маршрута импорта.

В команде route-target также задаётся политика экспорта маршрутных объявлений:

  • export — добавить RT к экспортируемой маршрутной информации VRF;
  • import — импортировать маршрутную информацию с указанным RT;
  • both — указать сразу и импорт, и экспорт.

Указанные политики задаются в зависимости от планируемой топологии сети. Например, задание одного и того же значения для политики экспорта и импорта для всех таблиц VRF определённой сети VPN приводит к полносвязной топологии — каждый сайт может посылать пакеты непосредственно тому сайту, в котором находится сеть назначения.

В приведённом ниже примере назначается RT для VRF ComB на маршрутизаторе PE1. Для остальных маршрутизаторов и сетей в рассматриваемой топологии задаётся то же значение политики экспорта.

PE1(config)#ip vrf ComB
PE1(config-vrf)#route-target both 100:1

Для предоставления услуги VPN, PE-маршрутизаторы должны быть сконфигурированы таким образом, чтобы любая маршрутная информация, приходящая с интерфейса клиентской сети VPN могла быть соотнесена с соответствующей таблицей VRF. Это достигается за счёт распространения по сети маршрутной информации протоколами маршрутизации, такими как BGP, OSPF, IS-IS, RIP. Для настройки CE-соседства используются приведённые ниже действия, в зависимости от используемого протокола (BGP, OSPF или RIP).

BGP

BGP-сессия между PE и CE-маршрутизаторами может включать разные типы маршрутов (VPN-IPv4, IPv4 маршруты). Соответственно, от используемого семейства адресов зависит тип BGP-сессии. Таким образом, необходимо настроить семейство адресов BGP для каждой таблицы VRF на PE-маршрутизаторах и отдельно адресное семейство для VPN-IPv4-маршрутов между PE-маршрутизаторами. Все не-VPN BGP-соседи определяются при помощи режима IPv4-адресов. Каждое VPN BGP-соседство определяется связанным с ним режимом семейства адресов. Для того чтобы задать семейство адресов, используется команда режима конфигурации маршрутизации BGP address-family ipv4 vrf <VRF_NAME>.

Отдельная запись о семействе адресов должна быть в каждой таблице VRF, в каждой записи о семействе адресов может значиться несколько CE-маршрутизаторов с VRF.

PE и CE-маршрутизаторы должны быть напрямую подключены для BGP4-сессий; BGP multihop между ними не поддерживается.

В приведённом ниже примере маршрутизатор переключается в режим семейства адресов и указываются имена компаний-клиентов ComA и ComB в качестве названий VRF, для того чтобы проассоциировать их с подмножеством команд, соответствующим IPv4 семейству адресов. Подобная конфигурация используется, когда между PE и CE-маршрутизаторами настроен BGP.

PE1

PE1(config)#router bgp 100
PE1(config-router)#address-family ipv4 vrf ComA
PE1(config-router-af)#neighbor 192.16.3.3 remote-as 65001
PE1(config-router-af)#exit
PE1(config-router)#address-family ipv4 vrf ComB
PE1(config-router-af)#neighbor 168.12.0.2 remote-as 65003

OSPF

В отличие от BGP и RIP, OSPF не поддерживает разные контексты маршрутизации в одном процессе. Для запуска OSPF между PE и CE-маршрутизаторами настраивается отдельный OSPF-процесс для каждой VRF, который получает маршруты сети VPN по OSPF. PE-маршрутизатор различает принадлежность маршрутизаторов к определённой VRF, связывая конкретный клиентский интерфейс с таблицей VRF и с определённым процессом OSPF.

Чтобы распространить OSPF-маршруты таблицы VRF в BGP, необходимо включить редистрибуцию OSPF в контексте конфигурирования маршрутизации BGP для семейства адресов, связанного с VRF.

PE1

PE1(config)#router ospf 101 ComA
PE1(config-router)#network 192.16.3.0/24 area 0
PE1(config-router)#redistribute bgp
PE1(config-router)#ex
PE1(config)#router ospf 102 ComB
PE1(config-router)#network 192.12.0.0/24 area 0
PE1(config-router)#redistribute bgp

PE1

PE1(config)#router bgp 100
PE1(config-router)#address-family ipv4 vrf ComA
PE1(config-router-af)#redistribute ospf
PE1(config-router-af)#ex
PE1(config-router)#address-family ipv4 vrf ComB
PE1(config-router-af)#redistribute ospf

Для того чтобы проверить соседство между CE и PE-маршрутизаторами используется команда административного режима show ip bgp neighbor. Для просмотра всех созданных VRF и маршрутов в них используется команда show ip bgp vpnv4 all. Ниже приведён пример вывода команды show running-config для маршрутизаторов PE1, CE1 и P, сконфигурированных в соответствии с топологией рассматриваемого примера. Для связи PE с CE используется OSPF.

PE1

PE1#show running-config
!
hostname PE1
!
ip vrf management
!
ip vrf ComA
 rd 168.12.2.1:1
 route-target both 100:1
!
ip vrf ComB
 rd 192.16.2.1:1
 route-target both 100:1
!
mpls propagate-ttl
!
!
ip pim register-rp-reachability
!
router ldp
 targeted-peer ipv4 10.10.21.50
  exit-targeted-peer-mode
 advertisement-mode downstream-on-demand
!
router ospf 100
 network 10.10.12.0/24 area 0.0.0.0
!
router ospf 101 ComA
 redistribute bgp
 network 192.16.3.0/24 area 0.0.0.0
!
router ospf 102 ComB
 redistribute bgp
 network 192.12.0.0/24 area 0.0.0.0
!
router bgp 100
 neighbor 3.3.3.3 remote-as 100
 neighbor 3.3.3.3 update-source 2.2.2.2
 address-family vpnv4 unicast
 neighbor 3.3.3.3 activate
 exit-address-family
!
address-family ipv4 vrf ComA
redistribute ospf
exit-address-family
!
address-family ipv4 vrf ComB
redistribute ospf
exit-address-family
!
interface loopback.0
 ip mtu 1500
 ip address 2.2.2.2/32
!
interface e1
 ip mtu 1500
 label-switching connect port te1 service-instance se1
 ip address 10.10.21.10/24
 ldp enable ipv4
!
interface e2
 ip mtu 1500
 ip vrf forwarding ComB
!
interface e3
 ip mtu 1500
 ip vrf forwarding ComA
!

P

!
hostname P
!
ip vrf management
!
mpls propagate-ttl
!
!
ip pim register-rp-reachability
!
router ldp
pw-status-tlv
advertisement-mode downstream-on-demand
!
interface e1
ip mtu 1500
label-switching
connect port te1 service-instance se1
ip address 10.10.21.50/24
enable-ldp ipv4
!
interface e2
ip mtu 1500
label-switching
connect port te1 service-instance se1
ip address 10.10.13.50/24
enable-ldp ipv4
!
end