Ferramentas do usuário

Ferramentas do site


infra-estrutura:cisco:gns3_iou

GNS3 utilizando IOU

Todos conhecem ou já ouviram falar do GNS3, quem não conhece o GNS3 é um software que consegue emular roteadores utilizando a imagem do IOS da Cisco(sistema operacional que é executado nos roteadores).

Segundo a própria Cisco:

O Cisco IOS no UNIX (IOU) é uma versão totalmente funcional do IOS que é executada como um processo UNIX (Solaris) no modo de usuário. O IOU é construído como uma imagem nativa do Solaris e é executado como qualquer outro programa. O IOU suporta todos os protocolos e recursos independentes da plataforma.

Sendo assim o que ficou entendido o IOU foi criado pela própria Cisco para uso interno.

Com relação à funcionalidade, IOU é muito semelhante ao GNS3, mas não requer quase os recursos que vários roteadores virtuais fazem.

O IOU permite que você crie uma topologia de rede em um único PC sem a necessidade de roteadores físicos. Isso é útil para validar projetos de rede, testes de prova de conceito e auto-estudo de certificação.

Para todas as dúvidas legais sobre o uso do IOU segue link http://evilrouters.net/2011/01/18/cisco-iou-faq/ e é bom ler todo.

Antes de configurar o IOU

Bom eu penei um pouco antes de conseguir fazer funcionar. Depois de algumas tentativas conseguir fazer funcionar e criei uma teoria, porém não tive tempo de comprovar. O pulo do gato que eu percebi e a versao da VM GNS3 tem que combinar com a versão do GNS3. Sendo assim nesse site tenho as respectivas versões do GNS3 com a VM GNS3.

https://github.com/GNS3/gns3-gui/releases

Nos meus testes utilizei o windows 10 veja a versão.

A versões do GNS3 e VM GNS3 e respectivo arquivo:

  • GNS3 - 2.1.15 - Arquivo GNS3-2.1.15-all-in-one.exe
  • GNS3 VM - 2.1.15 - Arquivo GNS3.VM.VirtualBox.2.1.15.zip

O gns3 consigo rodar com virtualbox e vmware. Utilizaremos o Virtualbox.

Após tudo instalado vm e gns3 importe a VM normalmente(Não vou passar isso porque considero muito simples e não é difícil, mas mesmo assim caso haja alguma dúvida mailme).

Criando um switch IOU

Para criar o switch vamos ao menu Edit → Preferences

Depois clique em IOU Devices e depois em New

Logo em seguida clique em Next

Nesta tela temos algumas opções vamos a elas:

  • Name: Será o nome do dispositivo, pode ser o nome que quiser contanto que seja único.
  • Image New Image: Indica que iremos adicionar uma nova imagem.
  • Type: Como estamos adicionando um switch então selecione L2 image.
  • IOU Image: É a imagem propriamente dita. Para emular switch vamos utilizar a imagem i86bi-linux-l2-ipbasek9-15.1g.bin.

A tela com a imagem selecionada.

Criando um roteador IOU

O processo para criar um roteador IOU e praticamente o mesmo.

Menu Edit→preferences.

Clique em IOU Devices e depois New

Clique em Next.

Selecione New Image e em Type escolha L3 Image.

Selecione a imagem i86bi-linux-l3-adventerprisek9-12.4.bin.

Depois clique em Finish

Criando e aplicando a licença

As imagens Cisco’s IOS-On-UNIX (IOU) são protegidas por um mecanismo de licença que requer que usuáros tem q gerar uma licença valida internamente na Cisco.

Para uso das imagens IOU devesse obter uma licença que é baseado no nome do computador e no endereço IP para obter essa licença. Devido ao uso do nome do computador e endereço IP para calcular a licença fica dificil utilizar uma licença gerada em uma máquina em outra.

Para isso alguém que ainda não descobri criou um script em python que gera a licença.

Segue abaixo o código.

#! /usr/bin/python3
print("*********************************************************************")
print("Cisco IOU License Generator - Kal 2011, python port of 2006 C version")
import os
import socket
import hashlib
import struct
# get the host id and host name to calculate the hostkey
hostid=os.popen("hostid").read().strip()
hostname = socket.gethostname()
ioukey=int(hostid,16)
for x in hostname:
 ioukey = ioukey + ord(x)
print("hostid=" + hostid +", hostname="+ hostname + ", ioukey=" + hex(ioukey)[2:])
# create the license using md5sum
iouPad1 = b'\x4B\x58\x21\x81\x56\x7B\x0D\xF3\x21\x43\x9B\x7E\xAC\x1D\xE6\x8A'
iouPad2 = b'\x80' + 39*b'\0'
md5input=iouPad1 + iouPad2 + struct.pack('!i', ioukey) + iouPad1
iouLicense=hashlib.md5(md5input).hexdigest()[:16]
 
print("\nAdd the following text to ~/.iourc:")
print("[license]\n" + hostname + " = " + iouLicense + ";\n")
with open("iourc.txt", "wt") as out_file:
 out_file.write("[license]\n" + hostname + " = " + iouLicense + ";\n")
print("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAlready copy to the file iourc.txt\n ")
 
print("You can disable the phone home feature with something like:")
print(" echo '127.0.0.127 xml.cisco.com' >> /etc/hosts\n")

Com a VM GNS3 rodando ela utiliza uma interface acessivel ao computador localhost com isso podemos obter o endereço IP da VM GSN3 conforme figura abaixo:

o endereço ip da VM GNS3 é 192.168.56.3 este e o endereço da interface do virtualbox como podemos constatar abaixo.

Então vamos conectar na VM GNS pela interface Virtualbox Host-Only Network.

Endereço VM GNS3: 192.168.56.3 Usuário: gns3 senha: gns3

Clique em OK

Escolha a opção Shell

Você ira cair na shell do Linux da VM GNS3, vá até o diretório /opt/gns3/images/IOU.

Agora e somente executar o script e obter a licença.

Agora você tem duas opções ou copia a string abaixo ou utiliza algum software de transferência tipo WinSCP e copia o arquivo gerado iourc.txt que você precisara jogar nas preferencias do GNS3.

[license]
gns3vm = 73635fd3b0a13ad0;

Clique em Edit→Preferences.

Depois vá em IOS on UNIX e cole a string acima ou clique em browse indique o arquivo iourc.txt e depois clique em OK.

Obs: Sem a licença você não consegue subir os switches e roteadores ele gera um erro.

Emulando o router e switch IOU

Agora vamos colocar os dois itens na area de trabalho do GNS3 e testar o switch e roteador.

Vamos ao show version de ambos.

Roteador IOU

Switch IOU

Configurações

Roteador IOU

Switch IOU

Testes com ping

Ping a partir do roteador IOU

Ping a partir do switch IOU

Considerações finais

Mas porque utilizar esses firmware IOU? eles tem melhor performance já vi relatos de fórum de pessoas conseguir montar ambiente com mais de 100 roteadores rodando tranquilamente. Fora que você pode testar as features de switch suporte a QinQ, etc. Vou testa-ló e vou reportando quando puder. Vlw