domingo, 25 de julho de 2010

Filtragem de Redes por Prefix List

Neste tópico, vou abordar a filtragem de redes por PREFIX LIST

Fonte de estudos: CCNP ROUTE 642-902 Official Certification Guide (Wendell Odom, CCIE 1624), GNS3 com imagem (c3725-jk9s-mz.123-22), www.cisco.com.


A filtragem de rede usando Prefix-list oferece uma funcionalidade que a filtragem por ACLs não tem, que é a filtragem por mascara de rede, onde você pode dizer quais redes aceitam receber ou negar simplesmente pela sua máscara. Mais também pode-se fazer a filtragem por sub-redes assim como a filtragem por ACLs.

Usando o recurso de Prefix-List você pode passar uma série de parâmetros para filtragem ao mesmo tempo, uma prefix-list oferece o recurso de criar várias linhas de filtragem para várias rotas diferentes todas sob a mesma PREFIX-LIST, onde isto você faz pelo recurso de seqüenciar suas linhas de comando. Lembrando que as PREFIX-LIST são criadas no modo de configuração global [ R1(config)# ] e assim como no exemplo de filtragem por ACLs, você evoca as prefix-list pelo comando 'distribute-list' dentro do modo de configuração de
roteamento [ R1(config-router)# ], bem simples.

vamos ver um pequeno exemplo de uma prefix-list:

------------------------------------------------------------

R1(config)# ip prefix-list bruno_redes1 seq 10 deny 172.16.10.0/24 ge 28 le 28

R1(config)# ip prefix-list bruno_redes1 seq 20 deny 0.0.0.0/0 ge 30 le 30

------------------------------------------------------------

Neste exemplo, entramos no modo de configuração global e começamos o comando por 'ip prefix-list' para criar nossa primeira PREFIX-LIST. Logo em seguida demos um
nome ( bruno_redes1 ) para nossa prefix-list, pois com esse nome é que nós a evocaremos pelo comando distribute-list no modo de configuração de roteamento. Depois criamos a sequência, onde elas serão executadas absolutamente sempre na sequência que colocamos. Vejam que propositalmente optei por colocar números 'distantes' como sequência ( 10, 20, ...), pois isso me permite caso seja conveniente colocar outras linhas entre as que já haviam sido colocadas antes, alterando assim a sequência de execução de minha prefix-list, coisa que não poderia ocorrer se eu as numerasse como (1, 2, 3, ...). Em seguida definimos se nossa prefix-list é um comando que vai "permitir" ou "negar" uma rota por ( 'permit' ou 'deny' ), onde nesse caso em nosso exemplo estamos passando estes comandos para negar todas as redes [ 172.16.10.0 ] com prefixo [255.255.255.240], e também, estamos negando todas as redes com
máscara '/30' que são [255.255.255.252] que são normalmente usadas para 'WANs'. Quanto a direção desses filtros, se eles estão filtrando redes que estão entrando ou saindo do roteador
isso nós definimos dentro do modo de configuração de roteamento pelo comando 'distribute-list' onde dizemos se o filtro é para rotas q entram ou saem simplesmente pelos comandos
( in ou out ), onde veremos já já.


O comando 'prefix-list' nos permite filtrar de diversas maneiras. Por exemplo, vamos filtrar uma simples rota (10.0.0.0/8) simplesmente usamos o seguinte comando:

------------------------------------------------------------

R1(config)#ip prefix-list bruno_redes1 deny 10.0.0.0/8

------------------------------------------------------------

Aqui simplesmente criamos a prefix-list, demos um nome a ela (bruno_redes1) e negamos a entrada ou saída dependendo do que for configurado la no 'distribute-list' de uma única rede, a 10.0.0.0/8. Esta prefix-list afetará apenas a rede que combinar exatamente com [ 10.0.0.0/8 ]

Vamos a outro exemplo:

------------------------------------------------------------

R1(config)#ip prefix-list bruno_redes1 deny 10.128.0.0/9

------------------------------------------------------------

Neste exemplo, vamos barrar a rede 10.128.0.0/9. Igual ao comando anterior, barramos uma rota.

Novo exemplo:

------------------------------------------------------------

(1) -> R1(config)#ip prefix-list bruno_redes1 deny 10.0.0.0/8 ge 9

(2) -> R1(config)#ip prefix-list bruno_redes1 deny 10.0.0.0/8 le 12

(3) -> R1(config)#ip prefix-list bruno_redes1 deny 10.0.0.0/8 ge 10 le 24

------------------------------------------------------------
Obs.: os exemplos acima não estão em seqüência, são exemplos separados, pois sua seqüência não foi numerada.


Aqui nos deparamos com algo novo, o comando 'ge' e 'le' no final de nossa linha de comando. O comando Prefix-List nos disponibiliza os parâmetros 'ge' e 'le'.

'ge' -> (GREATER THAN OR EQUAL TO). Este comando utilizado sozinho como no exemplo acima diz ao roteador para ele filtrar redes com mascara igual a apontada por ele ( '9' no exemplo 1 ) até o ultimo valor de uma rede com endereço IPV4 que é '32', ou seja, ele filtra-rá tudo que tenha o primeiro octeto igual a '10.' e com mascaras que vão de [255.128.0.0] até [255.255.255.255], isso no exemplo (1).

'le' -> (LESS THAN OR EQUAL TO). Este comando serve para delimitar o valor máximo da mascara a ser filtrada. No exemplo (2) estamos dizendo ao roteador para ele filtrar redes que comecem pela mascara que passamos como parâmetro no endereço (10.0.0.0/8), '/8' até chegar a mascara '/16' que é o valor máximo passado para o filtro. Neste caso estamos filtrando redes que vão de [255.0.0.0] até [255.240.0.0].

'ge' e 'le' -> No exemplo (3) usando nossos dois parâmetros, criamos claramente uma faixa de mascaras de redes permitidas para o filtro, que começa em '/10' e vai até '/24'. Neste exemplo o roteador não leva em conta o valor da máscara passada no parâmetro '/8'. Este comando filtrará redes com o primeiro octeto em dez '10.' e com mascaras que vão de [255.192.0.0] até [255.255.255.0].

Mais dois últimos exemplos para entender-mos algumas combinações de PREFIX-LIST. Vamos a eles:

------------------------------------------------------------

(1) -> R1(config)#ip prefix-list bruno_redes1 deny 0.0.0.0/0

(2) -> R1(config)#ip prefix-list bruno_redes1 deny 0.0.0.0/0 ge 30 le 30

(3) -> R1(config)#ip prefix-list bruno_redes1 deny 0.0.0.0/0 le 32

------------------------------------------------------------
Obs.: os exemplos acima não estão em seqüência, são exemplos separados, pois sua seqüência não foi numerada.

No exemplo (1), '0.0.0.0/0' Teoricamente deveria combinar com todas as redes, mais em prefix-list este comando barra apenas as rotas default, tipo:
( R1(config)#ip route 0.0.0.0 0.0.0.0 s0/0 )

No exemplo (2), '0.0.0.0/0 ge 30 le 30' Este comando diz ao roteador para filtrar todas as redes com prefixo '/30', ou seja, redes [255.255.255.252] normalmente usadas em conexões WANs.

No exemplo (3), '0.0.0.0/0 le 32' Este comando bloqueia todas as redes. Equivalente a um 'deny any'.

E para finalizar, você simplesmente "chama" a sua prefix-list pelo comando 'distribute-list' dentro do modo de configuração de protocolo, onde lá, você coloca um parâmetro muito importante que é o (in ou out), onde o roteador saberá se aquela prefix-list irá julgar as redes que estão entrando ou saindo. Onde neste ultimo exemplo, estamos mandando o roteador filtrar as redes que estão sendo propagadas por suas atualizações, ou seja, as que estão saindo.

------------------------------------------------------------

R1(config)#router eigrp 100
!
R1(config-router)#distribute-list prefix bruno_redes1 out
!
------------------------------------------------------------


Um exemplo geral de configuração de prifix-list.

------------------------------------------------------------

R1(config)#ip prefix-list bruno_redes1 seq 5 deny 10.17.35.0/24 ge 25 le 25
R1(config)#ip prefix-list bruno_redes1 seq 10 deny 10.17.36.0/24 ge 26 le 26
R1(config)#ip prefix-list bruno_redes1 seq 15 deny 0.0.0.0/0 ge 30 le 30
R1(config)#ip prefix-list bruno_redes1 seq 20 permit 0.0.0.0/0 le 32

R1(config)#router eigrp 100
R1(config-router)#network 10.0.0.0
R1(config-router)#distribute-list prefix bruno_redes1 out
R1(config-router)#auto-summary

------------------------------------------------------------

Bom, basicamente é isso. No próximo post vou abordar o ultimo método usado para filtrar rotas que é ROUTE MAPs.

Um abraço a todos.

Um comentário: