отмена
Отображаются результаты для 
Вместо этого искать 
Вы имели в виду: 

Масштабирование протокола BGP в сетях с Route Reflector.

New Member

Несмотря на бурное развитие технологий и снижение стоимости оборудования, во многих сетях, к сожалению, еще остаются и участки с низкой пропускной способностью и непроизводительные маршрутизаторы. Замена оборудования и расширение пропускной способности сети не всегда оправдана и возможна по разным причинам либо организационного, либо экономического характера. Тем не менее, существуют способы, позволяющие продолжать использовать имеющееся в наличии оборудование и каналы связи путем их более тонкой настройки, а именно фильтрации нежелательных префиксов.

Существует несколько способов фильтрации нежелательных префиксов в сетях с использованием Route Reflector. Мы разберем два из них.

1. Для префиксов VPNV4/6 будет рассмотрено применение механизма Route Target Constraint
2. Для префиксов IPV4/6 рассмотрим применение механизма Selective RIB download.

1. Route Target Constraint (RTC)

Принципы функционирования данного способа фильтрации описаны в RFC 4684.
Суть проблемы в сети без использования фильтрации заключается в следующем: если в сети MPLS VPN используется Route Reflector(RR), то при отправке маршрутов в сторону PE route reflector передает все полученные префиксы, независимо от того, создан на PE vrf или нет.
Несмотря на то, что PE маршрутизатор определяет, что данные префиксы не нужны и отбрасывает «ненужные» префиксы, тем не менее, процесс отправки всех префиксов повышает как нагрузку на сеть, так и нагрузку на CPU PE и RR.
При использовании механизма RTC RR оправляет на PE только те префиксы, для которых на PE настроен импорт. Для обеспечения данного механизмы была разработана специальная Address Family – rtfilter.
Рассмотрим работу механизма на примере следующей сети

В качестве IGP протокола в нашей сети используется OSPF.
Между PE и CE настроены как OSPF, так и статическая маршрутизация.
Рассмотрим, как работает фильтрация между PE4 и PE1, между маршрутизаторами настроен VPN в котором «ходит» трафик ограниченный VRF GREEN.

Настройка MPLS L3 VPN тривиальна и не таит никаких сюрпризов.

R1
vrf definition GREEN
rd 2:2
!
address-family ipv4
route-target export 2:2
route-target import 2:2
exit-address-family


interface GigabitEthernet1.1245
encapsulation dot1Q 1245
ip address 10.12.45.1 255.255.255.0
!
interface GigabitEthernet2.111
encapsulation dot1Q 111
vrf forwarding GREEN
ip address 10.21.11.1 255.255.255.0
ip ospf 21 area 0
!

router ospf 21 vrf GREEN
default-information originate always
!
router ospf 1
router-id 1.1.1.1
network 0.0.0.0 255.255.255.255 area 0
mpls ldp autoconfig
!
router bgp 1245
bgp log-neighbor-changes
neighbor 5.5.5.5 remote-as 1245
neighbor 5.5.5.5 update-source Loopback0
!
address-family vpnv4
neighbor 5.5.5.5 activate
neighbor 5.5.5.5 send-community extended
exit-address-family
!
address-family ipv4 vrf GREEN
redistribute connected
redistribute ospf 21
exit-address-family


R4
vrf definition GREEN
rd 2:2
!
address-family ipv4
route-target export 2:2
route-target import 2:2
exit-address-family
!

interface GigabitEthernet1.1245
encapsulation dot1Q 1245
ip address 10.12.45.4 255.255.255.0
!
interface GigabitEthernet1.2414
encapsulation dot1Q 2414
vrf forwarding GREEN
ip address 10.24.14.4 255.255.255.0
ip ospf 21 area 0
!
…..
router ospf 21 vrf GREEN
default-information originate always
!
router ospf 1
router-id 4.4.4.4
network 0.0.0.0 255.255.255.255 area 0
mpls ldp autoconfig
!
router bgp 1245
bgp log-neighbor-changes
neighbor 5.5.5.5 remote-as 1245
neighbor 5.5.5.5 update-source Loopback0
!
address-family vpnv4
neighbor 5.5.5.5 activate
neighbor 5.5.5.5 send-community extended
exit-address-family
!
address-family ipv4 vrf GREEN
redistribute connected
redistribute ospf 21
exit-address-family

Связность между CE есть.

R11#ping 14.14.14.14
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 14.14.14.14, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 15/24/40 ms

RP/0/0/CPU0:XR14#ping 11.11.11.11
Mon Feb 27 08:47:37.102 UTC
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 11.11.11.11, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 19/25/29 ms

Посмотрим, что произойдет, если мы добавим на PE4 еще vrf и произведем редистрибьюцию маршрутов. Предварительно включим на PE1 debug.

R1#debug ip bgp vpnv4 unicast updates
BGP updates debugging is on for address family: VPNv4 Unicast

PE4
R4(config-router-af)#do sh run vrf RED
Building configuration...

Current configuration : 408 bytes
vrf definition RED
rd 1:1
!
address-family ipv4
route-target export 1:1
route-target import 1:1
exit-address-family
!
interface GigabitEthernet1.1414
encapsulation dot1Q 1414
vrf forwarding RED
ip address 10.14.14.4 255.255.255.0
!
router bgp 1245
!
address-family ipv4 vrf RED
redistribute connected
exit-address-family
!
end

После конфигурации на PE4 vrf RED в логах PE1 видно следующее

R1#
*Feb 27 09:28:36.212: BGP(4): 5.5.5.5 rcvd UPDATE w/ attr: nexthop 4.4.4.4, origin ?, localpref 100, metric 0, originator 4.4.4.4, clusterlist 5.5.5.5, extended community RT:1:1
*Feb 27 09:28:36.212: BGP(4): 5.5.5.5 rcvd 1:1:10.14.14.0/24, label 19 -- DENIED due to: extended community not supported;
R1#

Как видно из вывода, Route Reflector отправляет на PE «ненужные» маршруты.
Настроим опцию RTC и сравним результаты. Для работы данного механизма необходимо чтобы оба соседа BGP, как RR так и PE поддерживали AF rtfilter.

Сначала отключим редистрибьюцию в VRF RED на PE4

R4(config-router-af)#address-family ipv4 vrf RED
R4(config-router-af)#no redistribute connected

Добавим на RR, PE1, PE4 address-family rtfilter.


PE1
address-family rtfilter unicast
neighbor 5.5.5.5 activate
neighbor 5.5.5.5 send-community extended
exit-address-family

PE4
address-family rtfilter unicast
neighbor 5.5.5.5 activate
neighbor 5.5.5.5 send-community extended
exit-address-family

RR
address-family rtfilter unicast
neighbor 1.1.1.1 activate
neighbor 1.1.1.1 send-community extended
neighbor 1.1.1.1 route-reflector-client
neighbor 1.1.1.1 default-originate
neighbor 4.4.4.4 activate
neighbor 4.4.4.4 send-community extended
neighbor 4.4.4.4 route-reflector-client
neighbor 4.4.4.4 default-originate
exit-address-family

Вернем редистрибьюцию маршрутов на PE4.

PE4
address-family ipv4 vrf RED
redistribute connected
exit-address-family

При этом на PE1, какие либо сообщения о том, что пришли «ненужные» маршруты не видны.

Стоит отметить что, конфигурация на IOS-XR отличается, приведу конфигурацию опции на IOS-XR (PE3)

IOS-XR
router bgp 1245
bgp router-id 3.3.3.3
bgp log neighbor changes detail
address-family vpnv4 unicast
!
address-family ipv4 rt-filter
!
neighbor 5.5.5.5
remote-as 1245
update-source Loopback0
address-family vpnv4 unicast
!
address-family ipv4 rt-filter
!
!
vrf BLACK
rd 4:4
address-family ipv4 unicast
!

Работа данного механизма также возможна при отсутствии поддержки AF rtfilter в коде какого-либо PE маршрутизатора на сети. Например, если в сети есть старый маршрутизатор, на который нет возможности установить современную IOS. Рассмотрим ситуацию, когда на PE1 есть поддержка AF rtfilter, а на PE4 нет.

RR
address-family rtfilter unicast
neighbor 1.1.1.1 activate
neighbor 1.1.1.1 send-community extended
neighbor 1.1.1.1 route-reflector-client
neighbor 1.1.1.1 default-originate
exit-address-family

PE1
address-family rtfilter unicast
neighbor 5.5.5.5 activate
neighbor 5.5.5.5 send-community extended
exit-address-family

PE4
address-family vpnv4
neighbor 5.5.5.5 activate
neighbor 5.5.5.5 send-community extended
exit-address-family
!
address-family ipv4 vrf RED
redistribute connected
exit-address-family


Проверим наличие апдейтов на PE1, после того как отключим и обратно включим редистрибьюцию на PE4.


R1(config-router-af)#do sh deb
IOSXE Conditional Debug Configs:

Conditional Debug Global State: Stop

IOSXE Packet Tracing Configs:

IP routing:
BGP updates debugging is on for address family: VPNv4 Unicast
R1(config-router-af)#

Апдейты не приходят.
Таким образом, мы убедились, что использование механизма RTC позволяет осуществлять фильтрацию ненужных префиксов, в большой сети это позволит снизить нагрузку на сеть и на CPU маршрутизаторов.

Перейдем к рассмотрению следующего механизма.

2. Selective RIB download

             Использование данной опции позволяет не осуществлять программирование RIB на route reflector, route reflector в данном случае передает BGP маршруты клиентам, не загружая данные маршруты в свою собственную таблицу маршрутизации.
             Данная опция может быть полезна в случае, если трафик не проходит через route reflector (out of band RR). Также стоит отметить, что в случае если route reflector редистрибьютит маршруты только в сети MPLS VPN, применение данной опции не требуется, так как для MPLS VPN маршрутов опция активна по умолчанию, RR не загружает в RIB MPLS VPN префиксы.
             Для включения данной опции применяется команда table-map. Прежде чем продолжить, следует отметить особенности применения данной команды. Она может применяться как с опцией filter, так и без нее. Если filter НЕ используется, то маршруты всегда загружаются в RIB, независимо от того используется deny в route-map или нет, route-map используется лишь для изменения характеристик префиксов. В случае применения filter, префиксы фильтруются с использованием route-map, либо все, либо только определенные.

            Рассмотрим на примере знакомой нам сети, поменяем конфигурацию, удалим конфигурацию MPLS VPN, оставим IPV4. Следует заметить, что в контексте данной сети, с несколькими AS, наименования маршрутизаторов CE и PE не совсем корректны, но думаю это не вызовет затруднений при анализе схемы.

Связность между различными AS есть, CE маршрутизаторы видят друг друга.

R11(config-router)#do p 13.13.13.13
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 13.13.13.13, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 20/23/26 ms

R11(config-router)#do p 14.14.14.14
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 14.14.14.14, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 11/17/26 ms

RP/0/0/CPU0:XR14#ping 13.13.13.13
Mon Feb 27 12:06:43.814 UTC
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 13.13.13.13, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 9/29/59 ms

RP/0/0/CPU0:XR14#ping 11.11.11.11
Mon Feb 27 12:06:52.693 UTC
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 11.11.11.11, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 9/9/9 ms

Трафик через RR не проходит, RR в нашей сети является выделенным (dedicated), также используется термин out-of-band.

RP/0/0/CPU0:XR14#traceroute 11.11.11.11
Mon Feb 27 12:08:20.577 UTC

Type escape sequence to abort.
Tracing the route to 11.11.11.11

1 10.24.14.4 9 msec 0 msec 0 msec
2 10.12.45.1 19 msec 29 msec 9 msec
3 10.21.11.11 39 msec * 9 msec

R13#traceroute 14.14.14.14
Type escape sequence to abort.
Tracing the route to 14.14.14.14
VRF info: (vrf in name/id, vrf out name/id)
1 10.43.13.3 11 msec 11 msec 18 msec
2 10.12.45.4 19 msec 42 msec 23 msec
3 10.24.14.14 [AS 414] 26 msec * 34 msec

Тем не менее, RR хранит всю информацию в своих таблицах RIB и FIB.

R5(config-router-af)#do sh ip ro bgp | b Gateway
Gateway of last resort is not set

10.0.0.0/8 is variably subnetted, 8 subnets, 2 masks
B 10.9.14.0/24 [200/0] via 4.4.4.4, 00:00:13
B 10.13.14.0/24 [200/0] via 4.4.4.4, 00:00:13
B 10.14.14.0/24 [200/0] via 4.4.4.4, 00:00:13
B 10.21.11.0/24 [200/0] via 1.1.1.1, 00:00:13
B 10.24.14.0/24 [200/0] via 4.4.4.4, 00:00:13
B 10.43.13.0/24 [200/0] via 3.3.3.3, 00:00:13
11.0.0.0/32 is subnetted, 1 subnets
B 11.11.11.11 [200/0] via 1.1.1.1, 00:00:13
13.0.0.0/32 is subnetted, 1 subnets
B 13.13.13.13 [200/0] via 3.3.3.3, 00:00:13
14.0.0.0/32 is subnetted, 1 subnets
B 14.14.14.14 [200/0] via 4.4.4.4, 00:00:13


R5#sh ip cef 13.13.13.13
13.13.13.13/32
nexthop 10.12.45.3 GigabitEthernet1.1245

R5#sh ip cef 11.11.11.11
11.11.11.11/32
nexthop 10.12.45.1 GigabitEthernet1.1245
R5#

Настроим фильтрацию на RR.

Создаем route-map для фильтрации всех префиксов.

R5(config)#route-map block-into-rib deny 10

Применяем команду table-map.

R5(config-route-map)#router bgp 1245
R5(config-router)#address-family ipv4 unicast
R5(config-router-af)#table-map block-into-rib filter
R5(config-router-af)#end

Обновляем таблицы BGP используя table-map.

R5#clear ip bgp ipv4 unicast table-map

Проверим наличие информации в памяти маршрутизатора.


R5(config-router-af)#do sh ip ro bgp | b Gateway
Gateway of last resort is not set


R5#sh ip cef 11.11.11.11
0.0.0.0/0
no route
R5#sh ip cef 13.13.13.13
0.0.0.0/0
no route

Память освободили, информации на RR нет, тем не менее, связность между конечными узлами не пропала.

R13#trac 11.11.11.11 so lo0
Type escape sequence to abort.
Tracing the route to 11.11.11.11
VRF info: (vrf in name/id, vrf out name/id)
1 10.43.13.3 13 msec 13 msec 21 msec
2 10.12.45.1 [AS 1245] 30 msec 20 msec 55 msec
3 10.21.11.11 [AS 1245] 30 msec * 10 msec

R13#trac 14.14.14.14 so lo0
Type escape sequence to abort.
Tracing the route to 14.14.14.14
VRF info: (vrf in name/id, vrf out name/id)
1 10.43.13.3 13 msec 6 msec 5 msec
2 10.12.45.4 [AS 1245] 15 msec 25 msec 16 msec
3 10.24.14.14 [AS 1245] 18 msec * 13 msec

RP/0/0/CPU0:XR14#tra 13.13.13.13 source 14.14.14.14
Mon Feb 27 12:54:40.876 UTC

Type escape sequence to abort.
Tracing the route to 13.13.13.13

1 10.24.14.4 9 msec 0 msec 19 msec
2 10.12.45.3 49 msec 29 msec 49 msec
3 10.43.13.13 39 msec * 9 msec


RP/0/0/CPU0:XR14#tra 11.11.11.11 source 14.14.14.14
Mon Feb 27 12:54:55.235 UTC

Type escape sequence to abort.
Tracing the route to 11.11.11.11

1 10.24.14.4 19 msec 19 msec 0 msec
2 10.12.45.1 59 msec 69 msec 19 msec
3 10.21.11.11 19 msec * 9 msec

Для работы данного механизма, также необходимо, чтобы на ASBR маршрутизаторах была включена опция next-hop-self, в нашем случае это PE роутеры.


IOS
PE1
router bgp 1245
bgp log-neighbor-changes
redistribute connected
neighbor 5.5.5.5 remote-as 1245
neighbor 5.5.5.5 update-source Loopback0
neighbor 5.5.5.5 next-hop-self
neighbor 10.21.11.11 remote-as 111

IOS-XR
PE3
router bgp 1245
bgp router-id 3.3.3.3
bgp log neighbor changes detail
address-family ipv4 unicast
redistribute connected
!
neighbor 5.5.5.5
remote-as 1245
update-source Loopback0
address-family ipv4 unicast
next-hop-self
!
!
neighbor 10.43.13.13
remote-as 313
address-family ipv4 unicast
route-policy RPL_PASS in
route-policy RPL_PASS out
!

Данной конфигурацией мы добились фильтрации всех префиксов на RR, но как очевидно из названия опции она позволяет загружать именно выделенные префиксы. Это может потребоваться, в случае если все же RR требуется иметь информацию об определенных маршрутах. Рекомендуется делать это при помощи привязки community к нужным префиксам на ASBR и фильтрации на RR по определенной community.

Кратко рассмотрим избранную фильтрацию. Позволим RR видеть сеть между PE1 и CE1. Сейчас этой информации в таблице маршрутизации RR нет.

R5(config-router-af)#do sh ip ro 10.21.11.1
% Subnet not in table
R5(config-router-af)#do sh ip ro 10.21.11.11
% Subnet not in table


Создадим на ASBR (в нашем случае это PE1) prefix-list и route-map и применим к нужных префиксам


R1(config)#ip prefix-list r1_r11_net permit 10.21.11.0/24

R1(config)#route-map connected_routes permit 10
R1(config-route-map)# match ip address prefix-list r1_r11_net
R1(config-route-map)# set community 1245:100

R1(config-route-map)#router bgp 1245
R1(config-router)# address-family ipv4
R1(config-router-af)#redistribute connected route-map connected_routes

Надо отметить, что как правило, при конфигурации ipv4 соседа, параметр community по умолчанию не добавляется, поэтому необходимо добавить его. Иначе схема работать не будет, так как PE1 не будет отправлять community на RR.

R1(config-router-af)#neighbor 5.5.5.5 send-community extended

На RR отфильтруем префиксы по community 1245:100 и загрузим эти префиксы в RIB.

R5(config)#ip community-list 100 permit 1245:100

R5(config)#route-map routes_r1_r11
R5(config-route-map)#match community 100

R5(config-route-map)#router bgp 1245
R5(config-router)# address-family ipv4
R5(config-router-af)#table-map routes_r1_r11 filter

R5(config-router-af)#do clear ip bgp ipv4 unicast table-map

Как видно нужная информация загрузилась, все остальные, «ненужные» маршруты отсутствуют.

R5(config-router-af)#do sh ip ro 10.21.11.1
Routing entry for 10.21.11.0/24
Known via "bgp 1245", distance 200, metric 0, type internal
Last update from 1.1.1.1 00:00:44 ago
Routing Descriptor Blocks:
* 1.1.1.1, from 1.1.1.1, 00:00:44 ago
Route metric is 0, traffic share count is 1
AS Hops 0
MPLS label: none

R5(config-router-af)#do sh ip ro bgp | b Gateway
Gateway of last resort is not set

10.0.0.0/8 is variably subnetted, 3 subnets, 2 masks
B 10.21.11.0/24 [200/0] via 1.1.1.1, 00:00:13

             Как мы убедились, данный способ позволяет освободить память на RR, что может быть актуально в случае малого количества оперативной памяти на борту, а также большого количества префиксов.

           Подведем итог -  мы удостоверились, что использование этих двух механизмов позволяет уменьшить количество передаваемой и обрабатываемой маршрутной информации в сети, и как следствие позволяет снизить нагрузку на сеть, на CPU маршрутизаторов и уменьшить количество используемой памяти.

76
Просмотры
10
Полезный материал
0
Комментарии