martes, 2 de junio de 2009

BGP/MPLS IP VPNs I

Posted by Nicolas | martes, 2 de junio de 2009 | Category: , , , , |

Dentro de los nuevos tópicos a incluir en la versión 4 del examen de R&S está MPLS (RFC 3031), en particular MPLS/VPN, descrito en el RFC 4364 (deja obsoleto 2547). Es por esto que a continuación se describirá el algunos conceptos básicos para el set-up de VPNs utilizando esta tecnología. Se utilizará la topología de la figura.

Primero que nada se setea el IGP de nuestra red, tomando en consideración que debemos insertar en la tabla de ruteo una dirección de host (/32) que identifique a cada equipo como se describe en el punto 5 (Forwarding) del RFC 4364. En nuestro caso se utilizará Integrated IS-IS usando la dirección de Loopback 0 seteada en cada equipo. A continuación la configuración relevante en uno de los PEs para lo señalado.

hostname PE1
!
ip cef
!
interface Loopback0
ip address 1.1.1.1 255.255.255.255
!
interface Serial1/0
ip address 192.168.0.1 255.255.255.252
ip router isis
!
router isis
net 49.0001.0010.0100.1001.00
passive-interface Loopback0

Luego se debe setear el protocolo que intercambiará etiquetas entre ambos equipos. En particular se usará LDP (RFC 3036).

interface Serial1/0
mpls label protocol ldp
mpls ip

Luego se crea una VPN Routing and Forwarding table, que es distinta de la default forwarding table como describe el punto 3 (VRFs: Multiple Forwarding Tables in Pes) del RFC 4364. Localmente se le asigna un nombre que tiene significancia sólo en el PE configurado. Cabe destacar que las VRFs no son una característica propia de MPLS, es decir se pueden configurar sin la necesidad de implementar esta tecnología. Una buena referencia al respecto es la escrita por Jeremy Stretch en Intro to VRF lite.

hostname PE1
!
ip vrf Customer
rd 1.1.1.1:1234
route-target export 1.1.1.1:1111
route-target import 2.2.2.2:2222
!

hostname PE2
!
ip vrf Customer
rd 2.2.2.2:1234
route-target export 2.2.2.2:2222
route-target import 1.1.1.1:1111

Aparecen un par de elementos nuevos, el primero es RD (Route Distinguisher), quién se encarga de acompañar el anuncio de los prefijos entre PEs (sección 4.1, The VPN-IPv4 Address Family en el RFC 4364), permitiendo el uso independiente de direcciones IP entre VRFs, por ende dos clientes puedan hacer uso de la red 10.0.0.0/8 como ejemplo. El atributo Route Target, permite setear la comunidad extendida de BGP, Route Target (RFC 4360, BGP Extended Communities Attribute) que permite a las VRFs importar y exportar prefijos de acuerdo a sus necesidades, lo que determina las distintas VPNs (sección 4.3.5, Building VPNs Using Route Targets en el RFC 4364).

Por último (en esta primera parte) se seteará la sesión BGP vpnv4 (address-family vpnv4) entre ambos PEs, lo cual por el contrario de las IPv4, no está activa por defecto.

hostname PE1
!
router bgp 64512
no synchronization
bgp log-neighbor-changes
neighbor 2.2.2.2 remote-as 64512
neighbor 2.2.2.2 update-source Loopback0
no auto-summary
!
address-family vpnv4
neighbor 2.2.2.2 activate
neighbor 2.2.2.2 send-community extended
exit-address-family
!
address-family ipv4 vrf Customer
no synchronization
exit-address-family
!

Un breve chequeo nos verifica que al menos la Nube MPLS ya está lista.

PE2#sh ip bgp vpnv4 all sum 
BGP router identifier 2.2.2.2, local AS number 64512
BGP table version is 7, main routing table version 7
1 network entries using 141 bytes of memory
1 path entries using 68 bytes of memory
2/1 BGP path/bestpath attribute entries using 152 bytes of memory
1 BGP extended community entries using 24 bytes of memory
0 BGP route-map cache entries using 0 bytes of memory
0 BGP filter-list cache entries using 0 bytes of memory
BGP using 385 total bytes of memory
BGP activity 3/2 prefixes, 3/2 paths, scan interval 15 secs

Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
1.1.1.1 4 64512 16 15 7 0 0 00:11:39 0
PE2#

En total 0 comentarios:


Leave a Reply