Конфигурирование MPLS Layer-3 VPN
Процесс конфигурирования MPLS Layer-3 VPN можно разделить на следующие этапы:
- Установка соединения между PE-маршрутизаторами.
- Настройка iBGP соседства между PE1 и PE2.
- Создание VRF.
- Подключение интерфейсов к VRF.
- Настройка для таблиц VRF различителей маршрутов (RD) и целей маршрутов (RT).
- Настройка соседей CE для VPN.
- Проверка конфигурации перехода от 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