viernes, 5 de junio de 2009

BGP/MPLS IP VPNs II

Posted by Nicolas | viernes, 5 de junio de 2009 | Category: , , , , , |

Corresponde ahora configurar los clientes. Cada CE será configurado por ahora con una ruta default al PE.


En los PEs se asociará las interfaces correspondientes a la VRF configurada.

PE1#sh run int f2/0
Building configuration...

Current configuration : 185 bytes
!
interface FastEthernet2/0
ip vrf forwarding Customer
ip address 10.0.0.1 255.255.255.252
speed auto
duplex auto
end

PE2#sh run int f2/0
Building configuration...

Current configuration : 185 bytes
!
interface FastEthernet2/0
ip vrf forwarding Customer
ip address 10.0.0.5 255.255.255.252
speed auto
duplex auto
end

Para hacer visibles ambos extremos, BGP se encargará de anunciar las redes de la VRF entre los PEs gracias a la definición del RFC 2858 (Multiprotocol Extensions for BGP-4). Esto siempre y cuando las redes sean insertadas en la tabla de BGP. Para esto es necesario redistribuir las redes existentes, que por ahora son sólo directamente conectadas, por lo tanto se utilizará redistribute connected dentro del address-family ipv4 correspondiente.

router bgp 64512
!
address-family ipv4 vrf Customer
no synchronization
redistribute connected
exit-address-family
!

Con esto efectivamente se comienza a recibir la red del otro extremo.

PE1#sh ip bgp vpnv4 vrf Customer
BGP table version is 5, local router ID is 1.1.1.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete

Network Next Hop Metric LocPrf Weight Path
Route Distinguisher: 1.1.1.1:1234 (default for vrf Customer)
*> 10.0.0.0/30 0.0.0.0 0 32768 ?
*>i10.0.0.4/30 2.2.2.2 0 100 0 ?

Ahora se necesita comprobar la conectividad extremo a extremo.

CE1#sh ip rou
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route

Gateway of last resort is 10.0.0.1 to network 0.0.0.0

10.0.0.0/30 is subnetted, 1 subnets
C 10.0.0.0 is directly connected, FastEthernet0/0
S* 0.0.0.0/0 [1/0] via 10.0.0.1

CE1#ping 10.0.0.6

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.0.0.6, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 88/116/148 ms
CE1#

El siguiente paso será levantar un protocolo de ruteo. Se utilizará OSPF y se anunciará direcciones de loopback entre los CEs.

CE1#conf t
Enter configuration commands, one per line. End with CNTL/Z.
CE1(config)#int loop 0
CE1(config-if)#ip add 10.1.1.1 255.255.255.255
CE1(config)#router ospf 1
CE1(config-router)#net 10.0.0.0 0.255.255.255 area 0
CE1(config-router)#passive-interface loop0
CE1(config-router)#^Z
CE1#

CE2#conf t
Enter configuration commands, one per line. End with CNTL/Z.
CE2(config)#int loop 0
CE2(config-if)#ip add 10.2.2.2 255.255.255.255
CE2(config-if)#router ospf 1
CE2(config-router)#net 10.0.0.0 0.255.255.255 area 0
CE2(config-router)#passive-interface loop 0
CE2(config-router)#^Z
CE2#

¿Basta con esto?. No, los CEs deben formar vecindades con los PEs que distribuirán los anuncios en BGP.

PE1#conf t
Enter configuration commands, one per line. End with CNTL/Z.
PE1(config)#router ospf 2 vrf Customer
PE1(config-router)#net 10.0.0.0 0.0.0.255 area 0
PE1(config-router)#^Z
PE1#

PE2#conf t
Enter configuration commands, one per line. End with CNTL/Z.
PE2(config)#router ospf 3 vrf Customer
PE2(config-router)#net 10.0.0.0 0.255.255.255 area 0
PE2(config-router)#^Z
PE2#

Notar que los números de proceso de OSPF tienen significancia sólo para el router local. Se revisan las vecindades con show ip ospf neighbor.

CE1#sh ip ospf nei

Neighbor ID Pri State Dead Time Address Interface
10.0.0.1 1 FULL/BDR 00:00:36 10.0.0.1 FastEthernet0/0
CE1#

PE1#sh ip ospf nei

Neighbor ID Pri State Dead Time Address Interface
10.1.1.1 1 FULL/DR 00:00:37 10.0.0.2 FastEthernet2/0
PE1#

Se revisa la tabla de ruteo de la VRF con show ip route vrf.

PE1#sh ip rou vrf Customer

Routing Table: Customer
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route, + - replicated route

Gateway of last resort is not set

10.0.0.0/8 is variably subnetted, 4 subnets, 2 masks
C 10.0.0.0/30 is directly connected, FastEthernet2/0
L 10.0.0.1/32 is directly connected, FastEthernet2/0
B 10.0.0.4/30 [200/0] via 2.2.2.2, 00:14:55
O 10.1.1.1/32 [110/2] via 10.0.0.2, 00:03:30, FastEthernet2/0
PE1#

Se comprueba que se está recibiendo la ruta del CE conectado directamente. Para recibir la del otro extremo hay que redistribuir en BGP tal como se hizo para las directamente conectadas.

PE1# conf t
Enter configuration commands, one per line. End with CNTL/Z.
PE1(config)#router bgp 64512
PE1(config-router)# address-family ipv4 vrf Customer
PE1(config-router-af)#redistribute ospf 2
PE1(config-router-af)#end
PE1#

PE2#conf t
Enter configuration commands, one per line. End with CNTL/Z.
PE2(config-router)#router bgp 64512
PE2(config-router)#address-family ipv4 vrf Customer
PE2(config-router-af)#redistribute ospf 3
PE2(config-router-af)#end
PE2#

Se revisa nuevamente la tabla de ruteo de la VRF con show ip route vrf.

PE1#sh ip route vrf Customer

Routing Table: Customer
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route, + - replicated route

Gateway of last resort is not set

10.0.0.0/8 is variably subnetted, 5 subnets, 2 masks
C 10.0.0.0/30 is directly connected, FastEthernet2/0
L 10.0.0.1/32 is directly connected, FastEthernet2/0
B 10.0.0.4/30 [200/0] via 2.2.2.2, 00:13:25
O 10.1.1.1/32 [110/2] via 10.0.0.2, 00:15:37, FastEthernet2/0
B 10.2.2.2/32 [200/2] via 2.2.2.2, 00:04:25
PE1#

Ahora se prueba conectividad eliminando la ruta default para asegurar que sea la ruta recién aprendida quién encamina los paquetes.

CE1#conf t
Enter configuration commands, one per line. End with CNTL/Z.
CE1(config)#no ip route 0.0.0.0 0.0.0.0 10.0.0.1
CE1(config)#end

CE1#ping 10.2.2.2

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.2.2.2, timeout is 2 seconds:
.....
Success rate is 0 percent (0/5)
CE1#

Lo anterior es lógico si se hace un seguimiento secuencial de anuncio y redistribución de las redes. Si bien el PE aprende la ruta por BGP, no se ha distribuido de vuelta en OSPF para que pueda llegar al CE.

PE1#conf t
Enter configuration commands, one per line. End with CNTL/Z.
PE1(config)#router ospf 2
PE1(config-router)#redistribute bgp 64512 subnets
PE1(config-router)#end
PE1#

Al observar la tabla de ruteo del CE.

CE1>sh ip rou
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route

Gateway of last resort is not set

10.0.0.0/8 is variably subnetted, 4 subnets, 2 masks
O E2 10.2.2.2/32 [110/2] via 10.0.0.1, 00:02:10, FastEthernet0/0
C 10.0.0.0/30 is directly connected, FastEthernet0/0
C 10.1.1.1/32 is directly connected, Loopback0
O E2 10.0.0.4/30 [110/1] via 10.0.0.1, 00:02:10, FastEthernet0/0
CE1>

Al probar nuevamente.

CE1>ping 10.2.2.2

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.2.2.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 52/104/124 ms
CE1>

Mucha precaución hay que tener al redistribuir entre dos protocolos de ruteo en ambos sentido de modo de evitar Loops. Para la implementación de OSPF en VRFs, automáticamente se generan dos medidas de protección; Down Bit y Tag Field (Loop Prevention). Zarar Ismail explica muy bien su funcionamiento, por qué exsiten dos tipos y el caso del VRF-Lite en OSPF down bit and domain tag.

Area 0 discontinua?. Básicamente la implementación de OSPF sobre MPLS agrega un nuevo nivel jeracquico por sobre el área 0 (backbone) denominada Superbackbone.

PE1#sh ip ospf | i VRF
Connected to MPLS VPN Superbackbone, VRF Customer
PE1#

En total 1 comentarios:

  1. Muchas gracias, me fue muy util el ejercio de bgpmpls-ip-vpns 1 y 2

    Cordialmente

    Sebastian Rios


Leave a Reply