segunda-feira, 4 de abril de 2011

VPN - Inter-AS Opção C Ipv6

1      MPLS VPN – Virtual Private Network

1.1    Conceitos de VPN MPLS

      Customer Edge router (CE) – É o dispositivo localizado físicamente no cliente. Ele conecta a rede do provedor usando tecnologia nível 2 como Frame Relay, ATM, or Ethernet.
·         Nas VPNs layer 3, o CE forma uma relação de protocolo para trocar conhecimentos de rota. O router CE pode ser o único dispositivo em uma localidade de um determinando cliente, ou pode participar de um domínio de roteamento de uma localidade.
·         Para VPN Layer 2, o CE transmite frames para o provedor que são destinados a um cliente remoto. O CE pode ter uma única rota estática que aponta para o provedor, ou pode se comunicar por protocolo de roteamento com outro CE.
      Provider Edge router (PE) – É o dispositivo localizado no provedor e se comunica diretamente com o CE. Ele mantém relacionamento com outros routers dentro do provedor.
·         Para L3VPN o PE se comunica com o CE para receber atualizações de rotas. Essas informações são passadas para o PE router conectado ao outro CE do cliente. Quando o PE router recebe pacotes destinados ao site remoto ele encaminha o pacote usando MPLS LSP através do provedor.
·         Para L2VPN ele simplesmente recebe o frame L2 do CE local que encaminha para o PE remoto usando MPLS LSP.
      Provider router – Localizado no core do provedor. O P não tem nenhum conhecimento da VPN do cliente, simplesmente encaminha pacotes MPLS de um PE para o outro;
      VPN routing and forwarding table – Em L3VPN, todos os PEs mantem uma VPN routing and forwarding table (VRF) separada para cada cliente conectado no PE. Cada tabela VRF contém conhecimentos de roteamento específico para a rede do cliente. Quando o CE anuncia rotas de uma localidade, o PE as coloca na tabela VRF. O router então anuncia para o PE remoto que o anuncia para o CE remoto.

1.2    Layer 3 VPNs

Com Layer 3 VPN, o cliente anuncia conhecimento de roteamento IP para a rede do provedor. O ISP anuncia essas informações de roteamento através da rede para as outras localidades do cliente. Esse conceito simples requer coordenação entre o provedor e o cliente. A rede do provedor deve ser configurada para suportar anúncios dessas rotas.
      VPN Network Layer Reachability Information (NLRI) – Um dos principios do core para operação de VPN é manter a separação com a rede do cliente. As regras normais do BGP fazem dessa uma tarefa dificil quando várias versões da mesma rota passam através do algorítimo de seleção e somente um único caminho é escolhido. Layer 3 VPN usa um formato especial para representar as rotas dos clientes. Esse formato permite que cada router do provedor veja as rotas de cada cliente de forma diferente mesmo quando eles anunciam o mesmo prefixo. Para anunciar a NLRI requer o estabelecimento de sessões MBGP entre os PEs.
      Distinção de Rotas – É um campo de 8-octet que consiste em 3 partes Type, the Administrator, and Assigned Number fields.
      Type of RD indica qual o tamanho do campo do Administrator e do Assigned Number, sendo 0 o Assigned Number maior e 1 o Administrator maior.
      Quando o Administrator tem 2-octet é colocado o AS, quando é de 4-octets é usado o router ID do PE que originou.
      Basic Operational Concepts – Quando se usa L3VPN, você precisa estar por dentro de tanto da operação dos anúncios de rota e do encaminhamento de pacotes.
·         The Control Plane (anúncios de rotas) – Rotas de clientes em uma L3VPN são anunciadas entre os PEs da rede do provedor. Para garantir que essas rotas serão entregues para o cliente final, o provedor tem duas escolhas:
·         The Data Forwarding Plane (encaminhamento de pacotes) – Uma vez que rotas apropriadas são anunciadas e recebidas pelo CE, o cliente pode começar a encaminhar dados atraves da red do cliente.

      Usando BGP para anúncio de rotas PE-CE - Permite o uso de RIP, OSPF, e BGP como protocolo de roteamento para a conexão CE-PE connection.
      Internet Access for VPN Customers – O cliente mesmo tendo uma VPN ele pode solicitar acesso a Internet. Existem 3 jeitos de fazer: Acesso de for a da tabela VRF, Acesso distribuido para cada site VPN e acesso centralizado de um único site
·         Acesso independente – A tabela de roteamento do PE nunca é consultada para encaminhamento de pacotes. O CE tem que encaminhar trafego direto pra internet.
·         Acesso Distribuido – Configuração de 2 circuitos independetes na interface do CE. Um com VPN e outro sem.
·         Acesso Centralizado – Um CE possui acesso compartilhado e todos os outros encaminham tráfego pra ele destinado a internet.


2      Cenário

2.1       Objetivo

Quatro roteadores (CE1, PE1, P1, P2, PE2 e CE2) são conectados formando 2 ASs: AS 1 = PE1 e P1 e o AS 2 = P2 e PE2. Pede-se:
      O protocolo de roteamento dos backbones deverá ser o OSPF na área 0 com todas as interfaces divulgadas e deverá ser usado o MPLS IP com LDP.
      Os roteadores CE1 e CE2 fazem parte da mesma VPN VRF chamada BLUE e utilizam IPv6 puro;
      O roteamento dentro da VRF deverá ser o BGP, onde o CE1 usa o AS 100 e o CE2 o AS 200;
      Deverá ser usado o Inter-AS opção C com MBGP entre os PEs e BP entre os ASBRs.

2.2       Topologia

 

Figure-01:         Topologia

2.3       IOS utilizados

      CE1 e CE2 – c7200-k91p-mz.122-25.S15.bin
      PE1, P1, P2 e PE2 – c7200-advipservicesk9_li-mz.124-24.T3.bin

2.4       Configuração dos Roteadores

2.4.1    Configurações do IPv6

Inicialmente deve-se habilitar o roteamento IPv6 nos roteadores com o comando “ipv6 unicast-routing”. Nas interfaces os endereços link-global são configurados com o comando “ipv6 address
/” e deve-se habilitar o IPv6 dentro da interface com o comando “IPv6 enable”. Os endereços link-local são automaticamente configurados.

2.4.2    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.3    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.4    Configuração do MBGP

Para estabelecer uma VPNv6 sobre um backbone IPv4 é necessário configurar o MBGP para a troca de informações de prefixos da VPNv6. 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 MBGPv6 funciona como o MBGPv4, 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 vpnv6”. 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.5    Criando uma VPN VRF no BGP

Após todos os roteadores PEs da rede possuirem conectividade MBGP, ou diretamente ou por router-reflector, cria-se a VPNv6 com o comando “vrf definition ”, dentro desse comando ficam os parâmentros de marcação da VPNv6 e das communities associadas aos prefixos daquela VPNv6. Configura-se o Route-Distinguisher da VPNv6, 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. Em seguida habilita-se a address-family ipv6.
No BGP, Cria-se uma address-family “address-family ipv6 vrf ” com o mesmo nome da VPNv6 criada no “vrf definition” 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. No caso de vizinhança BGP, configura-se o neighbor.
Enfim, para que uma interface conectada ao CE faça parte da VPN BGP, usa-se o comando “vrf forwarding ” dentro da interface.
Dentro da VPN, para que o CE faça vizinhança BGP com o PE é necessário adicionar uma loopback IPv4 para ser o router-id do BGP.

2.4.6    Configuração do Inter-AS Opção C

A opção C do Inter-AS usa uma conexão MBGP entre os roteadores Router-Reflectors de VPNv6 (ou os PEs) da rede para a troca de informações de prefixos de VPNv6. Pode-se acordar os mesmos RD e RT ou exportar e importar os RTs do AS vizinho, caso sejam diferentes.
Nos ASBR deve-se estabelecer uma vizinhança BGP com o ASBR do AS vizinho, e deve-se adicionar o “send-label” na configuração de vizinhança com o roteador do AS vizinho para que seja enviadas as informações de NLRI e Label.
Devem ser aplicados route-maps de entrada e saída na viznhança BGP com o AS vizinho. No route-map de entrada (in) deve-se aplicar o “match mpls-label” para o endereço IP do router reflector ou PE de VPN do AS vizinho. No route-map de saída (out) deve-se aplicar o “ser mpls-label” no IP do router reflector ou PE de VPN do AS local.
Deve-se também desabilitar o filtro de route-target do AS no MBGP com o RR do AS vizinho usando o comando “no bgp default route-target filter”.

2.5       Observações e Bugs

2.6       Comandos Importantes de Verificação

PE1#sh mpls forwarding-table         
Local  Outgoing      Prefix            Bytes Label   Outgoing   Next Hop   
Label  Label or VC   or Tunnel Id      Switched      interface             
16     Pop Label     101.101.101.101/32   \
                                       0             Se1/1      point2point
17     19            2.2.2.2/32        0             Se1/1      point2point
19     Pop Label     22.22.22.0/24     0             Se1/1      point2point
20     No Label      2001:1::/112[V]   2080          aggregate/BLUE            

3      Configuração

3.1       CE1

!
ipv6 unicast-routing
ipv6 cef
!
Interface loopback0
 Ip address 11.11.11.11 255.255.255.255
!
interface Serial1/0
 encapsulation frame-relay
!
interface Serial1/0.6 point-to-point
 ipv6 address 2001:1::1/112
 frame-relay interface-dlci 600  
!        
!
router bgp 100
 bgp router-id 11.11.11.11
 neighbor 2001:1::2 remote-as 1
 no neighbor 2001:1::2 activate
!
 address-family ipv6
 neighbor 2001:1::2 activate
 redistribute connected
!

3.2       PE1

Ip cef
!
vrf definition BLUE
 rd 1:1
 !
 address-family ipv6
 route-target export 1:1
 route-target import 1:1
!
ipv6 unicast-routing
ipv6 cef
!
frame-relay switching
mpls label protocol ldp
!
!
!
interface Loopback0
 ip address 1.1.1.1 255.255.255.255
!
interface Serial1/0
 no shutdown
 encapsulation frame-relay
 frame-relay intf-type dce
!
interface Serial1/0.6 point-to-point
 vrf forwarding BLUE
 ipv6 address 2001:1::2/112
 frame-relay interface-dlci 600  
!
interface Serial1/1
 ip address 12.12.12.1 255.255.255.0
 mpls ip
!
router ospf 1
 network 0.0.0.0 0.0.0.0 area 0
!
router bgp 1
 no bgp default ipv4-unicast
 bgp router-id 1.1.1.1
 neighbor 2.2.2.2 remote-as 2
 neighbor 2.2.2.2 ebgp-multihop 255
 neighbor 2.2.2.2 update-source Loopback0
 !
 address-family vpnv6
  neighbor 2.2.2.2 activate
  neighbor 2.2.2.2 send-community both
!
 address-family ipv6 vrf BLUE
  neighbor 2001:1::1 remote-as 100
  neighbor 2001:1::1 activate
!

3.3       P1

!
ip cef
!
mpls label protocol ldp
!
!
!
interface Loopback0
 ip address 101.101.101.101 255.255.255.255
!
interface Serial1/0
 description PE1
 ip address 12.12.12.2 255.255.255.0
 mpls ip
 no shut
!
interface Serial1/1
 description Inter-AS
 ip address 22.22.22.1 255.255.255.0
 mpls ip
 no shut
!
router ospf 1
 redistribute bgp 1 metric 1 subnets route-map BGP-OSPF
 passive-interface Serial1/1
 network 0.0.0.0 255.255.255.255 area 0
!
router bgp 1
 bgp router-id 101.101.101.101
 no bgp default ipv4-unicast
 neighbor 22.22.22.2 remote-as 2
 !
 address-family ipv4
 neighbor 22.22.22.2 activate
 neighbor 22.22.22.2 send-community both
 neighbor 22.22.22.2 route-map AS2-IN in
 neighbor 22.22.22.2 route-map AS1-OUT out
 neighbor 22.22.22.2 send-label
 network 1.1.1.1 mask 255.255.255.255
!
!
ip access-list standard PE1-LOOPBACK
 permit 1.1.1.1
ip access-list standard PE2-LOOPBACK
 permit 2.2.2.2
!
!
route-map AS2-IN permit 10
 match ip address PE2-LOOPBACK
 match mpls-label
!
route-map AS1-OUT permit 10
 match ip address PE1-LOOPBACK
 set mpls-label
!
route-map BGP-OSPF permit 10
 match ip address PE2-LOOPBACK
!
route-map BGP-OSPF deny 20
!

3.4       P2

!
ip cef
!
mpls label protocol ldp
!
!
interface Loopback0
 ip address 202.202.202.202 255.255.255.255
!
interface Serial1/0
 description Inter-AS
 ip address 22.22.22.2 255.255.255.0
 mpls ip
!
interface Serial1/1
 description PE2
 ip address 21.21.21.1 255.255.255.0
 mpls ip
!
router ospf 1
 redistribute bgp 2 metric 1 subnets route-map BGP-OSPF
 passive-interface Serial1/0
 network 0.0.0.0 255.255.255.255 area 0
!
router bgp 2
 no bgp default ipv4-unicast
 bgp router-id 202.202.202.202
 neighbor 22.22.22.1 remote-as 1
 !
 address-family ipv4
 neighbor 22.22.22.1 activate
 neighbor 22.22.22.1 send-community both
 neighbor 22.22.22.1 route-map AS1-IN in
 neighbor 22.22.22.1 route-map AS2-OUT out
 neighbor 22.22.22.1 send-label
 network 2.2.2.2 mask 255.255.255.255
!
!
ip access-list standard PE1-LOOPBACK
 permit 1.1.1.1
ip access-list standard PE2-LOOPBACK
 permit 2.2.2.2
!
!
route-map AS1-IN permit 10
 match ip address PE1-LOOPBACK
 match mpls-label
!
route-map AS2-OUT permit 10
 match ip address PE2-LOOPBACK
 set mpls-label
!
route-map BGP-OSPF permit 10
 match ip address PE1-LOOPBACK
!
route-map BGP-OSPF deny 20
!

3.5       PE2

!
vrf definition BLUE
 rd 1:1
 !
 address-family ipv6
 route-target export 1:1
 route-target import 1:1
 exit-address-family
!
!
ip cef
!
!
ipv6 unicast-routing
ipv6 cef
!
frame-relay switching
mpls label protocol ldp
!
!
interface Loopback0
 ip address 2.2.2.2 255.255.255.255
!
interface Serial1/0
 encapsulation frame-relay
 frame-relay intf-type dce
!
interface Serial1/0.6 point-to-point
 vrf forwarding BLUE
 ipv6 address 2001:2::2/112
 frame-relay interface-dlci 600  
!
interface Serial1/1
 description P2
 ip address 21.21.21.2 255.255.255.0
 mpls ip
!
!
router ospf 1
 log-adjacency-changes
 network 0.0.0.0 0.0.0.0 area 0
!
router bgp 2
 no bgp default ipv4-unicast
 neighbor 1.1.1.1 remote-as 1
 neighbor 1.1.1.1 update-source Loopback0
 neighbor 1.1.1.1 ebgp- 255
 !
 address-family vpnv6
  neighbor 1.1.1.1 activate
  neighbor 1.1.1.1 send-community both
 !
 address-family ipv6 vrf BLUE
  neighbor 2001:2::1 remote-as 200
  neighbor 2001:2::1 activate
!

3.6       CE2

!
ipv6 unicast-routing
ipv6 cef
!
Interface loopback0
 Ip address 22.22.22.22 255.255.255.255
!
interface Serial1/0
 encapsulation frame-relay
!
interface Serial1/0.6 point-to-point
 ipv6 address 2001:2::1/112
 frame-relay interface-dlci 600  
!        
!
router bgp 200
 bgp router-id 22.22.22.22
 neighbor 2001:2::2 remote-as 2
 no neighbor 2001:2::2 activate
!
 address-family ipv6
 neighbor 2001:2::2 activate
 redistribute connected
!

Nenhum comentário: