Simulação de router Cisco e Huawei

Uma vez precisei de tentar simular uma rede heterogénea, com um router Cisco e um Huawei.
Não foi fácil, porque o IOS não está disponível publicamente e o simulador da Huawei, o eNSP, está descontinuado e só funciona em VirtualBox 5.
Para fazer esta simulação, é necessário um CPU que suporte VM nesting (Second-Level Address Translation - SLAT)

VM de simulação

Foi criada uma VM baseada em Windows 7, com 4GB de RAM, 2 vCPUs e 4 interfaces de rede. Pode ser possível baixar a RAM para 2GB, mas tal não foi testado; 1GB foi testado e é insuficiente.

Para que o protocolo ARP dos routers simulados não se queixe que há IPs duplicados em MACs diferentes, é necessário fazer MAC Spoofing de propósito, colocando na configuração de MAC de cada interface do VirtualBox o MAC da porta do router simulado que vai comunicar com ela; primeiro deixa-se o MAC na configuração standard, e depois mal se levantem os routers simulados lê-se o MAC de cada porta, desliga-se a VM, e introduz-se esse MAC na configuração da interface correspondente do VirtualBox antes de ligar de novo a VM.
O router simulado Cisco pode mudar os seus MACs para duplicar os MACs do VirtualBox, por isso este passo é facultativo para as interfaces do router Cisco; o mesmo deveria ser possível no router Huawei, mas apesar de isso estar descrito no manual, a simulação do AR2220 não pode mudar os seus MACs, por isso este passo é obrigatório para que o router simulado Huawei funcione.

A configuração final será:

Interface Virtual 1

  • Internal Network: WAN
  • Se possível com MAC idêntico à interface externa do router simulado Cisco
  • Promiscuous: Allow All

Interface Virtual 2

  • Internal Network: LAN
  • Se possível com MAC idêntico à interface interna do router simulado Cisco
  • Promiscuous: Allow All

Interface Virtual 3

  • Internal Network: WAN
  • Sempre mesmo MAC da interface externa do router simulado Huawei
  • Promiscuous: Allow All

Interface Virtual 4

  • Internal Network: LAN
  • Sempre mesmo MAC da interface interna do router simulado Huawei
  • Promiscuous: Allow All

Configuração de rede do guest

Control Panel, Network Connections

Interface da Interface Virtual 1

(confirmar, por exemplo, desligando o cabo de rede virtual)
Nome: C-Outside ou Cisco-EXT
IP: 10.5.222.4
Netmask: 255.255.0.0
Gateway: –

Interface da Interface Virtual 2

Nome: C-Inside ou Cisco-INT
IP: 10.10.0.58
Netmask: 255.255.255.248
Gateway:

Interface da Interface Virtual 3

Nome: H-Outside ou Huawei-EXT
IP: 10.5.222.6
Netmask: 255.255.0.0
Gateway: –

Interface da Interface Virtual 2

Nome: H-Inside ou Huawei-INT
IP: 10.10.0.59
Netmask: 255.255.255.248
Gateway: –

Software a instalar

  • VirtualBox 5.2.x e Extension Pack
  • Winpcap 4.1.3
  • Wireshark-win64 3.2.5
  • eNSP V100R002C00B510 Setup
  • GNS3 2.2.x ou superior (não instalar suporte para GNS3 VM)

Finalizar a configuração da VM

Salvar todos os projectos, desligar todos os programas, desligar a VM (Shutdown)
Nas propriedades Network da VM, mudar o MAC Address de cada interface virtual para o MAC da porta do router a que vai estar ligada (via clouds nos emuladores).

Arrancar com a VM de novo, abrir os projectos e configurar os routers

Configuração GNS3 para simulação de router Cisco 7200

Criar um template para o Cisco 7200

Clicar na primeira opçao da barra da esquerda, Browse Routers
+ New template

Install appliance from server
Next
Escolher Routers > Cisco 7200 / Dynamips
Install

Install on this computer
Next
Allow custom files
No aviso Do you want to proceed? Yes
Escolher o ficheiro .image (que está Missing) e clicar no botao Import que aparece em baixo

Escolher o ficheiro c7200-adventerprisek9-mz.152-4.S3.bin com o checksum 79ffe4050b2cac60d51af8b953bb02b7. Não sei como encontrei este ficheiro, seguramente que me caiu do céu e de certeza que não tenho autorização para o usar. As imagens oficiais da Cisco para uso académico são incluídas na anualidade do VIRL - Cisco Modeling Labs
Open
This is not the correct file
Yes

Fica Ready to Install
Opcionalmente, pode-se clicar em Create a new version e criar a versão 152-4.S3
Seleccionar a versão original ou a nova versão criada, e
Next

Do you want to install?
Yes

Criar uma nova topologia para o router Cisco

Criar um novo projecto
Arrastar um router Cisco 7200 do template que criámos.
Clique-direito, Configure

Adicionamos mais interfaces de rede ao router:
Separador Slots
Slot 1: PA-GE
Slot 2: PA-GE
OK

Clicar no ecrã da barra à esquerda (Browse End Devices).
Arrastar duas Clouds para a topologia e dar-lhes nomes adequados

Clicar no cabo da barra à esquerda (Add links) - o cursor passa para um +
Clicar no router, escolher uma porta

Clicar numa das Clouds, escolher a interface de rede do Windows usada para essa porta

Fazer o mesmo com a outra Cloud.
Clique-direito no router, Start para o iniciar
Clique-direito no router, Console para aceder à consola série

Clicar em Enter (RETURN), e o router simulado arranca logo em modo privilegiado (#)
Anotar o MAC das interfaces que se querem ligar ao exterior da topologia, porque precisamos de colocar esses MACs nas interfaces virtuais respectivas do Virtualbox 6

1
show interface gig1/0

GigabitEthernet1/0 is administratively down, line protocol is down
Hardware is 82543, address is ca01.0438.001c (bia **ca01.0438.001c**)

Configuração do Huawei simulado

Configurar o eNSP para simular router Huawei AR2220

Ao contrário da simulação da Cisco, o uso das imagens do eNSP é livre (até porque se trata de um Linux que simula o software real e não uma cópia do software real em si mesmo como no caso da imagem IOS).

Criar uma nova topologia para o router Huawei

Clicar no botão New Topo

Arrastar um router (exemplo, AR2220)

Arrastar duas Clouds e dar-lhes nome

Clique-direito numa cloud, Settings

Na cloud Outside, clique-direito, Settings
Port Building
Binding info: UDP
Port type: Ethernet
Add

Binding info: escolher a interface 3
Port type: Ethernet
Add

Port Map Setting
Port type: Ethernet
Local Port: 1
Remote Port: 2
Two-way Channel
Add

Fechar a janela

Na Cloud Inside, clique-direito, Settings
Port Building
Binding info: UDP
Port type: Ethernet
Add
Binding info: escolher a interface 4
Port type: Ethernet
Add
Port Map Setting
Port type: Ethernet
Local Port: 1
Remote Port: 2
Two-way Channel
Add
Fechar a janela
Clicar nas ligações (relâmpago), seleccionar Auto ou Copper
Ligar o router a cada uma das clouds (como no Packet Tracer - clicar, escolher porta, clicar no destino, escolher porta)


Tecla Esc para sair do modo de ligação (cursor passa para ponteiro normal)
Clique direito no router, Start
Clique direito no router, CLI

Tirar o MAC das interfaces que foram ligadas às clouds

<Huawei> display int g0/0/0


[…]
IP Sending Frames' Format is PKTFMT_ETHNT_2, Hardware address is
**00e0-fc29-614c**
[…]


Configuração inicial Huawei

Abrir CLI do AR2220


May 16 2021 07:43:40-08:00 Huawei %%01IFPDT/4/IF_STATE(l)[0]:Interface GigabitEthernet0/0/0 has turned into UP state.
May 16 2021 07:43:40-08:00 Huawei %%01IFPDT/4/IF_STATE(l)[1]:Interface GigabitEthernet0/0/1 has turned into UP state.


Vemos a configuração-base:

<Huawei> display current

[V200R003C00]
#
 snmp-agent local-engineid 800007DB03000000000000
 snmp-agent 
#
 clock timezone China-Standard-Time minus 08:00:00
#
portal local-server load portalpage.zip
#
 drop illegal-mac alarm
#
 set cpu-usage threshold 80 restore 75
#
aaa 
 authentication-scheme default
 authorization-scheme default
 accounting-scheme default
 domain default 
 domain default_admin 
 local-user admin password cipher %$%$K8m.Nt84DZ}e#<0`8bmE3Uw}%$%$
 local-user admin service-type http
#
firewall zone Local
 priority 15
#
interface GigabitEthernet0/0/0
#
interface GigabitEthernet0/0/1
#
interface GigabitEthernet0/0/2
#
interface NULL0
#
user-interface con 0
 authentication-mode password
user-interface vty 0 4
user-interface vty 16 20
#
wlan ac
#
return

Configuramos o relógio para não estar em Pequim:

<Huawei> clock timezone GMT add 0
<Huawei> clock daylight-saving-time GMT repeating 01:00 last Sun Mar 01:00 last sun Oct 01:00
<Huawei> display clock

2021-05-16 01:21:21 DST
Sunday
Time Zone(GMT) : UTC+00:00
Daylight saving time :
         Name        : GMT
         Repeat mode : repeat
         Start year  : 2000
         End year    : 2099
         Start time  : last Sunday March 01:00:00
         End time    : last Sunday October 01:00:00
         Saving time : 01:00:00

<Huawei> system-view

Enter system view, return user view with Ctrl+Z.

[Huawei] display version

Huawei Versatile Routing Platform Software
VRP (R) software, Version 5.130 (AR2200 V200R003C00)
Copyright (C) 2011-2012 HUAWEI TECH CO., LTD
Huawei AR2220 Router uptime is 0 week, 0 day, 1 hour, 55 minutes
BKP 0 version information: 
1. PCB      Version  : AR01BAK2A VER.NC
2. If Supporting PoE : No
3. Board    Type     : AR2220
4. MPU Slot Quantity : 1
5. LPU Slot Quantity : 6

MPU 0(Master) : uptime is 0 week, 0 day, 1 hour, 55 minutes
MPU version information : 
1. PCB      Version  : AR01SRU2A VER.A
2. MAB      Version  : 0
3. Board    Type     : AR2220
4. BootROM  Version  : 0

[Huawei] sysname RSFE
[RSFE]

Teste da redundância dos routers simulados

Colocaram-se três pings a correr num cliente na rede LAN (interna).
Como é um sistema Linux, usou-se a opção -O (letra “o” maiúscula) para que mostre o equivalente à mensagem de timeout do Windows

  • Um ping para 1.1.1.1
  • Um ping para o endereço interior do Cisco, (neste caso, 10.10.0.60)
  • Um ping para o endereço interior do Huawei, (neste caso, 10.10.0.61)
    Na situação normal, com o Cisco como router designado, temos acesso ao exterior

Fazendo shut na interface interior do Cisco, o ping para 10.10.0.60 pára, mas mantemos o acesso exterior.

Não sei qual a origem das respostas duplicadas ICMP, mas:

  • com o Huawei como Backup os pings para 10.10.0.61 voltam duplicados
  • com o Huawei como Master os pings para 10.10.0.61 voltam normalmente mas os pings para 1.1.1.1 é que passam a ter respostas duplicadas.

Boa sorte!

Espero que este hack bem cabeludo ajude alguém que necessite de configurar um sistema misto mesmo que se veja impedido de ter acesso aos equipamentos físicos, ou que sirva de exemplo para outras topologias mais avançadas.