segunda-feira, 20 de junho de 2011

Carrier Support Carrier - Com MPLS

1      Cenário

1.1       Objetivo

Nove roteadores (CE1, PE1, CSC-CE1, CSC-PE1, CSC-P, CSC-PE2, CSC-CE2, PE2 e CE2) são conectados formando uma rede onde os roteadores CSC-PE1, CSC-P e CSC-PE2 formam um backbone que provê serviço de transporte para o backbone composto pelos roteadores PE1, CSC-CE1, PE2 e CSC-CE2. Outros dois roteadores, CE1 e CE2, são roteadores de outro ISP. Pede-se:
      O protocolo de roteamento de backbone CSC-PE1, CSC-P e CSC-PE2 deverá ser o ISIS na área 49.0001 com todas as interfaces divulgadas e com mBGP e LDP no AS 1 para tráfego da VRF CC que transportará o tráfego do backbone 2;
      O protocolo de roteamento de backbone PE1, CSC-CE1, CSC-CE2 e PE2 deverá ser o OSPF na área 0 com todas as interfaces divulgadas, inclusive fazendo vizinhança com os PEs do backbone 1 (CSC-PE1 e CSC-PE2). Dentro deste backbone deverá funcionar o BGP com o AS 2 entre os PEs, somente;
      O PE1 deverá fazer eBGP com o CE1 (AS 65001);
      O PE2 deverá fazer eBGP com o CE2 (AS 65001);
      Deverá existir conectividade entre o CE1 e o CE2, onde somente as suas interfaces deverão ser recebidas e divulgadas.

1.2       Topologia


1.3       IOS utilizados

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

1.4       Configuração dos Roteadores

1.4.1    Configurações do ISIS do Backbone

Em todos os roteadores configura-se o roteamento ISIS adicionando o endereçamento NET de acordo com a área designada e endereçamento de loopback. Dentro das interfaces que farão parte do ISIS, adiciona-se o comando “ip router isis” para habilitar o ISIS na interface. Por padrão, todos os roteadores farão vizinhança L1/L2.
A configuração da métrica wide, maior que 63, é feita dentro do processo de roteamento pelo comando “default metric-style wide”.

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

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

1.4.4    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.5    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.6    Configuração do Carrier-Support Carrier

O Carrier Support Carrier funciona como uma VPN que interliga dois sites de outra operadora. Pode-se habilitar dentro das interfaces da vrf o protocolo MPLS para que seja feito o encaminhamento MPLS fim a fim.
O protocolo de roteamento OSPF dentro da VRF deverá ter o mesmo processo OSPF para que as rotas sejam IA. Dois roteadores deverão ser router-reflector para que as rotas aprendidas pelo eBGP sejam divulgadas.

1.5       Observações e Bugs

Observe que o AS_PATH não consta o AS do Carrier que suporta o Carrier.

1.6       Comandos Importantes de Verificação

CE1#traceroute
Protocol [ip]:
Target IP address: 172.16.20.1
Source address: 172.16.10.1
Numeric display [n]:
Timeout in seconds [3]:
Probe count [3]:
Minimum Time to Live [1]:
Maximum Time to Live [30]:
Port Number [33434]:
Loose, Strict, Record, Timestamp, Verbose[none]:
Type escape sequence to abort.
Tracing the route to 172.16.20.1

  1 172.16.1.1 152 msec 92 msec 24 msec
  2 10.20.20.1 [MPLS: Label 20 Exp 0] 428 msec 372 msec 416 msec
  3 10.12.12.1 [MPLS: Label 26 Exp 0] 316 msec 372 msec 416 msec
  4 10.10.10.2 [MPLS: Labels 16/22 Exp 0] 300 msec 944 msec 480 msec
  5 10.12.12.5 [MPLS: Label 22 Exp 0] 436 msec 808 msec 592 msec
  6 10.12.12.6 [MPLS: Label 16 Exp 0] 204 msec 508 msec 372 msec
  7 10.20.20.6 524 msec 680 msec 1164 msec
  8 172.16.2.2 1216 msec 544 msec *

2      Configuração

2.1       CE1

!
interface FastEthernet0/0
 ip address 172.16.10.1 255.255.255.0
 no keepalive
!
interface Serial1/0
 ip address 172.16.1.2 255.255.255.252
!
router bgp 65001
 network 172.16.10.0 mask 255.255.255.0
 neighbor 172.16.1.1 remote-as 2
!

2.2       PE1

!
ip cef
!
mpls ldp router-id Loopback0
mpls label protocol ldp
!
!
interface Loopback0
 ip address 10.20.20.102 255.255.255.255
!
interface FastEthernet0/0
 ip address 10.20.20.2 255.255.255.252
mpls ip
!
interface Serial1/0
 ip address 172.16.1.1 255.255.255.252
!
router ospf 2
 network 10.20.20.2 0.0.0.0 area 0
 network 10.20.20.102 0.0.0.0 area 0
!
router bgp 2
 bgp router-id 10.20.20.102
 neighbor 10.20.20.202 remote-as 2
 neighbor 10.20.20.202 update-source Loopback0
 neighbor 172.16.1.2 remote-as 65001
 !
 address-family ipv4
 neighbor 10.20.20.202 activate
 neighbor 10.20.20.202 next-hop-self
 neighbor 172.16.1.2 activate
!

2.3       CSC-CE1

!
ip cef
!
mpls ldp router-id Loopback0
mpls label protocol ldp
!
!
interface Loopback0
 ip address 10.20.20.101 255.255.255.255
!
interface FastEthernet0/0
 ip address 10.20.20.1 255.255.255.252
 mpls ip
!
interface Serial1/0
 ip address 10.12.12.2 255.255.255.252
 mpls ip
!
router ospf 2
 network 10.12.12.2 0.0.0.0 area 0
 network 10.20.20.1 0.0.0.0 area 0
 network 10.20.20.101 0.0.0.0 area 0
!

2.4       CSC-PE1

!
ip cef
!
ip vrf CC
 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 CC
 ip address 10.12.12.1 255.255.255.252
 mpls ip
!
interface Serial1/1
 ip address 10.10.10.1 255.255.255.252
 ip router isis
 mpls ip
!
router ospf 2 vrf CC
 redistribute bgp 1 subnets
 network 10.12.12.1 0.0.0.0 area 0
!
router isis
 net 49.0001.0000.0000.0001.00
 passive-interface Loopback0
!
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 ipv4
 neighbor 10.10.10.102 activate
!
 address-family vpnv4
 neighbor 10.10.10.102 activate
 neighbor 10.10.10.102 send-community extended
!
 address-family ipv4 vrf CC
 redistribute ospf 2 vrf CC
!

2.5       CSC-P

!
ip cef
!
mpls ldp router-id Loopback0
mpls label protocol ldp
!
!
interface Loopback0
 ip address 10.10.10.100 255.255.255.255
!
interface Serial1/0
 ip address 10.10.10.2 255.255.255.252
 ip router isis
 mpls ip 
!
interface Serial1/1
 ip address 10.10.10.5 255.255.255.252
 ip router isis
 mpls ip
!
router isis
 net 49.0001.0000.0000.0003.00
 passive-interface Loopback0
!

2.6       CSC-PE2

!
ip cef
!
ip vrf CC
 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 CC
 ip address 10.12.12.5 255.255.255.252
 mpls ip
!
interface Serial1/1
 ip address 10.10.10.6 255.255.255.252
 ip router isis
 mpls ip
!
router ospf 2 vrf CC
 redistribute bgp 1 subnets
 network 10.12.12.5 0.0.0.0 area 0
!
router isis
 net 49.0001.0000.0000.0002.00
 passive-interface Loopback0
!
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 ipv4
 neighbor 10.10.10.101 activate
!
 address-family vpnv4
 neighbor 10.10.10.101 activate
 neighbor 10.10.10.101 send-community extended
!
 address-family ipv4 vrf CC
 redistribute ospf 2 vrf CC
!

2.7       CSC-CE2

!
ip cef
!
mpls ldp router-id Loopback0
mpls label protocol ldp
!
!
interface Loopback0
 ip address 10.20.20.201 255.255.255.255
!
interface FastEthernet0/0
 ip address 10.20.20.5 255.255.255.252
 mpls ip
!
interface Serial1/0
 ip address 10.12.12.6 255.255.255.252
 mpls ip
!
router ospf 2
 network 10.12.12.6 0.0.0.0 area 0
 network 10.20.20.5 0.0.0.0 area 0
 network 10.20.20.201 0.0.0.0 area 0
!

2.8       PE2

!
ip cef
!
mpls ldp router-id Loopback0
mpls label protocol ldp
!
!
interface Loopback0
 ip address 10.20.20.202 255.255.255.255
!
interface FastEthernet0/0
 ip address 10.20.20.6 255.255.255.252
 mpls ip
!
interface Serial1/0
 ip address 172.16.2.1 255.255.255.252
!
router ospf 2
 network 10.20.20.6 0.0.0.0 area 0
 network 10.20.20.202 0.0.0.0 area 0
!
router bgp 2
 bgp router-id 10.20.20.202
 neighbor 10.20.20.102 remote-as 2
 neighbor 10.20.20.102 update-source Loopback0
 neighbor 172.16.2.2 remote-as 65002
 !
 address-family ipv4
 neighbor 10.20.20.102 activate
 neighbor 10.20.20.102 next-hop-self
 neighbor 172.16.2.2 activate
!

2.9       CE2

!
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 bgp 65002
 network 172.16.20.0 mask 255.255.255.0
 neighbor 172.16.2.1 remote-as 2