FUG-BR / Grupo Brasileiro de Usuarios de FreeBSD - Instalando e configurando Dynamips e Dynagen no FreeBSD 7.0
 
23.04  
Inicio arrow Artigos arrow Instalando e configurando Dynamips e Dynagen no FreeBSD 7.0
Principal
Inicio
Noticias
Artigos
Regras da Lista
Assinar a Lista
Histrico da Lista
Forum
Keyserver
PC-BSD: Artigos
PC-BSD: Notcias
Galeria de Imagens
Contador Usurios FUG
FUGs Estaduais
Downloads
Enquetes
FAQ
Resumo do Site
Links
Pesquisar
Contato
Sobre a FUG-BR
RSS / Twitter
-
DOC-BR (FUG BR)
Introduo
Projeto DOC-BR
Handbook
FAQ Oficial
-
+ Noticias
Alertas de Seguranca
Alertas em Ports
BSD em Geral
DaemonNews (Ingles)
MyFreeBSD
Todas Categorias
-
Login
Nome de Usurio

Senha

Lembrar login
Esqueceu sua senha?
Sem conta? Crie uma


Instalando e configurando Dynamips e Dynagen no FreeBSD 7.0 PDF Imprimir E-mail
Por Fbio F Mendes   
17/04/2008

     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/
 

Comentrios
Excelente artigo
Por Mrcio Priess em 06/05/2008 09:13:49
Parabns o artigo foi muito esclarecedor.
Por diego em 13/03/2009 22:49:57
Parabens, ta muito bom o artigo :)
jpggOoPM
Por Malisa em 19/07/2012 15:05:18
Hi Bill,This is a problem I'd like to solve. I'm sad to say that at the pnreest moment, there is no real way to see if you solved the lab correctly other than it looks like it works . I did attempt to have one exercise (the ICND1 configuration Test) do a crude check, by comparing your saved config with my solved config and you had to be able to understand the instructions When complete you can compare your configurations bya) saving your configs (using copy running-config startup-config') ANDb) saving your network file (click file->save) from GNS3 ANDc) running the compare.configs.2 script from the /opt/GNS3/Project/ICND1 Configuration Test' directory. which clearly no-one has attempted because if they did they would have reported that it doesn't work (I forgot to make the compare.configs.2 script executable)Meanwhile, back to your problem I can see the need to make the instructions clearer and to give a definite test at the end of the exercise. The new versions of vpcs allow you to run scripts, so I might be able to (in the future) have the exercise finish by getting you to load a script from vpcs that tests if your config is working, or I may have to add some more detailed explanations.In the meantime, I'm happy to help out via this page if you have any particular problems.


Comente!*
Nome:
E-mail
Homepage
Ttulo:
Comentrio:

Cdigo:* Code

ltima Atualizao ( 17/04/2008 )
 
< Anterior   Prximo >
FUG-BR - Espalhando BSD
Dicas Rpidas:

No editor de textos vi(1), para remover os ^M de arquivos MS-DOS (Windows), use:

:g/^V^M/s//

 

 






Wallpapers
Sua Opiniao
Online:
Ns temos 14 visitantes online


Devil Store - Sua loja BSD
FreeBSD Brasil LTDA

FUG-BR: Desde 1999, espalhando BSD pelo Brasil.