Guia: Deploy de Laboratórios de Rede usando VSCode e Containerlab
Introdução
Este guia apresenta o processo de criação e deploy de laboratórios de rede utilizando o Visual Studio Code (VSCode) em conjunto com a extensão Containerlab. O objetivo é demonstrar como essa integração pode simplificar experimentos de rede, aproximando a experiência de um ambiente real de produção. Para profissionais de infraestrutura, o uso dessas ferramentas representa:
- Maior previsibilidade em mudanças de rede.
- Agilidade para criar e destruir ambientes de teste.
- Menor risco operacional, ao validar previamente cenários críticos.
O que é o VSCode?
O Visual Studio Code (VSCode) é um editor de código leve e multiplataforma. Embora amplamente utilizado por desenvolvedores, ele também oferece recursos essenciais para administradores de sistemas e operadores de rede. Com suporte a extensões, o VSCode pode ser transformado em uma plataforma de gerenciamento centralizada, onde você edita arquivos de configuração, conecta-se a servidores remotos, e agora, com o Containerlab, também gerencia laboratórios de rede completos.
Benefícios para a Infraestrutura
Produção
- Validação de alterações em ambientes isolados antes do deploy real.
- Testes de resiliência contra falhas de rede.
- Redução de tempo de troubleshooting.
Pesquisa
- Criação de ambientes de teste controlados para simulação de protocolos.
- Reproduzir condições adversas (delay, jitter, perda de pacotes).
- Apoio a experimentos acadêmicos e artigos científicos.
Operadores de Rede
- Menos dependência de linha de comando para tarefas comuns.
- Visualização gráfica da topologia.
- Integração com ferramentas de documentação (TopoView, Draw.io).
Requisitos
Antes de iniciar, verifique:
- VSCode instalado em sua máquina.
- Leitura prévia da documentação do laboratório usado como exemplo: Lab Monitoramento Zabbix.
- Familiaridade básica com a interface do VSCode: Introdução ao VSCode.
Uso remoto com SSH
Se você pretende executar o VSCode em um host remoto (ex.: servidor ou VM de testes):
- Primeiro, instale a extensão Remote SSH. Ela permite que o VSCode acesse arquivos e recursos do servidor remoto como se estivessem locais.
- Após se conectar ao host remoto, prossiga com a instalação das demais extensões e configuração do ambiente.
Isso é útil em ambientes de laboratório ou produção onde os recursos de hardware para containers não estão disponíveis na sua máquina pessoal.

1. Instalação da extensão Containerlab
A primeira etapa é instalar a extensão Containerlab no VSCode. Essa extensão adiciona um painel lateral onde é possível:
- Criar, destruir e editar laboratórios.
- Visualizar topologias de forma gráfica.
- Monitorar logs e status dos nós.

1.1 Instalação do EdgeShark
O EdgeShark é uma integração que permite abrir capturas de tráfego diretamente no VSCode, sem depender do Wireshark externo. Isso simplifica a análise de pacotes nos experimentos de rede, tornando o VSCode uma ferramenta completa para experimentação.
Para instalar:
- Abra a barra de pesquisa superior do VSCode.
- Digite:
>containerlab: install Edgeshark

2. Deploy de um Laboratório
Nesta seção, vamos fazer o deploy do laboratório de monitoramento Zabbix.
- Abra a aba lateral do Containerlab no VSCode.
- Clique em Open Folder e escolha a pasta de trabalho.
- No terminal integrado, baixe o laboratório de exemplo com os comandos abaixo:
curl -L -o get.sh "https://git.rnp.br/redes-abertas/labs/-/raw/main/zabbix-lab/get.sh?ref_type=heads&inline=false" && sh get.sh && cd zabbix-lab
curl -L -o get.bat "https://git.rnp.br/redes-abertas/labs/-/raw/main/zabbix-lab/get.bat?ref_type=heads&inline=false" && call get.bat && cd zabbix-lab
Esse comando baixa um script de instalação, executa-o e cria a pasta com o laboratório.
Após a conclusão, o laboratório aparecerá na aba Local Labs. Basta clicar com o botão direito no laboratório e escolher Deploy.

3. Funcionalidades Principais
Visualização e edição
No TopoView, a topologia é exibida de forma gráfica, permitindo:
- Adicionar ou remover nós e links.
- Alterar interfaces, endereçamento IP e limitações de desempenho.
- Associar arquivos de configuração diretamente a cada nó.
- Editar o arquivo
.clabmanualmente, caso prefira.
Isso substitui edições manuais demoradas em YAML, dando maior agilidade ao processo.
Monitoramento de nós e logs
Cada nó da topologia pode ser inspecionado diretamente no VSCode. É possível abrir logs em tempo real, o que ajuda no diagnóstico de falhas e validação de funcionamento de serviços.

Captura e análise de tráfego
Com o EdgeShark, é possível capturar pacotes de interfaces específicas dentro da topologia. Essa funcionalidade é equivalente ao uso do Wireshark em um ambiente real, sendo ideal para análise de protocolos e troubleshooting.

Simulação de falhas (Link Impairment)
O recurso Link Impairment permite adicionar condições adversas à rede simulada:

- Delay (ms) – tempo de resposta.
- Jitter – variação do delay.
- Loss (%) – perda de pacotes.
- Rate-limit (Mbps) – limitação de banda.
- Corrupt (%) – corrupção de pacotes.
Esse tipo de simulação é muito valioso para avaliar como sistemas de produção se comportariam em cenários de instabilidade.
Outras opções úteis
Na aba de gerenciamento, encontramos funcionalidades adicionais:
- Destroy (cleanup) – remove o laboratório e todos os dados persistentes.
- Redeploy (cleanup) – reinicia o lab do zero.
- Save config – salva a configuração atual dos nós.
- Inspect – mostra informações de imagem e rede.
- SSH (all nodes) – abre sessões SSH para todos os nós.
- Graph (draw.io) – exporta a topologia para documentação.
- Graph (TopoView) – abre a topologia no visualizador gráfico.
- Edit topology – edição manual da topologia
.clab.

Essas funções complementam o ciclo de vida de um laboratório de rede, desde a criação até o descarte e documentação.
4. Próximos Passos
Após dominar as funcionalidades básicas, recomenda-se:
- Fazer deploy de outros labs disponiveis aqui