quarta-feira, 28 de julho de 2010

Utilizando Autenticação EIGRP para 'Neighborship's Controlling'

Neste artigo falarei sobre autenticação EIGRP.

Do ponto de vista do design da rede, a autenticação EIGRP ajuda a prevenir contra ataques de Denial of Service (DoS), embora não ofereça qualquer segurança para seus dados caso eles sejam capturados, como por exemplo, em LANs, onde os up-dates são propagados pela rede multicast [224.0.0.10], fazendo com que qualquer atacante que consiga capturar os pacotes que estão no grupo multicast, possa ler seus dados sem maiores problemas. Mais apesar disto, a principal vantagem da autenticação EIGRP é que ela previne que atacantes criem relações de vizinhança com seus roteadores EIGRP como se fossem legítimos, e ainda propagem informações inconsistentes de redes.

Para fazer a autenticação EIGRP, os roteadores precisam usar a mesma "chave", mais conhecida como Preshared Key (PSK), criando assim uma hash MD5 para cada mensagem EIGRP baseada na nossa Preshared Key (PSK).

----> Nota: Um arquivo MD5 é um algoritmo de hash unidirecional de 128 bits, que consiste em transformar uma seqüência de texto que no caso serão nossas chaves, em uma seqüência de números ou letras que não podem mais serem retornadas a palavra ou chave inicial que as deu origem. Utilizando esta seqüência para identificar informações ou arquivos.

Quando um roteador já configurado com autenticação EIGRP recebe uma mensagem de um outro roteador também configurado com autenticação, ele imediatamente compara a informação chegada com os seus dados de autenticação. Se o hash MD5 não bater com suas configurações, então ele simplesmente começará a descartar os pacotes vindo deste roteador, fazendo assim com que uma relação de vizinhança não ocorra, pois ele irá ignorar todas as mensagem 'EIGRP Hello', fundamentais na criação de adjacências.

O processo de autenticação podemos dividir em basicamente três etapas que se seguem:

----> 1° Etapa: Criar uma chave de autenticação (key chain), e dar um nome em modo de configuração global (key chain nome). Este nome não tem que combinar com o nome que será dado no outro roteador, pois ele não é avaliado no processo de autenticação, ou seja, é só para uso interno.

Imediatamente após a criação da key chain, entra-se em modo de configuração da chave key chain. Estando agora em modo de configuração key chain, você deverá criar em seguida as suas key numbers, que simplesmente é a criação de números pra suas respectivas chaves (caso você queira configurar mais de uma chave, onde do contrário você criaria apenas uma única key number). Lembrando também que a key number não precisa coincidir com a que será configurada no outro roteador, pois ela também não é considerada na autenticação, sendo assim como a key chain, um valor apenas para uso interno.

Depois de entrar em modo de configuração key chain e criar a sua key number, está na hora de dentro de key number criar a sua key-string NOME. Aqui é onde você de fato cria a sua senha, que em seguida será transformada em uma seqüência hash MD5, que será usada como chave para comparar com a do outro roteador. Reforçando, apenas na criação da nossa key-string é que os valores têm que ser exatamente iguais aos valores configurados nos outros roteadores que queremos formar adjacência.

Obs.: Na criação de nossas chaves podemos definir o seu tempo de validade, dizendo a partir de quando determinada chave começa a valer, e a partir de quando ela expira. Para isso usamos os comandos (accept-lifetime e/ou send-lifetime) dentro do modo de configuração key-number, assim como fazemos para criar a key-string.


----> 2ª Etapa: Neste ponto temos que identificar por qual interface o seu roteador esta se comunicando com o outro. Por qual porta ele está enviando suas atualizações e suas mensagens 'EIGRP Hello'. Descoberto a interface ( vamos supor que seja a Serial 0/0 ), você tem que habilitar a autenticação EIGRP MD5 dentro da sua interface usando o comando [ ip authentication mode eigrp asn md5 ].

----> 3ª Etapa: Aqui para finalizar, você tem que apenas referenciar a sua key chain na interface pelo comando [ ip authentication key-chain eigrp asn nome_da_sua_keychain ].

Na prática é mais simples do que parece. Vamos logo ao exemplo:

------------------------------------------------------------
!
R1(config)#key chain chave_segura

R1(config-keychain)#key 1

R1(config-keychain-key)#key-string fortaleza

R1(config-keychain-key)#key 2

R1(config-keychain-key)#key-string ceara
!
!
!
R1(config)#int serial0/0

R1(config-if)#ip authentication mode eigrp 100 md5

R1(config-if)#ip authentication key-chain eigrp 100 chave_segura
!
------------------------------------------------------------

Aqui configuramos nossas duas chaves (fortaleza, ceara) como chaves 1 e 2 respectivamente, tudo dentro de nossa key chain, onde a ela demos o nome de chave_segura. Depois entramos na interface que o nosso roteador usa para se conectar e para propagar as atualizações EIGRP. Em seguida configuramos o algoritmo MD5 e logo depois chamamos nossa key chain pelo nome que demos. Em ambos os casos, sempre referenciamos o protocolo eigrp e sua 'asn' que no exemplo foi '100'. Em seguida é só fazer a mesma configuração no outro roteador que queremos formar adjacência, e pronto, nossos roteadores agora estão conectados por seus protocolos, e excluíram todos os outros que não possuem a mesma chave.

Agora, caso alguma coisa dê errado na nossa configuração, ou simplesmente queremos verificar o que foi feito, temos dois comando que nos auxiliarão na resolução deste problema. Os comandos são os seguintes:

----> (1): show key chain

----> (2): debug eigrp packet

No primeiro (1) comando, ele nos mostra quais foram as chaves configuradas, e quais deles estão valendo no momento. Vamos ver o exemplo:

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

R1#show key chain

Key-chain chave_segura:

key 1 -- text "fortaleza"

accept lifetime (always valid) - (always valid) [valid now]

send lifetime (always valid) - (always valid) [valid now]

key 2 -- text "ceara"

accept lifetime (always valid) - (always valid) [valid now]

send lifetime (always valid) - (always valid) [valid now]

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

Neste caso podemos ver claramente o nome das chaves que foram configuradas, e vemos também a nossa opção por não configurar o prazo de validade das chaves, embora configurar este parâmetro dê uma boa incrementada na segurança.

Agora no segundo (2) comando, em caso de falha na formação de adjacência, podemos obter informações valiosas sobre a causa do problema. Vejamos:


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

R1#debug eigrp packet

EIGRP Packets debugging is on

(UPDATE, REQUEST, QUERY, REPLY, HELLO, IPXSAP, PROBE, ACK, STUB, SIAQUERY, SIAREPLY)

R1#

Apr 1 08:09:01.951: EIGRP: Sending HELLO on Serial0/0

Apr 1 08:09:01.951: AS 100, Flags 0x0,Seq 0/0 idbQ 0/0 iidbQ un/rely 0/0

Apr 1 08:09:01.967: EIGRP: pkt key id = 2, authentication mismatch

Apr 1 08:09:01.967: EIGRP: Serial0/0: ignored packet from 172.16.1.2,

opcode = 5 (invalid authentication)

Apr 1 08:09:02.287: EIGRP: Serial0/0: ignored packet from 172.16.1.4,

opcode = 5 (missing authentication)

Apr 1 08:09:03.187: EIGRP: Serial0/0: ignored packet from 172.16.1.3, opcode

= 5 (missing authentication)

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

Aqui neste exemplo podemos ver destacados diferentes problemas. Vemos claramente pela primeira mensagem que diz "authentication mismatch", onde aqui ela já nos informa que algo não esta certo, então devemos acompanhar as outras mensagens que se seguem para tentarmos saber qual foi a origem do problema.

Vamos conhecer os erros:

Vindo de R2 a mensagem "invalid authentication", indica que o hash MD5 contido na mensagem esta inválido.

Com a mensagem "missing authentication", indica que a mensagem não inclui um hash MD5.

Bom, o nosso assunto sobre autenticação EIGRP se resume a isso. É importante sempre ter em mente qua a nossa rede pode ser um alvo em potêncial, e com base nisto, devemos projeta-la sempre visando ao maximo a segurança de seus dados, que implica também na segurança das pessoas ou empresas que fazem o uso desta rede. Então cabem aos engenheiros de redes penssar em todas as possíveis vulnerabilidades de sua rede, e previamente sana-las antes que os outros as descubram.

Dúvidas postem...

Abraço.




domingo, 25 de julho de 2010

Filtragem de Redes por Lista de Acesso (ACLs)





Olá, estou estudando para meu CCNP ROUTE, e estava fazendo anotações dos meus estudos, só para fixar mesmo, ai pensei, porque não fazer estas anotação em um blog e disponibiliza-las para os demais, assim, estaria compartilhando com todos o conteúdo que estou estudando, e ainda ajudaria pois, em minhas anotações estou colocando um conteúdo sintetizado (já mastigadinho...) o que seria uma mão na roda para outros que assim como eu estão estudando por conta própria. Então eu pretendo sempre postar tópicos de estudo relacionado ao CCNP Route, para ficar como material de pesquisa e consulta de todos (inclusive para min. :)

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.

Neste primeiro tópico vou abordar a Filtragem de Redes por Listas de Acesso. A filtragem de redes pode ser feita por três maneiras distintas. A primeira por (claro) Listas de Acesso – ACLs, depois podemos fazer por PREFIX LIST e ROUTE MAP. Cada um destes métodos tem suas particularidades e suas vantagens dependendo do contesto e do que você realmente esta precisando.
A filtragem de redes é um recurso bastante útil que engenheiros de rede podem usar para filtrar rotas propagadas por updates de protocolos como EIGRP por exemplo. Muitas vezes um roteador não precisa saber sobre rotas de sub-redes de outros pontos da rede. Então você pode usar o recurso da filtragem, onde você delimita o escopo de rotas que seu roteador vai receber, fazendo assim o equipamento reduzir o volume de sua tabela de roteamento, economizar memória e incrementar a performance de roteamento.
O processo aqui é bem simples. Consiste em basicamente você criar uma lista de acesso com o endereço ou o grupo de endereços que você deseja não mais receber em sua tabela de roteamento e em seguida chamar esta lista pelo comando distribute-list dentro do modo de configuração de roteamento.
Vamos ao exemplo:
Na figura1 vemos 3 roteadores configurados com EIGRP e cada roteador com outras 3 redes internas
Vamos começar:
Veja a topologia da Figura1 e pense no seguinte problema: o roteador R1 tem as rotas [172.16.10.x, 172.16.11.x, 172.16.12.x] e estas rotas por algum motivo qualquer, não são necessárias para nenhum dos outros roteadores, são rotas que só devem ficar nos limites de R1, mais por padrão elas são todas propagadas nas atualizações do EIGRP, fazendo com que aumente o volume de tráfego na rede e conseqüentemente aumente o tamanho das tabelas topológicas, desperdiçando memória das máquinas e performance. Parece exagero falando de apenas 3 redes internas a R1, mais imagine em uma grande infra-estrutura com centenas e centenas de redes que não são necessárias aos demais sendo propagada nas atualizações, o impacto na performance é bem real.


Vamos ver a tabela de roteamento de R3:

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

R3(config)#do sh ip route
.
.
.

172.16.0.0/28 is subnetted, 9 subnets
C 172.16.16.0 is directly connected, FastEthernet0/0
C 172.16.17.0 is directly connected, FastEthernet0/1
C 172.16.18.0 is directly connected, FastEthernet1/0
D 172.16.12.0 [90/2172416] via 192.168.3.2, 00:00:36, Serial0/1
D 172.16.13.0 [90/2172416] via 192.168.2.1, 00:10:36, Serial0/0
D 172.16.14.0 [90/2172416] via 192.168.2.1, 00:10:36, Serial0/0
D 172.16.15.0 [90/2172416] via 192.168.2.1, 00:10:36, Serial0/0
D 172.16.10.0 [90/2172416] via 192.168.3.2, 00:00:36, Serial0/1
D 172.16.11.0 [90/2172416] via 192.168.3.2, 00:00:36, Serial0/1
D 192.168.1.0/24 [90/2681856] via 192.168.2.1, 00:00:36, Serial0/0
[90/2681856] via 192.168.3.2, 00:00:36, Serial0/1
C 192.168.2.0/24 is directly connected, Serial0/0
C 192.168.3.0/24 is directly connected, Serial0/1

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


Reparem que encontramos em nossa tabela topológica as redes que não nos interessa, vindas do roteador R1. Então vamos agora sanar este problema inicialmente pelo método de filtragem por listas de acesso.

Vamos ao roteador R1, que é quem esta propagando estas redes e vamos criar a seguinte lista de acesso, bloqueando estas três rotas (no caso a seguinte lista usa uma Wild Card Mask, que bloqueia as rotas 172.16.10.0, 172.16.11.0, 172.16.12.0, 172.16.13.0, mais como em nosso roteador só temos as três primeiras, óbvio somente elas serão bloqueadas, rsrs...):
------------------------------------------------------------
R1(config)# access-list 10 deny 172.16.10.0 0.0.3.255
R1(config)# access-list 10 permit any
------------------------------------------------------------
Agora tudo o que temos a fazer é implementar o comando distribute-list dentro do modo de configuração do protocolo de roteamento ressaltando se ela vai julgar as rotas EIGRP que estão entrando ou saindo(in out), como vamos fazer a seguir:

------------------------------------------------------------
R1(config)# router eigrp 100
R1(config-router)# distribute-list 10 out
------------------------------------------------------------

Pronto… incrivelmente fácil para um resultado tão bom.
Entramos no modo de configuração de protocolo, no caso um EIGRP com AS 100, depois simplesmente evocamos o comando, distribute-list, chamamos a lista de acesso numera em 10, depois simplesmente colocamos a direção na qual serão julgados os pacotes EIGRP, neste caso, serão os pacotes que saem (out).
Vamos dar agora uma olhadinha na tabela topológica do roteador R3 para ver se sua tabela ainda esta sendo povoada por rotas inúteis:

------------------------------------------------------------
R3(config)#do sh ip route
.
.
.

Gateway of last resort is not set

172.16.0.0/28 is subnetted, 6 subnets
C 172.16.16.0 is directly connected, FastEthernet0/0
C 172.16.17.0 is directly connected, FastEthernet0/1
C 172.16.18.0 is directly connected, FastEthernet1/0
D 172.16.13.0 [90/2172416] via 192.168.2.1, 00:38:22, Serial0/0
D 172.16.14.0 [90/2172416] via 192.168.2.1, 00:38:22, Serial0/0
D 172.16.15.0 [90/2172416] via 192.168.2.1, 00:38:22, Serial0/0
D 192.168.1.0/24 [90/2681856] via 192.168.2.1, 00:09:53, Serial0/0
C 192.168.2.0/24 is directly connected, Serial0/0
C 192.168.3.0/24 is directly connected, Serial0/1
R3(config)#
------------------------------------------------------------

Pronto, nossa tabela topológica já esta um pouco mais aliviada, pois as três redes que não eram interessantes para este roteador, já não mais estão sendo propagadas para nenhum outro roteador.

Qualquer coisa comentem que eu responderei aqui no blog ou no msn: campos_duarte@msn.com

Abraço a todos.

Filtragem de Redes por Route Map



Neste tópico vou abordar a filtragem de redes por Route Map.

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 redes usando Route Map oferece muitas funcionalidades similares as já estudadas na filtragem de rotas por ACLs e Prefix-list.

Route map é a terceira e ultima forma de filtrar rotas dentre as que nos já estudamos. Este método oferece uma lógica similar a de programação com If/Then/Else. Apesar de muitas funcionalidades, no contesto específico que estamos estudando, esta técnica não nos trará muitas novidades na filtragem de rotas. Route map é até um pouco mais difícil de empregar, pois sua lógica não é tão clara quanto as já apresentadas para a filtragem de rotas até o momento. O recurso de route-map é melhor utilizado quando o empregamos em por exemplo, durante um processo de redistribuição de rotas, ou para influenciar na escolha de rotas em protocolo BGP, mais isto será discutido em assuntos futuros.

Vamos agora entender como funciona o Route-Map, mais com um pouco de atenção pois esta técnica empregada na filtragem de rotas pode ser um pouco confusa de entender.

Route-map funciona em conjunto com o que já discutimos em outros artigos até agora. Ele trabalha com Access-list (ACLs) e Prefix-list. Assim como os métodos anteriores, ele é configurado em modo global [ R1(config)# ], e no final, é referenciado no modo de configuração de protocolo de roteamento, pelo já conhecido comando 'distribute-list'. Vamos conhecer a estrutura do route-map.

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

R1(config)#route-map nome_do_filtro deny 10
match "primeiro critério usado na filtragem"

R1(config)#route-map nome_do_filtro permit 20
match "segundo critério usado na filtragem"

R1(config)#route-map nome_do_filtro deny 30
match "terceiro critério usado na filtragem"

R1(config)#route-map nome_do_filtro permit 40
.
.
.
R1(config)#router eigrp 100
R1(config-router)#distribute-list route-map nome_do_filtro (in ou out)

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

Vamos analisar tudo o que foi visto aqui. Primeiro, em modo de configuração global, chamamos o procedimento route-map [ R1(config)#route-map ], em seguida demos um nome a este procedimento para reconhecermos e chamar-mos o conjunto de filtros que criamos [nome_do_filtro] e por ultimo, colocamos o número da seqüência da nossa lista de comandos. Lembrando que o IOS atribui ele mesmo uma seqüência ao seu route-map caso você não faça, e também, que na hora em que o roteador estiver utilizando nosso filtro, e ele encontrar uma rota que combine com o filtro, e esta rota seja processada de acordo com o que designamos para ela (permit ou deny), o nosso roteador irá parar de processar nossa route-map, mesmo que ainda haja comandos no nosso filtro (como eu disse, meio enroladinho o assunto...).

Ao prosseguir os comandos vemos que no primeiro comando dado, o de seqüência 10, dizemos ao nosso filtro para bloquear a rota, ou as rotas que combinarem com o nosso comando 'match'. Na continuando, nos permitimos o que combinar com o nosso filtro na seqüência 20, e mais uma vez bloqueamos na seqüência 30, lembrando que estas seqüências ficam à total critério de vocês, onde a única seqüência obrigatória nisso tudo é a ultima, a 40, pois assim como em listas de acesso, nosso route-map também possui um 'deny' implícito, ou seja, ele tem por natureza a função de barrar toda e qualquer rede, estando ou não no seu filtro, então nos utilizamos a ultima seqüência para dar um 'permit' onde isso dirá ao nosso route-map para filtrar apenas o que estiver em seus comandos, e permitindo a passagem de todo o resto, aquilo que não é alvo de nosso filtro de rotas. Por fim, mais não menos importante, o nosso comando 'match', aqui onde colocamos "primeiro critério usado na filtragem", aqui é onde você utiliza os métodos de filtragem já abordados anteriormente. Ao seu critério você pode utilizar listas de acesso ou prefix-list, e chamá-las no comando match. Vamos ver como ficaria a filtragem de rotas EIGRP utilizando o route-map.

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

R1(config)# ip prefix-list bruno_redes seq 10 permit 172.16.10.0/24 ge 28 le 28
!
R1(config)# ip prefix-list bruno_wan seq 20 permit 0.0.0.0/0 ge 30 le 30
!
!
!
R1(config)#route-map filtro_de_redes deny 5
R1(config-route-map)#match ip address prefix-list bruno_redes
!
R1(config)#route-map filtro_de_redes deny 10
R1(config-route-map)#match ip address prefix-list bruno_wan
!
R1(config)#route-map filtro_de_redes permit 15
!
!
!
R1(config)#router eigrp 100
R1(config-router)#distribute-list route-map filtro_de_redes out

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

Bom, aqui como podemos perceber, o trabalho todo se deu basicamente em três etapas. A primeira etapa foi quando criamos nossas prefix-list. Neste momento indicamos quais rotas queremos filtrar, e percebam mais, todas as nossas prefix-list estão em 'permit', mais isto não quer dizer que todas as rotas serão permitidas, a questão real é que esta decisão de permitir ou negar uma rota (permit ou deny) cabe agora não mais a prefix-list, mais sim ao route-map. Então damos permissão (permit) as nossas prefix-list, pois só assim elas serão aceitas dentro do route-map, depois disso, o route-map é quem irá julgar as rotas e permiti-las ou negá-las.

Depois de criadas as prefix-lists (lembrando que também poderia ser ACLs ao invés de prefix-list, cabe você tomar a decisão do que é mais adequado), vamos agora ao segundo passo, que é colocá-las dentro do nosso route-map. Aqui, primeiro criamos nosso filtro route-map, damos um nome a ele, e depois damos a sua ordem na seqüência. Em seguida, por meio do comando 'match ip address' adicionamos nossa prefix-list, e a chamamos pelo nome que demos, no caso da nossa primeira prefix-list demos o nome de 'bruno_redes' e a segunda foi dado o nome de 'bruno_wan', onde a primeira ira filtras todas as redes [ 172.16.10.0 ] com mascara de [ 255.255.255.240 ], e a segunda prefix-list irá filtrar todas as redes de máscara [255.255.255.252] que normalmente são utilizadas em redes WANs.

E por fim, como já é de praxe, nós entramos no modo de configuração de roteamento, e chamamos nossa route-map, especificando logo em seguida se o roteador irá julgar as redes que vão entrar ou sair por suas conexões (In Out)... [
distribute-list route-map filtro_de_redes out ].


Bom, é isso. Espero que estas informações sejam úteis para os interessados.

Qualquer dúvida é só postar...


Um abraço.




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.