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
- Create a NAT gateway.
- 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.
- Consulte las VPC.
- 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.
- Consulte las subredes de la VPC.
- Crear un gateway de NAT.
- API
URI format: POST /v2/{project_id}/nat_gateways
Para obtener más información, consulte Creación de un gateway de NAT.
- Ejemplo de la solicitud
POST https://{Endpoint}/v2/27e25061336f4af590faeabeb7fcd9a3/nat_gateways
Obtenga {endpoint} de Regiones y puntos de conexión.
- Ejemplo de la respuesta
{ "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": "" } }
- API
- Asegurarse de que los gateway de NAT se crean correctamente y están en el estado activo.
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.
- Anotar el ID del gateway de NAT y el valor de internal_network_id.
- Determine la VPC que se va a utilizar.
- Determinar el ECS que se va a utilizar.
- Consultar ECS.
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.
- Seleccione un ECS basado en los requisitos de servicio y tome nota del ID de puerto de la NIC de ECS.
- Consultar ECS.
- Determinar la EIP que se va a utilizar.
- Consultar EIPs.
Formato de URI: GET /v1/{project_id}/publicips
Para obtener más información, consulte Consulta de los EIP.
- Seleccione una EIP en función de los requisitos de servicio y anote el ID de la EIP.
- Consultar EIPs.
- 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" } }
- API
- 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" } }
- API