domingo, 4 de julho de 2010

MPLS - LDP Filtro de Label


1        MPLS – Labels

Alguns Labels são reservados pela IETF para uso específico:
·         0 - IPv4 Explicit NULL – Esse Label é usado somente quando o IPv4 segue o cabeçalho MPLS;
·         1 - Router Alert Label – Indica que o pacote deve ser enviado para processamento no Routing Engine e não deve ser encaminhado como um pacote normal;
·         2 - IPv6 Explicit NULL – Válido apenas quando o IPv6 segue o cabeçalho MPLS.
·         3 - Implicit NULL – Essa valor não deve nunca aparecer no cabeçalho do MPLS. Um router recebendo esse Label vindo do vizinho de baixo do fluxo informa que ele deve retirar os Labels antes de entregar para o router logo abaixo (oque enviou). É usado no Penultimate Router;
·         4 até 15 – Reservado para uso futuro;
·         0 até 1023 – Uso de Label.



2        Cenário

2.1           Objetivo

Três roteadores (R1, R2 e R3) são conectados fisicamente da forma R1-R2-R3 via Fast Ethernet. Pede-se as configurações abaixo:
         Deverá ser usado o encaminhamento via MPLS entre todos os roteadores;
         Os pacotes IP/MPLS de 1500 não deverão ser fragmentados;
         O Router-ID do MPLS deve ser o IP da loopback de cada roteador;
         O R1 deverá alocar os Labels de 100 a 199 e aceitar somente label para 3.3.3.3;
         O R2 deverá alocar os Labels de 200 a 299 e divulgar labels somente seguindo as regras:
         De 3.3.3.3 para 1.1.1.1 e 11.11.11.11;
         De 1.1.1.1 para 3.3.3.3 e 33.33.33.33.
         O R3 deverá alocar os Labels de 300 a 399 e aceitar somente label para 1.1.1.1;
         O protocolo de roteamento usado deverá ser o OSPF na área 0 em todos os roteadores e divulgando suas interfaces loopbacks.

2.2           Topologia

Figure-01:              Topologia

2.3           IOS utilizados

         R1, R2 e R3 – c3725-adventerprisek9-mz.123-4.t4.bin

2.4           Configuração dos Roteadores

2.4.1      Configurações do OSPF

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”, para que seja habilitado nas interfaces, usa-se esse comando dentro da interface.
O Router-ID usado no MPLS pode ser configurado com o comando “mpls ldp router-id ”.
A configuração do escopo dos labels que serão usados pelo roteador no MPLS é feita com o comando “mpls label range static ”, observe que o trecho em vermelho não é aceito em alguns IOS mas ele funciona quando configurado, ou seja, está oculto. Esse trecho em vermelho define a parte que é usada como label estático e não deve ser usada como dinâmico.

2.4.3      Configurações de Filtro de Label

O filtro de Label pode ser feito para os Labels que serão aceitos para determinadas rotas e para os Labels que serão divulgados para determinadas rotas.
Os filtros para aceitar label são feitos criando uma Access-list com o IP que será aceito ou rejeitado para o label, em seguida essa ACL é usada no comando “mpls ldp neighbor labels accept ”.
Os filtros para anuncio de label são criados baseado em 2 ACLs, uma com a origem do pacote e a outra com o destino, em seguida essas ACLs são aplicadas no comando “mpls ldp advertise-labels for to ”. Nesse filtro é muito importante adicionar o comando “no mpls ldp advertise-labels” para que somente os labels da ACL sejam divulgados.

2.5           Observações e Bugs

Documentação:

2.6           Comandos Importantes de Verificação

R1#show mpls ldp bindings
  lib entry: 1.1.1.1/32, rev 4
        local binding:  label: imp-null
  lib entry: 2.2.2.2/32, rev 10
        local binding:  label: 101
  lib entry: 3.3.3.3/32, rev 12
        local binding:  label: 102
        remote binding: lsr: 2.2.2.2:0, label: 201
  lib entry: 11.11.11.11/32, rev 6
        local binding:  label: imp-null
  lib entry: 12.12.12.0/24, rev 2
        local binding:  label: imp-null
  lib entry: 22.22.22.22/32, rev 14
        local binding:  label: 103
  lib entry: 23.23.23.0/24, rev 8
        local binding:  label: 100
  lib entry: 33.33.33.33/32, rev 16
        local binding:  label: 104

R2#show mpls ldp bindings
  lib entry: 1.1.1.1/32, rev 10
        local binding:  label: 200
        remote binding: lsr: 3.3.3.3:0, label: 301
        remote binding: lsr: 1.1.1.1:0, label: imp-null
  lib entry: 2.2.2.2/32, rev 4
        local binding:  label: imp-null
        remote binding: lsr: 3.3.3.3:0, label: 302
        remote binding: lsr: 1.1.1.1:0, label: 101
  lib entry: 3.3.3.3/32, rev 12
        local binding:  label: 201
        remote binding: lsr: 3.3.3.3:0, label: imp-null
        remote binding: lsr: 1.1.1.1:0, label: 102
  lib entry: 11.11.11.11/32, rev 14
        local binding:  label: 202
        remote binding: lsr: 3.3.3.3:0, label: 303
        remote binding: lsr: 1.1.1.1:0, label: imp-null
  lib entry: 12.12.12.0/24, rev 6
        local binding:  label: imp-null
        remote binding: lsr: 3.3.3.3:0, label: 300
        remote binding: lsr: 1.1.1.1:0, label: imp-null
  lib entry: 22.22.22.22/32, rev 8
        local binding:  label: imp-null
        remote binding: lsr: 3.3.3.3:0, label: 304
        remote binding: lsr: 1.1.1.1:0, label: 103
  lib entry: 23.23.23.0/24, rev 2
        local binding:  label: imp-null
        remote binding: lsr: 3.3.3.3:0, label: imp-null
        remote binding: lsr: 1.1.1.1:0, label: 100
  lib entry: 33.33.33.33/32, rev 16
        local binding:  label: 203
        remote binding: lsr: 3.3.3.3:0, label: imp-null
        remote binding: lsr: 1.1.1.1:0, label: 104

R3#show mpls ldp bindings 
  lib entry: 1.1.1.1/32, rev 10
        local binding:  label: 301
        remote binding: lsr: 2.2.2.2:0, label: 200
  lib entry: 2.2.2.2/32, rev 12
        local binding:  label: 302
  lib entry: 3.3.3.3/32, rev 4
        local binding:  label: imp-null
  lib entry: 11.11.11.11/32, rev 14
        local binding:  label: 303
  lib entry: 12.12.12.0/24, rev 8
        local binding:  label: 300
  lib entry: 22.22.22.22/32, rev 16
        local binding:  label: 304
  lib entry: 23.23.23.0/24, rev 6
        local binding:  label: imp-null
  lib entry: 33.33.33.33/32, rev 2
        local binding:  label: imp-null

R1#show mpls ldp neighbor 2.2.2.2 detail
    Peer LDP Ident: 2.2.2.2:0; Local LDP Ident 1.1.1.1:0
        TCP connection: 2.2.2.2.11014 - 1.1.1.1.646
        State: Oper; Msgs sent/rcvd: 60/56; Downstream; Last TIB rev sent 16
        Up time: 00:44:40; UID: 2; Peer Id 0;
        LDP discovery sources:
          FastEthernet0/0.12; Src IP addr: 12.12.12.2
            holdtime: 15000 ms, hello interval: 5000 ms
        Addresses bound to peer LDP Ident:
          2.2.2.2         22.22.22.22     12.12.12.2      23.23.23.2     
        Peer holdtime: 180000 ms; KA interval: 60000 ms; Peer state: estab
        LDP inbound filtering accept acl: R3-Loopback0

3        Configuração

3.1           R1

!
ip cef
!
mpls label protocol ldp
!
mpls ldp router-id Loopback0
!
mpls label range 100 199
!
ip access-list standard R3-Loopback0
 permit 3.3.3.3
mpls ldp neighbor 2.2.2.2 labels accept R3-Loopback0
!
interface Loopback0
 ip address 1.1.1.1 255.255.255.255
!
interface Loopback1
 ip address 11.11.11.11 255.255.255.255
!
interface FastEthernet0/0
 ip address 12.12.12.1 255.255.255.0
 mpls ip
!
router ospf 1
 router-id 1.1.1.1
 network 0.0.0.0 255.255.255.255 area 0
!

3.2           R2

ip cef
!
mpls label protocol ldp
!
mpls ldp router-id Loopback0
!
mpls label range 200 299
!
ip access-list standard R1
 permit 1.1.1.1
ip access-list standard R1-Loopbacks
 permit 1.1.1.1
 permit 11.11.11.11
ip access-list standard R3
 permit 3.3.3.3
ip access-list standard R3-Loopbacks
 permit 3.3.3.3
 permit 33.33.33.33
!
no mpls ldp advertise-labels
mpls ldp advertise-labels for R3-Loopbacks to R1
mpls ldp advertise-labels for R1-Loopbacks to R3
!
interface Loopback0
 ip address 2.2.2.2 255.255.255.255
!
interface FastEthernet0/0
 ip address 12.12.12.2 255.255.255.0
 mpls ip
!
interface FastEthernet1/0
 ip address 23.23.23.2 255.255.255.0
 mpls ip
!
router ospf 1
 router-id 2.2.2.2
 network 0.0.0.0 255.255.255.255 area 0
!

3.3           R3

!
ip cef
!
mpls label protocol ldp
!
mpls ldp router-id Loopback0
!
mpls label range 300 399
!
ip access-list standard R1-Loopback0
 permit 1.1.1.1
mpls ldp neighbor 2.2.2.2 labels accept R1-Loopback0
!
interface Loopback0
 ip address 3.3.3.3 255.255.255.255
!
interface Loopback1
 ip address 33.33.33.33 255.255.255.255
!
interface FastEthernet0/0
 ip address 23.23.23.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
!

Nenhum comentário: