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.

Um comentário:

  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