Configuração de um servidor SNAT
Scenarios
Together with VPC route tables, you can configure SNAT on an ECS to enable other ECSs that have no EIPs bound in the same VPC to access the Internet through this ECS.
The configured SNAT takes effect for all subnets in a VPC.
Prerequisites
- You have an ECS where SNAT is to be configured.
- The ECS where SNAT is to be configured runs Linux.
- The ECS where SNAT is to be configured has only one network interface card (NIC).
Differences Between SNAT ECSs and NAT Gateways
The NAT Gateway service provides network address translation (NAT) for servers, such as ECSs, BMSs and Workspace desktops, in a VPC or servers from an on-premises data center that connects to a VPC through Direct Connect or VPN. A NAT gateway allows these servers to share an EIP to access the Internet or provide services accessible from the Internet.
The NAT Gateway service is easier to configure and use than SNAT. This service can be flexibly deployed across subnets and AZs and has different NAT gateway specifications. You can click NAT Gateway under Rede on the management console to try this service.
Procedimento
- Faça logon no 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 dele 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 de resposta iptables no ECS em que a SNAT está configurada e configurar 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 support.huawei.com PING www.XXX.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 de 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 SNAT
Para 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 é implementada. 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 ACLs da rede para ver se o tráfego necessário é permitido.