Configuração de um servidor SNAT
Cenários
Para usar a função de tabela de rotas fornecida pelo serviço VPC, você precisa configurar a SNAT em um ECS para permitir que outros ECSs que não tenham EIPs vinculados em uma VPC acessem a Internet por meio desse ECS.
A SNAT configurado entra em vigor para todas as sub-redes em uma VPC.
Pré-requisitos
- Você tem um ECS em que a SNAT deve ser configurado.
- O ECS em que a SNAT deve ser configurado executa o sistema operacional Linux.
- O ECS em que a SNAT deve ser configurado tem apenas uma placa de interface de rede (NIC).
Diferenças entre servidores SNAT e gateways NAT
O serviço Gateway NAT fornece tradução de endereços de rede (NAT) para servidores, como ECSs, BMSs e áreas de trabalho de Workspace, em uma VPC ou em servidores de um data center local que se conecta a uma VPC por meio da Direct Connect ou VPN. Um gateway da NAT permite que esses servidores compartilhem um EIP para acessar a Internet ou fornecer serviços acessíveis a partir da Internet.
O serviço NAT Gateway é mais fácil de configurar e usar do que a SNAT. Esse serviço pode ser implantado de forma flexível em sub-redes e AZs e fornece diferentes especificações de gateway da NAT. Você pode clicar em NAT Gateway na Networking no console de gerenciamento para experimentar este serviço.
Para obter detalhes, consulte o Guia de usuário do NAT Gateway.
Procedimento
- Acesse o console de gerenciamento.
- Clique em
no canto superior esquerdo e selecione a região e o projeto desejados.
- Na página inicial do console, em Compute, clique em Elastic Cloud Server.
- Na página exibida, localize o ECS de destino na lista do ECS e clique no nome do ECS para alternar para a página que mostra os detalhes do ECS.
- Na página de detalhes do ECS exibida, clique na guia NICs .
- Na área exibida mostrando os detalhes do endereço IP da NIC, desative Source/Destination Check.
Por padrão, a verificação de origem/destino está ativada. Quando esta verificação está ativada, o sistema verifica se os endereços IP de origem contidos nos pacotes enviados pelos ECSs estão corretos. Se os endereços IP estiverem incorretos, o sistema não permitirá que os ECSs enviem os pacotes. Esse mecanismo evita a falsificação de pacotes, melhorando assim a segurança do sistema. Se a função SNAT for usada, o servidor SNAT precisa encaminhar pacotes. No entanto, esse mecanismo impede que o remetente do pacote receba pacotes devolvidos. Portanto, você precisa desabilitar a verificação de origem/destino para servidores SNAT.
- Vincule um EIP.
- Vincule um EIP ao endereço IP privado do ECS. Para mais detalhes, consulte Atribuição de um EIP e vinculação a um ECS.
- Vincule um EIP ao endereço IP virtual do ECS. Para mais detalhes, consulte Vinculação de um endereço IP virtual a um EIP ou ECS.
- No console do ECS, use a função de logon remoto para efetuar logon no ECS onde você planeja configurar a SNAT.
- Execute o seguinte comando e digite a senha do usuário root para alternar para o usuário root:
su - root
- Execute o seguinte comando para verificar se o ECS pode se conectar com êxito à Internet:
Antes de executar o comando, você deve desabilitar a regra iptables de resposta no ECS em que a SNAT está configurada e habilitar as regras do grupo de segurança.
ping www.huawei.com
O ECS pode acessar a Internet se as seguintes informações forem exibidas:[root@localhost ~]# ping www.huawei.com PING www.a.shifen.com (xxx.xxx.xxx.xxx) 56(84) bytes of data. 64 bytes from xxx.xxx.xxx.xxx: icmp_seq=1 ttl=51 time=9.34 ms 64 bytes from xxx.xxx.xxx.xxx: icmp_seq=2 ttl=51 time=9.11 ms 64 bytes from xxx.xxx.xxx.xxx: icmp_seq=3 ttl=51 time=8.99 ms
- Execute o seguinte comando para verificar se o encaminhamento de IP do sistema operacional Linux está habilitado:
cat /proc/sys/net/ipv4/ip_forward
Na saída de comando, 1 indica que está habilitado e 0 indica que está desabilitado. O valor padrão é 0.Muitos sistemas operacionais suportam roteamento de pacotes. Antes de encaminhar pacotes, os sistemas operacionais alteram os endereços IP de origem nos pacotes para os endereços IP do sistema operacional. Portanto, os pacotes encaminhados contêm o endereço IP do remetente público para que os pacotes de resposta possam ser enviados de volta ao longo do mesmo caminho para o remetente do pacote inicial. Esse método é chamado de SNAT. Os sistemas operacionais precisam acompanhar os pacotes em que os endereços IP foram alterados para garantir que os endereços IP de destino nos pacotes possam ser reescritos e que os pacotes possam ser encaminhados ao remetente inicial do pacote. Para atingir esses objetivos, você precisa ativar a função de encaminhamento de IP e configurar regras SNAT.
- Use o editor vi para abrir o arquivo /etc/sysctl.conf, altere o valor de net.ipv4.ip_forward para 1 e insira :wq para salvar a alteração e sair.
- Execute o seguinte comando para que a alteração tenha efeito:
- Configure a função SNAT.
Execute o comando a seguir para habilitar todos os ECSs na rede (por exemplo, 192.168.1.0/24) para acessar a Internet usando a função SNAT:
iptables -t nat -A POSTROUTING -o eth0 -s subnet -j SNAT --to nat-instance-ip
Figura 1 Configurar a SNATPara garantir que a regra não será perdida após a reinicialização, escreva a regra no arquivo /etc/rc.local.
- Mude para o arquivo /etc/sysctl.conf:
vi /etc/rc.local
- Execute 14 para configurar a SNAT.
- Salve a configuração e saia:
- Adicione as permissões de execução para o arquivo rc.local:
# chmod +x /etc/rc.local
- Mude para o arquivo /etc/sysctl.conf:
- Verifique se a configuração foi bem-sucedida. Se informações semelhantes a Figura 2 (por exemplo, 192.168.1.0/24) forem exibidas, a configuração foi bem-sucedida.
iptables -t nat --list
- Adicione uma rota. Para obter detalhes, consulte a seção Adição de uma rota personalizada.
Defina o destino como 0.0.0.0/0 e o salto seguinte para o endereço IP privado ou virtual do ECS no qual a SNAT é implantada. Por exemplo, o próximo salto é 192.168.1.4.
Depois que essas operações forem concluídas, se a comunicação de rede ainda falhar, verifique a configuração do grupo de segurança e de ACL da rede para ver se o tráfego necessário é permitido.