antiCisco blogs


блоги по технологиям и оборудованию cisco от инструкторов

Опубликовано 17 Июль , 2013

Давненько я не публиковал ничего нового, но на то были свои причины. Сегодня мы с Вами поговорим о том, как прокинуть кастомеровскую VPN 3-го уровня через 2-ух провайдеров. Сделать это можно 4мя способами: так называемые Option A, B, C и AB. В лабораторных будем использовать одну и ту же топологию. R7, R8,R9,R10 – PE маршрутизаторы, R3,R4,R5,R6 – P маршрутизаторы, R1,R2 – ASBR’ы.

Начнем с самой простой опции А.

В этом случае провайдеры воспринимают друг друга как обычных клиентов и обмен маршрутов между ними идет как классический PE-CE обмен. Недостатком данного метода является тот факт, что на ASBR’ах необходимо настроить такое же количество vrf, сколько сайтов у конечных пользователей, а также создать такое количество саб-интерфейсов на стыке между двумя AS.

Первоначальный конфиг приводить не буду, он элементарный: внутри каждой AS работает OSPF+LDP+BGP IPv4 Unicast. Маршрутизаторы R5/R6 используются в качестве RR-ов.

topology

Настройка не сложная: необходимо поднять BGP-VPNv4 сессию между PE и ASBR внутри каждой AS, далее внутри address-family vrf настроить BGP между ASBR’ми.

R7#sh run | s bgp

router bgp 10

no bgp default ipv4-unicast

bgp log-neighbor-changes

neighbor 5.5.5.5 remote-as 10

neighbor 5.5.5.5 update-source Loopback0

!

address-family ipv4

neighbor 5.5.5.5 activate

no auto-summary

no synchronization

exit-address-family

!

address-family vpnv4

neighbor 5.5.5.5 activate

neighbor 5.5.5.5 send-community extended

exit-address-family

!

address-family ipv4 vrf A

redistribute connected

no synchronization

exit-address-family

R1#sh run | s bgp

router bgp 10

no bgp default ipv4-unicast

bgp log-neighbor-changes

neighbor 5.5.5.5 remote-as 10

neighbor 5.5.5.5 update-source Loopback0

!

address-family ipv4

neighbor 5.5.5.5 activate

no auto-summary

no synchronization

exit-address-family

!

address-family vpnv4

neighbor 5.5.5.5 activate

neighbor 5.5.5.5 send-community extended

exit-address-family

!

address-family ipv4 vrf B

no synchronization

exit-address-family

!

address-family ipv4 vrf A

neighbor 10.1.12.2 remote-as 20

neighbor 10.1.12.2 activate

no synchronization

exit-address-family

R5#sh run | s bgp

router bgp 10

no bgp default ipv4-unicast

bgp log-neighbor-changes

neighbor 1.1.1.1 remote-as 10

neighbor 1.1.1.1 update-source Loopback0

neighbor 3.3.3.3 remote-as 10

neighbor 3.3.3.3 update-source Loopback0

neighbor 7.7.7.7 remote-as 10

neighbor 7.7.7.7 update-source Loopback0

neighbor 8.8.8.8 remote-as 10

neighbor 8.8.8.8 update-source Loopback0

!

address-family ipv4

neighbor 1.1.1.1 activate

neighbor 1.1.1.1 route-reflector-client

neighbor 3.3.3.3 activate

neighbor 3.3.3.3 route-reflector-client

neighbor 7.7.7.7 activate

neighbor 7.7.7.7 route-reflector-client

neighbor 8.8.8.8 activate

neighbor 8.8.8.8 route-reflector-client

no auto-summary

no synchronization

exit-address-family

!

address-family vpnv4

neighbor 1.1.1.1 activate

neighbor 1.1.1.1 send-community extended

neighbor 1.1.1.1 route-reflector-client

neighbor 7.7.7.7 activate

neighbor 7.7.7.7 send-community extended

neighbor 7.7.7.7 route-reflector-client

exit-address-family

Внутри AS20 (правый провайдер) настройка абсолютно аналогичная.

R9#traceroute vrf A 77.77.77.77 so 99.99.99.99

 

Type escape sequence to abort.

Tracing the route to 77.77.77.77

 

1 10.1.69.6 [MPLS: Labels 19/20 Exp 0] 252 msec 244 msec 328 msec

2 10.1.46.4 [MPLS: Labels 17/20 Exp 0] 236 msec 268 msec 240 msec

3 10.1.12.2 [MPLS: Label 20 Exp 0] 68 msec 212 msec 200 msec

4 10.1.12.1 360 msec 368 msec 232 msec

5 10.1.13.3 [MPLS: Labels 19/23 Exp 0] 416 msec 404 msec 484 msec

6 10.1.35.5 [MPLS: Labels 18/23 Exp 0] 368 msec 444 msec 388 msec

7 77.77.77.77 444 msec 456 msec 348 msec

Как видим связь между сайтами клиента есть.

R1#show ip route vrf A bgp

99.0.0.0/32 is subnetted, 1 subnets

B       99.99.99.99 [20/0] via 10.1.12.2, 01:20:11

77.0.0.0/32 is subnetted, 1 subnets

B       77.77.77.77 [200/0] via 7.7.7.7, 01:30:35

Теперь давайте посмотрим, как формируется этот LSP. Первым делом посмотрим, какую VPN-метку будет использовать R9 при передаче пакетов.

R9#show bgp vpnv4 u vrf A 77.77.77.77/32

BGP routing table entry for 20:1:77.77.77.77/32, version 5

Paths: (1 available, best #1, table A)

Not advertised to any peer

10

2.2.2.2 (metric 4) from 6.6.6.6 (6.6.6.6)

Origin incomplete, metric 0, localpref 100, valid, internal, best

Extended Community: RT:20:1

Originator: 2.2.2.2, Cluster list: 6.6.6.6

mpls labels in/out nolabel/20 ! vpn label

В данной ситуации видим, что эта метка равна 20 и получена она от 2.2.2.2 (R2). Теперь надо понять, какую транспортную метку будет использовать R9 для того, чтобы достичь свой NH

R9#show mpls forwarding-table 2.2.2.2

Local  Outgoing    Prefix            Bytes tag  Outgoing   Next Hop

tag    tag or VC   or Tunnel Id      switched   interface

19     19          2.2.2.2/32        0          Fa0/0      10.1.69.6

Таким образом, стек меток, сформированный R9 составляет {19;20}. Это видно при выводе traceroute (1 10.1.69.6 [MPLS: Labels 19/20 Exp 0])

Также это можно увидеть при выводе дебага на R6:

R6#debug mpls packet

*Jul 16 20:00:07.795: MPLS: Gi1/0: recvd: CoS=0, TTL=250, Label(s)=18/25

*Jul 16 20:00:07.799: MPLS: Fa0/0: xmit: CoS=0, TTL=249, Label(s)=25

*Jul 16 20:00:07.895: MPLS: Fa0/0: recvd: CoS=0, TTL=255, Label(s)=19/20

Далее mpls пакет спокойно достигает R2. Посмотрим, что с ним происходит на ASBR.

R2#show mpls forwarding-table labels 20

Local  Outgoing    Prefix            Bytes tag  Outgoing   Next Hop

tag    tag or VC   or Tunnel Id      switched   interface

20     Untagged    77.77.77.77/32[V] 1620       Gi1/0.1    10.1.12.1

Из записей LFIB видно, что пакет вылетает через интерфейс в сторону 2го ASBR как Untagged, т.е. native ip. Это происходит из-за того, что между провайдерами не поднят обмен метками.

На R1 пакет прилетает внутри vrf-интерфейса. Посмотрим, что с ним происходит дальше

R1#show ip route vrf A 77.77.77.77

Routing entry for 77.77.77.77/32

Known via «bgp 10», distance 200, metric 0, type internal

Last update from 7.7.7.7 00:13:45 ago

Routing Descriptor Blocks:

* 7.7.7.7 (Default-IP-Routing-Table), from 5.5.5.5, 00:13:45 ago

Route metric is 0, traffic share count is 1

AS Hops 0

R1#show bgp vpnv4 unicast vrf A 77.77.77.77/32

BGP routing table entry for 222:2:77.77.77.77/32, version 3

Paths: (1 available, best #1, table A)

Advertised to update-groups:

2

Local, imported path from 10:1:77.77.77.77/32

7.7.7.7 (metric 4) from 5.5.5.5 (5.5.5.5)

Origin incomplete, metric 0, localpref 100, valid, internal, best

Extended Community: RT:10:1

Originator: 7.7.7.7, Cluster list: 5.5.5.5

mpls labels in/out nolabel/23 ! vpn label from R7

R1 заново делает push меток, в качестве VPN-метки ставя значение 23, которое было получено от R7, а в качестве транспорта используется метка, полученная по LDP от R3.

R1#show mpls forwarding-table 7.7.7.7

Local  Outgoing    Prefix            Bytes tag  Outgoing   Next Hop

tag    tag or VC   or Tunnel Id      switched   interface

18     19          7.7.7.7/32        0          Fa0/0      10.1.13.3

R7#show mpls forwarding-table labels 23

Local  Outgoing    Prefix            Bytes tag  Outgoing   Next Hop

tag    tag or VC   or Tunnel Id      switched   interface

23     Aggregate   77.77.77.77/32[V] 3688

 

Метки: , ,
Опубликовано: Маршрутизаторы и коммутаторы

 

2 комментария “INTER-AS MPLS L3 VPN, Option A”

comment rss - Trackback

  1. ruslan:

    Спасибо за труд. А продолжение про остальные варианты опций будет?

  2. fantas1st0:

    Да, обязательно.

» Оставить комментарий

Вы должны войти чтобы прокомментировать.