terça-feira, 24 de maio de 2011

VPN - OSPF dentro da VRF com processo unico

1      MPLS VPN – Virtual Private Network

2      Cenário

2.1       Objetivo

Cinco roteadores (CE1, PE1, P, PE2 e CE2) são conectados formando o seguinte cenário:
      Deverá ser usado o MPLS IP com LDP no backbone com a interface loopback 0 como router-id;
      O protocolo de roteamento do backbone deverá ser o OSPF na área 0 com todas as interfaces divulgadas;
      Os roteadores CE1 e CE2 fazem parte da mesma VPN VRF chamada BLUE;
      O roteamento dentro da VPN deverá ser com OSPF na área 0 redistribuído para o MBGP.

2.2       Topologia


Figure-01:         Topologia

2.3       IOS utilizados

      CE1, PE1, P, PE2 e CE2– c7200-k91p-mz.122-25.S15.bin

2.4       Configuração dos Roteadores

2.4.1    Configurações do OSPF do Backbone

Em todos os roteadores configura-se o roteamento OSPF pelo comando “router ospf ” onde o “processo” é um numero do processo OSPF. O roteador também possui um router ID único que geralmente é a interface loopback ou então o maior endereço IP do roteador.
Para adicionar interfaces deve-se usar o comando “network
área ”. Um roteador pode ter interfaces em áreas distintas, define-se cada área pelo comando network.
Para o roteador fazer vizinhança OSPF é necessário que a rede da interface esteja no comando “network” e a interface não esteja configurada como “passive-interface”.

2.4.2    Configurações do MPLS

Antes de qualquer configuração, o Cisco Express forwarding deve ser habilitado com o comando “ip cef”. Para habilitar o MPLS no modo LDP, usa-se o comando global “mpls label protocol ldp”.

2.4.3    Configuração do MBGP

Para estabelecer uma VPN é necessário configurar o MBGP para a troca de informações de prefixos de VPN. Pode-se somente configurar o MBGP nos roteadores PEs da rede que possuem conexão com os CEs, ou seja, conectados diretamente aos sites.
O MBGP funciona como o BGP, configura-se em todos os roteadores pelo comando “router bgp onde o “AS” é o Autonomous System do backbone. Dentro da configuração de BGP adicionam-se os vizinhos estaticamente com o comando “neighbor remote-as .
Adiciona-se o IP da interface loopback como Router-ID pelo comando “bgp router-id .
Como os roteadores dentro do mesmo AS não divulgarão as rotas IBGP entre eles, faz-se o full-mesh de conexão MBGP ou configuram-se os roteadores centrais como Router-reflectors adicionando os demais roteadores como clientes pelo comando “neighbor router-reflector-client”.
O MBGP é configurado dentro do protocolo BGP, porém deve-se separar a família de roteamento com o comando “address-family vpnv4”. Para o envio de prefixos das VPNs, deve-se habilitar o envio de community extendida com o comando “neighbor send-community extended”.
Todos os recursos como route-map, next-hop-self, router-reflector, etc. podem ser configurados dentro da família VPNv4 para manipular ou resolver problemas de roteamento.

2.4.4    Criando uma VPN VRF no BGP

Após todos os roteadores PEs da rede possuem conectividade MBGP, ou diretamente ou por router-reflector, cria-se a VPN com o comando “ip vrf ”, dentro desse comando ficam os parâmentros de marcação da VPN e das communities associadas aos prefixos daquela VPN. Configura-se o Route-Distinguisher da VPN, que deve ser único na rede, com comando “rd :”, e também cria-se a  community que será exportada para aqueles prefixos de rede com o comando “route-target :”, onde “import” significa importar as rotas e “export” exportar as rotas.
Cria-se então uma address-family dentro do BGP com o comando “address-family ipv4 vrf ” com o mesmo nome da VPN criada no “ip vrf” fora do roteamento BGP. Dentro dessa address-family são configuradas as redes que serão redistribuídas para os outros sites. Para divulgar as redes é necessário que a rede exista na tabela de roteamento interna e, ou adicionar o comando “network mask ou redistribuindo rotas para o MBGP com o comando “redistribute , que pode ser vinculado à um route-map para definir exatamente as rotas que serão divulgadas de um protocolo para outros sites.
Enfim, para que uma interface conectada ao CE faça parte da VPN BGP, usa-se o comando “ip vrf forwarding ” dentro da interface.

2.4.5    Habilitando o OSPF dentro da VPN VRF

O protocolo OSPF VRF é configurado com o comando “router ospf vrf ”. Dentro do roteamento configuram-se os parâmetros do OSPF, como o router-id e a redistribuição do BGP.

2.5       Observações e Bugs

Como as redes veem do mesmo AS, as rotas chegam nos CEs como D, ou seja, como se fossem internas.

2.6       Comandos Importantes de Verificação

PE1#sh ip route vrf BLUE

Gateway of last resort is not set

     200.200.200.0/32 is subnetted, 2 subnets
O E2    200.200.200.1 [110/20] via 172.16.1.2, 00:08:05, Serial1/0
B       200.200.200.2 [200/20] via 10.10.10.102, 00:07:10
     172.16.0.0/16 is variably subnetted, 4 subnets, 2 masks
B       172.16.20.0/24 [200/65] via 10.10.10.102, 00:07:10
O       172.16.10.0/24 [110/65] via 172.16.1.2, 00:08:05, Serial1/0
C       172.16.1.0/30 is directly connected, Serial1/0
B       172.16.2.0/30 [200/0] via 10.10.10.102, 00:07:10

CE1#traceroute 200.200.200.2

Type escape sequence to abort.
Tracing the route to 200.200.200.2

  1 172.16.1.1 116 msec 40 msec 8 msec
  2 10.10.10.2 [MPLS: Labels 17/21 Exp 0] 92 msec 28 msec 104 msec
  3 172.16.2.1 [MPLS: Label 21 Exp 0] 64 msec 80 msec 64 msec
  4 172.16.2.2 80 msec *  76 msec

3      Configuração

3.1       CE1

!
interface loopback0
 ip address 200.200.200.1 255.255.255.255
!
interface FastEthernet0/0
 ip address 172.16.10.1 255.255.255.0
!
interface Serial1/0
 ip address 172.16.1.2 255.255.255.252
!
router ospf 101
 redistribute connected subnets
 network 172.16.0.0 0.0.255.255 area 0
!

3.2       PE1

ip cef
!
ip vrf BLUE
 rd 1:1
 route-target export 1:1
 route-target import 1:1
!
mpls ldp router-id Loopback0
mpls label protocol ldp
!
!
interface Loopback0
 ip address 10.10.10.101 255.255.255.255
!
interface Serial1/0
 ip vrf forwarding BLUE
 ip address 172.16.1.1 255.255.255.252
!
interface Serial1/1
 ip address 10.10.10.1 255.255.255.252
 mpls ip
!
router ospf 101 vrf BLUE
 log-adjacency-changes
 redistribute bgp 1 subnets
 network 172.16.0.0 0.0.255.255 area 0
!
router ospf 1
 router-id 10.10.10.101
 network 10.0.0.0 0.255.255.255 area 0
!
router bgp 1
 bgp router-id 10.10.10.101
 neighbor 10.10.10.102 remote-as 1
 neighbor 10.10.10.102 update-source Loopback0
 !
 address-family vpnv4
 neighbor 10.10.10.102 activate
 neighbor 10.10.10.102 send-community extended
 !
address-family ipv4 vrf BLUE
 redistribute ospf 101 vrf BLUE match internal external 1 external 2
!

3.3       P

!
mpls ldp router-id Loopback0
mpls label protocol ldp
!
!
interface Loopback0
 ip address 10.10.10.200 255.255.255.255
!
interface Serial1/1
 ip address 10.10.10.2 255.255.255.252
 mpls ip
!
interface Serial1/2
 ip address 10.10.10.6 255.255.255.252
 mpls ip
!
router ospf 1
 router-id 10.10.10.200
 network 10.0.0.0 0.255.255.255 area 0
!

3.4       PE2

!
ip cef
!
ip vrf BLUE
 rd 1:1
 route-target export 1:1
 route-target import 1:1
!
mpls ldp router-id Loopback0
mpls label protocol ldp
!
interface Loopback0
 ip address 10.10.10.102 255.255.255.255
!
interface Serial1/0
 ip vrf forwarding BLUE
 ip address 172.16.2.1 255.255.255.252
!
interface Serial1/2
 ip address 10.10.10.5 255.255.255.252
 mpls ip
!
router ospf 101 vrf BLUE
 log-adjacency-changes
 redistribute bgp 1 subnets
 network 172.16.0.0 0.0.255.255 area 0
!
router ospf 1
 router-id 10.10.10.102
 network 10.0.0.0 0.255.255.255 area 0
!
router bgp 1
 bgp router-id 10.10.10.102
 neighbor 10.10.10.101 remote-as 1
 neighbor 10.10.10.101 update-source Loopback0
 !
 address-family vpnv4
 neighbor 10.10.10.101 activate
 neighbor 10.10.10.101 send-community extended
!
address-family ipv4 vrf BLUE
 redistribute ospf 101 vrf BLUE match internal external 1 external 2
!

3.5       CE2

!

interface loopback0
 ip address 200.200.200.2 255.255.255.255
!
interface FastEthernet0/0
 ip address 172.16.20.1 255.255.255.0
!
interface Serial1/0
 ip address 172.16.2.2 255.255.255.252
!
router ospf 101
 redistribute connected subnets
 network 172.16.0.0 0.0.255.255 area 0

4 comentários:

Libo disse...

olá Bruno,

estou desenvolvendo um TCC com o tema de migração de uma rede MPLS VPN IPv4 para uma rede MPLS VPN IPv6. Consegui montar cenários no GNS3 representando uma rede totalmente IPv4 e uma rodando IPv4 no core e IPv4 e IPv6 nos CEs (Dual-Stack). No entando não estou conseguindo encontral material suficiente para me dar uma luz sobre como rodar uma rede MPLS VPN sobre um Core de Operadora totalmente em IPv6. Você teria como me dar uma luz?

Bruno Barata disse...

Oi Libo,

aparentemente você fez o mais dificil, que é colocar uma VPNv6 dentro de um core v4. O contrário é bem mais facil, pois o ambiente v6 compreende o v4.
Crie um backbone v6 assim como vc criou o v4 e crie as address-families ipv4 da vrf v4.
Achei que tinha feito um lab assim... vou procurar.
qqr coisa me mande um e-mail para conversarmos melhor.
abs

Anônimo disse...

Oi é a 2ª vez que encontrei o teu blog e adorei tanto!Espectacular Trabalho!
Até à próxima

Anônimo disse...

Bruno não estendi o IP 200.200.200.1 em que interface eu adiciono?