Ferramentas do usuário

Ferramentas do site


infra-estrutura:cisco:gns3_iou

Essa é uma revisão anterior do documento!


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).

IOU quer dizer IOS on Unix.

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 30 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