Configuración de un servidor SNAT
Scenarios
To use the route table function provided by the VPC service, you need to configure SNAT on an ECS to enable other ECSs that do not have EIPs bound in a 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 the Linux OS.
- The ECS where SNAT is to be configured has only one network interface card (NIC).
Differences Between SNAT Servers 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 provides different NAT gateway specifications. You can click NAT Gateway under Networking on the management console to try this service.
Procedimiento
- Inicie sesión en la consola de gestión.
- Haga clic en
en la esquina superior izquierda y seleccione la región y el proyecto deseados.
- En la página principal de la consola, en Compute, haga clic en Elastic Cloud Server.
- En la página mostrada, busque el ECS de destino en la lista de ECS y haga clic en el nombre de ECS para cambiar a la página que muestra los detalles de ECS.
- En la página de detalles de ECS que se muestra, haga clic en la ficha NICs.
- En el área mostrada que muestra los detalles de la dirección IP de la NIC, deshabilite la Source/Destination Check.
De forma predeterminada, la comprobación de origen/destino está habilitada. Cuando esta comprobación está habilitada, el sistema comprueba si las direcciones IP de origen contenidas en los paquetes enviados por ECS son correctas. Si las direcciones IP son incorrectas, el sistema no permite que los ECS envíen los paquetes. Este mecanismo evita la suplantación de paquetes, mejorando así la seguridad del sistema. Si se utiliza la función de SNAT, el servidor de SNAT necesita reenviar paquetes. Este mecanismo impide que el remitente del paquete reciba paquetes devueltos. Por lo tanto, debe deshabilitar la comprobación de origen/destino para servidores de SNAT.
- Vincular una EIP.
- Vincula una EIP a la dirección IP privada del ECS. Para más detalles, consulte Asignación de una EIP y vinculación de esta a un ECS.
- Vincula una EIP a la dirección IP virtual del ECS. Para más detalles, consulte Vinculación de una dirección IP virtual a una EIP o un ECS.
- En la consola de ECS, utilice la función de inicio de sesión remoto para iniciar sesión en ECS donde va a configurar SNAT.
- Ejecute el siguiente comando e introduzca la contraseña de usuario root para cambiar a usuario root:
su - root
- Ejecute el siguiente comando para comprobar si el ECS puede conectarse correctamente a Internet:
Antes de ejecutar el comando, debe deshabilitar la regla iptables de respuesta en el ECS donde está configurado SNAT y habilitar las reglas del grupo de seguridad.
ping www.huawei.com
El ECS puede acceder a Internet si se muestra la siguiente información:[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
- Ejecute el siguiente comando para comprobar si el reenvío IP del SO de Linux está habilitado:
cat /proc/sys/net/ipv4/ip_forward
En la salida del comando, 1 indica que está habilitado y 0 indica que está deshabilitado. El valor predeterminado es 0.Muchos SO soportan el enrutamiento de paquetes. Antes de reenviar paquetes, los SO cambian las direcciones IP de origen en los paquetes a direcciones IP SO. Por lo tanto, los paquetes reenviados contienen la dirección IP del emisor público de modo que los paquetes de respuesta pueden enviarse de vuelta a lo largo de la misma ruta al emisor de paquetes inicial. Este método se llama SNAT. Los SO necesitan realizar un seguimiento de los paquetes en los que se han cambiado las direcciones IP para garantizar que las direcciones IP de destino en los paquetes se pueden reescribir y que los paquetes se pueden reenviar al emisor inicial del paquete. Para lograr estos fines, debe habilitar la función de reenvío de IP y configurar las reglas SNAT.
- Utilice el editor vi para abrir el archivo /etc/sysctl.conf, cambie el valor de net.ipv4.ip_forward a 1, e introduzca :wq para guardar el cambio y salir.
- Ejecute el siguiente comando para hacer que el cambio surta efecto:
- Configure la función de SNAT.
Ejecute el siguiente comando para habilitar todos los ECS de la red (por ejemplo, 192.168.1.0/24) para acceder a Internet mediante la función SNAT:
iptables -t nat -A POSTROUTING -o eth0 -s subnet -j SNAT --to nat-instance-ip
Figura 1 Configuración de SNATPara asegurarse de que la regla no se perderá después del reinicio, escriba la regla en el archivo /etc/rc.local.
- Cambie al archivo /etc/sysctl.conf:
vi /etc/rc.local
- Realizar 14 para configurar SNAT.
- Guarde la configuración y salga:
- Agregue los permisos de ejecución para el archivo rc.local:
# chmod +x /etc/rc.local
- Cambie al archivo /etc/sysctl.conf:
- Compruebe si la configuración se ha realizado correctamente. Si se muestra información similar a Figura 2 (por ejemplo, 192.168.1.0/24), la configuración se ha realizado correctamente.
iptables -t nat --list
- Agregue una ruta. Para obtener más información, consulte la sección Adición de una ruta personalizada.
Establezca el destino en 0.0.0.0/0, y el salto siguiente a la dirección IP privada o virtual del ECS donde se implementa SNAT. Por ejemplo, el salto siguiente es 192.168.1.4.
Una vez completadas estas operaciones, si la comunicación de red sigue fallando, compruebe la configuración del grupo de seguridad y de ACL de red para ver si se permite el tráfico requerido.