Como Desativar o IPv6 em sua Instância
A Magalu Cloud foi projetada com uma visão de futuro, adotando o IPv6 como parte integral de sua arquitetura de rede. O IPv6 é o sucessor do IPv4 e oferece um espaço de endereçamento vastamente maior, além de melhorias em eficiência e segurança, sendo crucial para o crescimento sustentável da internet.
Por essa razão, a desativação do IPv6 não é uma funcionalidade nativa na plataforma (como a exclusão de sub-redes IPv6 ou a remoção de endereços em VNICs). Acreditamos que ambas as versões do protocolo devem coexistir para garantir a máxima compatibilidade e preparação para o futuro.
No entanto, entendemos que algumas aplicações ou sistemas legados podem ter requisitos específicos que exigem a desativação do IPv6. Para esses casos, a configuração deve ser realizada diretamente no sistema operacional da sua instância.
Desativar o IPv6 pode ter efeitos colaterais em certas aplicações ou serviços do sistema operacional que dependem dele. Proceda com cautela e apenas se for um requisito estrito para o seu ambiente. A recomendação geral, sempre que possível, é manter o IPv6 ativado.
Este guia demonstra como desativar o IPv6 na Magalu Cloud, seja de forma automatizada via CLI durante a criação da instância, ou manualmente em uma máquina já existente.
Opção 1: Desativar Durante a Criação da Instância (via CLI e User Data)
A forma mais eficiente de aplicar essa configuração é através do parâmetro --user-data
ao criar uma instância com a CLI da Magalu Cloud (mgc
). O script fornecido será executado na primeira inicialização, garantindo que a VM já comece com o IPv6 desativado.
A API da Magalu Cloud espera que o conteúdo do script user-data
seja codificado no formato Base64. O processo abaixo demonstra como criar o script, codificá-lo e usá-lo no comando de criação.
- Linux (Cloud-Init)
- Windows Server (PowerShell)
Siga estes três passos para provisionar uma instância Linux com o IPv6 desativado.
-
Crie um arquivo de script, por exemplo,
disable-ipv6.sh
:disable-ipv6.sh#!/bin/bash
# Cria o arquivo de configuração para desativar o IPv6
tee /etc/sysctl.d/99-disable-ipv6.conf <<'EOF'
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
EOF
# Aplica as configurações imediatamente
sysctl -p /etc/sysctl.d/99-disable-ipv6.conf -
Codifique o script em Base64 e armazene em uma variável. O parâmetro
-w 0
é importante para evitar quebras de linha na saída.USER_DATA_B64=$(base64 -w 0 disable-ipv6.sh)
-
Crie a instância usando a CLI
mgc
, passando o conteúdo codificado no parâmetro--user-data
.mgc virtual-machine instances create \
--name="minha-vm-sem-ipv6" \
--image.name="Ubuntu 24.04 LTS" \
--machine-type.name="BV1-1-10" \
--ssh-key-name="[NOME_DA_SUA_CHAVE_SSH]" \
--user-data="$USER_DATA_B64"
O processo para Windows é similar, mas usa um script PowerShell.
-
Crie um arquivo de script, por exemplo,
disable-ipv6.ps1
. Note que as tags<powershell>
são necessárias dentro do arquivo.disable-ipv6.ps1<powershell>
# Cria a chave de registro para desativar componentes do IPv6
New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\TCPIP6\Parameters" -Name DisabledComponents -PropertyType DWord -Value 0xFF -Force
# Reinicia a máquina para aplicar a configuração
Restart-Computer -Force
</powershell> -
Codifique o script em Base64 usando PowerShell e armazene em uma variável:
$UserDataFile = ".\disable-ipv6.ps1"
$UserDataBytes = [System.IO.File]::ReadAllBytes($UserDataFile)
$USER_DATA_B64 = [System.Convert]::ToBase64String($UserDataBytes) -
Crie a instância com a CLI
mgc
, passando a variável no parâmetro--user-data
.mgc virtual-machine instances create \
--name="meu-windows-sem-ipv6" \
--image.name="windows-server-2022" \
--machine-type.name="BV1-2-20" \
--ssh-key-name="[NOME_DA_SUA_CHAVE_SSH]" \
--user-data="$USER_DATA_B64"
Opção 2: Desativar em uma Instância Existente (Método Manual)
Se você precisa desativar o IPv6 em uma máquina virtual que já está em execução, siga os passos abaixo de acordo com o sistema operacional.
- Ubuntu / Debian
- Rocky / Oracle / RHEL
- Fedora
- openSUSE
- Windows Server
- Acesse sua instância via SSH.
- Crie o arquivo de configuração
sysctl
:sudo tee /etc/sysctl.d/99-disable-ipv6.conf <<'EOF'
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
EOF - Aplique as configurações:
sudo sysctl -p /etc/sysctl.d/99-disable-ipv6.conf
- Verifique com o comando
ip a
.
- Acesse sua instância via SSH.
- Crie o arquivo de configuração
sysctl
:sudo tee /etc/sysctl.d/99-disable-ipv6.conf <<'EOF'
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
EOF - Carregue as novas regras:
sudo sysctl -p /etc/sysctl.d/99-disable-ipv6.conf
- Confirme a desativação com
ip a
.
- Acesse sua instância via SSH.
- Adicione as regras de desativação:
sudo tee /etc/sysctl.d/99-disable-ipv6.conf <<'EOF'
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
EOF - Aplique as configurações:
sudo sysctl -p /etc/sysctl.d/99-disable-ipv6.conf
- Verifique o resultado com
ip a
.
- Acesse sua instância via SSH.
- Crie o arquivo
sysctl
:sudo tee /etc/sysctl.d/99-disable-ipv6.conf <<'EOF'
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
EOF - Aplique as mudanças:
sudo sysctl -p /etc/sysctl.d/99-disable-ipv6.conf
- Confirme com
ip a
.
- 🖥️ Interface Gráfica (Regedit)
- >_ PowerShell
- Acesse sua instância Windows via RDP.
- Abra o Editor do Registro (
regedit
). - Navegue até a chave:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters\
- Crie um novo Valor DWORD (32 bits) com o nome
DisabledComponents
. - Modifique o valor de
DisabledComponents
paraFF
(Base Hexadecimal). - Reinicie a instância para que as alterações entrem em vigor.
Execute o PowerShell como Administrador.
- Execute o comando para criar a chave de registro:
New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\TCPIP6\Parameters" -Name DisabledComponents -PropertyType DWord -Value 0xFF -Force
- Reinicie a instância para aplicar a alteração:
Restart-Computer -Force
Verificação no Windows Server
Após a reinicialização, confirme com ipconfig
no Prompt de Comando ou verificando as propriedades da sua conexão de rede (ncpa.cpl
), onde a opção para "Protocolo IP Versão 6" estará desmarcada.