Uma parte importante dos exames para obtenção dos certificados CCNA ou CCNP são as questões práticas, também como conhecidas como hands-on simulations. Para a maioria das outras questões dos exames, podem-se obter todas as repostas com base em material impresso, disponível em livros ou mesmo na excelente documentação disponibilizada Cisco. Mas como responder bem às questões práticas? Em última análise, como obter proficiência no uso do IOS dos roteadores e switches Cisco? Para profissionais que desejam certificar-se, mas que já trabalham em seu dia a dia com roteadores e switches Cisco, a familiaridade com os comandos do IOS não é problema. Entretanto, testar configurações ou fazer experiências num ambiente de produção pode ser muito complicado ou, na maioria dos casos, inviável. Para candidatos de primeira viagem, que nunca tiveram acesso à interface de um roteador, as opções disponíveis são muito dispendiosas, além de disponibilizarem emulação do IOS à nível de software, o que limita em muito a gama de comandos disponíveis e conseqüentemente, o aprendizado do candidato. Estes mesmos softwares, oferecem também poucas opções a profissionais mais experientes, que muitas vezes desejam fazer configurações além das que o produto disponibiliza. Fica claro que os produtos comerciais disponíveis não atendem a contento ambos os grupos: profissionais experientes que desejam ter a possibilidade de efetuar configurações avançadas, bem como estudantes que precisam ter acesso a uma interface o mais semelhante ao IOS quanto possível, conservando a facilidade de configuração e customização do produto. Fica a pergunta: existe algum software no mercado que atenda a estas necessidades? A resposta é: sim, existe. O segundo questionamento surge naturalmente em decorrência da resposta: qual seria o custo para aquisição de tal produto? A resposta é: nenhum custo.
Dynamips É o software que possibilita a emulação em PC do IOS da Cisco. Em outras palavras, o Dynamips permite ao IOS da Cisco que veja o PC (quase) exatamente como o hardware de um roteador. Foi criado e ainda é mantido por Christophe Fillot. O Dynamips funciona tal qual um hypervisor, gerenciando várias instâncias de roteadores virtuais. Desta forma é possível executar várias emulações simultâneas, independentes e intercomunicáveis entre si. As plataformas Cisco atualmente suportadas pelo Dynamips são a 7200, 3600, 3700 e 2600. Também são suportados uma série de adaptadores de porta, inclusive interfaces GigabitEthernet e ATM (no caso da série 7200). Além da comunicação de rede entre as diversas instâncias executas, é possível até mesmo comunicar uma ou mais instâncias com o restante da LAN, atribuindo um endereço válido à um adaptador de porta Giga/Fast Ethernet. Assim, é possível acessar uma instância rodando sob o hypervisor tal qual se acessa um roteador na rede. Dynagen O Dynamips é um software completo, que disponibiliza uma série de parâmetros que permitem ótimo controle de tempo de execução das instâncias. Entretanto, digitar uma linha de comando muito grande todas as vezes que for necessária a execução de uma ou mais instâncias, é um processo tedioso e propenso a erros. Com o intuito de facilitar a vida dos usuários do Dynamips, foi criado o Dynagen, que é que um front-end para o Dynamips. O objetivo do Dynagen é facilitar a configuração dos roteadores virtuais, oferecendo uma interface de texto simples para o controle de execução de instâncias executadas sob o hypervisor mode do Dynamips. O Dynagen é escrito em Python, podendo-se executá-lo em quaisquer plataformas nas quais se possam executar um interpretador Python. A facilidade de configuração é alcançada devido ao uso de arquivos de inicialização: ao invés de um grande comando com vários parâmetros, um arquivo de configuração é primeiro editado e depois invocado como argumento na linha de comando. Essa abordagem simplifica bastante o uso do software, além de permitir que o mesmo arquivo possa ser reusado mais facilmente em outras instalações. O Dynagen oferece ao usuário um console com diversos comandos através dos quais instâncias podem ser facilmente inicializadas, listadas, monitoradas e finalizadas. Além de todas as características acima descritas, o Dynagen oferece uma completa API para programação, disponibilizando a outros desenvolvedores uma interface simplificada às chamadas do Dynamips. Requisitos para instalação Para rodar o Dynamips e o Dynagen é necessário: • Uma imagem de um IOS da Cisco, de uma das plataformas suportadas pelo Dynamips; • Se o sistema for FreeBSD/Unix/Linux é necessário instalar o Dynamips e logo em seguida instalar o Dynagen. No caso do FreeBSD, todo o processo é feito de uma vez, utilizando-se os ports(7) ou pkg_add(1); • Se o sistema for Windows ou Mac OS X, é diponibilizado um pacote com todos os programas necessários para a instalação, com o tradicional método NNF; Este documento irá cobrir o processo de instalação somente no FreeBSD 7.0.
Instalação no FreeBSD 7.0 O primeiro passo para instalação do Dynamips e do Dynagen no FreeBSD é a atualização dos ports. Existem vários tutoriais disponíveis pela Web, de forma que este procedimento não será coberto neste documento. Para mais informações consulte o handbook do FreeBSD: http://www.freebsd.org/doc/en/books/handbook/portsnap.html Digite os seguintes comandos: # cd /usr/ports/emulators/dynagen # make && make install Em dado momento, irá surigir uma caixa: “Options for python25 2.5.2_1”. Na maioria dos casos, basta deixar as opções padrão. Se tudo ocorrer como esperado, tanto o Dynagen quanto o Dynamips estarão instalados e prontos para uso. Se for digitado o comando pkg_info, será exibida uma saída semelhante a: # pkg_info dynagen-0.9.3 Text-based front end for Dynamips dynamips-0.2.7 Cisco 3600/7200 Simulator gettext-0.16.1_3 GNU gettext package gmake-3.81_2 GNU version of 'make' utility libelf-0.8.9 A public ELF file access library similar to libelf(3) in So informando os novos pacotes adicionados, dentre outros que já estavam instalados no sistema. Para visualizar os arquivos instalados e suas respectivas localizações, digite o comando “pkg_info –L nome_do_pacote”. E.g.: # pkg_info –L dynagen-0.9.3 Serão exibidos todos os arquivos instalados pelo pacote e seus respectivos diretórios, incluindo executáveis, man pages, arquivos de configuração de exemplos dentre outros. NOTA: a versão do Dynagen dos ports e a versão do site não estão sincronizadas. No momento da escrita deste documento a versão mais estável do Dynagen, disponível no site oficial do projeto, era a 0.10.1, enquanto a versão dos ports era 0.9.3. O mesmo não acontece em relação ao Dynamips, cuja última versão estável há algum tempo já é a 0.2.7. Deve-se criar um diretório onde serão armazenados os arquivos de configuração do Dynagen. Isso acontece porque ao ser inicializado, o Dynamips cria alguns arquivos. Estes arquivos têm por objetivo emular alguns componentes do hardware de um roteador. Por exemplo, uma arquivo *_ram é criado emulando a RAM de um roteador, outro arquivo *_nvram é criado emulando a nvram, um arquivo *_rommon_vars é criado contendo as variáveis que definem o comportamento do roteador (como o roteador realiza o processo de bootsptrap, opções de boot, parâmetros de console) e assim por diante. Estes arquivos são criados no mesmo diretório onde se encontra o arquivo de configuração, passado como parâmetro para o Dynagen e dependendo da configuração do(s) roteador(es), pode(m) consumir um bom espaço. Neste documento, será a partir daqui assumido que tal diretório é o /usr/local/etc/dynagen. Para criá-lo basta digitar: # mkdir –p /usr/local/etc/dynagen Dentro deste diretório será criado um subdiretório para cada arquivo de configuração. E.g # mkdir –p /usr/local/etc/dynagen/ipv6 # lab para configuração ipv6 # mkdir –p /usr/local/etc/dynagen/BGP4 # lab para configuração do BGP4 # mkdir –p /usr/local/etc/dynagen/IS-IS # lab para configuração do IS-IS e assim sucessivamente. Finalmente, dentro de cada um deste(s) subdiretório(s) será criado o arquivo de configuração. Este é o arquivo que será invocado na chamada ao Dynagen. À primeira vista a explicação pode ter soado um tanto quanto complicada, mas à medida que o tutorial for seguindo, tudo ficará mais claro. O último ponto a ser observado é que deve ser designado um diretório onde ficarão armazenadas as imagens dos IOSes. Pode ser qualquer diretório, mas por uma questão de organização, neste documento assume-se que tal diretório é /usr/local/etc/dynagen/images: # mkdir –p /usr/local/etc/dynagen/images Tenha em mente que por trabalhar com imagens de IOSes, será necessária uma imagem suportada pelo Dynamips. Se o leitor possui acesso a algum roteador ou switch Cisco, isso não será empecilho.
Criando um arquivo de configuração Como foi explicado anteriormente, o arquivo de configuração do Dyangen é de onde os parâmetros para o hypervisor são passados: quanto de memória cada instância de cada roteador tem direito, o tipo de memória a ser emulado com base na NPE, o endereço do host onde o Dynamips está rodando e assim por diante. A seguir serão explanados os principais parâmetros de configuração. Ao final será demonstrado um arquivo totalmente configurado e pronto para uso. O nosso arquivo está localizado no diretório /usr/local/etc/dynagen/hub-and-spoke e será usado para configurações em uma topologia hub and spoke. Uma topologia hub and spoke é basicamente uma topologia onde vários roteadores se comunicam entre si através de um único roteador. Em outras palavras: é uma topologia também conhecida como topologia estrela. No exemplo abaixo, todos os roteadores tem interfaces na mesma subnet. O Hub Router comunica-se com outros roteadores (Spoke Routers) através de várias subinterfaces: O arquivo de configuração é o seguinte: # vi /usr/local/etc/dynagen/hub-and-spoke/hub-and-spoke.net autostart = false [localhost] [[7200]] image = \Program Files\Dynamips\images\c7200-Js-Mz-124-3.bin npe = npe-400 ram = 128
[[ROUTER R1]] s1/0 = F1 1
[[ROUTER R2]] s1/0 = F1 2
[[ROUTER R3]] s1/0 = F1 3
[[ROUTER R4]] s1/0 = F1 4
[[FRSW F1]] 1:201 = 2:404 1:301 = 3:215 1:401 = 4:365 Comentários são linhas iniciadas por “#”. Cada parâmetro e seu respectivo significado são comentados abaixo: autostart = false Define se os roteadores serão carregados automaticamente, ou seja, serão bootados, ao inicar o Dynagen. O valor padrão é true. [localhost] Host onde o Dynamips está rodando. É possível rodar ter o Dynamips rodando em uma máquina e o Dynagen rodando em outra. Neste caso, ambos estão em execução no mesmo host. [[7200]] Define o tipo de instância a ser criada, bem como todos os valores padrão que serão adotados para esta instância. Neste caso, trata-se de um modelo 7200. Este valor está intrinsecamente ligado à imagem do IOS disponível. npe = npe-400 ram = 128 O primeiro parâmetro define o tipo de Network Processing Engine (NPE). O NPE é responsável por manter e executar as funções de gerenciamento em um roteador Cisco. Isso inclui o compartilhamento de memória e monitoramento do hardware em conjunto com o controlador de I/O da máquina. O parâmetro ram informa quanto da memória RAM do computador será alocada para cada instância. Agora serão declaradas a instâncias a serem usadas. Cada instância define um roteador. Pense em cada instância como um IOS rodando em memória com parâmetros e configurações independentes. [[ROUTER R1]] Declara a instância de nome R1 do tipo ROUTER. s1/0 = F1 1 Define que a interface s1/0 de R1, será conectada na porta 1 do switch Frame Relay (o qual será declarado posteriormente). As outras definições são semelhantes à primeira, mudando apenas o número da porta no switch Frame Relay onde cada serial será conectada. Frame Relay é um protocolo baseado em comutação de pacotes e seu funcionamento bem como elementos básicos que o compõe é conteúdo da prova 640-802 (CCNA). No caso do Dynamips, vale lembrar que o único tipo de LMI suportado entre o switch virtual e o roteador é somente o tipo ANSI. [[FRSW F1]] 1:201 = 2:404 1:301 = 3:215 1:401 = 4:365 A keyword FRSW declara um switch frame relay identificado pelo nome F1. Os parâmetros a seguir ligam a porta à DLCI do circuito. Sua sintaxe básica é: Porta:dlci = porta:dlci Orientando-se pelo diagrama, tornam-se mais evidentes as configurações: na primeira linha a porta 1 recebe a interface s1/0 do roteador R1, tendo três números de DLCI a ela atribuídos. Em resumo: uma conexão física e várias conexões lógicas, tal qual um switch frame relay real. Na outra ponta, tem-se a porta 2, recebendo a serial s1/0 do router R2. Os números após o símbolo “:”, correspondem às DLCIs a serem utilizadas para formar o VC (Virtual Cirtcuit) nos respectivos roteadores. Os programas necessários já foram instalados, já se tem uma imagem IOS suportada, os diretórios onde os arquivos de configuração e os arquivos criados pelo Dynamips para emulação do hardware ficarão armazenados também já foram criados e, por último, foi editado um arquivo com os principais parâmetros. O próximo passo é executar os programas. Executando o Dynamips e o Dynagen Primeiramente, se o leitor se vale de alguma interface gráfica, abra pelo menos três xterm(1) (ou shell gráfico favorito): o primeiro é onde irá rodar o Dynamips, o segundo é onde irá rodar o Dynagen, e a terceira é de onde se fará o telnet(1) para acesso ao console do roteador virtual. O primeiro a ser executado é sempre o Dynamips, já que é este o programa que faz todo o trabalho pesado: # dynamips –H 7200 Cisco Router Simulation Platform (version 0.2.7-x86) Copyright (c) 2005-2007 Christophe Fillot. Build date: Apr 15 2008 15:06:36
ILT: loaded table "mips64j" from cache. ILT: loaded table "mips64e" from cache. ILT: loaded table "ppc32j" from cache. ILT: loaded table "ppc32e" from cache. Hypervisor TCP control server started (port 7200). NOTA: no diretório atual, serão criados arquivos ilt_*, esses arquivos são pequenos e serão criados toda vez que se inicia o Dynamips. Em seguida vem o Dynagen, que recebe como argumento o caminho para o arquivo de configuração: # dynagen /usr/local/etc/dynagen/hub-and-spoke/hub-and-spoke.net Reading configuration file...
Network successfully started
Dynagen management console for Dynamips
=> Imediatente tem-se acesso a um console, onde os comandos para controle de instâncias dos roteadores podem ser digitados: => ? Documented commands (type help <topic>): ======================================== capture exit help import push resume shell stop ver clear export hist list py save show suspend console filter idlepc no reload send start telnet Digitando-se o comando list, é possível visualizar os roteadores configurados bem como o estado de cada instância: => list Name Type State Server Console R1 7200 stopped localhost:7200 2000 R2 7200 stopped localhost:7200 2001 R3 7200 stopped localhost:7200 2002 R4 7200 stopped localhost:7200 2003 F1 FRSW n/a localhost:7200 n/a O significado de cada coluna é explicado abaixo: Name: nome da instância, conforme indicado após a keyword ROUTER, no arquivo de configuração;
Type: tipo da instância criada, também é indicado no arquivo de configuração;
State: Stopped, parado. Running, em execução;
Server: host e porta onde o servidor Dynamips está rodando;
Console: porta na qual a instância está aceitando conexões. O Dynagen inicia a primeira instância encontrada na porta 2000, a segunda na porta 2001 e assim sucessivamente. Este parâmetro pode ser alterado através da keyword console. O endereço a ser conectado é sempre o endereço no qual o servidor Dynamips está rodando, neste caso, localhost.
Devido à declaração “autostart = false”, todas as instâncias estão inicialmente no estado “Stopped”. Para iniciar uma instância, digite: => start R1 Warining: Starting R1 with no idle-pc value 100-C7200 'R1' started A instância R1 está agora no estado “Running”. Para acessá-la, basta fazer um telnet: # telnet localhost 2000 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. Connected to Dynamips VM "R1" (ID 0, type c7200) - Console port
################################################################ ################################################################ ################################################################ ########################################################### [OK]
Restricted Rights Legend
Use, duplication, or disclosure by the Government is subject to restrictions as set forth in subparagraph (c) of the Commercial Computer Software - Restricted Rights clause at FAR sec. 52.227-19 and subparagraph (c) (1) (ii) of the Rights in Technical Data and Computer Software clause at DFARS sec. 252.227-7013.
cisco Systems, Inc. 170 West Tasman Drive San Jose, California 95134-1706
Cisco IOS Software, 7200 Software (C7200-JS-M), Version 12.4(3), RELEASE SOFTWARE (fc2) Technical Support: http://www.cisco.com/techsupport Copyright (c) 1986-2005 by Cisco Systems, Inc. Compiled Fri 22-Jul-05 09:12 by hqluong Image text-base: 0x6000905C, data-base: 0x6280A000
Port Statistics for unclassified packets is not turned on. Cisco 7206VXR (NPE400) processor (revision A) with 147456K/16384K bytes of memory. Processor board ID 4294967295 R7000 CPU at 150MHz, Implementation 39, Rev 2.1, 256KB L2, 512KB L3 Cache 6 slot VXR midplane, Version 2.1
Last reset from power-on
PCI bus mb0_mb1 (Slots 0, 1, 3 and 5) has a capacity of 600 bandwidth points. Current configuration on bus mb0_mb1 has a total of 200 bandwidth points. This configuration is within the PCI bus capacity and is supported.
PCI bus mb2 (Slots 2, 4, 6) has a capacity of 600 bandwidth points. Current configuration on bus mb2 has a total of 0 bandwidth points This configuration is within the PCI bus capacity and is supported.
Please refer to the following document "Cisco 7200 Series Port Adaptor Hardware Configuration Guidelines" on CCO <www.cisco.com>, for c7200 bandwidth points oversubscription/usage guidelines.
1 FastEthernet interface 8 Serial interfaces 125K bytes of NVRAM.
65536K bytes of ATA PCMCIA card at slot 0 (Sector size 512 bytes). 8192K bytes of Flash internal SIMM (Sector size 256K).
--- System Configuration Dialog ---
Would you like to enter the initial configuration dialog? [yes/no]: Neste ponto, já se tem acesso a um console virtual de um roteador Cisco, exatamente como é se fosse feita uma conexão via porta console do roteador. Podem ser iniciadas outras instâncias , no nosso exemplo, R2, R3 e R4. Estas instâncias são independentes entre si, mas sempre obedecem a topologia indicada nos arquivos de configuração. Tópicos adicionais Existe uma série de outros parâmetros que podem ser aplicados, tanto aos roteadores virtuais, quanto ao Dynamips ou aos comandos do console do Dynagen. Pode-se trabalhar com imagens do PIX, efetuar configurações dinâmicas, aplicar filtros a uma determinada interface, dentre outros. Recomenda-se também a leitura da seção"Calculating Idle-PC values", no tutorial oficial do Dynagen. Para a documentação completa a respeito do assunto, bem como fontes de consulta, seguem abaixo as principais referências: Página oficial do Dynamips: http://www.ipflow.utc.fr/index.php/Cisco_7200_Simulator
Página Oficial do Dynagen: http://dynagen.org/
Tutorial oficial do Dynagen: http://dynagen.org/tutorial.htm
Blog do Christophe Fillot: http://www.ipflow.utc.fr/blog/ |