terça-feira, 23 de fevereiro de 2016

Configuração de Multi-SSID no Cisco Aironet via CLI

Olá Pessoal,

Este é mais um artigo sobre a configuração do AP Cisco Aironet através da linha de comando (CLI), dessa vez com o objetivo de listar o processo de configuração de um ambiente de WLAN em que existem múltiplos SSIDs lógicos no(s) mesmo(s) equipamento(s) físico(s). Para demonstrar esse processo, as configurações apresentadas serão baseadas na topologia da figura abaixo. 


Observem que existe um AP fisicamente conectado em modo trunk na interface g0/1 do Switch Catalyst. O AP possui dois SSIDs, cada um associado com sua respectiva VLAN e sub-rede. Um SSID é exclusivo para uso dos funcionários da empresa que têm acesso aos servidores, enquanto que outro é aberto para visitantes terem acesso à Internet. A configuração do switch em que o AP está conectado é simples, sendo necessário apenas setar a interface g0/1 em modo trunk com encapsulamento 802.1q para que seja possível fazer a separação lógica das VLANs 07 (do SSID EMPRESA) e 08 (do SSID VISITANTE).

Switch# configure terminal
Switch(config)# interface g0/1
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk encapsulation dot1q
Switch(config-if)# switchport trunk native vlan 1
Switch(config-if)# switchport trunk allowed vlan 1,7,8
Switch(config-if)# end

A configuração do AP consiste, primeiramente, na criação dos SSIDs e associação de cada um com sua respectiva VLAN. Na sequência informaremos a interface física do rádio 2.4 GHz (interface dot11radio 0) que existem múltiplos SSIDs e definimos o método de autenticação. A configuração é finalizada com a criação de duas sub-interfaces lógicas para cada VLAN. É necessário criar as sub-interfaces lógicas a partir da(s) interface(s) de rádio e também da interface ethernet, já que existe uma função de bridge responsável pela integração das interfaces físicas do AP.

!--- Configuração dos SSIDs e Associação c/ VLANs
ap# configure terminal
ap(config)# dot11 ssid EMPRESA
ap(config-ssid)# vlan 7
ap(config-ssid)# authentication open
ap(config-ssid)# authentication key-management wpa version 2
ap(config-ssid)# wpa-psk ascii PASSWORD1
ap(config-ssid)# mbssid guest-mode
ap(config-ssid)# exit
ap(config)# dot11 ssid VISITANTE
ap(config-ssid)# vlan 8
ap(config-ssid)# authentication open
ap(config-ssid)# authentication key-management wpa version 2
ap(config-ssid)# wpa-psk ascii PASSWORD2
ap(config-ssid)# mbssid guest-mode
ap(config-ssid)# exit

!-- Configuração da Interface do Rádio 2.4 GHz 
ap(config)# interface dot11radio 0
ap(config-if)# mbssid
ap(config-if)# channel 6
ap(config-if)# encryption vlan 7 mode ciphers aes-ccm
ap(config-if)# encryption vlan 8 mode ciphers aes-ccm
ap(config-if)# ssid EMPRESA
ap(config-if)# ssid VISITANTE
ap(config-if)# no shut
ap(config-if)# exit

!-- Configuração das Sub-Interfaces Lógicas dos Múltiplos SSIDs
ap(config)# interface dot11radio0.7
ap(config-subif)# encapsulation dot1q 7
ap(config-subif)# bridge-group 7
ap(config-subif)# exit
ap(config)# interface dot11radio0.8
ap(config-subif)# encapsulation dot1q 8
ap(config-subif)# bridge-group 8
ap(config-subif)# exit

!-- Configuração da Interface Ethernet Conectada no Switch
ap(config)# interface g0
ap(config-if)# no shutdown
ap(config)# interface g0.7
ap(config-subif)# encapsulation dot1q 7
ap(config-subif)# bridge-group 7
ap(config-subif)# exit
ap(config)# interface g0.8
ap(config-subif)# encapsulation dot1q 8
ap(config-subif)# bridge-group 8
ap(config-subif)# exit

!-- Integrating Routing and Bridging
ap(config)# bridge irb
ap(config)# bridge 1 route ip
ap(config)# end

Ao final foi necessário ativar o recurso Integrated Routing and Bridging (IRB) porque as funções de bridge (camada 2) e de roteamento (camada 3) utilizam protocolos diferentes. No caso dos APs que são dispositivos da camada de enlace, todas as interfaces que fazem parte de um mesmo grupo bridge-group possuem um endereço IP coletivo em alguma interface roteável. Por exemplo, ambas as sub-interfaces dot11radio0.7 e fastethernet0.7 fazem parte do mesmo grupo e estão associadas a uma VLAN que, por sua vez, está vinculada a uma interface virtual do switch multi-layer (SVI) que é roteável. No caso desse cenário, trata-se da interface VLAN7 (SVI) que possui um IP na sub-rede 192.168.7.0/24 e que é utilizado pelas demais máquinas como gateway. Um destaque importante é que o acesso de gerência ao AP acontece através da interface BVI1 que faz comunicação com o switch através da VLAN 1 (nativa), sendo possível alterar essa VLAN.

Façam seus testes...

Samuel.

sexta-feira, 19 de fevereiro de 2016

Configuração de Filtro de MAC no Cisco Aironet via CLI

Olá Pessoal,

Há alguns dias escrevi um artigo intitulado "Configuração Básica do AP Cisco Aironet 1600 via CLI", oportunidade em que apresentei um roteiro de como realizar algumas das configurações básicas mais importantes no Aironet através da interface de linha de comando (CLI). Neste artigo vou aproveitar o "gancho" do anterior para mostrar ao leitor como aplicar regras de controle de acesso por MAC (ACL) para filtrar (permitir/negar) o acesso de máquinas na rede sem fio, também através da CLI. 

Às vezes algumas pessoas não entendem o motivo de estudar detalhadamente a linha de comando, já que em primeiro momento a interface gráfica (GUI) parece ser mais intuitiva e simples de aplicar as configurações desejadas. Uma primeira justificativa favorável à linha de comando é que ela é universal em todas as caixas que executam o sistema operacional IOS da Cisco, o que quer dizer que os comandos utilizados para realizar as configurações são sempre os mesmos independente do modelo específico do equipamento. Por outro lado, o mesmo nem sempre é verdade nas interfaces gráficas que frequentemente são próprias de cada modelo específico de equipamento. 

Ainda que essa justificativa tenha um peso relevante, ainda assim há aqueles que achem que o esforço de busca das opções nas diferentes interfaces gráficas compense o tempo maior da curva de aprendizado do modo de operação da linha de comando. Ocorre que é comum as interfaces gráficas não explorarem o potencial de todos os recursos que podem ser configurados nos equipamentos de rede, o que faz com que alguns recursos somente possam ser configurados via linha de comando. 

No caso específico da configuração de listas de controle de acesso (ACL) no AP Cisco Aironet 1600, através da interface gráfica somente é possível filtrar 43 endereços MAC, enquanto que através da linha de comando é possível filtrar 2048 endereços MAC, uma diferença significativa em favor da CLI! Para exemplificar essa configuração, vou utilizar como base um cenário bem simples (figura) em que temos apenas um AP responsável por um único SSID denominado NOME (associado à VLAN 37). 


As ACLs para fins de filtragem de endereços físicos (MAC) são identificadas através do intervalo de números que varia de 700 até 799 ou 1100 até 1199. Ao criar uma ACL com numeração nesse intervalo, o sistema IOS aceitará a inserção de endereços MAC na sua sintaxe (no formato dddd.dddd.dddd). Criaremos a ACL 777 com permissão apenas dos endereços físicos especificados, usando a máscara 0000.0000.0000 que trava todas as posições. No final da ACL é importante negar todos os demais endereços, o que pode ser feito através do endereço 0000.0000.0000 com máscara ffff.ffff.ffff (any). Na sequência a ACL é aplicada para todo o AP de maneira global (destaque em amarelo), de forma que os filtros serão válidos para todos os SSIDs que existam configurados.

ap> enable
ap# configure terminal
ap(config)# access-list 777 permit 0040.96aa.1111 0000.0000.0000
ap(config)# access-list 777 permit 0040.96bb.2222 0000.0000.0000
ap(config)# access-list 777 permit 0040.96cc.3333 0000.0000.0000
ap(config)# access-list 777 deny   0000.0000.0000 ffff.ffff.ffff
ap(config)# dot11 association mac-list 777
ap(config)# end

Caso o leitor queira mais granularidade de maneira que seja possível configurar um determinado filtro para apenas um SSID específico, ao invés de todos os SSIDs do AP de maneira global, é possível setar a aplicação das regras apenas na interface dot11radio (física ou sub-interface) responsável pelo SSID. Nesse caso as configurações seriam realizadas da seguinte maneira:

ap> enable
ap# configure terminal
ap(config)# access-list 777 permit 0040.96aa.1111 0000.0000.0000
ap(config)# access-list 777 permit 0040.96bb.2222 0000.0000.0000
ap(config)# access-list 777 permit 0040.96cc.3333 0000.0000.0000
ap(config)# access-list 777 deny   0000.0000.0000 ffff.ffff.ffff
ap(config)# interface dot11radio0.37
ap(config-subif)# bridge-group 37 input-address-list 777
ap(config-subif)# end

Façam seus testes...

Samuel.

terça-feira, 9 de fevereiro de 2016

Configuração Básica do AP Cisco Aironet 1600 via CLI

Olá Pessoal,

A família Aironet de Access Points (AP) da Cisco provê uma solução de rede sem fio (WLAN) que combina mobilidade e flexibilidade em ambientes corporativos de qualquer porte, permitindo seu gerenciamento através do tradicional sistema operacional IOS amplamente disseminado em switches e roteadores. Além disso, há diversos modelos que possuem diferentes características. Por exemplo, há APs que operam de maneira autônoma (identificados pela palavra SAP no código do produto) ou através de controladoras (indicados pela palavra CAP no código do produto), além de APs que possuem apenas antenas embutidas internamente (identificados pela letra "i" no código do produto) ou que suportam a inserção de antenas externas para ambientes mais ruidosos (identificados pela letra "e" no código do produto).

A figura abaixo traz uma síntese dos modelos 1600/2600/3600 que são bastante comuns no mercado (suportam o padrão 802.11n), lembrando que já existem os modelos 1700/2700/3700 e 1850 que são baseados no recente padrão 802.11ac. Cabe destacar que o Aironet 3600 permite o acoplamento de um módulo compatível com o recente padrão 802.11ac (clique no link para ler mais sobre o padrão ac). 

Fonte: Cisco Systems (www.cisco.com)

A maneira mais simples de configurar um AP Aironet que esteja operando em modo autônomo (standalone) é através da interface web, ilustrada abaixo. No entanto, é importante destacar que o equipamento possui o sistema operacional IOS e pode ser totalmente configurado através da interface de linha de comando (CLI). Não há muito a detalhar em relação à interface web, visto que ela tende a ser bem intuitiva por si só. Basicamente ela é composta de um menu superior com as opções principais, além de um menu lateral (à esquerda) com as sub-opções de cada aba que compõe do menu superior. 

Fonte: Cisco Systems (www.cisco.com)

Quando o AP é conectado na infraestrutura da rede cabeada através da sua interface Ethernet, automaticamente é realizada uma operação de bridge entre as redes LAN (cabeada) e WLAN (wireless) através de uma interface virtual denominada Bridge Virtual Interface (BVI). Dessa forma, ao invés de existirem IPs separados para as interfaces Ethernet e de Rádio (Dot11Radio), o mesmo endereço representa o AP na rede. O procedimento para configurar um IP no AP é listado abaixo, destacando que deve ser realizado na interface virtual BVI para que seja possível acessar o dispositivo remotamente.

ap> enable
ap# configure terminal
ap(config)# hostname AP1600
AP1600(config)# interface BVI1
AP1600(config-if)# ip address 192.168.0.101 255.255.255.0
AP1600(config-if)# ipv6 address 2001:db8:cafe::101/64

Outra aspecto básico das configurações iniciais é a autenticação/autorização (AAA) de usuários que terão acesso ao dispositivo AP. Considerando que estamos configurando um Aironet 1600 em ambiente de pequeno porte que não possui nenhum servidor RADIUS ou TACACS+ especificamente para autenticação centralizada, então podemos habilitar uma base local de usuários através das linhas abaixo, oportunidade em que criaremos o usuário ADMIN com privilégios administrativos (nível 15). Também ativaremos o protocolo SSH no segundo bloco para acesso remoto seguro:

AP1600# configure terminal
AP1600(config)# aaa new-model
AP1600(config)# aaa authentication login default local
AP1600(config)# aaa authorization exec default local
AP1600(config)# aaa authorization network default local
AP1600(config)# aaa authentication enable default none
AP1600(config)# username ADMIN privilege 15 secret SENHA

AP1600(config)# ip domain-name nome.com.br
AP1600(config)# crypto key generate rsa
AP1600(config)# ip ssh version 2
AP1600(config)# no ip ssh version 1
AP1600(config)# ip ssh timie-out 30
AP1600(config)# ip ssh authentication retries 3

Outras configurações básicas que faremos na sequência é ativar o cache de ARP (linha 02) para reduzir o tráfego na WLAN para que o AP evite enviar requisições ARP para os clientes wireless que já estejam associados e, portanto, tenham seus endereços MAC conhecidos pelo AP. Também configuraremos o relógio do AP através do SNTP que possui apenas um cliente NTP, apontando para os servidores NTP públicos do NTP.br (linhas 03 e 04). Por fim, informaremos um servidor DNS público qualquer para resolver nomes na Internet (linha 05). Estou partindo do princípio de que não existem servidores NTP ou DNS próprios na empresa, o que explica o uso dos serviços públicos.

01. AP1600# configure terminal
02. AP1600(config)# dot11 arp-cache
03. AP1600(config)# sntp server 200.160.7.186
04. AP1600(config)# sntp broadcast client
05. AP1600(config)# ip name-server 208.67.222.222 208.67.220.220

Antes de dar continuidade às configurações básicas da WLAN em um AP Aironet, é fundamental compreender conceitualmente e, somente então, defnir o papel que o dispositivo irá desempenhar na rede sem fio. De maneira simplista, um AP Aironet pode ser configurado nos seguintes modos de operação:



Modo: Ponto de Acesso (Access Point)

A maneira mais comum de operação de um AP é conectá-lo diretamente à rede cabeada e prover uma célula denominada BSS (Basic Service Setpara conexão dos usuários de dispositivos sem fio. Também é possível, embora pouco interessante, o AP ser instalado exclusivamente para prover a BSS sem qualquer conexão física com a infraestrutura.

Em ambientes maiores uma WLAN pode ter vários APs conectados através de um sistema de distribuição para aumentar a ára de cobertura. Assim os usuários podem se mover na área de cobertura dos diversos APs sem perder a conexão, através de um processo denominado roaming. ESS (Extended Service Set) é o conjunto de células BSS com áreas de cobertura com alguma sobreposição para evitar pontos cegos de maneira bastante similar o modelo das redes de telefonia celular. Para evitar interferência as células vizinhas que compõem uma ESS não devem operar em canais adjacentes.

Em síntese, as regras para projetar ambientes ESS são:

1) Deve existir algum grau de sobreposição das células para evitar pontos cegos;
2) Não deve existir sobreposição de canais para evitar interferência.

Fonte: Cisco Systems (www.cisco.com)


Modo: Repetidor (Repeater)

É possível ampliar a área de cobertura de um ambiente através da configuração de um repetidor que recebe e amplifica o sinal antes de retransmití-lo para um AP principal (ou outro repetidor). Embora um repetidor tenha aplicações úteis em redes sem fio, por exemplo no encaminhamento do sinal em caso de obstrução, nem sempre essa é a melhor estratégia.

A maior restrição da repetição de sinal é que o AP e seu(s) repetidor(es) continua(m) sendo uma única BSS maior operando no mesmo canal, exatamente o oposto do que acontece quando projetamos uma ESS com células menores para diminuir a quantidade de usuários pendurados na célula e melhorar o desempenho. Outro ponto negativo é que aqueles clientes conectados atrás de um repetidor terão maior latência na comunicação até que seu sinal possa chegar no AP principal conectado à infraestrutura cabeada.

Fonte: Cisco Systems (www.cisco.com)


Modo: Ponte (Bridge)

Os APs também podem ser configurados como ponte, de maneira que dois APs estabelecem um link wireless ponto-a-ponto para passagem de tráfego entre dois sites. Nesse caso, um AP é configurado como raíz (unidade principal) e outro é associado a ele como cliente.

Também é possível criar uma ponte entre múltiplos APs, de maneira que vários APs clientes (non-root) estabelecem um link wireless ponto-multiponto com um AP principal (root). Cabe observar, no entanto, que em topologias ponto-multiponto a vazão é reduzida em função da quantidade de APs clientes associados ao raíz. Por exemplo, em uma WLAN 802.11g que opera nominalmente a 54Mbps, a vazão máxima é cerca de 25Mbps em um link ponto-a-ponto, enquanto que com 3 APs ligados de maneira ponto-multiponto essa vazão é reduzida para cerca de 12,5Mbps.

Fonte: Cisco Systems (www.cisco.com)


Voltando aos procedimentos básicos de configuração de um Aironet, levando em consideração que a segunda geração de APs opera em dualband para suportar o padrão 802.11n, cada antena é identificada através de sua própria interface. O rádio 2.4GHz é configurado através da interface Dot11Radio0, enquanto que o rádio 5GHz é configurado através da interface Dot11Radio1

A configuração abaixo cria um SSID denominado NOME, sendo que haverá anúncio desse SSID (guest-mode). Observem no destaque em amarelo que foi configurado o papel do AP e que, em caso de queda da interface Ethernet, ele irá desfazer as associações ativas, uma estratégia interessante para permitir que as estações clientes façam uma nova associação com outro AP que eventualmente esteja disponível nas proximidades. Será utilizado o WPA2 (AES) como mecanismo segurança para que os clientes possam se associar ao AP através de autenticação local. Cabe destacar que um AP suporta até 50 clientes autenticados localmente, sendo capaz de processar 5 autenticações por segundo. Em ambientes maiores é necessário utilizar algum mecanismo mais sofisticado de autenticação centralizada para não comprometer o desempenho do AP, por exemplo servidores RADIUS ou TACACS+.

!-- Configura um SSID
AP1600# configure terminal
AP1600(config)# dot11 ssid NOME
AP1600(config-ssid)# guest-mode
AP1600(config-ssid)# max-associations 20
AP1600(config-ssid)# authentication open
AP1600(config-ssid)# authentication key-management wpa ver 2
AP1600(config-ssid)# wpa-psk ascii PASSWORD
AP1600(config-ssid)# end

!-- Atribui um SSID ao Rádio 2.4GHz e Configura WPA
AP1600# configure terminal
AP1600(config)# interface dot11radio0
AP1600(config-if)# station-role root access-point fallback shutdown
AP1600(config-if)# channel 11
AP1600(config-if)# encryption mode ciphers aes-ccm
AP1600(config-if)# ssid NOME
AP1600(config-if)# no shut
AP1600(config-if)# end

!-- Atribui um SSID ao Rádio 5GHz e Configura WPA
AP1600# configure terminal
AP1600(config)# interface dot11radio1
AP1600(config-if)# encryption mode ciphers aes-ccm
AP1600(config-if)# ssid NOME
AP1600(config-if)# no shut
AP1600(config-if)# end

Façam seus testes...

Samuel.

terça-feira, 2 de fevereiro de 2016

Rotas Locais de Host em Roteadores Cisco

Olá Pessoal,

É comum que muitos ainda não estejam familiarizados com as rotas locais de host (L), uma vez que a inserção desse tipo de rota na tabela de roteamento é relativamente nova, sendo automaticamente inserida a partir da versão 15 do IOS. De maneira bastante objetiva, uma rota local do tipo L nada mais é do que o próprio endereço IP configurado em uma determinada interface de rede diretamente conectada no roteador. A rota local aparece como um endereço /32 no IPv4 e um endereço /128 no IPv6, ou seja, equivale exatamente a um endereço IP, em contraste às demais rotas que equivalem a uma sub-rede.

Até a versão 12 do IOS, cada interface de rede configurada e ativada com um endereço IP qualquer implicava na inserção automática de uma rota diretamente conectada (do tipo C) equivalente ao prefixo da sub-rede na qual o endereço pertencia. Por exemplo, se a interface f0/1 fosse configurada com o endereço 203.0.113.1/30, isso implicaria na inserção automática de uma rota diretamente conectada (C) associada com a rede 203.0.113.0/30 através dessa interface f0/1, conforme pode ser observado na figura abaixo.


Ocorre que a partir do IOS 15, a configuração de uma interface implica na inserção da rota diretamente conectada (C) associada ao prefixo da sub-rede e também de outra rota local (L) associada com o próprio endereço IP configurado na interface, ambas com distância administrativa (AD) igual a 0. A diferença entre essas duas rotas é que as redes diretamente conectadas são redistribuídas entre protocolos de roteamento, enquanto que as rotas locais não são redistribuídas porque interessam apenas localmente. Por exemplo, se a interface g0/1 for configurada com o endereço 203.0.113.1/30, isso implicará na inserção automática de uma rota diretamente conectada (C) associada com a rede 203.0.113.0/30 através dessa interface g0/1, além de outra rota local (L) associada com o endereço de host 203.0.113.1/32 configurado na própria interface g0/1, conforme observado na figura abaixo.


No contexto específico do IPv6, diferente do IPv4, as rotas locais sempre existiram, algo que alguns já devem ter reparado há algum tempo. A propósito, cabe destacar que as tabelas de roteamento IPv6, independente de interfaces configuradas, automaticamente contém a rota local FF00::/8 para assegurar as funcionalidades de multicast.


Com as rotas locais fica mais fácil observar os endereços configurados nas interfaces do roteador através da própria tabela de roteamento, sem ter que utilizar outros comandos de visualização das configurações das interfaces. Na realidade, o objetivo técnico por trás da instalação automática das rotas locais nas tabelas de roteamento a partir do IOS 15 é otimizar o encaminhamento CEF de pacotes que sejam destinados a alguma das interfaces do próprio roteador. 

Façam seus testes...

Samuel.

segunda-feira, 25 de janeiro de 2016

Instalação do GNS3 1.4.0 no Ubuntu via Launchpad

Olá Pessoal.

Escrevo para informá-los que agora há pouco atualizei o repositório do blog, na aba "Downloads & Laboratórios", com a última versão do GNS3 1.4.0 para Micosoft Windows (64 bits) e Mac OS X. Os instaladores têm aproximadamente 40MB e estão disponíveis apenas para plataformas 64 bits.



Já para os usuários do Linux, especificamente do Ubuntu, a boa notícia é que agora não há mais necessidade de fazer o procedimento de instalação manual porque a nova versão foi adicionada nos repositórios e o software pode ser facilmente instalado/atualizado através de um PPA (Personal Package Archive) no Launchpad, bastando o usuário utilizar as seguintes linhas de comando:

sudo add-apt-repository ppa:gns3/ppa
sudo apt-get update
sudo apt-get install gns3-gui

Para adicionar o suporte ao IOU:

sudo dpkg --add-architecture i386
sudo apt-get install gns3-iou

Aqueles interessados em instalar o GNS3 em outras distribuições Linux podem consultar a documentação oficial disponibilizada na plataforma GNS3 Jungle (www.gns3.com). Façam seus testes...

Samuel.

segunda-feira, 18 de janeiro de 2016

Palestra na Campus Party Brasil (CPBR9)

Olá Pessoal,

Nos dias 26 a 31 de janeiro ocorrerá a nona edição da Campus Party Brasil (CPBR9), o maior evento do mundo em tecnologia, principalmente nas áreas de inovação, criatividade, ciência, empreendedorismo e entretenimento digital. Em 2016 o evento será realizado no Centro de Exposição Anhembi e, assim como nos anos anteriores, haverá um palco com temática Segurança & Redes sob curadoria do NIC.br.




Pelo terceiro ano consecutivo, a convite dos colegas do NIC.br, fui escalado para participar de uma palestra e para ministrar um workshop, ambos no dia 29/jan (sexta-feira), oportunidade em que falarei sobre certificações da Cisco. A palestra ocorrerá no período da manhã e será uma mesa redonda sobre certificações em conjunto com outros especialistas em roteadores. Cada palestrante terá 15 minutos para falar da importância da sua certificação no mercado de trabalho. Como fazer uma certificação e se preparar para os exames serão assuntos abordados na discussão. No período da tarde serão realizados workshops em espaço reservado com bancadas largas, pontos de rede e tomadas para 80 alunos, na sua maioria jovens curiosos. Abaixo trago alguns detalhes do workshop que irei ministrar:

Título: Roteamento Dinâmico e IPv6 no Currículo Cisco® CCNA® 

Descrição da Atividade:
Está interessado em começar seus estudos para ser aprovado no exame CCNA, uma das certificações mais reconhecidas da área de redes? Além disso, que tal aprender algumas práticas relacionadas ao "novo" protocolo IPv6? Pois bem, essa é a oportunidade de participar de um workshop que consiste na resolução de um dos laboratórios do livro "Laboratórios de Tecnologias Cisco em Infraestrutura de Redes", de autoria do palestrante, com foco na configuração de roteamento IPv6 em roteadores Cisco. A propósito, alguns participantes do workshop serão premiados com um dos livros do autor! :-)

Link p/ Inscrição no Workshop: http://goo.gl/bY3dzF

Espero vocês campuseiros no evento!

Samuel.

quinta-feira, 14 de janeiro de 2016

Arquitetura e Hierarquia de Memórias em Roteadores Cisco

Olá Pessoal,

Um tópico fundamental para aqueles que estão estudando para a certificação CCNA é compreender os fundamentos da arquitetura de um roteador Cisco. Um roteador nada mais é do que um computador especializado em executar funções de rede, por isso ele possui vários componentes que são comuns a qualquer sistema de computação. A figura abaixo traz um esquemático geral da arquitetura de um roteador Cisco onde o leitor pode observar seus componentes principais. Cabe destacar que, obviamente, trata-se de um esquemático generalista comum a boa parte dos roteadores Cisco, mas é natural que cada equipamento tenha sua arquitetura específica com particularidades.


Como em qualquer sistema de computação, seu componente principal é a CPU. Diferente de sistemas de computação tradicionais, os roteadores são caixas especializadas que devem ser eficazes em desempenhar apenas algumas tarefas específicas, motivo pelo qual é comum que os processadores sejam do tipo RISC. Exemplos de processadores utilizados pela Cisco são MIPS e Motorola PowerPC nos roteadores atuais, além de Motorola 68030 e Orion/R4600 em equipamentos mais antigos. O antigo roteador 2621, por exemplo, utiliza um processador Motorola PowerQUICC MPC860. O processador suporta a execução das tarefas do sistema operacional IOS, o que inclui as decisões de comutação e roteamento de pacotes, manutenção das tabelas de roteamento, etc. Também podem existir outros co-processadores no equipamento, principalmente para executar funções de criptografia que consomem bastante recurso, como acontece nos roteadores da família ISR G2 (1900, 2900 e 3900). 

Obs.: Para aqueles que não estão lembrados dos estudos no começo da graduação ou mesmo de cursos técnicos, processadores do tipo RISC (Reduced Instruction Set Computing) trabalham com um conjunto mínimo de instruções otimizadas, em contraste aos tradicionais processadores CISC que trabalham com um conjunto complexo de instruções versáteis. Essa abordagem simplificada do conjunto mínimo de instruções é bastante eficiente em termos de desempenho, desde que o equipamento seja desenvolvido para executar tarefas bem específicas. 

Outro componente fundamental é a memória, sendo que, na realidade, os roteadores Cisco não possuem uma única memória, mas uma composição de diferentes tipos de memórias, cada uma idealizada para um fim específico na arquitetura do sistema. A hierarquia de memórias adotada nos roteadores é um dos assuntos que mais gera dúvida nos alunos, mas compreendê-la é importante para operar a caixa e configurar o sistema IOS. Para organizar melhor esse assunto, abaixo trago uma síntese de cada uma das memórias e, na sequência, trago uma tabela com o resumo dos quatro tipos de memórias associadas com os respectivos conteúdos que armazenam.


  • ROM - Trata-se de uma pequena memória somente leitura, soldada na placa mãe, que armazena o inicializador do sistema (bootloader), é responsável pelo diagnóstico inicial do hardware (POST) e possui uma versão minimalista do IOS (ROMmon). Muitas vezes esse conjunto de ferramentas de inicialização é chamado de bootstrap;
  • Flash - É uma memória não volátil (persistente) utilizada para armazenar a(s) imagem(ns) comprimida(s) do sistema operacional IOS, além de outros arquivos de sistema. Essa memória normalmente pode ser expandida e/ou pode ser removível em formato de cartão;
  • NVRAM - Trata-se de uma memória rápida, pequena e não volátil, daí o nome Non-Volatile RAM (NVRAM), que é responsável por armazenar o arquivo de configuração mais importante de qualquer roteador Cisco (startup-config). É nesse arquivo que ficam armazenadas todas as configurações que serão inicializadas quando o roteador é ligado. A NVRAM também armazena a config-register, um registrador que sinaliza como a caixa deve se comportar durante o boot, algo útil, por exemplo, para realizar a recuperação de senhas. Uma observação é que nem todos os modelos de roteadores possuem uma NVRAM específica, sendo que alguns armazenam o arquivo de inicialização em uma partição da flash;
  • DRAM - A DRAM é uma memória volátil de alto desempenho, ou seja, seu conteúdo é perdido sempre que a caixa é desligada/reiniciada por qualquer motivo. È a mesma memória tradicionalmente utilizada em PCs para armazenar aplicações e dados. Em roteadores Cisco essa memória é utilizada para armazenar a imagem descomprimida do IOS em execução, todas as tabelas de roteamento e complementares, os buffers de pacotes, além do arquivo com as configurações vigentes denominado running-config


As informações da quantidade de memória que um roteador possui podem ser facilmente exibidas através do comando "show version" no IOS. Reparem os destaques em amarelo da figura abaixo para identificar as memórias DRAM, NVRAM e Flash. A DRAM é dividida em dois números que devem ser somados porque essa memória é logicamente separada em dois espaços, um reservado para dados do processador no plano de controle e outro compartilhado para dados  de entrada/saída. A NVRAM é suficientemente pequena para armazenar um arquivo de configuração simples com milhares de linhas. A tela abaixo foi extraída de um roteador 1905 com 256MB de DRAM, 256K de NVRAM e 256MB de Flash. 


Finalmente existem as linhas de entrada/saída que permitem interação do mundo externo com o roteador, seja através da porta de console para configuração local, seja através da porta auxiliar para configuração remota ou mesmo através das interfaces de rede para fins de configuração (in-band) e/ou envio e recebimento de tráfego da rede de produção. Nesse ponto cabe destacar que uma característica comum de roteadores Cisco é que eles são caixas modulares, ou seja, é possível adicionar/remover módulos com diferentes tipos de interfaces de rede. Por isso sua arquitetura tem que estar acoplada com barramentos (slots) que permitam a inserção de novos módulos para garantir essa flexibilidade.

A importância de cada um desses componentes para o devido funcionamento do sistema faz mais sentido lógico quando entendemos o processo de inicialização de um roteador Cisco. Ao ligar um roteador, o bootstrap armazenado na memória ROM é responsável por fazer um teste inicial para diagnosticar o bom funcionamento de todo o hardware, denominado Power-On Self Test (POST). Se o hardware estiver íntegro e foi inicializado com sucesso, então o bootstrap observa a informação do registrador de configuração para determinar suas próximas ações, sendo que o config-register padrão é igual a 0x2102 e instrui o roteador a buscar a imagem do IOS na memória flash para, então, carregar o arquivo de configuração inicial (startup-config) da NVRAM.  

Vimos que a memória flash é responsável por armazenar a imagem comprimida do sistema operacional IOS. Ao localizar a imagem comprimida, o roteador faz a descompressão do IOS na memória DRAM que possui melhor desempenho e, então, o sistema passa a ser executado a partir dessa memória. Esse processo demora um pouco e pode ser observado quando iniciamos o roteador e somos deparados com uma sequência de caracteres ###. A partir deste ponto o usuário é deparado com o prompt do IOS e todas as configurações executadas passam a ser salvas no arquivo de configuração corrente, ou seja, na running-config armazenada na DRAM. 



A figura acima traz um diagrama simplificado com as principais etapas que ocorrem durante o processo de boot de um roteador Cisco. A princípio pode parecer bastante informação para aqueles que ainda estão começando a estudar para o exame CCNA, mas esse conteúdo é fundamental para qualquer profissional que queira construir uma carreira em soluções Cisco. Bons estudos...

Samuel.