segunda-feira, 10 de dezembro de 2012

Route-Map na Filtragem de Rotas Redistribuídas

Olá Pessoal.

No Lab4 do livro o leitor pode praticar as configurações mais básicas do processo de redistribuição de rotas que basicamente consiste na inserção de rotas aprendidas por um determinado protocolo de roteamento dentro de outro protocolo de roteamento. No exemplo do livro foram utilizados os protocolos OSPF e o EIGRP (da Cisco). 

No entanto, podem existir algumas situações em que o objetivo é redistribuir algumas rotas de um protocolo para outro (e não todas). Felizmente podemos associar route-maps com o comando de redistribuição de rotas, de maneira que é possível personalizar quais rotas queremos ou não redistribuir.

Para reproduzir esse processo, vamos considerar o cenário abaixo que é bastante simples. Nele existem dois roteadores adjacentes via OSPF em suas interfaces f0/0 (192.168.0.1/30 e 192.168.0.2/30). 



Para "simular" as várias rotas externas, em R2 criei 5 interfaces loopback e as anunciei através de uma instância EIGRP, conforme roteiro abaixo:

R2(config)# interface f0/0
R2(config-if)# ip address 192.168.0.2 255.255.255.252
R2(config-if)# no shut
R2(config-if)# interface loopback 1
R2(config-if)# ip address 1.1.1.1 255.255.255.255
R2(config-if)# interface loopback 2
R2(config-if)# ip address 2.2.2.2 255.255.255.255
R2(config-if)# interface loopback 3
R2(config-if)# ip address 3.3.3.3 255.255.255.255
R2(config-if)# interface loopback 4
R2(config-if)# ip address 4.4.4.4 255.255.255.255
R2(config-if)# interface loopback 5
R2(config-if)# ip address 5.5.5.5 255.255.255.255
R2(config-if)# exit
R2(config)# router eigrp 90
R2(config-router)# no auto-summary
R2(config-router)# network 1.1.1.1 0.0.0.0
R2(config-router)# network 2.2.2.2 0.0.0.0
R2(config-router)# network 3.3.3.3 0.0.0.0
R2(config-router)# network 4.4.4.4 0.0.0.0
R2(config-router)# network 5.5.5.5 0.0.0.0

Depois das configurações básicas em R2, vamos ao roteiro para configurar a redistribuição apenas das rotas 1.1.1.1/32, 2.2.2.2/32 e 4.4.4.4/32, excluindo as rotas 3.3.3.3/32 e 5.5.5.5/32.

01. R2(config)# access-list 35 permit 3.3.3.3 0.0.0.0
02. R2(config)# access-list 35 permit 5.5.5.5 0.0.0.0
03. R2(config)# route-map Filter-Net3-Net5 deny 10
04. R2(config-route-map)# match ip address 35
05. R2(config-route-map)# route-map Filter-Net3-Net5 permit 20
06. R2(config-route-map)# exit
07. R2(config)# router ospf 64
08. R2(config-router)# router-id 2.2.2.2
09. R2(config-router)# network 192.168.0.0 0.0.0.3 area 0
10. R2(config-router)# redistribute eigrp 90 subnets route-map Filter-Net3-Net5
11. R2(config-router)# exit

Pronto! Nas linhas 1 e 2 criamos uma ACL para posteriormente ser utilizada no match do route-map. Repare que o permit da ACL não é reponsável por permitir ou negar as rotas, apenas por enquadrar uma match (conformidade). Nas linhas de 3-5 criamos uma route-map denominado Filter-Net3-Net5 que irá negar as rotas 3.3.3.3/32 e 5.5.5.5/32 e que irá permitir todas as outras entradas. Por fim, nas linhas de 07-09 configuramos a instância OSPF, de maneira que na linha 10 temos a redistribuição das rotas EIGRP filtradas pela route-map. Agora em R1 você poderá observar que somente as rotas permitidas foram adicionadas na tabela de roteamento.

R1#show ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route

Gateway of last resort is not set

     1.0.0.0/32 is subnetted, 1 subnets
O E2    1.1.1.1 [110/20] via 192.168.0.2, 00:29:38, FastEthernet0/0
     2.0.0.0/32 is subnetted, 1 subnets
O E2    2.2.2.2 [110/20] via 192.168.0.2, 00:29:38, FastEthernet0/0
     4.0.0.0/32 is subnetted, 1 subnets
O E2    4.4.4.4 [110/20] via 192.168.0.2, 00:29:38, FastEthernet0/0
     192.168.0.0/30 is subnetted, 1 subnets
C       192.168.0.0 is directly connected, FastEthernet0/0



Caso vocês queiram reproduzir o experimento, a configuração de R1 é bem simples e pode ser observada no roteiro abaixo:

R1(config)# interface f0/0
R1(config-if)# ip address 192.168.0.1 255.255.255.252
R1(config-if)# no shut
R1(config-if)# exit
R1(config)# router ospf 64
R1(config-router)# router-id 1.1.1.1
R1(config-router)# network 192.168.0.0 0.0.0.3 area 0
R1(config-router)# end 

Abraço!

Samuel.

12 comentários:

  1. Aproveitando o "gancho" desse post, é interessante mencionar que esse mesmo problema poderia ser resolvido de forma mais simples, porém menos elegante, através do comando distribute-list. Nesse caso, a configuração de R2 ficaria da seguinte forma (observe a linha 8):

    01. R2(config)# access-list 35 deny 3.3.3.3 0.0.0.0
    02. R2(config)# access-list 35 deny 5.5.5.5 0.0.0.0
    03. R2(config)# access-list 35 permit any
    04. R2(config)# router ospf 64
    05. R2(config-router)# router-id 2.2.2.2
    06. R2(config-router)# network 192.168.0.0 0.0.0.3 area 0
    07. R2(config-router)# redistribute eigrp 90 subnets
    08. R2(config-router)# distribute-list 35 out
    09. R2(config-router)# exit

    Quando utilizamos o comando distribute-list estamos informando ao processo OSPF para filtrar o anúncio das rotas que JÁ FORAM redistribuídas pelo EIGRP. Ou seja, R2 conhece TODAS as rotas, mas anuncia apenas algumas.

    Através da route-map utilizada no post, a filtragem acontece NO PROCESSO DE REDISTRIBUIÇÃO, o que quer dizer que o OSPF em R2 sequer chega a conhecer as rotas filtradas.

    Um detalhe sútil que faz toda a diferença...

    ResponderExcluir
    Respostas
    1. Alguém sabe o porque de repetir o route map dentro do proprio route map ?
      04. R2(config-route-map)# match ip address 35
      05. R2(config-route-map)# route-map Filter-Net3-Net5 permit 20

      Excluir
    2. e o que são estes numeros: permit 20 ?? 20 o que ?

      route-map Filter-Net3-Net5 deny 10 ( deny 10 o que ?)

      Excluir
  2. Professor,
    Eu ainda não consegui entender o motivo de usar o router-id.
    O senhor poderia, por favor, explicar?

    Obrigado.

    ResponderExcluir
    Respostas
    1. Uma vez que os protocolos de roteamento são de natureza distribuída, ou seja, os roteadores trabalham coletivamente para construir a topologia da rede, é fundamental que cada roteador tenha um identificador único que permita identificá-lo univocamente sem possibilidade de ambiguidade. O identificador utilizado para esse fim é denominado router-id. Mesmo quando o administrador não faz essa configuração explicitamente, normalmente a caixa escolhe um dos IPs disponiveis, já que o router-id foi definido com o mesmo formato de um endereço v4 (ainda que não seja um endereço IPv4).

      Excluir
  3. Boa tarde, professor qual o número máximo de route-maps que podem ser configuradas num roteador? Estou recebendo o seguinte alerta "More than 32 route-maps per policy, extras ignored"

    ResponderExcluir
    Respostas
    1. Nominalmente o limite máximo é de 65.535 instâncias de route-maps, mas naturalmente o limite real vai depender da capacidade de processamento e memória do roteador.

      Excluir
    2. Boa tarde professor, obrigado por responder.
      A mensagem que estava dando era essa (%GENERAL-5-NOTEVENT: More than 32 route-maps per policy, extras ignored). Consegui resolver agrupando os ACL's que apontavam para um mesmo destino em uma única route-map e assim diminuí a quantidade de route-maps no router.(route-map NAT permit 29
      match ip address 137 121
      set ip next-hop 172.16.1.19)
      O router em questão é um CMTS com IOS versão 12.2.

      Obrigado pela resposta e um grande abraço.

      Excluir
  4. boa tarde estou tendo problemas com route-map no bgp
    tenho 3 AS sendo que para 1 so quero mandar algumas rotas e para o outro quero mandar todas as rotas

    ResponderExcluir
  5. Samuel,Boa Tarde!

    Tive o prazer enorme de ser aluno seu na Pós em Redes. Hj trabalho no Data center de uma instituição financeira e sempre que tenho duvidas procuro o conteúdo em seu Blog muito bem elaborado e explicativo. Parabéns pelo trabalho e os excelentes post.

    ResponderExcluir
  6. Prezado Prof.
    fiz o Lab 4 do livro e ai finalizar o mesmo, a tabela de roteamento do router eigrp no livro aparece
    D EX 10.2.0.0 /30 .... porém quando finalizei continua aparecendo 10.2.0.0 /24 , mesmo eu tendo corrigido a mascara para /30
    terei que limpar a configuração do router eigrp para poder corrigir ou tem outra forma?
    grato.

    ResponderExcluir
  7. You will find a lot of approaches after visiting your post.Thanks for sharing the such information with us to read this...

    girls dresses

    ResponderExcluir