Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Centro de ayuda> Virtual Private Cloud> Guía del usuario> Tabla de ruta> Configuración de un servidor SNAT
Actualización más reciente 2023-01-11 GMT+08:00

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

  1. Inicie sesión en la consola de gestión.
  2. Haga clic en en la esquina superior izquierda y seleccione la región y el proyecto deseados.
  3. En la página principal de la consola, en Compute, haga clic en Elastic Cloud Server.
  4. 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.
  5. En la página de detalles de ECS que se muestra, haga clic en la ficha NICs.
  6. 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.

  7. Vincular una EIP.
  8. 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.
  9. Ejecute el siguiente comando e introduzca la contraseña de usuario root para cambiar a usuario root:

    su - root

  10. 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
  11. 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.
    • Si el reenvío de IP en Linux está habilitado, vaya al paso 14.
    • Si el reenvío de IP en Linux está deshabilitado, vaya a 12 a habilitar el reenvío de IP en Linux.

    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.

  12. 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.
  13. Ejecute el siguiente comando para hacer que el cambio surta efecto:

    sysctl -p /etc/sysctl.conf

  14. 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 SNAT

    Para asegurarse de que la regla no se perderá después del reinicio, escriba la regla en el archivo /etc/rc.local.

    1. Cambie al archivo /etc/sysctl.conf:

      vi /etc/rc.local

    2. Realizar 14 para configurar SNAT.
    3. Guarde la configuración y salga:

      :wq

    4. Agregue los permisos de ejecución para el archivo rc.local:

      # chmod +x /etc/rc.local

  15. 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

    Figura 2 Verificación de la configuración
  16. 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.