Ejemplo 4: Asignación de una dirección IPv6 virtual a ECS para HA
Escenarios
Las direcciones IP virtuales se utilizan para una alta disponibilidad, ya que hacen posible la conmutación de ECS activa/en standby. De esta manera, si un ECS se cae por alguna razón, el otro puede hacerse cargo y los servicios continúan ininterrumpidos.
This section describes how to assign a virtual IPv6 address to ECSs for HA by calling APIs.
Prerrequisitos
- Ha creado una VPC y una subred que admiten IPv4 e IPv6 y ha obtenido el ID de VPC y el ID de subred. Para obtener más información, consulte Creación de una VPC y una subred.
- Usted ha comprado un ECS. Para obtener más información, véase la Descripción general.
- 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. Obtenga el token haciendo referencia a Autenticación.
![](https://support.huaweicloud.com/intl/es-us/api-vpc/public_sys-resources/note_3.0-es-us.png)
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
- Asigne una dirección IPv6 virtual.
- Envíe POST https://VPC endpoint/v2.0/ports.
- Agregue X-Auth-Token al encabezado de solicitud.
- Establezca los siguientes parámetros en el cuerpo de la solicitud. La subred donde reside la dirección IP virtual debe ser la misma que la del ECS. Establezca subnet_id en el ID de la subred IPv6.
{ "port":{ "network_id":"b0ad9b80-bb16-4550-8ce0-514f949e35ee", "device_owner":"neutron:VIP_PORT", "name":"ipv6_vip_port_test", "fixed_ips":[ { "subnet_id":"33ce2628-6246-4e3a-859f-99cd753ff704" } ] } }
- Compruebe el mensaje de respuesta.
- La solicitud se realiza correctamente si se muestra la siguiente respuesta:
{ "port": { "id": "d92cfee7-9ebe-4483-85c1-00ffb1e45cd8", "name": "ipv6_vip_port_test", "status": "DOWN", "admin_state_up": true, "fixed_ips": [ { "subnet_id": "33ce2628-6246-4e3a-859f-99cd753ff704", "ip_address": "2001:db8:a583:21d:2e25:9403:6f3d:4664" } ], "mac_address": "fa:16:3e:99:2e:92", "network_id": "b0ad9b80-bb16-4550-8ce0-514f949e35ee", "tenant_id": "060576782980d5762f9ec014dd2f1148", "project_id": "060576782980d5762f9ec014dd2f1148", "device_id": "", "device_owner": "neutron:VIP_PORT", "security_groups": [], "extra_dhcp_opts": [], "allowed_address_pairs": [], "binding:vnic_type": "normal", "binding:vif_details": {}, "binding:profile": {}, "port_security_enabled": true, "created_at": "2020-12-15T03:01:07", "updated_at": "2020-12-15T03:01:07" } }
- Para obtener más información sobre los códigos de error que se muestran si la solicitud falla, consulte la sección Códigos de error.
- La solicitud se realiza correctamente si se muestra la siguiente respuesta:
- Consulte la información de la NIC de acuerdo con el ID de ECS. El valor de fixed_ips contiene las direcciones de IPv4 y de IPv6.
- Envíe GET https://VPC endpoint/v2.0/ports?device_id={ecs_id}&network_id={network_id}.
- Agregue X-Auth-Token al encabezado de solicitud.
- Compruebe el mensaje de respuesta.
- La solicitud se realiza correctamente si se muestra la siguiente respuesta:
{ "ports": [{ "id": "47b4cd46-cfe5-415d-957f-5068189dce94", "name": "", "status": "ACTIVE", "admin_state_up": true, "fixed_ips": [ { "subnet_id": "0dd17989-1c23-4501-8dc1-40e4085f793f", "ip_address": "172.16.0.191" }, { "subnet_id": "33ce2628-6246-4e3a-859f-99cd753ff704", "ip_address": "2001:db8:a583:21d:dfc0:d452:e9ab:65cf" } ], "mac_address": "fa:16:3e:1e:f7:9a", "network_id": "b0ad9b80-bb16-4550-8ce0-514f949e35ee", "tenant_id": "060576782980d5762f9ec014dd2f1148", "project_id": "060576782980d5762f9ec014dd2f1148", "device_id": "ab7ca781-66bf-48a8-814b-1568cb393a38", "device_owner": "compute:xxx", "security_groups": [ "0552091e-b83a-49dd-88a7-4a5c86fd9ec3" ], "extra_dhcp_opts": [], "allowed_address_pairs": [], "binding:vnic_type": "normal", "binding:vif_details": { "primary_interface": true }, "binding:profile": {}, "port_security_enabled": true, "dns_assignment": [ { "hostname": "ip-172-16-0-191", "ip_address": "172.16.0.191", "fqdn": "ip-172-16-0-191.br-iaas-odin1.compute.internal." } ], "dns_name": "ip-172-16-0-191", "created_at": "2020-11-19T13:32:37", "updated_at": "2020-11-19T13:33:50" }] }
- Para obtener más información sobre los códigos de error que se muestran si la solicitud falla, consulte la sección Códigos de error.
- La solicitud se realiza correctamente si se muestra la siguiente respuesta:
- Vincule un ECS a la dirección IP virtual.
- Envíe PUT https://VPC endpoint/v2.0/ports/{port_id}. port_id indica el ID de puerto correspondiente a la dirección IPv6 virtual asignada.
- Agregue X-Auth-Token al encabezado de solicitud.
- Establezca los siguientes parámetros en el cuerpo de la solicitud. Establezca el valor ip_address en la dirección IPv6 de la NIC del ECS obtenido en 2.
{ "port": { "allowed_address_pairs": [{ "ip_address": "2001:db8:a583:21d:dfc0:d452:e9ab:65cf" }] } }
- Compruebe el mensaje de respuesta.
- La solicitud se realiza correctamente si se muestra la siguiente respuesta:
{ "port": { "id": "d92cfee7-9ebe-4483-85c1-00ffb1e45cd8", "name": "ipv6_vip_port_test", "status": "DOWN", "admin_state_up": true, "fixed_ips": [ { "subnet_id": "33ce2628-6246-4e3a-859f-99cd753ff704", "ip_address": "2001:db8:a583:21d:2e25:9403:6f3d:4664" } ], "mac_address": "fa:16:3e:99:2e:92", "network_id": "b0ad9b80-bb16-4550-8ce0-514f949e35ee", "tenant_id": "060576782980d5762f9ec014dd2f1148", "project_id": "060576782980d5762f9ec014dd2f1148", "device_id": "", "device_owner": "neutron:VIP_PORT", "security_groups": [], "extra_dhcp_opts": [], "allowed_address_pairs": [{ "ip_address": "2001:db8:a583:21d:dfc0:d452:e9ab:65cf " }], "binding:vnic_type": "normal", "binding:vif_details": {}, "binding:profile": {}, "port_security_enabled": true, "created_at": "2020-12-15T03:01:07", "updated_at": "2020-12-15T03:01:07" } }
- Para obtener más información sobre los códigos de error que se muestran si la solicitud falla, consulte la sección Códigos de error.
- La solicitud se realiza correctamente si se muestra la siguiente respuesta:
- Deshabilite la función de comprobación de origen/destino para la NIC de ECS.
- Envíe PUT https://VPC endpoint/v2.0/ports/{port_id}. port_id es el ID de NIC obtenido en 2.
- Agregue X-Auth-Token al encabezado de solicitud.
- Establezca los siguientes parámetros en el cuerpo de la solicitud. Establezca el valor de ip_address en 1.1.1.1/0, la dirección IP de NIC del ECS.
{ "port": { "allowed_address_pairs": [{ "ip_address": "1.1.1.1/0" }] } }
- Compruebe el mensaje de respuesta.
- La solicitud se realiza correctamente si se muestra la siguiente respuesta:
{ "port": { "id": "47b4cd46-cfe5-415d-957f-5068189dce94", "name": "", "status": "ACTIVE", "admin_state_up": true, "fixed_ips": [ { "subnet_id": "0dd17989-1c23-4501-8dc1-40e4085f793f", "ip_address": "172.16.0.191" }, { "subnet_id": "33ce2628-6246-4e3a-859f-99cd753ff704", "ip_address": "2001:db8:a583:21d:dfc0:d452:e9ab:65cf" } ], "mac_address": "fa:16:3e:1e:f7:9a", "network_id": "b0ad9b80-bb16-4550-8ce0-514f949e35ee", "tenant_id": "060576782980d5762f9ec014dd2f1148", "project_id": "060576782980d5762f9ec014dd2f1148", "device_id": "ab7ca781-66bf-48a8-814b-1568cb393a38", "device_owner": "compute:xxx", "security_groups": [ "0552091e-b83a-49dd-88a7-4a5c86fd9ec3" ], "extra_dhcp_opts": [], "allowed_address_pairs": [{ "ip_address": "1.1.1.1/0" }], "binding:vnic_type": "normal", "binding:vif_details": { "primary_interface": true }, "binding:profile": {}, "port_security_enabled": true, "dns_assignment": [ { "hostname": "ip-172-16-0-191", "ip_address": "172.16.0.191", "fqdn": "ip-172-16-0-191.br-iaas-odin1.compute.internal." } ], "dns_name": "ip-172-16-0-191", "created_at": "2020-11-19T13:32:37", "updated_at": "2020-11-19T13:33:50" } }
- Para obtener más información sobre los códigos de error que se muestran si la solicitud falla, consulte la sección Códigos de error.
- La solicitud se realiza correctamente si se muestra la siguiente respuesta: