vk_logo twitter_logo facebook_logo googleplus_logo youtube_logo telegram_logo telegram_logo

Настройка inter-AS Option C с использованием RSVP на оборудовании Huawei 13

Дата публикации: 08.02.2013
Количество просмотров: 18010
Автор:

Когда вы большой провайдер и перед вами стоит задача организовать L3VPN, как правило, вы используете MPLS. Если усложнить ситуацию наличием посередине другого провайдера, то вы вынуждены обратиться к Inter-AS VPN.

Есть три варианта Inter-AS VPN:
  • Option A. Самый простой вариант. Между ASBR различных AS не нужно запускать MPLS. Самый главный недостаток - ASBR являются сразу и PE, они должны быть оснащены всеми vpn-instance, причём для каждого из них выделяется свой интерфейс. По сути, друг друга каждый провайдер рассматривает, как CE. Не самое масштабируемое решение.
  • Option B. Между ASBR устанавливается MP-EBGP сессия. ASBR  в этом сценарии имеет дело с маршрутами всех VPN. В целом неплохо, но маршрутизатор ASBR должен быть достаточно мощным, чтобы хранить все эти тысячи маршрутов.
  • Option C. Выбор прогрессивного человечества. ASBR выполняет только свои функции и передаёт маршруты. Между ASBR устанавливается обычный MP-EBGP, а также на интерфейсах активируется MPLS. Multihop-EBGP сессия устанавливается между PE.

Часто вместо PE-устройства используется Route Reflector.

На последнем варианте мы и остановимся. Выше типичная схема работа Inter-AS Option C. ASBR просто передают маршруты из удалённой AS к PE, а PE их хранит и анонсирует IBGP-соседям. Между AS не поднимаются никакие протоколы распространения меток - ни LDP, ни RSVP - во избежание проблем с построением ненужных LSP между провайдерами, исчерпания пространства меток и прочих возможных неожиданностей.

Между PE и ASBR, согласно документации различных вендоров, может использоваться как LDP, так и RSVP. По идее никаких ограничений нет. С LDP всё сравнительно просто. Есть доступные инструкции и логика работы довольно ясная. Но сколько я ни пытался найти документацию по настройке RSVP, я упирался в полное её отсутствие.

Моя задача была протестировать работу Option C с использованием RSVP на оборудовании Huawei. Ниже подробное howto как это сделать и какие могут быть трудности.

Возьмём следующую схему:

В качестве оборудования используется CX600-X3 и NE40E-X3

Не буду останавливаться на настройке банальных вещей, вроде IP-адресов и OSPF. Вы можете найти их в полных конфигурациях устройств. Перейдём сразу к сути.

Настройка MPLS

На PE1 MPLS активируется только на интерфейсе в сторону ASBR1

[PE1] mpls lsr-id 1.1.1.1
[PE1] mpls
[PE1-mpls] quit
[PE1] mpls ldp
[PE1] interface Gi0/0/2
[PE1-GigabitEthernet0/0/1] mpls
[PE1-GigabitEthernet0/0/1] mpls ldp

На ASBR1 оба интерфейса MPLS:

[ASBR1] mpls lsr-id 2.2.2.2
[ASBR1] mpls
[ASBR1-mpls] quit
[ASBR1] mpls ldp
[ASBR1] interface Gi0/0/1
[ASBR1-GigabitEthernet0/0/1] mpls
[ASBR1-GigabitEthernet0/0/1] mpls ldp

Но на интерфейсе в сторону другой AS не нужно запускать LDP:

ASBR1] interface Gi0/0/2
[ASBR1-GigabitEthernet0/0/1] mpls

Настройка в AS200 полностью аналогична.

Проверка распространения меток

Если вы обеспечили IP-связность, то самое время проверить построение LSP:

[PE1]dis mpls lsp

  LSP Information: LDP LSP

FEC 
1.1.1.1/32
2.2.2.2/32
2.2.2.2/32
In/Out Label
3/NULL
NULL/3
1024/3
In/Out IF
-/-
-/Eth0/0/1
-/Eth0/0/1  
Vrf Name


 

 

[ASBR1]dis mpls lsp

LSP Information: LDP LSP

FEC    
1.1.1.1/32
1.1.1.1/32
2.2.2.2/32
In/Out Label
NULL/3
1025/3
3/NULL
In/Out IF
-/Eth0/0/1
-/Eth0/0/1
 -/-
Vrf Name 

 

 

Настройка VPN-instance

PE1

Поскольку это PE, нужно создать VPN-instance

[PE1] ip vpn-instance VPN1
[PE1-vpn-instance-vpn1] ipv4-family
[PE1-vpn-instance-vpn1-af-ipv4] route-distinguisher 100:1
[PE1-vpn-instance-vpn1-af-ipv4] vpn-target 1:1 both
[PE1] interface gigabitethernet 0/0/1
[PE1-GigabitEthernet2/0/0] ip binding vpn-instance VPN1
[PE1-GigabitEthernet2/0/0] ip address 10.1.1.2 24

То же самое на PE2

Настройка BGP

CE1 

Со стороны CE - это типичный EBGP:

[CE1] bgp 65001
[CE1-bgp] peer 10.1.1.2 as-number 100
[CE1-bgp] import-route direct

PE1

 EBGP с CE1:

[PE1] bgp 100
[PE1-bgp] ipv4-family vpn-instance vpn1
[PE1-bgp-vpn1] peer 10.1.1.1 as-number 65001

PE1

 IBGP с внутренним соседом ASBR1:

[PE1] bgp 100
[PE1-bgp] peer 2.2.2.2 as-number 100
[PE1-bgp] peer 2.2.2.2 connect-interface loopback 0
[PE1-bgp] ipv4-family vpnv4
[PE1-bgp-af-vpnv4] peer 4.4.4.4         enable

ASBR1

 EBGP c ASBR2 и IBGP с внутренним соседом PE1:

[ASBR1] bgp 100
[ASBR1-bgp] peer 198.51.100.2 as-number 200
[ASBR1-bgp] peer 1.1.1.1 as-number 100
[ASBR1-bgp] peer 1.1.1.1 connect-interface loopback 0
[ASBR1-bgp] ipv4-family vpnv4
[ASBR1-bgp-af-vpnv4] peer 1.1.1.1 enable

Это необходимый минимум. После таких настроек у вас должно быть такой состояние соседей BGP:

[PE1]dis bgp peer

 BGP local router ID : 1.1.1.1
 Local AS number : 100
 Total number of peers : 1                Peers in established state : 1

Peer  V  AS MsgRcvd MsgSent  OutQ Up/Down State PrefRcv
 2.2.2.2  100  3  4 0 00:00:05 Established 1

 

[PE1]dis bgp vpnv4 vpn-instance vpn1 peer

 BGP local router ID : 1.1.1.1
 Local AS number : 100
VPN-Instance vpn1, Router ID 1.1.1.1:
Total number of peers : 2                Peers in established state : 1

Peer   V AS MsgRcvd MsgSent OutQ Up/Down State PrefRcv
2.2.2.2 4 100 0 0 0 00:10:20  Idle 0
10.1.1.1 65001 12 11 0 00:09:54 Established 1                             

                            

[ASBR1]dis bgp peer 

 BGP local router ID : 198.51.100.1
 Local AS number : 100
 Total number of peers : 2                Peers in established state : 2

Peer  V AS MsgRcvd MsgSent  OutQ Up/Down State PrefRcv
1.1.1.1 4 100 7  9  0 00:05:47 Established 0
198.51.100.2  4 200 18 17 0 00:15:15 Established 1

                                 

При этом изменений в LSP быть пока не должно.

Передача VPN-маршрутов

Теперь обратимся к передаче маршрутов VPN между AS. Они должны быть промаркированы.

PE1.

Разрешаем передачу маркированных маршрутов

[PE1] bgp 100
[PE1-bgp] peer 2.2.2.2 label-route-capability

ASBR1

Настроим политики по применению MPLS-меток.

Безусловное применение метки на любой маршрут:

[ASBR1] route-policy POLICY1 permit node 1
[ASBR1-route-policy] apply mpls-label

Применение дополнительной метки на любой маршрут, который уже пришёл с меткой

[ASBR1] route-policy POLICY2 permit node 1
[ASBR1-route-policy] if-match mpls-label
[ASBR1-route-policy] apply mpls-label

Применяем политики в BGP:

[ASBR1] bgp 100
[ASBR1-bgp] peer 1.1.1.1 route-policy POLICY2 export
[ASBR1-bgp] peer 1.1.1.1 label-route-capability

То есть если соседу 1.1.1.1 мы хотим передать промаркированный маршрут (он уже пришёл с меткой), то мы на него вешаем дополнительную метку. При этом в противном случае - это обычный маршрут внутри AS и на него метку добавлять не будем.

[ASBR1-bgp] peer 198.51.100.2 as-number 200
[ASBR1-bgp] peer 198.51.100.2 route-policy POLICY1 export
[ASBR1-bgp] peer 198.51.100.2 label-route-capability

При анонсировании маршрутов соседу из другой AS - 198.51.100.2 мы всегда применяем метку. Делать это на линке ASBR1-ASBR2 нам нужной по той простой причине, что ни LDP, ни RSVP там не запущен.

Кроме того ASBR1 должен в удалённую AS анонсировать маршрут до адреса 1.1.1.1 - должны же они иметь связность:

[ASBR1] bgp 100
[ASBR1-bgp] network 1.1.1.1 32
[ASBR1-bgp] quit

Ну и собственно последнее, что нам нужно сделать - настроить Multihop EBGP-сессию на PE-устройствах:

PE1

[PE1] bgp 100
[PE1-bgp] peer 4.4.4.4 as-number 200
[PE1-bgp] peer 4.4.4.4 connect-interface LoopBack 0
[PE1-bgp] peer 4.4.4.4 ebgp-max-hop 10
[PE1-bgp] ipv4-family vpnv4
[PE1-bgp-af-vpnv4] peer 4.4.4.4 enable
[PE1-bgp-af-vpnv4] quit
[PE1-bgp] quit

[PE1]dis bgp peer 

BGP local router ID : 1.1.1.1
Local AS number : 100
Total number of peers : 2                Peers in established state : 2

Peer V AS MsgRcvd MsgSent OutQ Up/Down State PrefRcv
2.2.2.2 4 100 57 57 0 00:54:48 Established 1
4.4.4.4 4 200 46 49 0 00:42:15 Established 0

                                   

[PE1]dis bgp vpnv4 vpn-instance vpn1 peer 

BGP local router ID : 1.1.1.1
Local AS number : 100
VPN-Instance vpn1, Router ID 1.1.1.1:
Total number of peers : 1                Peers in established state : 1

Peer V AS MsgRcvd MsgSent OutQ Up/Down State PrefRcv
10.1.1.1   4 65001 72 73 0 01:09:22 Established 1

 

Тут надо заметить, что полностью симметричные настройки необходимо сделать на устройствах AS 200.
Данной конфигурации достаточно для достижения поставленной задачи.

[CE1]dis ip routing-table

Route Flags: R - relay, D - download to fib
Routing Tables: Public
Destinations : 5        Routes : 5        

Destination/Mask Proto Pre  Cost  Flags NextHop   Interface
10.1.1.0/24
10.1.1.1/32
10.2.1.0/24
127.0.0.0/8
127.0.0.1/32
Direct
Direct
EBGP
Direct
Direct
0
0
255
0
0
0
0
0
0
0
D   10.1.1.1
D   127.0.0.1
D   10.1.1.2 
D   127.0.0.1
 
D   127.0.0.1
Ethernet0/0/0
InLoopBack0
Ethernet0/0/0
InLoopBack0
InLoopBack0

                         

Попробуем запустить пинг от CE1 к CE2 и снять дамп трафика на линке ASBR1-ASBR2.

Ниже по выводу информации о LSP можно отследить назначение меток (внутренних VPN и внешних транспортных).

[PE1]dis mpls lsp

LSP Information: BGP  LSP

FEC  In/Out Label    In/Out IF VrfName 
4.4.4.4/32
10.1.1.0/24 
NULL/1027
1025/NULL
-/-
-/-

vpn1 

 

LSP Information: LDP LSP

FEC   In/Out Label   In/Out IF  Vrf Name  
1.1.1.1/32 
2.2.2.2/32
2.2.2.2/32 
3/NULL
NULL/3 
1024/3
-/- 
-/Eth0/0/1 
-/Eth0/0/1
 

PE1

[PE1]display mpls lsp vpn-instance vpn1

   LSP Information: BGP  LSP

FEC  In/Out Label In/Out IF Vrf Name 
10.1.1.0/24 1025/NULL -/- vpn1

                                                                                    

[ASBR1]dis mpls lsp

LSP Information: BGP  LSP

FEC  In/Out Label In/Out IF Vrf Name 
1.1.1.1/32 
4.4.4.4/32
4.4.4.4/32
1026/NULL
1027/1026
NULL/1026
-/-
-/-
-/-
 

                                                                                                                                                               

LSP Information: LDP LSP

FEC In/Out Label In/Out IF Vrf Name
1.1.1.1/32
1.1.1.1/32
2.2.2.2/32
NULL/3
1025/3
3/NULL
-/Eth0/0/1 
-/Eth0/0/1 
-/- 
 

 

[ASBR2]dis mpls lsp

LSP Information: BGP  LSP

FEC In/Out Label   In/Out IF Vrf Name  
1.1.1.1/32
4.4.4.4/32
1.1.1.1/32
NULL/1026
1026/NULL
 1027/1026
-/-
-/-
-/- 
 

                                                    

LSP Information: LDP LSP

FEC In/Out Label  In/Out IF Vrf Name
4.4.4.4/32
4.4.4.4/32 
3.3.3.3/32
NULL/3
1025/3 
3/NULL
-/Eth0/0/1
-/Eth0/0/1
-/-
 

                                                                                            

А так выглядят маршруты, передающиеся в AS200:

[ASBR1]dis bgp routing-table 1.1.1.1

 BGP local router ID : 2.2.2.2
Local AS number : 100
Paths:   1 available, 1 best, 1 select
BGP routing table entry information of 1.1.1.1/32:
Network route.
 Label information (Received/Applied): NULL/4104
 From: 0.0.0.0 (0.0.0.0)
Route Duration: 00h00m08s
Direct Out-interface: Tunnel0/0/0
Original nexthop: 2.2.2.2
Qos information : 0x0
AS-path Nil, origin igp, MED 1, pref-val 0, valid, local, best, select, pre 10
Advertised to such 1 peers: 198.51.100.2

[ASBR2]display bgp routing-table 1.1.1.1

 BGP local router ID : 3.3.3.3
Local AS number : 200
Paths:   1 available, 1 best, 1 select
BGP routing table entry information of 1.1.1.1/32:
 Label information (Received/Applied): 4102/4104 From: 198.51.100.1 (2.2.2.2)
Route Duration: 00h00m12s
Direct Out-interface: GigabitEthernet1/1/2
Relay Tunnel Out-Interface: GigabitEthernet1/1/2
Relay token: 0x42004000
Original nexthop: 198.51.100.1
Qos information : 0x0
AS-path 100, origin igp, MED 1, pref-val 0, valid, external, best, select, active, pre 255
Advertised to such 1 peers: 4.4.4.4

Обратите внимание, что они анонсируются с метками MPLS. Это пригодится нам чуть позже.

RSVP

А теперь представим, что по каким-то неведомым причинам вам захотелось в AS100 использовать для Option C не LDP, а RSVP. Это задача скорее умозрительная и рождена воспалённым сознанием, но с точки зрения разобраться, как работает, весьма полезная. Что меняется в этом случае? Да практически всё. Принцип настройки значительно различается.

Конечно, сначала стандартные настройки RSVP (тут есть ещё элементы IGP shortcut - они не являются обязательными):

PE1:

[PE1]mpls
[PE1-mpls] mpls te
[PE1-mpls] mpls rsvp-te
[PE1-mpls] mpls te cspf
[PE1-mpls]
[PE1-mpls] ospf 1
[PE1-ospf-1] opaque-capability enable
[PE1-ospf-1] enable traffic-adjustment advertise
[PE1-ospf-1] area 0.0.0.0
[PE1-ospf-1-area-0.0.0.0]  mpls-te enable

Для того, чтобы RSVP вообще начал строить LSP, нужно создать двунаправленный туннель между PE1 и ASBR1.

PE1:

[PE1-Tunnel0/0/0] ip address unnumbered interface LoopBack0
[PE1-Tunnel0/0/0] tunnel-protocol mpls te
[PE1-Tunnel0/0/0] destination 2.2.2.2
[PE1-Tunnel0/0/0] mpls te tunnel-id 100
[PE1-Tunnel0/0/0] mpls te igp advertise
[PE1-Tunnel0/0/0] mpls te igp metric absolute 1
[PE1-Tunnel0/0/0] mpls te commit

ASBR1:

[ASBR1]interface Tunnel0/0/0
[ASBR1-Tunnel0/0/0] ip address unnumbered interface LoopBack0
[ASBR1-Tunnel0/0/0] tunnel-protocol mpls te
[ASBR1-Tunnel0/0/0] destination 1.1.1.1
[ASBR1-Tunnel0/0/0] mpls te tunnel-id 200
[ASBR1-Tunnel0/0/0] mpls te igp advertise
[ASBR1-Tunnel0/0/0] mpls te igp metric absolute 1
[ASBR1-Tunnel0/0/0] mpls te commit

Если мы посмотрим на ASBR1 и ASBR2, то увидим, что маршрут не маркируется меткой (в отличие от случая с LDP):

[ASBR1]dis bgp routing-table 1.1.1.1

 BGP local router ID : 2.2.2.2
Local AS number : 100
Paths:   1 available, 1 best, 1 select
BGP routing table entry information of 1.1.1.1/32:
Network route.
From: 0.0.0.0 (0.0.0.0)
Route Duration: 00h26m42s
Direct Out-interface: Tunnel0/0/0
Original nexthop: 2.2.2.2
Qos information : 0x0
AS-path Nil, origin igp, MED 1, pref-val 0, valid, local, best, select, pre 10
Advertised to such 1 peers:   198.51.100.2

[ASBR2]display bgp routing-table 1.1.1.1

 BGP local router ID : 3.3.3.3
Local AS number : 200
Paths:   1 available, 1 best, 1 select
BGP routing table entry information of 1.1.1.1/32:
From: 198.51.100.1 (2.2.2.2)
Route Duration: 00h02m07s
 Direct Out-interface: GigabitEthernet1/1/2
Original nexthop: 198.51.100.1
Qos information : 0x0
AS-path 100, origin igp, MED 1, pref-val 0, valid, external, best, select, active, pre 255
Not advertised to any peer yet

Очевидно, это происходит (или точнее не происходит) при отправке маршрута с 1.1.1.1 на 2.2.2.2. Поэтому продолжаем настройку устройств AS100. Начнём с PE1 должен быть подвергнут юстировке.

Во-первых, назначаем недостающую метку:

[PE1]route-policy LABEL permit node 10
[PE1-route-policy] apply mpls-label
[PE1-route-policy]
[PE1-route-policy]bgp 100
[PE1-bgp] ipv4-family unicast
[PE1-bgp-af-ipv4]  peer 2.2.2.2 route-policy LABEL export

Все маршруты, передающиеся на 2.2.2.2 должны получить метку

Ещё один любопытный момент: пока у нас с PE1 не анонсируются никакие сети, команда network сейчас прописана на ASBR1, как того требует схема с LDP. Надо перенести её на PE1:

[PE1] bgp 100
[PE1-bgp] network 1.1.1.1 32

[ASBR1] bgp 100
[ASBR1-bgp] undo network 1.1.1.1 32

Теперь последний шаг - выбор туннеля для анонсирования VPN-маршрутов BGP:

[PE1]tunnel-policy TP
[PE1-tunnel-policy-TP] tunnel select-seq cr-lsp load-balance-number 1
[PE1-tunnel-policy-TP]tunnel-selector TS permit node 10
[PE1-tunnel-selector] apply tunnel-policy TP
[PE1-tunnel-selector]bgp 100
[PE1-bgp] ipv4-family unicast
[PE1-bgp-af-ipv4]  tunnel-selector TS

Этот самый последний шаг необходимо повторить и на ASBR1.

[ASBR1]tunnel-policy TP
[ASBR1-tunnel-policy-TP] tunnel select-seq cr-lsp load-balance-number 1
[ASBR1-tunnel-policy-TP]tunnel-selector TS permit node 10
[ASBR1-tunnel-selector] apply tunnel-policy TP
[ASBR1-tunnel-selector]bgp 100
[ASBR1-bgp] ipv4-family unicast
[ASBR1-bgp-af-ipv4]  tunnel-selector ts-test

Теперь можно проверить, что LSP простроены

[PE1]dis mpls lsp

 LSP Information: RSVP LSP

FEC In/Out Label  In/Out IF Vrf Name 
2.2.2.2/32
1.1.1.1/32
NULL/3
3/NULL
-/GE1/1/6 
GE1/1/6/-

 

 

 LSP Information: BGP  LSP

FEC  n/Out Label   I  In/Out IF    Vrf Name 
1.1.1.1/32
4.4.4.4/32
10.1.1.1/32
4096/NULL 
NULL/4096
4097/NULL
-/- 
-/- 
-/- 


 vpn1

                                                                                                                                                                                      

И маршрут передаётся на ASBR2 маркированный:

[ASBR2]dis bgp routing-table 1.1.1.1
 BGP local router ID : 3.3.3.3
Local AS number : 200
Paths:   1 available, 1 best, 1 select
BGP routing table entry information of 1.1.1.1/32:
 Label information (Received/Applied): 4097/4099
 From: 198.51.100.1 (2.2.2.2)
Route Duration: 00h24m34s  
Direct Out-interface: GigabitEthernet1/1/2
Relay Tunnel Out-Interface: GigabitEthernet1/1/2
Relay token: 0x42004000
Original nexthop: 198.51.100.1
Qos information : 0x0
AS-path 100, origin igp, pref-val 0, valid, external, best, select, active, pre 255
Advertised to such 1 peers:  4.4.4.4

На этом заканчивается решение этой надуманной задачи. Как видите, она несёт в себе значительное усложнение настройки и понимания. При этом, учитывая, что одновременно в сети вполне могут работать как RSVP, так и LDP, нет смысла городить такой лес. Единственное оправданное использование - это когда между ASBR и PE у вас находится ещё сеть MPLS и вы нуждаетесь в возможностях MPLS TE.

От редакции: если у вас есть чем поделиться с коллегами по отрасли, приглашаем к сотрудничеству
Ссылка на материал, для размещения на сторонних ресурсах
/articles/article/22780/nastroyka-inter-as-option-c-s-ispolzovaniem-rsvp-na-oborudovanii-huawei.html

Обсудить на форуме

Оставлять комментарии могут только зарегистрированные пользователи

Зарегистрироваться