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> NAT Gateway> Referencia de la API> Ejemplos de aplicación> Creación de una regla de DNAT usando un ECS específico
Actualización más reciente 2023-01-11 GMT+08:00

Creación de una regla de DNAT usando un ECS específico

Escenarios

Esta sección describe cómo crear una regla de DNAT llamando a las API. Para obtener más información sobre cómo llamar a las API, consulta Llamar a APIs.

Prerrequisitos

  • Ha creado una VPC y una subred. Para obtener más información, consulte Creación de una VPC y una subred para un ECS.
  • Asegúrese de que la VPC no tiene una ruta predeterminada. La región CN North-Beijing4 no tiene este requisito.
  • Puede crear una regla sólo cuando status del gateway de NAT es ACTIVE y admin_state_up del administrador deel gateway de NAT es True.
  • Si utiliza un token para la autenticación, debe obtener el token y agregar X-Auth-Token al encabezado de solicitud cuando realice una llamada a la API. Obtén el token haciendo referencia a Autenticación.

El token obtenido de IAM es válido por solo 24 horas. Si desea utilizar un token para la autenticación, puede almacenarlo en caché para evitar llamadas frecuentes.

Procedimiento

  1. Create a NAT gateway.

    1. Determine la VPC que se va a utilizar.
      • Consulte las VPC.

        URI format: GET /v1/{project_id}/vpcs

        Para obtener más información, consulte Consulta de las VPC.

      • Seleccione una VPC que no tenga una ruta predeterminada y tome nota del ID de VPC.
    2. Determine la subred en la VPC que se va a utilizar.
      • Consulte las subredes de la VPC.

        URI format: GET /v1/{project_id}/subnets?vpc_id={vpc_id}

        Para obtener más información, consulte Consulta de subredes.

      • Seleccione una subred según los requisitos de servicio y anote el ID de subred.
    3. Crear un gateway de NAT.
      {  
          "nat_gateway": {  
              "router_id": "d84f345c-80a1-4fa2-a39c-d0d397c3f09a",  
              "status": "PENDING_CREATE",  
              "description": "my nat gateway 01",  
              "admin_state_up": true,  
              "tenant_id": "27e25061336f4af590faeabeb7fcd9a3",  
              "created_at": "2017-11-18 07:34:32.203044",  
              "spec": "1",  
              "internal_network_id": "89d66639-aacb-4929-969d-07080b0f9fd9",  
              "id": "a78fb3eb-1654-4710-8742-3fc49d5f04f8",  
              "name": "nat_001", 
              "dnat_rules_limit": "200", 
              "snat_rule_public_ip_limit": "20", 
              "enterprise_project_id": "0aad99bc-f5f6-4f78-8404-c598d76b0ed2", 
              "billing_info": "" 
          }  
      }
    4. Asegurarse de que los gateway de NAT se crean correctamente y están en el estado activo.

      API

      Formato de URI: GET /v2/{project_id}/nat_gateways/{nat_gateway_id}

      Para obtener más información, consulte Consulta de detalles sobre un gateway de NAT especificado.

    5. Anotar el ID del gateway de NAT y el valor de internal_network_id.

  2. Determinar el ECS que se va a utilizar.

    1. Consultar ECS.

      API

      Formato de URI: GET https://{endpoint}/v1/{project_id}/cloudservers/detail

      Para obtener más información, consulte Consulta de detalles acerca de los ECS.

    2. Seleccione un ECS basado en los requisitos de servicio y tome nota del ID de puerto de la NIC de ECS.

  3. Determinar la EIP que se va a utilizar.

    1. Consultar EIPs.

      API

      Formato de URI: GET /v1/{project_id}/publicips

      Para obtener más información, consulte Consulta de los EIP.

    2. Seleccione una EIP en función de los requisitos de servicio y anote el ID de la EIP.

  4. Crear una regla de la DNAT.

    • API

      Formato de URI: POST /v2/{project_id}/dnat_rules

      Para obtener más información, consulte Creación de una regla de DNAT.

    • Ejemplo de la solicitud

      POST https://{Endpoint}/v2/27e25061336f4af590faeabeb7fcd9a3/dnat_rules

      Obtenga {endpoint} de Regiones y puntos de conexión.

      Cuerpo:

      {
          "dnat_rule": {
              "floating_ip_id": "bf99c679-9f41-4dac-8513-9c9228e713e1",
              "nat_gateway_id": "cda3a125-2406-456c-a11f-598e10578541",
              "port_id": "9a469561-daac-4c94-88f5-39366e5ea193",
              "internal_service_port": 993,
              "protocol": "tcp",
              "external_service_port": 242,
              "description": "my dnat rule 01"
          }
      }
    • Ejemplo de la respuesta
      {
          "dnat_rule": {
              "floating_ip_id": "bf99c679-9f41-4dac-8513-9c9228e713e1",
              "status": "PENDING_CREATE",
              "nat_gateway_id": "cda3a125-2406-456c-a11f-598e10578541",
              "admin_state_up": true,
              "port_id": "9a469561-daac-4c94-88f5-39366e5ea193",
              "internal_service_port": 993,
              "protocol": "tcp",
              "tenant_id": "abc",
              "created_at": "2017-11-15 15:44:42.595173",
              "id": "79195d50-0271-41f1-bded-4c089b2502ff",
              "external_service_port": 242,
              "floating_ip_address": "5.21.11.226",
              "description": "my dnat rule 01"
          }
      }

  5. Verifique que la regla de la DNAT se haya creado correctamente.

    • API

      Formato de URI: GET /v2/{project_id}/dnat_rules/{dnat_rule_id}

      Para obtener más información, consulte Consulta de detalles acerca de una regla de DNAT especificada.

    • Ejemplo de la solicitud

      GET https://{Endpoint}/v2/27e25061336f4af590faeabeb7fcd9a3/dnat_rules/79195d50-0271-41f1-bded-4c089b2502ff

      Obtenga {endpoint} de Regiones y puntos de conexión.

    • Ejemplo de la respuesta
      {
          "dnat_rule": {
              "floating_ip_id": "bf99c679-9f41-4dac-8513-9c9228e713e1",
              "status": "ACTIVE",
              "nat_gateway_id": "cda3a125-2406-456c-a11f-598e10578541",
              "admin_state_up": true,
              "port_id": "9a469561-daac-4c94-88f5-39366e5ea193",
              "internal_service_port": 993,
              "protocol": "tcp",
              "tenant_id": "abc",
              "created_at": "2017-11-15 15:44:42.595173",
              "id": "79195d50-0271-41f1-bded-4c089b2502ff",
              "external_service_port": 242,
              "floating_ip_address": "5.21.11.226",
              "description": "my dnat rule 01"
          }
      }