Ограничение целевых маршрутов (Route Target Constraint)
BGP/MPLS IP VPN используют маршрутизаторы PE для расширенных сообществ Route Target (RT) и управления распространением маршрутов в VRF. В пределах заданной iBGP-сети маршрутизаторы PE хранят маршруты, помеченные Route Target, относящиеся к VRF, которые имеют локальные подключения CE.
Функция BGP RT Constrained Route Distribution может быть использована провайдерами услуг в MPLS Layer 3 VPN для уменьшения количества ненужных обновлений маршрутов, которые маршрутизаторы-отражатели (RR) отправляют маршрутизаторам PE. Сокращение "обновлений маршрутов" экономит ресурсы, позволяя RR, маршрутизаторам на границе автономных систем (ASBR) и PE обрабатывать меньше маршрутов. Route Target используются для ограничения обновлений маршрутов.
В MPLS VPN маршрутизаторы iBGP или маршрутизаторы-отражатели отправляют все префиксы VPN4 и/или VPN6 маршрутизаторам PE. Маршрутизаторы PE отбрасывают префиксы VPN4/6, для которых нет импортируемого маршрута VRF.
Топология
На топологии ниже показана фильтрация Route Target в L3VPN. С использованием Route Target Constraint (RTC) маршрутизатор-отражатель отправляет только нужные префиксы VPN4/6 маршрутизаторам PE. "Нужные" означает, что маршрутизаторы PE имеют VRF, импортирующие конкретные префиксы.
Рисунок 7-10: Топология фильтрации Route Target
CE1
#configure terminal | Перейти в режим конфигурации. |
(config)#interface eth1 | Перейти в режим интерфейса. |
(config-if)#ip address 80.1.1.1/24 | Настроить IP-адрес для интерфейса. |
(config-if)#exit | Выйти из режима интерфейса и перейти в режим конфигурации. |
(config)#interface eth3 | Перейти в режим интерфейса. |
(config-if)#ip address 90.1.1.1/24 | Настроить IP-адрес для интерфейса. |
(config-if)#exit | Выйти из режима интерфейса и перейти в режим конфигурации. |
(config)# router bgp 200 | Назначить ASN (100) маршрутизатору BGP. |
(config-router)#neighbor 80.1.1.2 remote-as 100 (config-router)#neighbor 90.1.1.2 remote-as 100 | Настроить соседа (RR) в IBGP. |
(config-router)#redistribute static | Распространить статические маршруты в BGP. |
(config-router)#exit | Выйти из режима маршрутизатора и перейти в режим конфигурации. |
(config)#ip route vrf 1 1.1.1.0/24 eth1 | Настроить статический маршрут с instanceом VRF 1. |
(config)#ip route vrf 2 3.3.3.0/24 eth3 | Настроить статический маршрут с instanceом VRF 2. |
(config)#ip route vrf 2 4.4.4.0/24 eth3 | Настроить статический маршрут с instanceом VRF 2. |
CE2
#configure terminal | Перейти в режим конфигурации. |
(config)#interface eth1 | Перейти в режим интерфейса. |
(config-if)#ip address 101.1.1.1/24 | Настроить IP-адрес для интерфейса. |
(config-if)#exit | Выйти из режима интерфейса и перейти в режим конфигурации. |
(config)#interface eth3 | Перейти в режим интерфейса. |
(config-if)#ip address 100.1.1.1/24 | Настроить IP-адрес для интерфейса. |
(config-if)#exit | Выйти из режима интерфейса и перейти в режим конфигурации. |
(config)# router bgp 200 | Назначить ASN (100) маршрутизатору BGP. |
(config-router)#neighbor 100.1.1.2 remote-as 100 (config-router)#neighbor 101.1.1.2 remote-as 100 | Настроить соседа (RR) в IBGP. |
(config-router)#end | Выйти из режима маршрутизатора и режима конфигурации. |
PE1
#configure terminal | Перейти в режим конфигурации. |
(config)#ip vrf 1 | Создать instance VRF 1. |
(config-vrf)#rd 1:100 | Настроить уникальное значение RD для идентификации instances VRF. |
(config-vrf)#route-target export 1:200 | Настроить значение Route Target (RT) для экспорта маршрутов в другие VRF (для других PE). |
(config-vrf)#exit | Выйти из режима VRF и перейти в режим конфигурации. |
(config)#ip vrf 2 | Создать instance VRF 2. |
(config-vrf)#rd 1:300 | Настроить уникальное значение RD для идентификации instances VRF. |
(config-vrf)#route-target both 1:400 | Настроить значение Route Target (RT) для экспорта маршрутов в другие VRF (для других PE). |
(config-vrf)#exit | Выйти из режима VRF и перейти в режим конфигурации. |
(config)#router ldp | Включить LDP. |
(config-router)#exit | Выйти из режима маршрутизатора LDP. |
(config)#interface lo | Перейти в режим интерфейса loopback. |
(config-if)#ip address 11.11.11.11/32 secondary | Настроить IP-адрес для интерфейса loopback. |
(config-if)# enable-ldp ipv4 | Включить LDP на интерфейсе loopback. |
(config-if)#exit | Выйти из режима интерфейса. |
(config)#interface eth1 | Перейти в режим интерфейса. |
(config-if)#ip vrf forwarding 1 | Привязать интерфейс к VRF 1. |
(config-if)#ip address 80.1.1.2/24 | Настроить IP-адрес для интерфейса, привязанного к VRF. |
(config-if)#exit | Выйти из режима интерфейса. |
(config)#interface eth2 | Перейти в режим интерфейса. |
(config-if)#ip address 40.1.1.1/24 | Настроить IP-адрес для интерфейса. |
(config-if)#label-switching | Включить коммутацию меток на интерфейсе. |
(config-if)# enable-ldp ipv4 | Включить LDP на подключенном интерфейсе между PE1 и RR. |
(config-if)#exit | Выйти из режима интерфейса. |
(config)#interface eth3 | Перейти в режим интерфейса. |
(config-if)#ip vrf forwarding 2 | Привязать интерфейс к VRF 1. |
(config-if)#ip address 90.1.1.2/24 | Настроить IP-адрес для интерфейса, привязанного к VRF. |
(config-if)#exit | Выйти из режима интерфейса. |
(config)#router ospf | Включить процесс OSPF между PE1 и RR. |
(config-router)#network 11.11.11.11/32 area 0.0.0.0 (config-router)#network 40.1.1.0/24 area 0.0.0.0 | Анонсировать сеть loopback в area OSPF 0. |
(config-router)#exit | Выйти из режима маршрутизатора OSPF. |
(config)# router bgp 100 | Назначить ASN (100) маршрутизатору BGP. |
(config-router)#neighbor 22.22.22.22 remoteas 100 | Настроить соседа (RR) в IBGP. |
(config-router)#neighbor 22.22.22.22 updatesource lo | Включить соседа с интерфейсом loopback. |
(config-router)#address-family vpnv4 unicast | Перейти в режим Address-Family-VPNv4. |
(config-router-af)#neighbor 22.22.22.22 activate | Активировать соседа RR. |
(config-router-af)#exit-address-family | Выйти из режима Address Family и вернуться в режим маршрутизатора. |
(config-router)#address-family rtfilter unicast | Включить режим адресного семейства RT filter. |
(config-router-af)#neighbor 22.22.22.22 activate | Активировать соседа. |
(config-router-af)#exit-address-family | Выйти из режима RTfilter Address Family и вернуться в режим маршрутизатора. |
(config-router)#address-family ipv4 vrf 1 | Перейти в режим Address-Family-VRF. |
(config-router-af)#neighbor 80.1.1.1 remoteas 200 | Настроить соседа CE в режиме VRF. |
(config-router-af)#neighbor 80.1.1.1 activate | Активировать соседа в VRF. |
(config-router-af)#exit-address-family | Выйти из режима Address Family и вернуться в режим маршрутизатора. |
(config-router)#address-family ipv4 vrf 2 | Перейти в режим Address-Family-VRF. |
(config-router-af)#neighbor 90.1.1.1 remoteas 200 | Настроить соседа CE в режиме VRF. |
(config-router-af)#neighbor 90.1.1.1 activate | Активировать соседа в VRF. |
(config-router-af)#exit-address-family | Выйти из режима Address Family и вернуться в режим маршрутизатора. |
(config-router)#end | Выйти из режима маршрутизатора и режима конфигурации. |
RR
(config)#router ldp | Включить LDP. |
(config-router)#exit | Выйти из режима маршрутизатора LDP. |
(config)#interface lo | Перейти в режим интерфейса loopback. |
(config-if)#ip address 22.22.22.22/32 secondary (config-if)#ip address 44.44.44.44/32 secondary | Настроить IP-адрес для интерфейса loopback. |
(config-if)# enable-ldp ipv4 | Включить LDP на интерфейсе loopback. |
(config-if)#exit | Выйти из режима интерфейса. |
(config)#interface eth2 | Перейти в режим интерфейса. |
(config-if)#ip address 40.1.1.2/24 | Настроить IP-адрес для интерфейса, подключенного к PE2. |
(config-if)#label-switching | Включить коммутацию меток на интерфейсе. |
(config-if)# enable-ldp ipv4 | Включить LDP на подключенном интерфейсе между PE1 и RR. |
(config-if)#exit | Выйти из режима интерфейса. |
(config)#interface eth4 | Перейти в режим интерфейса. |
(config-if)#ip address 50.1.1.1/24 | Настроить IP-адрес для интерфейса, подключенного к PE1. |
(config-if)#label-switching | Включить коммутацию меток на интерфейсе. |
(config-if)# enable-ldp ipv4 | Включить LDP на подключенном интерфейсе между PE1 и RR. |
(config-if)#exit | Выйти из режима интерфейса. |
(config)#router ospf | Включить процесс OSPF между PE1 и RR. |
(config-router)#network 22.22.22.22/32 area 0.0.0.0 | Анонсировать сеть loopback в area OSPF 0. |
(config-router)#network 40.1.1.0/24 area 0 config-router)#network 44.44.44.44/32 area 0.0.0.0 config-router)#network 50.1.1.0/24 area 0.0.0.0 | Анонсировать подключенную сеть PE1 к RR в OSPF. |
(config-router)#exit | Выйти из режима маршрутизатора OSPF. |
(config)# router bgp 100 | Назначить ASN (100) маршрутизатору BGP. |
(config-router)#neighbor 11.11.11.11 remoteas 100 | Настроить соседа (PE1) в IBGP. |
(config-router)#neighbor 11.11.11.11 updatesource 22.22.22.22 | Включить соседа с интерфейсом loopback. |
(config-router)#neighbor 33.33.33.33 remoteas 100 | Настроить соседа (PE2) в IBGP. |
(config-router)#neighbor 33.33.33.33 updatesource 44.44.44.44 | Включить соседа с интерфейсом loopback. |
(config-router)#address-family vpnv4 unicast | Перейти в режим Address-Family-VPNv4. |
(config-router-af)#neighbor 11.11.11.11 activate | Активировать соседа PE1. |
(config-router-af)#neighbor 33.33.33.33 activate | Активировать соседа PE2. |
(config-router-af)#neighbor 11.11.11.11 route-reflector-client | Настроить PE1 как клиента маршрутизатора-отражателя. |
(config-router-af)#neighbor 33.33.33.33 route-reflector-client | Настроить PE2 как клиента маршрутизатора-отражателя. |
(config-router-af)#exit-address-family | Выйти из режима Address Family и вернуться в режим маршрутизатора. |
(config-router)#address-family rtfilter unicast | Включить режим адресного семейства RT filter. |
(config-router-af)#neighbor 11.11.11.11 activate | Активировать соседа PE1 в RTfilter. |
(config-router-af)#neighbor 33.33.33.33 activate | Активировать соседа PE2 в RTfilter. |
(config-router-af)#neighbor 33.33.33.33 route-reflector-client | Настроить PE2 как клиента маршрутизатора-отражателя. |
(config-router-af)#neighbor 11.11.11.11 route-reflector-client | Настроить PE1 как клиента маршрутизатора-отражателя. |
(config-router-af)#exit-address-family | Выйти из режима RTfilter Address Family. |
(config-router)#end | Выйти из режима Address Family, маршрутизатора и режима конфигурации. |
PE2
#configure terminal | Перейти в режим конфигурации. |
(config)#ip vrf 3 | Создать instance VRF 3. |
(config-vrf)#rd 1:600 | Настроить уникальное значение RD для идентификации instances VRF. |
(config-vrf)#route-target export 1:200 | Настроить значение Route Target (RT) для экспорта маршрутов в другие VRF (для других PE). |
(config-vrf)#exit | Выйти из режима VRF и перейти в режим конфигурации. |
(config)#ip vrf 4 | Создать instance VRF 4. |
(config-vrf)#rd 1:900 | Настроить уникальное значение RD для идентификации instances VRF. |
(config-vrf)#route-target both 1:400 | Настроить значение Route Target (RT) для экспорта маршрутов в другие VRF (для других PE). |
(config-vrf)#exit | Выйти из режима VRF и перейти в режим конфигурации. |
(config)#router ldp | Включить LDP. |
(config-router)#exit | Выйти из режима маршрутизатора LDP. |
(config)#interface lo | Перейти в режим интерфейса loopback. |
(config-if)#ip address 33.33.33.33/32 secondary | Настроить IP-адрес для интерфейса loopback. |
(config-if)# enable-ldp ipv4 | Включить LDP на интерфейсе loopback. |
(config-if)#exit | Выйти из режима интерфейса. |
(config)#interface eth1 | Перейти в режим интерфейса. |
(config-if)#ip vrf forwarding 3 | Привязать интерфейс к VRF 3. |
(config-if)#ip address 101.1.1.2/24 | Настроить IP-адрес для интерфейса, привязанного к VRF. |
(config-if)#exit | Выйти из режима интерфейса. |
(config)#interface eth3 | Перейти в режим интерфейса. |
(config-if)#ip vrf forwarding 4 | Привязать интерфейс к VRF 3. |
(config-if)#ip address 100.1.1.2/24 | Настроить IP-адрес для интерфейса, привязанного к VRF. |
(config-if)#exit | Выйти из режима интерфейса. |
(config)#interface eth4 | Перейти в режим интерфейса. |
(config-if)#ip address 50.1.1.2/24 | Настроить IP-адрес для интерфейса. |
(config-if)#label-switching | Включить коммутацию меток на интерфейсе. |
(config-if)# enable-ldp ipv4 | Включить LDP на подключенном интерфейсе между PE2 и RR. |
(config-if)#exit | Выйти из режима интерфейса. |
(config)#router ospf | Включить процесс OSPF между PE2 и RR. |
(config-router)#network 33.33.33.33/32 area 0.0.0.0 | Анонсировать сеть loopback в area OSPF 0. |
(config-router)#network 50.1.1.0/24 area 0 | Анонсировать подключенную сеть PE2 к RR в OSPF. |
(config-router)#exit | Выйти из режима маршрутизатора OSPF. |
(config)# router bgp 100 | Назначить ASN (100) маршрутизатору BGP. |
(config-router)#neighbor 44.44.44.44 remoteas 100 | Настроить соседа (RR) в IBGP. |
(config-router)#neighbor 44.44.44.44 updatesource 33.33.33.33 | Включить соседа с интерфейсом loopback. |
(config-router)#address-family vpnv4 unicast | Перейти в режим Address-Family-VPNv4. |
(config-router-af)#neighbor 44.44.44.44 activate | Активировать соседа RR. |
(config-router-af)#exit-address-family | Выйти из режима Address Family и вернуться в режим маршрутизатора. |
(config-router)#address-family rtfilter unicast | Включить режим адресного семейства RT filter. |
(config-router-af)#neighbor 44.44.44.44 activate | Активировать соседа. |
(config-router-af)#exit-address-family | Выйти из режима RTfilter Address Family и вернуться в режим маршрутизатора. |
(config-router)#address-family ipv4 vrf 3 | Перейти в режим Address-Family-VRF. |
(config-router-af)#neighbor 101.1.1.1 remoteas 200 | Настроить соседа CE в режиме VRF. |
(config-router-af)#neighbor 101.1.1.1 activate | Активировать соседа в VRF. |
(config-router-af)#exit-address-family | Выйти из режима Address Family и вернуться в режим маршрутизатора. |
(config-router)#address-family ipv4 vrf 4 | Перейти в режим Address-Family-VRF. |
(config-router-af)#neighbor 100.1.1.1 remoteas 200 | Настроить соседа CE в режиме VRF. |
(config-router-af)#neighbor 100.1.1.1 activate | Активировать соседа в VRF. |
(config-router-af)#exit-address-family | Выйти из режима Address Family и вернуться в режим маршрутизатора. |
(config-router)#end | Выйти из режима маршрутизатора и режима конфигурации. |
Проверка
Через адресное семейство RTfilter значения RT будут обмениваться между RR и PE. Соседи активируются в этом адресном семействе, а также настраиваются клиенты. RR будет получать маршруты от PE и отправлять их другим PE, если у него есть какой-либо сосед, запрашивающий эти маршруты на основе их значений импорта RT. Ниже приведены выводы, показывающие маршруты, отправленные и полученные на PE, установленные в VRF, а также отображающие значения RT filter, обмененные между ними.
CE1
CE1#show ip bgp
BGP table version is 6, local router ID is 192.160.50.5
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
l - labeled, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*> 1.1.1.0/24 0.0.0.0 0 100 32768 ?
*> 3.3.3.0/24 0.0.0.0 0 100 32768 ?
*> 4.4.4.0/24 0.0.0.0 0 100 32768 ?
Total number of prefixes 3
PE1
PE1#sh ip bgp vpnv4 all
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, l - labeled S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
Route Distinguisher: 1:100 (Default for VRF 1)
*> 1.1.1.0/24 80.1.1.1 0 100 0 200 ?
*> 3.3.3.0/24 80.1.1.1 0 100 0 200 ?
*> 4.4.4.0/24 80.1.1.1 0 100 0 200 ?
Announced routes count = 3
Accepted routes count = 0
Route Distinguisher: 1:300 (Default for VRF 2)
*> 1.1.1.0/24 90.1.1.1 0 100 0 200 ?
*> 3.3.3.0/24 90.1.1.1 0 100 0 200 ?
*> 4.4.4.0/24 90.1.1.1 0 100 0 200 ?
Announced routes count = 3
Accepted routes count = 0 PE1#
PE1#show ip bgp rtfilter all
RTFilter's Received
*
peer-ip 22.22.22.22 100:2:1:400
RTFilter's Sent
*
peer-ip 22.22.22.22
100:2:1:400 PE1#
RR
RR#sh ip bgp vpnv4 all
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, l - labeled
S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
Route Distinguisher: 1:300
*>i 1.1.1.0/24 11.11.11.11 0 100 0 200 ?
*>i 3.3.3.0/24 11.11.11.11 0 100 0 200 ?
*>i 4.4.4.0/24 11.11.11.11 0 100 0 200 ?
Announced routes count = 0
Accepted routes count = 3 RR#
RR#show ip bgp rtfilter all
RTFilter's Received
*
peer-ip 11.11.11.11 100:2:1:400
peer-ip 33.33.33.33 100:2:1:400
RTFilter's Sent
*
peer-ip 11.11.11.11 100:2:1:400
peer-ip 33.33.33.33
100:2:1:400
PE2
PE2#show ip bgp vpnv4 all
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, l - labeled
S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
Route Distinguisher: 1:300
*>i 1.1.1.0/24 11.11.11.11 0 100 0 200 ?
*>i 3.3.3.0/24 11.11.11.11 0 100 0 200 ?
*>i 4.4.4.0/24 11.11.11.11 0 100 0 200 ?
Announced routes count = 0
Accepted routes count = 3
Route Distinguisher: 1:900 (Default for VRF 4)
*>i 1.1.1.0/24 11.11.11.11 0 100 0 200 ?
*>i 3.3.3.0/24 11.11.11.11 0 100 0 200 ?
*>i 4.4.4.0/24 11.11.11.11 0 100 0 200 ?
Announced routes count = 0
Accepted routes count = 3 PE2#
PE2#show ip bgp rtfilter all
RTFilter's Received
*
peer-ip 44.44.44.44 100:2:1:400
RTFilter's Sent
*
peer-ip 44.44.44.44
100:2:1:400 PE2#