terça-feira, 14 de junho de 2011

VPN - VRF sobre túnel GRE

1      Cenário

1.1       Objetivo

Seis roteadores (R1-CE, R2-CE, R3-PE, R4-PE, R5-CE e R6-CE) são conectados formando o seguinte cenário:
      O protocolo de roteamento do backbone (R3 e R4) deverá ser o OSPF na área 0 com todas as interfaces divulgadas e com mBGP e LDP entre os PEs no AS 1 para tráfego das vpns VRFs;
      Os roteadores R1-CE e R5-CE devem fazer parte da VPN R1-R5;
      Os roteadores R2-CE e R6-CE devem fazer parte da VPN R2-R6;
      O R1-CE se conecta ao backboone pelo R2-CE;

1.2       Topologia

1.3       IOS utilizados

      R1-CE, R2-CE, R3-PE, R4-PE, R5-CE e R6-CE – c7200-k91p-mz.122-25.S15.bin

1.4       Configuração dos Roteadores

1.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”.

1.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”.

1.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.

1.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.

1.4.5    VRF sobre o túnel GRE

Para que um CE conectado a outro CE se conecte a uma VRF diferente da VRF do CE que o conecta até o PE é necessário que o PE faça um Túnel GRE com o CE de destino, ou seja, o CE mais remoto. Esse túnel GRE é criado e adicionado na VRF do primeiro PE convencionalmente e, utilizando um endereço IP do PE existente na VRF, cria-se um túnel.
A feature é feita quando se configura o tipo de túnel, que tem que ser “tunnel vrf ”, onde o nome da vrf é o da vrf do CE mais remoto.

1.5       Observações e Bugs

Documentação:

1.6       Comandos Importantes de Verificação

R3-PE#sh ip interface tun13
Tunnel13 is up, line protocol is up
  Internet address is 13.13.13.3/24
  Broadcast address is 255.255.255.255
  Address determined by non-volatile memory
  MTU is 1476 bytes
  Helper address is not set
  Directed broadcast forwarding is disabled
  Outgoing access list is not set
  Inbound  access list is not set
  Proxy ARP is enabled
  Local Proxy ARP is disabled
  Security level is default
  Split horizon is enabled
  ICMP redirects are always sent
  ICMP unreachables are always sent
  ICMP mask replies are never sent
  IP fast switching is enabled
  IP Flow switching is disabled
  IP CEF switching is enabled
  IP CEF switching turbo vector
  IP CEF turbo switching turbo vector
  VPN Routing/Forwarding "R1-R5"
  Tunnel VPN Routing/Forwarding "R2-R6"
  IP multicast fast switching is enabled
  IP multicast distributed fast switching is disabled
  IP route-cache flags are Fast, CEF
  Router Discovery is disabled
  IP output packet accounting is disabled
  IP access violation accounting is disabled
  TCP/IP header compression is disabled
  RTP/IP header compression is disabled
  Probe proxy name replies are disabled
  Policy routing is disabled
  Network address translation is disabled
  WCCP Redirect outbound is disabled
  WCCP Redirect inbound is disabled
  WCCP Redirect exclude is disabled
  BGP Policy Mapping is disabled

2      Configuração

2.1       R1-CE

!
interface Tunnel13
 ip address 13.13.13.1 255.255.255.0
 tunnel source 12.12.12.1
 tunnel destination 23.23.23.3
!
interface Loopback0
 ip address 1.1.1.1 255.255.255.255
!
interface Serial1/1
 ip address 12.12.12.1 255.255.255.0
 ip access-group GRE-ONLY in
!
!
ip route 0.0.0.0 0.0.0.0 Tunnel13
ip route 23.23.23.3 255.255.255.255 12.12.12.2
!
ip access-list extended GRE-ONLY
 permit gre host 23.23.23.3 host 12.12.12.1
!

2.2       R2-CE

interface Loopback0
 ip address 2.2.2.2 255.255.255.255
!
interface Serial1/0
 ip address 12.12.12.2 255.255.255.0
!
interface Serial1/1
 ip address 23.23.23.2 255.255.255.0
!
ip route 0.0.0.0 0.0.0.0 23.23.23.3
!

2.3       R3-PE

!
ip cef
!
ip vrf R1-R5
 rd 15:15
 route-target export 15:15
 route-target import 15:15
!
ip vrf R2-R6
 rd 26:26
 route-target export 26:26
 route-target import 26:26
!
interface Tunnel13
 ip vrf forwarding R1-R5
 ip address 13.13.13.3 255.255.255.0
 tunnel source 23.23.23.3
 tunnel destination 12.12.12.1
 tunnel vrf R2-R6
!
interface Loopback0
 ip address 3.3.3.3 255.255.255.255
!
interface Serial1/0
 ip vrf forwarding R2-R6
 ip address 23.23.23.3 255.255.255.0
!
interface Serial1/1
 ip address 34.34.34.3 255.255.255.0
 mpls ip
!
router ospf 1
 router-id 3.3.3.3
 network 0.0.0.0 255.255.255.255 area 0
!
router bgp 1
 bgp router-id 3.3.3.3
 neighbor 4.4.4.4 remote-as 1
 neighbor 4.4.4.4 update-source Loopback0
 !
 address-family vpnv4
 neighbor 4.4.4.4 activate
 neighbor 4.4.4.4 send-community extended
!
 address-family ipv4 vrf R2-R6
 redistribute connected
 redistribute static
!
 address-family ipv4 vrf R1-R5
 redistribute connected
 redistribute static
!
ip route vrf R1-R5 1.1.1.1 255.255.255.255 Tunnel13
ip route vrf R2-R6 2.2.2.2 255.255.255.255 23.23.23.2
ip route vrf R2-R6 12.12.12.1 255.255.255.255 23.23.23.2
!

2.4       R4-PE

!
ip cef
!
ip vrf R1-R5
 rd 15:15
 route-target export 15:15
 route-target import 15:15
!
ip vrf R2-R6
 rd 26:26
 route-target export 26:26
 route-target import 26:26
!
interface Loopback0
 ip address 4.4.4.4 255.255.255.255
!
interface Serial1/0
 ip address 34.34.34.4 255.255.255.0
 mpls ip
!
interface Serial1/1
 ip vrf forwarding R1-R5
 ip address 45.45.45.4 255.255.255.0
!
interface Serial1/2
 ip vrf forwarding R2-R6
 ip address 46.46.46.4 255.255.255.0
!
router ospf 1
 router-id 4.4.4.4
 network 0.0.0.0 255.255.255.255 area 0
!
router bgp 1
 bgp router-id 4.4.4.4
neighbor 3.3.3.3 remote-as 1
 neighbor 3.3.3.3 update-source Loopback0
 !
 address-family vpnv4
 neighbor 3.3.3.3 activate
 neighbor 3.3.3.3 send-community extended
!       
 address-family ipv4 vrf R2-R6
 redistribute connected
 redistribute static
!
 address-family ipv4 vrf R1-R5
 redistribute connected
 redistribute static
ip route vrf R1-R5 5.5.5.5 255.255.255.255 45.45.45.5
ip route vrf R2-R6 6.6.6.6 255.255.255.255 46.46.46.6
!

2.5       R5-CE

!
interface Loopback0
 ip address 5.5.5.5 255.255.255.255
!
interface Serial1/0
 ip address 45.45.45.5 255.255.255.0
!
ip classless
ip route 0.0.0.0 0.0.0.0 45.45.45.4
!

2.6       R6-CE

!
interface Loopback0
 ip address 6.6.6.6 255.255.255.255
!
interface Serial1/0
 ip address 46.46.46.6 255.255.255.0
!
ip route 0.0.0.0 0.0.0.0 46.46.46.4
!

Nenhum comentário: