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.

6 comentários:

  1. Parabéns, estava revendo minha anotações sobre esse assunto ontem quando de repente me deparo com esse belo artigo !!!

    ResponderExcluir
  2. Olha, o Senhor é um grande Instrutor.... Sucessos

    ResponderExcluir
  3. Parabéns professor. Excelente explicação.

    ResponderExcluir
  4. Parabéns, ótimo conteúdo e muito bem explicado.

    ResponderExcluir
  5. Igor de Albuquerque6 de outubro de 2016 22:45

    Muito bem explicado compreendi com mais facilidade.

    ResponderExcluir