Wednesday, August 31, 2011
OSPF sobre Frame-Relay Parte 2
Vamos ver uma outra forma de integrar OSPF com Frame-Relay, porém , dessa vez, usaremos a nuvem Frame-Relay presente no Packet Tracer.
como já discutimos no post anterior, OSPF usa multicast por defaul para montar sua topologia livre de loops, anviando informações para o IP 224.0.0.5, enquanto Frame-Relay é uma tecnologia NBMA, Non-Broadcast Multi-Acccess. Como o multicast é um tipo de Broadcast, temos a situação problema que iremos estudar.
Abaixo segue nossa rede :
Nessa nossa topologia, temos o router MG conectado ao router ES através da nuvem Frame-Relay.
Vamos ver nossas configurações, a partir do router MG:
Iniciaremos com Boas práticas, configurando segurança em nosso router:
Router>
Router>enable
Router#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#hostname MG
MG(config)#line vty 0 4
MG(config-line)#password cisco
MG(config-line)#login
MG(config-line)#line con 0
MG(config-line)#password cisco
MG(config-line)#login
Em seguida, vamos configurar nossa interface serial:
MG(config-line)#exit
MG(config)#interface serial 2/0
MG(config-if)#ip address 1.1.1.1 255.255.255.0
MG(config-if)#encapsulation frame-relay
MG(config-if)#frame-relay interface-dlci 16
MG(config-if)#frame-relay map ip 1.1.1.2 16 broadcast
MG(config-if)#no shutdown
%LINK-5-CHANGED: Interface Serial2/0, changed state to up
MG(config-if)#
%LINEPROTO-5-UPDOWN: Line protocol on Interface Serial2/0, changed state to up
Vamos salvar sempre nossas configurações:
MG#
%SYS-5-CONFIG_I: Configured from console by console
MG#copy run start
Já vamos configurar o processo OSPF:
MG#config t
Enter configuration commands, one per line. End with CNTL/Z.
MG(config)#
MG(config)#router ospf 1
MG(config-router)#net
MG(config-router)#network 1.1.1.0 0.0.0.255 area 0
MG(config-router)#
Iremos agora para o router ES:
Faremos da mesma forma,segurança e em seguida interface e OSPF:
Router>en
Router#
Router#config t
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#hostname ES
ES(config)#line vty 0 4
ES(config-line)#password cisco
ES(config-line)#login
ES(config-line)#line con 0
ES(config-line)#password cisco
ES(config-line)#login
ES(config-line)#exit
ES(config)#
ES(config)#interface serial 2/0
ES(config-if)#ip add 1.1.1.2 255.255.255.0
ES(config-if)#encapsulation frame-relay
ES(config-if)#frame-relay interface-dlci 19
MG(config-if)#frame-relay map ip 1.1.1.2 16 broadcast
ES(config-if)#
%LINK-5-CHANGED: Interface Serial2/0, changed state to up
ES(config-if)#
%LINEPROTO-5-UPDOWN: Line protocol on Interface Serial2/0, changed state to up
Já podemos então pingar nosso outro router, vamos ver?
ES#ping 1.1.1.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 1.1.1.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 47/59/62 ms
Perfeito!
Agora em router MG:
MG#
MG#ping 1.1.1.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 1.1.1.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 62/62/63 ms
Ótimo também...
Se temos ping, podemos ver então como está nosso OSPF.
MG#sh ip ospf neighbor
Nenhum Vizinho!
MG#show ip ospf database
OSPF Router with ID (1.1.1.1) (Process ID 1)
Router Link States (Area 0)
Link ID ADV Router Age Seq# Checksum Link count
1.1.1.1 1.1.1.1 68 0x80000001 0x00d267 1
Apenas ele mesmo.
MG#show ip protocols
Routing Protocol is "ospf 1"
Outgoing update filter list for all interfaces is not set
Incoming update filter list for all interfaces is not set
Router ID 1.1.1.1
Number of areas in this router is 1. 1 normal 0 stub 0 nssa
Maximum path: 4
Routing for Networks:
1.1.1.0 0.0.0.255 area 0
Routing Information Sources:
Gateway Distance Last Update
Distance: (default is 110)
Apenas ele mesmo.
Ou seja, não precisamos nem olhar no router ES para saber que não temos convergência OSPF.
Vamos ver um outro comando:
MG#show ip ospf interface serial 2/0
Serial2/0 is up, line protocol is up
Internet address is 1.1.1.1/24, Area 0
Process ID 1, Router ID 1.1.1.1, Network Type MULTI-POINT, Cost: 781
Transmit Delay is 1 sec, State WAITING, Priority 1
No designated router on this network
No backup designated router on this network
Timer intervals configured, Hello 30, Dead 120, Wait 120, Retransmit 5
Hello due in 00:00:00
Index 1/1, flood queue length 0
Next 0x0(0)/0x0(0)
Last flood scan length is 1, maximum is 1
Last flood scan time is 0 msec, maximum is 0 msec
Neighbor Count is 0, Adjacent neighbor count is 0
Suppress hello for 0 neighbor(s)
MG#
Na linha em destaque, temos uma informação importante. O OSPF está enxergando a rede como Multi-point, ou seja, ele irá tentar formar as adjacências enviando os pacotes Hello.
Dessa forma, podemos alterar a maneira como ele enxerga a rede, uma vez que nós sabemos que em nossa topologia, não haverá necessidade de eleição de DR e BDR.
Para fazer isso, entramos com o seguinte comando:
MG(config-if)#ip ospf network point-to-point
Em ambos os routers:
ES(config-if)#ip ospf network point-to-point
Resultado:
MG:
MG(config-if)#
00:31:11: %OSPF-5-ADJCHG: Process 1, Nbr 1.1.1.2 on Serial2/0 from LOADING to FULL, Loading Done
ES:
ES(config-if)#
00:25:32: %OSPF-5-ADJCHG: Process 1, Nbr 1.1.1.1 on Serial2/0 from LOADING to FULL, Loading Done
Agora assim temos a rede convergida, podemos repetir os comando em MG:
MG#sh ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface
1.1.1.2 0 FULL/ - 00:00:31 1.1.1.2 Serial2/0
MG#show ip ospf database
OSPF Router with ID (1.1.1.1) (Process ID 1)
Router Link States (Area 0)
Link ID ADV Router Age Seq# Checksum Link count
1.1.1.1 1.1.1.1 333 0x80000004 0x007f90 2
1.1.1.2 1.1.1.2 333 0x80000004 0x00739a 2
MG#sh ip protocols
Routing Protocol is "ospf 1"
Outgoing update filter list for all interfaces is not set
Incoming update filter list for all interfaces is not set
Router ID 1.1.1.1
Number of areas in this router is 1. 1 normal 0 stub 0 nssa
Maximum path: 4
Routing for Networks:
1.1.1.0 0.0.0.255 area 0
Routing Information Sources:
Gateway Distance Last Update
1.1.1.2 110 00:05:55
Distance: (default is 110)
Mais uma situação em que é possível ter essas duas tecnologias interoperando sem problemas desde que se conheça suas nuâncias.
Thursday, August 25, 2011
NAT-Continuação
Bom, retomando o estudo, vou voltar a falar de NAT. Esse assunto é muito importante seja para o dia-a-dia, seja para o exame. Porém, o enfoque que vou dar hoje envolve as terminologias apresentadas pela Cisco System.
No primeiro post, apresentamos NAT e mostramos uma das formar de implementar, sendo a mais comun que é Overload. Porém, procurando testes pela Internet , fica claro que NAT é cobrado além da implementação prática, algumas teorias relacionadas a NAT são constantemente cobradas e podem confundir.
Abaixo, teremos uma figura muito representatica do que representa NAT em um ambiente de rede:
Essa figura, retirada do site da Cisco, mostra os termos relacionado a NAT e esses termos são constatemente cobrados em exames. Vamos a cada um deles:
Muito embora o desenho nos faz parecer que o IP da LAN do Default Gateway é o Outside Local, isso é incorreto.
Outside Local.
A melhor definição para esse termo é: Outside Local é o IP da Internet da forma que ele é visto pelo host local, ou seja, do ponto de vista do host que está atrás do NAT. Quando qualquer host da rede local for se comunicar com o mundo externo, ele não estará preocupado com NAT. Ele montará o pacote usando seu IP como Source IP e o IP do host na Internet, seja um Server HTTP ou um Server SMTP, não importa, ele usará esse IP como o Destination IP do pacote e enviará para o Default Gateway. Muitas questões exploram essa situação porque ela é fonte de confusão. O endereço IP de Destino, será constante em uma comunicação através da Internet e mesmo o IP de Origem também será constante, caso não haja NAT. Veremos a frente que o NAT irá alterar o Campo Source Address do pacote. Porém, o IP de Destino, permonecerá sempre o mesmo. O que sempre mudará a cada Nó da rede é o MAC address do frame, a cada segmento de rede atravessado, o frame terá um Source MAC e um Destination MAC diferente.
Pois bem, então do ponto de vista do host na rede local, Um IP na Internet será chamado de Outside Local.
Inside Global
O Default Gateway recebeu um pacote, vindo da sua interface LAN. Ele abrirá o pacote para ver qual o IP de destino afim de encaminhá-lo. Em um ambiante com NAT, o Default Gateway irá montar um outro pacote em que o Source IP não será mais o IP da rede local, mas seu IP da interface WAN. A esse IP, chamamos de Inside Global.
Uma boa definição para Inside Global é que ele é o Inside Local do ponto de vista de qualquer host espelhado pela Internet. Ou seja, a comunicação foi iniciada por um host na rede local e será retornada para ele, apesar de que seu IP não saiu para a Internet,porém, a comunicação ainda é entre ele e algum host na Internet.
Uma tabela será montada relacionando o IP Inside Global mais a porta TCP ou UDP com o IP Inside Local e a porta TCP ou UDP, de forma que, quando o pacote retornar ao Gateway vindo da Internet, ela saberá de qual host na sua rede interna pertence aquele pacote.
Ou seja, a rigor, NAT é exatamente a técnica aplicada por um Sistema Operacional, seja ele Windows, Linux ou um Cisco IOS, de trocar o Source IP do pacote no limite da rede, pelo IP da sua Interface WAN, que está de 'cara' para a Internet e será visível pelo host destino, contrário do host que se encontra em sua interface LAN.
Dessa forma, é possível mascarar completamente IPs não-válidos, presentes em uma rede local, da Internet. Apenas o IP da interface WAN do Default Gateway fica visível e será para ele que será encaminhado todos os pacotes vindos da Internet.
Outside Global
Esse termo é o mais simples, uma vez que é o IP de qualquer host na Internet, ou seja, é com quem o Inside Local está se comunicando.
Ter essas terminologias bem claras em mente, pode tornar muito simples questões como a que vou mostrar abaixo:
Essa é um exemplo de questão em que, conhecendo bem as terminologias, fica fácil.
NAT possibilita ainda falar muito mais, porém, vou fechar esse post e numa outra oportunidade podemos aprofundar um pouco mais.
No primeiro post, apresentamos NAT e mostramos uma das formar de implementar, sendo a mais comun que é Overload. Porém, procurando testes pela Internet , fica claro que NAT é cobrado além da implementação prática, algumas teorias relacionadas a NAT são constantemente cobradas e podem confundir.
Abaixo, teremos uma figura muito representatica do que representa NAT em um ambiente de rede:
Essa figura, retirada do site da Cisco, mostra os termos relacionado a NAT e esses termos são constatemente cobrados em exames. Vamos a cada um deles:
- Inside Local
- Outside Local
- Inside Global
- Outside Global
Muito embora o desenho nos faz parecer que o IP da LAN do Default Gateway é o Outside Local, isso é incorreto.
Outside Local.
A melhor definição para esse termo é: Outside Local é o IP da Internet da forma que ele é visto pelo host local, ou seja, do ponto de vista do host que está atrás do NAT. Quando qualquer host da rede local for se comunicar com o mundo externo, ele não estará preocupado com NAT. Ele montará o pacote usando seu IP como Source IP e o IP do host na Internet, seja um Server HTTP ou um Server SMTP, não importa, ele usará esse IP como o Destination IP do pacote e enviará para o Default Gateway. Muitas questões exploram essa situação porque ela é fonte de confusão. O endereço IP de Destino, será constante em uma comunicação através da Internet e mesmo o IP de Origem também será constante, caso não haja NAT. Veremos a frente que o NAT irá alterar o Campo Source Address do pacote. Porém, o IP de Destino, permonecerá sempre o mesmo. O que sempre mudará a cada Nó da rede é o MAC address do frame, a cada segmento de rede atravessado, o frame terá um Source MAC e um Destination MAC diferente.
Pois bem, então do ponto de vista do host na rede local, Um IP na Internet será chamado de Outside Local.
Inside Global
O Default Gateway recebeu um pacote, vindo da sua interface LAN. Ele abrirá o pacote para ver qual o IP de destino afim de encaminhá-lo. Em um ambiante com NAT, o Default Gateway irá montar um outro pacote em que o Source IP não será mais o IP da rede local, mas seu IP da interface WAN. A esse IP, chamamos de Inside Global.
Uma boa definição para Inside Global é que ele é o Inside Local do ponto de vista de qualquer host espelhado pela Internet. Ou seja, a comunicação foi iniciada por um host na rede local e será retornada para ele, apesar de que seu IP não saiu para a Internet,porém, a comunicação ainda é entre ele e algum host na Internet.
Uma tabela será montada relacionando o IP Inside Global mais a porta TCP ou UDP com o IP Inside Local e a porta TCP ou UDP, de forma que, quando o pacote retornar ao Gateway vindo da Internet, ela saberá de qual host na sua rede interna pertence aquele pacote.
Ou seja, a rigor, NAT é exatamente a técnica aplicada por um Sistema Operacional, seja ele Windows, Linux ou um Cisco IOS, de trocar o Source IP do pacote no limite da rede, pelo IP da sua Interface WAN, que está de 'cara' para a Internet e será visível pelo host destino, contrário do host que se encontra em sua interface LAN.
Dessa forma, é possível mascarar completamente IPs não-válidos, presentes em uma rede local, da Internet. Apenas o IP da interface WAN do Default Gateway fica visível e será para ele que será encaminhado todos os pacotes vindos da Internet.
Outside Global
Esse termo é o mais simples, uma vez que é o IP de qualquer host na Internet, ou seja, é com quem o Inside Local está se comunicando.
Ter essas terminologias bem claras em mente, pode tornar muito simples questões como a que vou mostrar abaixo:
Essa é um exemplo de questão em que, conhecendo bem as terminologias, fica fácil.
NAT possibilita ainda falar muito mais, porém, vou fechar esse post e numa outra oportunidade podemos aprofundar um pouco mais.
Thursday, August 11, 2011
Hiphone
Essa é pra descontrair em meio ao estress dos estudos!!!
Com vontade de mexer em um celular touchscreen e sem grana pra comprar um iphone ou outro bodoso da vida, comprei um Hiphone...na verdade ganhei de presente.
Cara, como diria o outro : 'mardito chineses'.
Uma vez em posse do brinquedo, comecei a fuçar, nele e na Net...existem vários blogs que são praticamente especializados nesses aparelhos genéricos, mas não resisto e vou por um passo-a-passo de algo que eu fiz.
Assim que comecei a 'fuçar' Até achei engraçadinho o barulhinho que faz quando você presciona um ícone na tela, mas com o tempo começa a ficar chato. Se estiver próximo a outras pessoas então, nem da, parece que você quer que outros vejam seu Hiphone.
Iniciei uma verdadeira caçada para ver onde eu poderia desabilitar aquilo. Por incrível que pareça, não há muito o que fazer a nível de aparelho. Ai encontrei na Net como fazer.
Existe um programinha chamado China Phone MTK, isso mesmo. Vou deixar esses arquivos disponíveis,porém, meu HD virutal está uma porcaria, mas se jogar no google vai que vai.
Baixe e instale o tal China Phone MTK.
Feito isso, instale o drive para comunicação serial com o nosso Hiphone,vou disponibilizar também,mas mesmo esquema.
Quando o driver está instalado e você espeta o aparelho no PC, é só selecionar PortaCOM no aparelho. Se olhar em Portas no 'gerenciador de dispositivo' do PC, vai ter aparecido lá uma porta a mais, no meu caso foi a porta COM3.
Configure a porta para trabalhar a 19200.
Abre nosso China Phone MTK :
Nessa imagem já foi feito a conexão, porém, não tem segredo nenhum, se a porta está em 19200, basca mandar conectar no canto superior direito e pronto.
Depois de conectado, basta ir clicando em ler e o software irá trazendo os dados que estão no aparelho.Para fazer a alteração no caso específico do son dos ícones, basta zerar os valores em "Modo normal" na primeira linha "Música" em 0(zero) e 1 (um) passe para zero.
Feita a alteração, basta clicar em 'escrever' e pronto, já está salvo no aparelho.
Essas mudanças podem envolver riscos, se for fazer, saiba dos riscos e tome cuidado, leia o máximo que puder de opiniões e tutoriais. Não vá aparecer nos blogs da vida dizendo "por favor, me ajudem, fui alterar uma configuração do meu aparelho e ele não liga mais...socorro!! "
Eu vi vários desses!!!
Mas é muito legal, eu estou atrás de um softphne java pra instalar nele e colocar um ramal do Asterisk. Instalei o Skype mas como o Asterisk não terá mais suporte ao Skype, vou deixá-lo apenas como Skype mesmo e ver se acho um softphne, achando eu posto aqui...
Wednesday, August 3, 2011
NAT-Network Address Translation
Hoje vamos falar de mais um assunto muito importante e de enorme aplicação. Para quem está se preparando para o exame, como eu, ou mesmo no seu dia-a-dia, caso você tenha um ambiente como o nosso diagrama. Essa arquitetura é bem fácil de ser encontrada em escritórios, filiais,etc. É uma Rede Stub, ou seja, possui apenas uma saida e depende da configuração de NAT para que seus IPs internos possam conseguir navegar na Internet usando o IP do provedor. Essa é uma das funções do NAT, talvez a mais comun, e essa implantação, chamada Overload é a mais usada.
A nível de conceito, existe basicamente 4 tipos de NAT:
Vamos iniciar configurando nosso router, que se chamará Branch. Ele fará DHCP também, isso é comun em uma rede dessa natureza,onde muita vezes não vale apena ter um firewall ou um servidor DHCP.
Router>
Router>en
Router#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#hostname Branch
Damos um nome ao Router
Branch(config)#
Branch(config)#interface fa 0/0
Branch(config-if)#ip add 192.168.0.1 255.255.255.0
Branch(config-if)#no sh
%LINK-5-CHANGED: Interface FastEthernet0/0, changed state to up
%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0, changed state to up
Branch(config-if)#ip nat inside
Branch(config-if)#
Subimos a interface LAN já com IP e preparada para o NAT.
Vamos subir um servidor DHCP:
Branch(config)#ip dhcp po
Branch(config)#ip dhcp pool ?
WORD Pool name
Branch(config)#ip dhcp pool dhcp-branch
Branch(dhcp-config)#
Branch(dhcp-config)#network 192.168.0.0 255.255.255.0
Branch(dhcp-config)#default-router 192.168.0.1
Branch(dhcp-config)#dns-server 200.220.138.113
Branch(dhcp-config)#
Aqui está, já temos DHCP na rede LAN na faixa de 192.168.0.1 até 192.168.0.254. Também estabelecemos que 192.168.0.1 será nosso Gateway e que o servidor de DNS, forncecido pelo ISP, será o 200.220.138.113
Vamos configurar em seguida o NAT.
Branch#
Branch#
Branch#config t
Enter configuration commands, one per line. End with CNTL/Z.
Branch(config)#
Branch(config)#
Branch(config)#
Branch(config)#access-list 1 permit 192.168.0.0 0.0.0.255
Branch(config)#ip nat pool pool-branch 200.221.2.45 200.221.2.45 net
Branch(config)#ip nat pool pool-branch 200.221.2.45 200.221.2.45 netmask 255.255.255.252
Branch(config)#ip nat inside source list 1 po
Branch(config)#ip nat inside source list 1 pool pool-branch over
Branch(config)#ip nat inside source list 1 pool pool-branch overload
Branch(config)#
A primeira coisa foi configurar uma ACL simples, como falei quando mostrei como configurar ACL. Depois , definimos um pool de endereços IPs válidos que será usado para navegarmos. Aqui, como tínhamos apenas um IP válido fornecido pelo nosso ISP, colocamos ele como IP inicial e IP final. Caso nosso ISP nos fornecesse mais de um IP, um range, poderiamos por o primeiro e o últimos IP.
Outra forma de configurar com apenas um IP seria assim:
Branch(config)#ip nat inside source list 1 interface serial 0/0 overload
Dessa forma, estaríamos consederando apenas um IP de fato para sair.
Pois bem, nossa redezinha já está quase pronta. vamos ver se navegamos?
Recebemos um erro do web site.
Como Administrador de redes, é fundamental que você saiba encontrar erros. Errar é humano, mas é preciso ter domínio sobre os equipamentos, é preciso saber falar com eles, isso é ser um Administrador de redes.
Vamos entrar em nosso router e ver o que ele nos diz :
Branch#debug ip nat
IP NAT debugging is on
Branch#debug ip icmp
ICMP packet debugging is on
Branch#
ICMP: dst (200.220.138.113) host unreachable sent to 192.168.0.5
ICMP: dst (200.220.138.113) host unreachable sent to 192.168.0.5
ICMP: dst (200.220.138.113) host unreachable sent to 192.168.0.5
ICMP: dst (200.220.138.113) host unreachable sent to 192.168.0.5
ICMP: dst (200.220.138.113) host unreachable sent to 192.168.0.5
Ativamos debug de NAT e de ICMP. Não houve uso de NAT e o ICMP, Internet Control Message Protocol , nos diz que o IP 200.220.138.113 está inalcançável.
Claro que está. Nos não tínhamos criado nenhuma saída para o Router.
Vamos fazer então:
Branch(config)#
Branch(config)#ip route 0.0.0.0 0.0.0.0 serial 0/0
Configuramos uma rota default para a serial 0/0. Isso é mais que suciente e é muito eficaz no nosso caso.
Vamos direto ao router ver o que ele nos diz , agora que ele sabe o que fazer com os pacotes:
Branch(config)#
NAT: s=192.168.0.5->200.221.2.45, d=200.220.138.113 [79]
NAT*: s=200.220.138.113, d=200.221.2.45->192.168.0.5 [13]
NAT*: s=192.168.0.5->200.221.2.45, d=200.220.138.113 [80]
NAT*: s=192.168.0.5->200.221.2.45, d=200.220.138.113 [81]
NAT*: s=192.168.0.5->200.221.2.45, d=200.220.138.113 [82]
NAT*: s=200.220.138.113, d=200.221.2.45->192.168.0.5 [14]
NAT*: s=200.220.138.113, d=200.221.2.45->192.168.0.5 [15]
NAT*: s=192.168.0.5->200.221.2.45, d=200.220.138.113 [83]
NAT*: s=200.220.138.113, d=200.221.2.45->192.168.0.5 [16]
NAT*: s=192.168.0.5->200.221.2.45, d=200.220.138.113 [84]
Pronto!!!!
Aí está, nosso NAT trabalhando. Nem é preciso mostrar o navegar para saber que a página WEB foi aberta pelo usuário.
NAT: s=192.168.0.5->200.221.2.45, d=200.220.138.113 [79]
NAT*: s=200.220.138.113, d=200.221.2.45->192.168.0.5 [13]
Vejam que interessante. A ída do pacote, saindo do PC 192.168.0.5, passando pela nossa interface serial , chegando ao Web Server e depois retornando para o nosso PC.
A nível de conceito, existe basicamente 4 tipos de NAT:
- Estático-Static
- Dinâmico-Dynamic
- Overload com um IP válido
- Overload com um range de IPs válidos.
Figura 1 |
Router>
Router>en
Router#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#hostname Branch
Damos um nome ao Router
Branch(config)#
Branch(config)#interface fa 0/0
Branch(config-if)#ip add 192.168.0.1 255.255.255.0
Branch(config-if)#no sh
%LINK-5-CHANGED: Interface FastEthernet0/0, changed state to up
%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0, changed state to up
Branch(config-if)#ip nat inside
Branch(config-if)#
Subimos a interface LAN já com IP e preparada para o NAT.
Vamos subir um servidor DHCP:
Branch(config)#ip dhcp po
Branch(config)#ip dhcp pool ?
WORD Pool name
Branch(config)#ip dhcp pool dhcp-branch
Branch(dhcp-config)#
Branch(dhcp-config)#network 192.168.0.0 255.255.255.0
Branch(dhcp-config)#default-router 192.168.0.1
Branch(dhcp-config)#dns-server 200.220.138.113
Branch(dhcp-config)#
Aqui está, já temos DHCP na rede LAN na faixa de 192.168.0.1 até 192.168.0.254. Também estabelecemos que 192.168.0.1 será nosso Gateway e que o servidor de DNS, forncecido pelo ISP, será o 200.220.138.113
Vamos configurar em seguida o NAT.
Branch#
Branch#
Branch#config t
Enter configuration commands, one per line. End with CNTL/Z.
Branch(config)#
Branch(config)#
Branch(config)#
Branch(config)#access-list 1 permit 192.168.0.0 0.0.0.255
Branch(config)#ip nat pool pool-branch 200.221.2.45 200.221.2.45 net
Branch(config)#ip nat pool pool-branch 200.221.2.45 200.221.2.45 netmask 255.255.255.252
Branch(config)#ip nat inside source list 1 po
Branch(config)#ip nat inside source list 1 pool pool-branch over
Branch(config)#ip nat inside source list 1 pool pool-branch overload
Branch(config)#
A primeira coisa foi configurar uma ACL simples, como falei quando mostrei como configurar ACL. Depois , definimos um pool de endereços IPs válidos que será usado para navegarmos. Aqui, como tínhamos apenas um IP válido fornecido pelo nosso ISP, colocamos ele como IP inicial e IP final. Caso nosso ISP nos fornecesse mais de um IP, um range, poderiamos por o primeiro e o últimos IP.
Outra forma de configurar com apenas um IP seria assim:
Branch(config)#ip nat inside source list 1 interface serial 0/0 overload
Dessa forma, estaríamos consederando apenas um IP de fato para sair.
Pois bem, nossa redezinha já está quase pronta. vamos ver se navegamos?
Figura 2 |
Recebemos um erro do web site.
Como Administrador de redes, é fundamental que você saiba encontrar erros. Errar é humano, mas é preciso ter domínio sobre os equipamentos, é preciso saber falar com eles, isso é ser um Administrador de redes.
Vamos entrar em nosso router e ver o que ele nos diz :
Branch#debug ip nat
IP NAT debugging is on
Branch#debug ip icmp
ICMP packet debugging is on
Branch#
ICMP: dst (200.220.138.113) host unreachable sent to 192.168.0.5
ICMP: dst (200.220.138.113) host unreachable sent to 192.168.0.5
ICMP: dst (200.220.138.113) host unreachable sent to 192.168.0.5
ICMP: dst (200.220.138.113) host unreachable sent to 192.168.0.5
ICMP: dst (200.220.138.113) host unreachable sent to 192.168.0.5
Ativamos debug de NAT e de ICMP. Não houve uso de NAT e o ICMP, Internet Control Message Protocol , nos diz que o IP 200.220.138.113 está inalcançável.
Claro que está. Nos não tínhamos criado nenhuma saída para o Router.
Vamos fazer então:
Branch(config)#
Branch(config)#ip route 0.0.0.0 0.0.0.0 serial 0/0
Configuramos uma rota default para a serial 0/0. Isso é mais que suciente e é muito eficaz no nosso caso.
Vamos direto ao router ver o que ele nos diz , agora que ele sabe o que fazer com os pacotes:
Branch(config)#
NAT: s=192.168.0.5->200.221.2.45, d=200.220.138.113 [79]
NAT*: s=200.220.138.113, d=200.221.2.45->192.168.0.5 [13]
NAT*: s=192.168.0.5->200.221.2.45, d=200.220.138.113 [80]
NAT*: s=192.168.0.5->200.221.2.45, d=200.220.138.113 [81]
NAT*: s=192.168.0.5->200.221.2.45, d=200.220.138.113 [82]
NAT*: s=200.220.138.113, d=200.221.2.45->192.168.0.5 [14]
NAT*: s=200.220.138.113, d=200.221.2.45->192.168.0.5 [15]
NAT*: s=192.168.0.5->200.221.2.45, d=200.220.138.113 [83]
NAT*: s=200.220.138.113, d=200.221.2.45->192.168.0.5 [16]
NAT*: s=192.168.0.5->200.221.2.45, d=200.220.138.113 [84]
Pronto!!!!
Aí está, nosso NAT trabalhando. Nem é preciso mostrar o navegar para saber que a página WEB foi aberta pelo usuário.
NAT: s=192.168.0.5->200.221.2.45, d=200.220.138.113 [79]
NAT*: s=200.220.138.113, d=200.221.2.45->192.168.0.5 [13]
Vejam que interessante. A ída do pacote, saindo do PC 192.168.0.5, passando pela nossa interface serial , chegando ao Web Server e depois retornando para o nosso PC.
Monday, August 1, 2011
ACL-Access Control List
Access-lists ou, Listas de Acesso, é um dos tópicos mais importantes que eu exponho aqui e vou dizer o porque. Se seu contato com routers cisco acontece no limite entre sua rede local e a rede de seu provedor, então, assuntos como protocolos de roteamentos, protocolos WAN, podem não ser tão relevantes mas, tenha certesa, Access List é.
Intrincicamente, ACLs estão relacionadas ao fator de segurança da rede,mas de um modo mais generalizado, ACL é uma forma de modelagem de tráfego que cruza uma interface. Se você for configurar NAT (Network Addess Translation) em um router, você vai precisar de ACL, se você for configurar controle de banda em um router, você irá precisar de ACL e assim por diante.
A configuração de ACL pode ser relativamente simples se você dominar alguns conceitos e meu papel aqui será tentar explicar e apresentar esses conceitos. Ao final, mostrarei um LAB que fiz em Packet Tracer para tornar as coisas mais palpáveis.
Existem basicamente dois tipos de ACLs: Standard (Padrão), Extended(Estendida) sendo que ambas podem ser Named (Nomeadas). Verifcando cada tipo nos faz pensar que uma foi evolução da outra.
ACLs standard são mais simples de implementar,porém, possuem algumas limitações, como por exemplo, bloqueiam apenas baseado no endereço IP de origem e devem ser colocadas o mais perto do destino do tráfego possível por uma razão simples, elas não olham o IP de destino do pacote, apenas o IP de origem, como já foi dito. Isso ficará mais claro a medida que avançarmos, por hora, apenas guardem essas informações.
ACLs Extended já são mais elaboradas, ou seja, ao invés de apenas analizarem tráfego até a camada 3, conseguem subir a camada 4 e analizar portas TCP e UDP. Isso lhes conferem uma flexibilidade bem maior. Elas devem ser colocadas o mais próximo possível da origem do tráfego e isso gera economia de banda na rede, uma vez que o pacote não precisa atravessar um segmento de rede, ou atravessar um roteador.
Ambas as listas Standard e Extended podem ser Named. Na verdade, toda ACL recebe um número ao ser criada e podem conter um parâmetro chamodo Remark que lhe possibilita acrescentar uma descrição do que aquela ACL faz no tráfego, isso sem dúvidas ajuda na organização e troubleshooting da rede,porém, nada se compara as ACLs Named.
ACLs Nameds possibilita você criar uma ACL do tipo "BLOQUEIA_TRAFEGO_HTTP" ou "PERMITE_TRAFEGO_FTP". Na hora de fazer alterações ou manutenção ficará muito fácil saber o que cada uma representa. Outro grande benefício propiciado pelas ACLs Named é o fato de você poder deletar linhas na ACL sem precisar refazê-la inteira. Quando você cria uma ACL padrão ou estendida e descobre depois que precisa editá-la, você terá que salvá-la em um editor de texto, editá-la e depois colá-la novamente na runnning-config do router,ao passo que ACL Named não precisa.
ACLs Standard podem ser numeradas de 1 a 99 e de 1300 a 1999, enquando que as ACLs Extended recebem a numeração de 100 a 199 e de 2000 a 2699.
Vamos aprofundar um pouco mais nas ACLs Standard e depois faremos o mesmo com as ACLs Extended.
Como já foi dito, ACLs Standard ou Padrão,bloqueiam o tráfego baseado no IP de Origem do pacote não se importando com o IP de destino ou portas TCP e UDP.
Considerando nosso pacote IP, ele irá olhar o campo 'Endereçamento do Remetente'.
Pois bem, uma vez definido isso, vamos ver a estrutura básica de uma ACL:
Router(config)# access-list [Número da ACL {1-99 ou 1300 a 1999}] [permit | deny | Remark] [IP de Origem ] [Máscara curinga] [Log]
Conhecer essa sequência e os parâmetros é fundamental!
1-Router(config)# - ACLs são confiuradas no modo global do roteador
2-Router(config)# access-list - O comando para estartar uma ACL é access-list
3-Router(config)# access-list [Número da ACL {1-99 ou 1300 a 1999}] - ACLs Padrão podem ter essa numeração
4-Router(config)# access-list [Número da ACL {1-99 ou 1300 a 1999}] [permit | deny | Remark]
Logo após o numero de identificação, virá o que se prentende fazer com ela: permitir, negar. Remak é um artifícil útil para identificar o que a ACL faz, ou seja, mesmo que você decida por Permit ou Deny, você pode acrescentar uma linha Remark para documentar o objetivo da ACL.
5-Router(config)# access-list [Número da ACL {1-99 ou 1300 a 1999}] [permit | deny | Remark] [IP de Origem ]- IP de origem é o IP ao qual se quer permitir ou negar a passagem de pacote. As opções aqui podem ser o IP de um host apenas, uma faixa de hosts ou toda uma rede.
6- Router(config)# access-list [Número da ACL {1-99 ou 1300 a 1999}] [permit | deny | Remark] [IP de Origem ] [Máscara curinga] - A máscara curinga é o artifício que permite controlar uma faixa de IP ou uma rede, podendo usar até para um host apenas,porém, nesse caso, é mais correto usar a palavra host ,como se segue:
Exemplo:
Router(config)# access-list 1 permit host 192.168.0.1
Essa ACL permite pacotes vindos de 192.168.0.1
Usando o recurso de Máscara Curinga, poderia fazer dessa forma:
Router(config)# access-list 1 permit 192.168.0.1 0.0.0.0.
Como pode ser observado, sai a palavra host e entra Máscara Curinga 0.0.0.0. O zero significa que todos os octetos do endereço IP devem coincidir.
A liberação por faixa de IP seria da seguinte forma:
Router(config)# access-list 1 permit 192.168.0.1 0.0.0.255
Ou seja, 255 nesse caso,ou ALL-ONES (11111111) em um octeto da Mascara Curinga, significa que não interessa qual número. Ou seja, qualquer valor apos 192.168.0 será permitido ou negado.
Você pode ainda refinar mais sua regra, usando o recurso de blocos da Mascara Curinga. Esse recurso diz que uma Máscara Curinga pode bloquear por blocos de IP que vão de : 1,2,4,8,16,32,64,128,etc. Ou seja, em potência de 2.
Conclui-se dessa forma, que não é possível bloquear ,por exemplo, 5 hosts apenas. Você pode bloquear 4 hosts ou 8 hosts. Vamos ver como se bloqueia 4 hosts:
Router(config)# access-list 1 denyt host 192.168.0.1 0.0.0.3
Porque três ?
A regra diz que usa-se o valor do bloco menos 1. Dessa forma, o bloco de 8 ficaria 7 e assim por diante.
Por último, vamos ver o recurso de LOG
Router(config)# access-list [Número da ACL {1-99 ou 1300 a 1999}] [permit | deny | Remark] [IP de Origem ] [Máscara curinga] [Log]
O recurso de Log ao final da ACL facilita no troubleshooting da rede. Cada vez que um pacote é bloqueado,casa seja uma ACL de bloqueio, ou permitido, caso seja uma ACL para permitir, um LOG será criado. Entretanto, em redes grandes , não é um recurso prático.
Muito bem, falamos de bloquear IPs de origem, falamos em posicionar ACLs perto do destino, mas isso gera uma certa confusão,pelo menos eu tive uma certa dificuldade no início dos meus estudos.
Para facilitar o entendimento, eu sigo um conselho de Geremy Ciora, ele diz em seus ótimos videos de treinamento : "..be the router", ou seja, seja o roteado. Quer dizer, quando você tiver que aplicar uma ACL em um router, se ponha no lugar do router, imagina que seus braços,e talvez pernas, dependendo de quantas interfaces estamos falando, seja as interfaces. Ou seja, tráfego Inbound, tráfego Outbound, detino, origem, podem ser mais fáceis de serem compreendidos.
Quando se diz perto do destino, o destino é você, é seu router, quando se diz origem, origem é o router que lhe enviará o pacote. A idéia do controle de tráfego, colocando-se no lugar do equipamento, é controlar o tráfego que vem de algum lugar em sua direção. Firewalls, por exemplo, inclusive, para quem já conhece IPTABLES pode perceber que existem uma semelhança grande entre suas regras e ACLs, firewalls são configurados para bloquear o tráfego que vem de fora, e não para o tráfego gerado em sua LAN. Não que não seja possível, mas á mais racional é que se queira bloquear o tráfego que vem em direção a você.
Olhando dessa forma, a ORIGEM aqui é um router remoto e o DESTINO seria seu roteador, ou voce, seguindo nossa analogia.
No caso da Figura 2, podemos ver no diagrama o administrador está em R1, ele quer bloquear o tráfego vindo de R3. Se a idéia é por a ACL o mais próximo possível do destino e o destino é R1, então a ACL foi instalada na serial de R1. Essa ACL , sendo padrão, irá ser do tipo:
Router(config)# access-list 1 deny 192.168.10.0 0.0.0.255
Router (config)# access-list permit any
Isso bloqueará toda a rede 192.168.10.X, não importando qual seja seu final,ou seja, se o IP da rede for 192.168.10 será bloqueado. E aqui fica claro do porque uma ACL Padrão não pode ser colocada próximo à Origem do tráfedo. Se você configurar essa ACL na Origem, ou seja, em R3, simplesmente você mata o roteador, ou pelo menos, a interface Fa 0/1 do mesmo.
A segunda linha :
Router (config)# access-list permit any
É nova para nós, mas é fácil de compreender, ela está dizendo para permitir todo o restante do tráfego. Isso é necessário devido a uma particularidade que ainda não mencionamos. "Toda ACL possui uma regra no final da mesma que bloqueia todo o tráfego". Ou seja, é implícito, não precisa ser configurada. Imagina que quando você configurou uma ACL, haverá uma linha do tipo no final:
Router(config)# access-list [Número da ACL] deny any.
Ou seja, caso o pacote chegue a interface do router, seja submetido a todas as regras da ACL presente, e não coincida com nenhuma delas, ele cairá nessa última regra e será descartado ou permitido. O que implica em dizer que, se você configurar sua ACL com deny, você, obrigatoriamente, terá que por uma instrução permit no final, ou todo o tráfego será bloqueado.
Outra regra importante:
"As regras da ACL são lidas pelo router de cima para baixo, ou seja, se o pacote coincidir com a primeira regra, ele será roteado e não será olhado as demais regras"
Espero que tenha ficado bem claro esses conceitos porque eles são muito importantes para se compreender as ACLs como um todo.
Vamos aprender como apliar a ACL na interface do roteador e iniciarmos com ACLs Extended.
Para aplicarmos essa ACL, devemos proceder assim:
Router(config)# interface serial 0/0/1
Router(config-if)# ip access-group 1 in
Pronto, já temos uma ACL funcionando na interface serial 0/0/1 no sentido entrada.
Extended ACLs
Praticamente os mesmo conceitos relacionados as ACLs Standard se aplicam as ACLs Extended, porem , veremos que essa última possui uma capadidade maior de filtragem.
ACLs Extended possuem a seguinte sintax:
Router(config)# access-list [Numero da ACL { 100 a 1999 ou de 2000 a 2699}] [permit | deny | Remark] [Protocol {TCP,UDP,ICMP,etc}] [IP de origem ] [Mascara Curinga do IP de origem ] [IP de Destino ] [Madcara curinga do IP de Destino ]
Como podemos ver, agora temos mais opções. Temos o campo protocolo e o campo IP de Destino. O campo protoloco pode ser a porta TCP ou UDP ou pode ser o nome do protocolo como, por exemplo, www,icmp,et,) ou pode ser usar a palavra chave IP que corresponde a todos os protocolos, por razões óbvias, tendo em vista que o IP 'carrega' todos os demais.
Vamos ver um exmplo para facilitar:
Router(config)# access-list 101 permit tcp any host 192.168.0.1 eq www.
Router(config)# access-list 101 permit ip any any
Nesse exemplo, estamos permitindo o trafégo de qualquer Origem, any, para o Destino 192.168.0.1 na porta www ou 80.
Novamente aqui estamos considerando a regra do 'deny any ' no final da ACL, que aqui inclusive seria 'deny any any' , já que em ACL Extended deve ser definido origem e o destino do tráfego.
Sem a linha permit ip any any, apenas o trafégo www iria passar pelo router, bloqueando todo o resto do tráfego.
Essa regra mostra a flexibilidade das ACLs Extended.
O processo de aplicar as ACL Extended é o mesmo nas Standard:
Router(config)# interface Serial 0/0/1
Router(config-if)# ip access-group 101 out
No caso em questão, aplicamos no sentido de saída do tráfego.
Um aplicação muito útil para ACLs,podendo ser Standard ou Extended, apesar de que se vê mais com Standard, seria para permitir acesso Telnet em um router por apenas um IP ou rede específicos.
Router(config)# access-list 10 permit host 192.168.0.1
Router(config)#access-list 10 deny any
Router(config)#line vty 0 4
Router(config-line)#password cisco
Router(config-line)# login
Router(config-line)# access-class 10 in
Pronto. Com essa configuração, apenas o host 192.168.0.1 terá acesso pelas linhas vty,ou seja, Telnet do
router.
Vamos apresentar um LAB com algumas situações sobre ACLs:
Meu ojetivo nessa rede é bloquear o acesso ao Servidor HTTP( 192.168.0.2 )da minha rede para o PC2 (172.16.0.3)e deixar o PC1(172.16.0.2) acessando.
Vamos usar ACL Extended. Baseado no que vimos vamos colocá-la o mais próximo da Origem do tráfego possível. No nosso caso será a interface Fa 0/0 do Router Branch.
Agindo dessa forma, evitamos que as tentativas de acesso ao servidor HTTP atravesse toda a rede para acabar sendo bloqueado em HQ.
Vamos lá:
branch(config)#access-list 100 deny tcp host 172.16.0.3 host 192.168.0.2 eq www
branch(config)#access-list 100 permit ip any any
branch(config)#int fa 0/0
branch(config-if)#ip access-g
branch(config-if)#ip access-group 100 in
branch(config-if)#exit
Testando:
Em PC2:
E aqui nosso PC 1:
Intrincicamente, ACLs estão relacionadas ao fator de segurança da rede,mas de um modo mais generalizado, ACL é uma forma de modelagem de tráfego que cruza uma interface. Se você for configurar NAT (Network Addess Translation) em um router, você vai precisar de ACL, se você for configurar controle de banda em um router, você irá precisar de ACL e assim por diante.
A configuração de ACL pode ser relativamente simples se você dominar alguns conceitos e meu papel aqui será tentar explicar e apresentar esses conceitos. Ao final, mostrarei um LAB que fiz em Packet Tracer para tornar as coisas mais palpáveis.
Existem basicamente dois tipos de ACLs: Standard (Padrão), Extended(Estendida) sendo que ambas podem ser Named (Nomeadas). Verifcando cada tipo nos faz pensar que uma foi evolução da outra.
ACLs standard são mais simples de implementar,porém, possuem algumas limitações, como por exemplo, bloqueiam apenas baseado no endereço IP de origem e devem ser colocadas o mais perto do destino do tráfego possível por uma razão simples, elas não olham o IP de destino do pacote, apenas o IP de origem, como já foi dito. Isso ficará mais claro a medida que avançarmos, por hora, apenas guardem essas informações.
ACLs Extended já são mais elaboradas, ou seja, ao invés de apenas analizarem tráfego até a camada 3, conseguem subir a camada 4 e analizar portas TCP e UDP. Isso lhes conferem uma flexibilidade bem maior. Elas devem ser colocadas o mais próximo possível da origem do tráfego e isso gera economia de banda na rede, uma vez que o pacote não precisa atravessar um segmento de rede, ou atravessar um roteador.
Ambas as listas Standard e Extended podem ser Named. Na verdade, toda ACL recebe um número ao ser criada e podem conter um parâmetro chamodo Remark que lhe possibilita acrescentar uma descrição do que aquela ACL faz no tráfego, isso sem dúvidas ajuda na organização e troubleshooting da rede,porém, nada se compara as ACLs Named.
ACLs Nameds possibilita você criar uma ACL do tipo "BLOQUEIA_TRAFEGO_HTTP" ou "PERMITE_TRAFEGO_FTP". Na hora de fazer alterações ou manutenção ficará muito fácil saber o que cada uma representa. Outro grande benefício propiciado pelas ACLs Named é o fato de você poder deletar linhas na ACL sem precisar refazê-la inteira. Quando você cria uma ACL padrão ou estendida e descobre depois que precisa editá-la, você terá que salvá-la em um editor de texto, editá-la e depois colá-la novamente na runnning-config do router,ao passo que ACL Named não precisa.
ACLs Standard podem ser numeradas de 1 a 99 e de 1300 a 1999, enquando que as ACLs Extended recebem a numeração de 100 a 199 e de 2000 a 2699.
Vamos aprofundar um pouco mais nas ACLs Standard e depois faremos o mesmo com as ACLs Extended.
Como já foi dito, ACLs Standard ou Padrão,bloqueiam o tráfego baseado no IP de Origem do pacote não se importando com o IP de destino ou portas TCP e UDP.
Fig 1 |
Pois bem, uma vez definido isso, vamos ver a estrutura básica de uma ACL:
Router(config)# access-list [Número da ACL {1-99 ou 1300 a 1999}] [permit | deny | Remark] [IP de Origem ] [Máscara curinga] [Log]
Conhecer essa sequência e os parâmetros é fundamental!
1-Router(config)# - ACLs são confiuradas no modo global do roteador
2-Router(config)# access-list - O comando para estartar uma ACL é access-list
3-Router(config)# access-list [Número da ACL {1-99 ou 1300 a 1999}] - ACLs Padrão podem ter essa numeração
4-Router(config)# access-list [Número da ACL {1-99 ou 1300 a 1999}] [permit | deny | Remark]
Logo após o numero de identificação, virá o que se prentende fazer com ela: permitir, negar. Remak é um artifícil útil para identificar o que a ACL faz, ou seja, mesmo que você decida por Permit ou Deny, você pode acrescentar uma linha Remark para documentar o objetivo da ACL.
5-Router(config)# access-list [Número da ACL {1-99 ou 1300 a 1999}] [permit | deny | Remark] [IP de Origem ]- IP de origem é o IP ao qual se quer permitir ou negar a passagem de pacote. As opções aqui podem ser o IP de um host apenas, uma faixa de hosts ou toda uma rede.
6- Router(config)# access-list [Número da ACL {1-99 ou 1300 a 1999}] [permit | deny | Remark] [IP de Origem ] [Máscara curinga] - A máscara curinga é o artifício que permite controlar uma faixa de IP ou uma rede, podendo usar até para um host apenas,porém, nesse caso, é mais correto usar a palavra host ,como se segue:
Exemplo:
Router(config)# access-list 1 permit host 192.168.0.1
Essa ACL permite pacotes vindos de 192.168.0.1
Usando o recurso de Máscara Curinga, poderia fazer dessa forma:
Router(config)# access-list 1 permit 192.168.0.1 0.0.0.0.
Como pode ser observado, sai a palavra host e entra Máscara Curinga 0.0.0.0. O zero significa que todos os octetos do endereço IP devem coincidir.
A liberação por faixa de IP seria da seguinte forma:
Router(config)# access-list 1 permit 192.168.0.1 0.0.0.255
Ou seja, 255 nesse caso,ou ALL-ONES (11111111) em um octeto da Mascara Curinga, significa que não interessa qual número. Ou seja, qualquer valor apos 192.168.0 será permitido ou negado.
Você pode ainda refinar mais sua regra, usando o recurso de blocos da Mascara Curinga. Esse recurso diz que uma Máscara Curinga pode bloquear por blocos de IP que vão de : 1,2,4,8,16,32,64,128,etc. Ou seja, em potência de 2.
Conclui-se dessa forma, que não é possível bloquear ,por exemplo, 5 hosts apenas. Você pode bloquear 4 hosts ou 8 hosts. Vamos ver como se bloqueia 4 hosts:
Router(config)# access-list 1 denyt host 192.168.0.1 0.0.0.3
Porque três ?
A regra diz que usa-se o valor do bloco menos 1. Dessa forma, o bloco de 8 ficaria 7 e assim por diante.
Por último, vamos ver o recurso de LOG
Router(config)# access-list [Número da ACL {1-99 ou 1300 a 1999}] [permit | deny | Remark] [IP de Origem ] [Máscara curinga] [Log]
O recurso de Log ao final da ACL facilita no troubleshooting da rede. Cada vez que um pacote é bloqueado,casa seja uma ACL de bloqueio, ou permitido, caso seja uma ACL para permitir, um LOG será criado. Entretanto, em redes grandes , não é um recurso prático.
Posicionamento da ACL na rede
Fig 2 |
Para facilitar o entendimento, eu sigo um conselho de Geremy Ciora, ele diz em seus ótimos videos de treinamento : "..be the router", ou seja, seja o roteado. Quer dizer, quando você tiver que aplicar uma ACL em um router, se ponha no lugar do router, imagina que seus braços,e talvez pernas, dependendo de quantas interfaces estamos falando, seja as interfaces. Ou seja, tráfego Inbound, tráfego Outbound, detino, origem, podem ser mais fáceis de serem compreendidos.
Quando se diz perto do destino, o destino é você, é seu router, quando se diz origem, origem é o router que lhe enviará o pacote. A idéia do controle de tráfego, colocando-se no lugar do equipamento, é controlar o tráfego que vem de algum lugar em sua direção. Firewalls, por exemplo, inclusive, para quem já conhece IPTABLES pode perceber que existem uma semelhança grande entre suas regras e ACLs, firewalls são configurados para bloquear o tráfego que vem de fora, e não para o tráfego gerado em sua LAN. Não que não seja possível, mas á mais racional é que se queira bloquear o tráfego que vem em direção a você.
Olhando dessa forma, a ORIGEM aqui é um router remoto e o DESTINO seria seu roteador, ou voce, seguindo nossa analogia.
No caso da Figura 2, podemos ver no diagrama o administrador está em R1, ele quer bloquear o tráfego vindo de R3. Se a idéia é por a ACL o mais próximo possível do destino e o destino é R1, então a ACL foi instalada na serial de R1. Essa ACL , sendo padrão, irá ser do tipo:
Router(config)# access-list 1 deny 192.168.10.0 0.0.0.255
Router (config)# access-list permit any
Isso bloqueará toda a rede 192.168.10.X, não importando qual seja seu final,ou seja, se o IP da rede for 192.168.10 será bloqueado. E aqui fica claro do porque uma ACL Padrão não pode ser colocada próximo à Origem do tráfedo. Se você configurar essa ACL na Origem, ou seja, em R3, simplesmente você mata o roteador, ou pelo menos, a interface Fa 0/1 do mesmo.
A segunda linha :
Router (config)# access-list permit any
É nova para nós, mas é fácil de compreender, ela está dizendo para permitir todo o restante do tráfego. Isso é necessário devido a uma particularidade que ainda não mencionamos. "Toda ACL possui uma regra no final da mesma que bloqueia todo o tráfego". Ou seja, é implícito, não precisa ser configurada. Imagina que quando você configurou uma ACL, haverá uma linha do tipo no final:
Router(config)# access-list [Número da ACL] deny any.
Ou seja, caso o pacote chegue a interface do router, seja submetido a todas as regras da ACL presente, e não coincida com nenhuma delas, ele cairá nessa última regra e será descartado ou permitido. O que implica em dizer que, se você configurar sua ACL com deny, você, obrigatoriamente, terá que por uma instrução permit no final, ou todo o tráfego será bloqueado.
Outra regra importante:
"As regras da ACL são lidas pelo router de cima para baixo, ou seja, se o pacote coincidir com a primeira regra, ele será roteado e não será olhado as demais regras"
Espero que tenha ficado bem claro esses conceitos porque eles são muito importantes para se compreender as ACLs como um todo.
Vamos aprender como apliar a ACL na interface do roteador e iniciarmos com ACLs Extended.
Para aplicarmos essa ACL, devemos proceder assim:
Router(config)# interface serial 0/0/1
Router(config-if)# ip access-group 1 in
Pronto, já temos uma ACL funcionando na interface serial 0/0/1 no sentido entrada.
Extended ACLs
Praticamente os mesmo conceitos relacionados as ACLs Standard se aplicam as ACLs Extended, porem , veremos que essa última possui uma capadidade maior de filtragem.
ACLs Extended possuem a seguinte sintax:
Router(config)# access-list [Numero da ACL { 100 a 1999 ou de 2000 a 2699}] [permit | deny | Remark] [Protocol {TCP,UDP,ICMP,etc}] [IP de origem ] [Mascara Curinga do IP de origem ] [IP de Destino ] [Madcara curinga do IP de Destino ]
Como podemos ver, agora temos mais opções. Temos o campo protocolo e o campo IP de Destino. O campo protoloco pode ser a porta TCP ou UDP ou pode ser o nome do protocolo como, por exemplo, www,icmp,et,) ou pode ser usar a palavra chave IP que corresponde a todos os protocolos, por razões óbvias, tendo em vista que o IP 'carrega' todos os demais.
Vamos ver um exmplo para facilitar:
Router(config)# access-list 101 permit tcp any host 192.168.0.1 eq www.
Router(config)# access-list 101 permit ip any any
Nesse exemplo, estamos permitindo o trafégo de qualquer Origem, any, para o Destino 192.168.0.1 na porta www ou 80.
Novamente aqui estamos considerando a regra do 'deny any ' no final da ACL, que aqui inclusive seria 'deny any any' , já que em ACL Extended deve ser definido origem e o destino do tráfego.
Sem a linha permit ip any any, apenas o trafégo www iria passar pelo router, bloqueando todo o resto do tráfego.
Essa regra mostra a flexibilidade das ACLs Extended.
O processo de aplicar as ACL Extended é o mesmo nas Standard:
Router(config)# interface Serial 0/0/1
Router(config-if)# ip access-group 101 out
No caso em questão, aplicamos no sentido de saída do tráfego.
Um aplicação muito útil para ACLs,podendo ser Standard ou Extended, apesar de que se vê mais com Standard, seria para permitir acesso Telnet em um router por apenas um IP ou rede específicos.
Router(config)# access-list 10 permit host 192.168.0.1
Router(config)#access-list 10 deny any
Router(config)#line vty 0 4
Router(config-line)#password cisco
Router(config-line)# login
Router(config-line)# access-class 10 in
Pronto. Com essa configuração, apenas o host 192.168.0.1 terá acesso pelas linhas vty,ou seja, Telnet do
router.
Vamos apresentar um LAB com algumas situações sobre ACLs:
Figura 3 |
Vamos usar ACL Extended. Baseado no que vimos vamos colocá-la o mais próximo da Origem do tráfego possível. No nosso caso será a interface Fa 0/0 do Router Branch.
Agindo dessa forma, evitamos que as tentativas de acesso ao servidor HTTP atravesse toda a rede para acabar sendo bloqueado em HQ.
Vamos lá:
branch(config)#access-list 100 deny tcp host 172.16.0.3 host 192.168.0.2 eq www
branch(config)#access-list 100 permit ip any any
branch(config)#int fa 0/0
branch(config-if)#ip access-g
branch(config-if)#ip access-group 100 in
branch(config-if)#exit
Testando:
Em PC2:
Figura 4 |
E aqui nosso PC 1:
Figura 5 |
Subscribe to:
Posts (Atom)