Creación de una conexión VPN
Función
Esta API se utiliza para crear una conexión VPN que conecta un gateway de VPN a un gateway del cliente.
URI
Parámetro |
Tipo |
Obligatorio |
Descripción |
---|---|---|---|
project_id |
String |
Sí |
Especifica un ID de proyecto. Puede obtener el ID del proyecto haciendo referencia a Obtención del ID del proyecto. |
Solicitud
- Parámetros de solicitud
Tabla 2 Parámetros de solicitud Parámetro
Tipo
Obligatorio
Descripción
vpn_connection
Sí
Especifica el objeto de conexión VPN.
Tabla 3 CreateVpnConnectionRequestBodyContent Parámetro
Tipo
Obligatorio
Descripción
name
String
No
- Especifica el nombre de una conexión VPN. Si no se especifica este parámetro, se genera automáticamente un nombre con el formato vpn-****, por ejemplo, vpn-13be.
- El valor es una cadena de 1 a 64 caracteres, que puede contener dígitos, letras, guiones bajos (_), y guiones (-).
vgw_id
String
Sí
- Especifica un ID de gateway de VPN.
- El valor es un UUID que contiene 36 caracteres.
Puede obtener el ID de gateway de VPN consultando la lista de gateway de VPN.
vgw_ip
String
Sí
- Descripción de la función:
Cuando network_type del gateway de VPN se establece en public, establezca vgw_ip en los ID de EIP del gateway de VPN.
Cuando network_type del gateway de VPN se establece en private, establezca vgw_ip en las direcciones IP privadas del gateway de VPN.
- El valor es un UUID que contiene 36 caracteres o una dirección IPv4 en notación decimal con puntos (por ejemplo, 192.168.45.7).
Puede obtener los ID de EIP o direcciones IP privadas del gateway de VPN consultando información sobre el gateway de VPN.
style
String
No
cgw_id
String
Sí
- Especifica un ID de gateway de cliente.
- El valor es un UUID que contiene 36 caracteres.
peer_subnets
Array of String
No
- Especifica una subred de cliente.
- Restricciones:
Este parámetro no es necesario cuando el modo de asociación del gateway de VPN se establece en er y style se establece en policy o bgp. Este parámetro es obligatorio en otros escenarios.
Los bloques CIDR de VPC reservados como 100.64.0.0/10 y 214.0.0.0/8 no se pueden utilizar como subredes de clientes.
Se puede configurar un máximo de 50 subredes de clientes para cada conexión VPN.
tunnel_local_address
String
No
- Especifica la dirección de la interfaz de túnel configurada en el gateway de VPN en modo basado en ruta, por ejemplo, 169.254.76.1/30.
- Restricciones:
Los primeros 16 bits deben ser 169.254, y el valor no puede ser 169.254.195.xxx.
La longitud de la máscara debe ser 30, y la dirección debe estar en el mismo bloque CIDR que el valor de tunnel_peer_address.
La dirección debe ser una dirección de host en un bloque CIDR.
tunnel_peer_address
String
No
- Especifica la dirección de la interfaz de túnel configurada en el dispositivo de gateway del cliente en modo basado en ruta, por ejemplo, 169.254.76.2/30.
- Restricciones:
Los primeros 16 bits deben ser 169.254, y el valor no puede ser 169.254.195.xxx.
La longitud de la máscara debe ser 30, y la dirección debe estar en el mismo bloque CIDR que el valor de tunnel_local_address.
La dirección debe ser una dirección de host en un bloque CIDR.
enable_nqa
Boolean
No
- Especifica si se habilita la función de análisis de calidad de red (NQA).
- El valor puede ser true o false.
- El valor predeterminado es false.
- Establezca este parámetro solo cuando style se establezca en static.
psk
String
Sí
- Especifica una clave previamente compartida.
- El valor es una string de 8 a 128 caracteres, que debe contener al menos tres tipos de los siguientes: letras mayúsculas, minúsculas, dígitos y caracteres especiales (~!@#$%^()-_+={ },./:;).
policy_rules
Array of PolicyRule
No
- Especifica reglas de política.
- Se puede especificar un máximo de cinco reglas de política. Establezca este parámetro solo cuando style se establezca en policy.
ikepolicy
No
Especifica el objeto de política Intercambio de claves de Internet (IKE).
ipsecpolicy
No
Especifica el objeto de política Internet Protocol Security (IPsec).
Tabla 4 PolicyRule Parámetro
Tipo
Obligatorio
Descripción
rule_index
Integer
No
- Especifica un ID de regla.
- El valor varía de 0 a 50.
- El valor de rule_index en cada regla de política debe ser único.
source
String
No
- Especifica un bloque CIDR de origen.
- El valor de source en cada regla de política debe ser único.
destination
Array of String
No
Tabla 5 IkePolicy Parámetro
Tipo
Obligatorio
Descripción
ike_version
String
No
- Especifica la versión de IKE.
- El valor puede ser v1 o v2.
- El valor predeterminado es v2.
phase1_negotiation_mode
String
No
authentication_algorithm
String
No
- Especifica un algoritmo de autenticación.
- El valor puede ser sha2-512, sha2-384, sha2-256, sha1 o md5.
Tenga cuidado al usar sha1 y md5 ya que tienen poca seguridad.
- El valor predeterminado es sha2-256.
encryption_algorithm
String
No
- Especifica un algoritmo de encriptación.
- El valor puede ser aes-256-gcm-16, aes-128-gcm-16, aes-256, aes-192, aes-128 o 3des.
Tenga cuidado al usar 3des ya que tiene poca seguridad.
- El valor predeterminado es aes-128.
dh_group
String
No
- Especifica el grupo DH utilizado para el intercambio de claves en la fase 1.
- El valor puede ser group1, group2, group5, group14, group15, group16, group19, group20 o group21.
- El valor predeterminado es group14.
lifetime_seconds
Integer
No
- Especifica la duración de la asociación de seguridad (SA). Cuando expira la vida útil, una SA de IKE se actualiza automáticamente.
- El valor varía de 60 a 604800, en segundos.
- El valor predeterminado es 86400.
local_id_type
String
No
- Especifica el tipo de ID local.
- El valor puede ser ip o fqdn.
- El valor predeterminado es ip.
local_id
String
No
- Especifica el ID local.
- El valor puede contener un máximo de 255 caracteres, incluidos solo letras mayúsculas, letras minúsculas, dígitos y puntos (.). Este parámetro es obligatorio cuando local_id_type se establece en fqdn. El valor debe ser el mismo que el de peer_id en el dispositivo del mismo nivel.
peer_id_type
String
No
- Especifica el tipo de ID emparejado.
- El valor puede ser ip o fqdn.
- El valor predeterminado es ip.
peer_id
String
No
- Especifica el ID emparejado.
- El valor puede contener un máximo de 255 caracteres, incluidos solo letras mayúsculas, letras minúsculas, dígitos y puntos (.). Este parámetro es obligatorio cuando peer_id_type se establece en fqdn. El valor debe ser el mismo que el de local_id en el dispositivo del mismo nivel.
dpd
No
Especifica el objeto de detección de pares muertos (DPD).
Tabla 7 IpsecPolicy Parámetro
Tipo
Obligatorio
Descripción
authentication_algorithm
String
No
- Especifica un algoritmo de autenticación.
- El valor puede ser sha2-512, sha2-384, sha2-256, sha1 o md5.
Tenga cuidado al usar sha1 y md5 ya que tienen poca seguridad.
- El valor predeterminado es sha2-256.
encryption_algorithm
String
No
- Especifica un algoritmo de encriptación.
- El valor puede ser aes-256-gcm-16, aes-128-gcm-16, aes-256, aes-192, aes-128 o 3des.
Tenga cuidado al usar 3des ya que tiene poca seguridad.
- El valor predeterminado es aes-128.
pfs
String
No
- Especifica el grupo de claves DH utilizado por Perfect Forward Secrecy (PFS).
- El valor puede ser group1, group2, group5, group14, group15, group16, group19, group20, group21 o disable.
- El valor predeterminado es group14.
transform_protocol
String
No
lifetime_seconds
Integer
No
- Especifica la duración de un túnel establecido a través de una conexión IPsec.
- El valor oscila entre 30 y 604800, en segundos.
- El valor predeterminado es 3600.
encapsulation_mode
String
No
- Ejemplo de las solicitudes
1. Crear una conexión VPN en modo de enrutamiento estático.
POST https://{Endpoint}/v5/{project_id}/vpn-connection { "vpn_connection": { "vgw_id": "b32d91a4-****-****-****-e907174eb11d", "vgw_ip": "0c464dad-****-****-****-c22bb0eb0bde", "cgw_id": "5247ae10-****-****-****-dd36659a7f5d", "peer_subnets": [ "192.168.44.0/24" ], "psk": "abcd****" } }
2. Crear una conexión VPN en modo basado en políticas.POST https://{Endpoint}/v5/{project_id}/vpn-connection { "vpn_connection": { "vgw_id": "b32d91a4-****-****-****-e907174eb11d", "vgw_ip": "0c464dad-****-****-****-c22bb0eb0bde", "style": "policy", "cgw_id": "5247ae10-****-****-****-dd36659a7f5d", "peer_subnets": [ "192.168.44.0/24" ], "psk": "abcd****", "policy_rules": [{ "rule_index": 1, "source": "10.0.0.0/24", "destination": [ "192.168.0.0/24" ] }] } }
3. Crear una conexión VPN en modo de enrutamiento BGP.
POST https://{Endpoint}/v5/{project_id}/vpn-connection { "vpn_connection": { "name": "vpn-1655", "vgw_id": "b32d91a4-****-****-****-e907174eb11d", "vgw_ip": "0c464dad-****-****-****-c22bb0eb0bde", "style": "bgp", "cgw_id": "5247ae10-****-****-****-dd36659a7f5d", "peer_subnets": [ "192.168.44.0/24" ], "tunnel_local_address": "169.254.56.225/30", "tunnel_peer_address": "169.254.56.226/30", "psk": "abcd****", "ikepolicy": { "ike_version": "v2", "authentication_algorithm": "sha2-512", "encryption_algorithm": "aes-256", "dh_group": "group16", "lifetime_seconds": 172800, "local_id_type": "fqdn", "local_id": "123***", "peer_id_type": "fqdn", "peer_id": "456***", "dpd": { "timeout": 30, "interval": 60, "msg": "seq-notify-hash" } }, "ipsecpolicy": { "authentication_algorithm": "sha2-512", "encryption_algorithm": "aes-256", "pfs": "group16", "transform_protocol": "esp", "lifetime_seconds": 7200, "encapsulation_mode": "tunnel" } } }
Respuesta
- Parámetros de respuesta
Código de estado devuelto 201: operación exitosa
Tabla 8 Parámetros en el cuerpo de respuesta Parámetro
Tipo
Descripción
vpn_connection
Especifica el objeto de conexión VPN.
request_id
String
Especifica un ID de solicitud.
Tabla 9 ResponseVpnConnection Parámetro
Tipo
Descripción
id
String
- Especifica un ID de conexión VPN.
- El valor es un UUID que contiene 36 caracteres.
name
String
- Especifica un nombre de conexión VPN. Si no se especifica ningún nombre de conexión VPN, el sistema genera uno automáticamente.
- El valor es una cadena de 1 a 64 caracteres, que puede contener dígitos, letras, guiones bajos (_), y guiones (-).
vgw_id
String
- Especifica un ID de gateway de VPN.
- El valor es un UUID que contiene 36 caracteres.
vgw_ip
String
- Especifica un ID de EIP o una dirección IP privada del gateway de VPN.
- El valor es un UUID que contiene 36 caracteres o una dirección IPv4 en notación decimal con puntos (por ejemplo, 192.168.45.7).
style
String
cgw_id
String
- Especifica un ID de gateway de cliente.
- El valor es un UUID que contiene 36 caracteres.
peer_subnets
Array of String
Especifica una subred de cliente. Este parámetro no se devuelve cuando el modo de asociación del gateway de VPN es ER y style es BGP o POLICY.
tunnel_local_address
String
Especifica la dirección de la interfaz de túnel configurada en el gateway VPN en modo basado en ruta. Este parámetro solo es válido cuando style es STATIC o BGP.
tunnel_peer_address
String
Especifica la dirección de la interfaz de túnel configurada en el dispositivo de gateway del cliente en modo basado en ruta. Este parámetro solo es válido cuando style es STATIC o BGP.
enable_nqa
Boolean
- Especifica si NQA está habilitado. Este parámetro solo es válido cuando style es STATIC.
- El valor puede ser true o false.
policy_rules
Array of PolicyRule
Especifica reglas de política. Las reglas de política solo se devuelven cuando style tiene un valor de POLICY.
ikepolicy
Especifica el objeto de política IKE.
ipsecpolicy
Especifica el objeto de política IPsec.
created_at
String
Especifica la hora a la que se crea la conexión VPN.
updated_at
String
Especifica la hora de la última actualización.
enterprise_project_id
String
- Especifica un ID de proyecto de empresa.
- El valor es un UUID que contiene 36 caracteres. El valor debe ser el mismo que el ID del proyecto de empresa del gateway VPN especificada por vgw_id.
Tabla 10 PolicyRule Parámetro
Tipo
Descripción
rule_index
Integer
- Especifica un ID de regla.
- El valor varía de 0 a 50.
source
String
Especifica un bloque CIDR de origen.
destination
Array of String
Especifica un bloque CIDR de destino. Por ejemplo, un bloque CIDR de destino puede ser 192.168.52.0/24. Se puede devolver un máximo de 50 bloques CIDR de destino para cada regla de política.
Tabla 11 IkePolicy Parámetro
Tipo
Descripción
ike_version
String
- Especifica la versión de IKE.
- El valor puede ser v1 o v2.
phase1_negotiation_mode
String
authentication_algorithm
String
- Especifica un algoritmo de autenticación.
- El valor puede ser sha2-512, sha2-384, sha2-256, sha1 o md5.
encryption_algorithm
String
- Especifica un algoritmo de encriptación.
- El valor puede ser aes-256-gcm-16, aes-128-gcm-16, aes-256, aes-192, aes-128 o 3des.
dh_group
String
- Especifica el grupo DH utilizado para el intercambio de claves en la fase 1.
- El valor puede ser group1, group2, group5, group14, group15, group16, group19, group20 o group21.
authentication_method
String
lifetime_seconds
Integer
- Especifica la duración de la SA. Cuando expira la vida útil, una SA de IKE se actualiza automáticamente.
- El valor varía de 60 a 604800, en segundos.
local_id_type
String
- Especifica el tipo de ID local.
- El valor puede ser ip o fqdn.
local_id
String
Especifica el ID local. Cuando local_id_type se establece en ip se devuelve la dirección IP del gateway de VPN correspondiente a la conexión VPN. Cuando local_id_type se establece en fqdn, se devuelve el ID local especificado durante la creación o actualización de la conexión VPN.
peer_id_type
String
- Especifica el tipo de ID emparejado.
- El valor puede ser ip, fqdn o any.
peer_id
String
Especifica el ID emparejado. Cuando peer_id_type se establece en ip, se devuelve la dirección IP del gateway del cliente. Cuando peer_id_type se establece en fqdn, se devuelve el ID emparejado especificado durante la creación o actualización de la conexión VPN. Cuando peer_id_type se establece en any, no se devuelve ningún dato.
dpd
Especifica el objeto DPD.
Tabla 12 Dpd Parámetro
Tipo
Descripción
timeout
Integer
- Especifica el intervalo para retransmitir los paquetes de DPD.
- El valor varía de 2 a 60, en segundos.
interval
Integer
- Especifica el período de tiempo de espera inactivo del DPD.
- El valor varía de 10 a 3600, en segundos.
msg
String
Tabla 13 IpsecPolicy Parámetro
Tipo
Descripción
authentication_algorithm
String
- Especifica un algoritmo de autenticación.
- El valor puede ser sha2-512, sha2-384, sha2-256, sha1 o md5.
encryption_algorithm
String
- Especifica un algoritmo de encriptación.
- El valor puede ser aes-256-gcm-16, aes-128-gcm-16, aes-256, aes-192, aes-128 o 3des.
pfs
String
- Especifica el grupo de claves DH que utiliza PFS.
- El valor puede ser group1, group2, group5, group14, group15, group16, group19, group20, group21 o disable.
transform_protocol
String
lifetime_seconds
Integer
- Especifica la duración de un túnel establecido a través de una conexión IPsec.
- El valor oscila entre 30 y 604800, en segundos.
encapsulation_mode
String
- Ejemplo de las respuestas
1. Resonder a la solicitud de creación de una conexión VPN en modo de enrutamiento estático
{ "vpn_connection": { "id": "98c5af8a-6ee2-4482-99a2-ae2280a6f4c3", "name": "vpn-b2cb", "vgw_id": "b32d91a4-****-****-****-e907174eb11d", "vgw_ip": "0c464dad-****-****-****-c22bb0eb0bde", "style": "STATIC", "cgw_id": "5247ae10-****-****-****-dd36659a7f5d", "peer_subnets": ["192.168.44.0/24"], "tunnel_local_address": "169.254.56.225/30", "tunnel_peer_address": "169.254.56.226/30", "enable_nqa": false, "ikepolicy": { "ike_version": "v2", "authentication_algorithm": "sha2-256", "encryption_algorithm": "aes-128", "dh_group": "group14", "authentication_method": "pre-share", "lifetime_seconds": 86400, "local_id_type": "ip", "local_id": "10.***.***.134", "peer_id_type": "ip", "peer_id": "88.***.***.164", "dpd": { "timeout": 15, "interval": 30, "msg": "seq-hash-notify" } }, "ipsecpolicy": { "authentication_algorithm": "sha2-256", "encryption_algorithm": "aes-128", "pfs": "group14", "transform_protocol": "esp", "lifetime_seconds": 3600, "encapsulation_mode": "tunnel" }, "created_at": "2022-11-26T13:41:34.626Z", "updated_at": "2022-11-26T13:41:34.626Z", "enterprise_project_id": "0" }, "request_id": "f91082d4-6d49-479c-ad1d-4e552a9f5cae" }
2. Responder a la solicitud de creación de una conexión en modo basado en políticas{ "vpn_connection": { "id": "98c5af8a-****-****-****-ae2280a6f4c3", "name": "vpn-799d", "vgw_id": "b32d91a4-****-****-****-e907174eb11d", "vgw_ip": "0c464dad-****-****-****-c22bb0eb0bde", "style": "POLICY", "cgw_id": "5247ae10-****-****-****-dd36659a7f5d", "peer_subnets": ["192.168.44.0/24"], "tunnel_local_address": "169.254.56.225/30", "tunnel_peer_address": "169.254.56.226/30", "enable_nqa": false, "policy_rules": [{ "rule_index": 1, "source": "10.0.0.0/24", "destination": [ "192.168.44.0/24" ] }], "ikepolicy": { "ike_version": "v2", "authentication_algorithm": "sha2-256", "encryption_algorithm": "aes-128", "dh_group": "group14", "authentication_method": "pre-share", "lifetime_seconds": 86400, "local_id_type": "ip", "local_id": "10.***.***.134", "peer_id_type": "ip", "peer_id": "88.***.***.164", "dpd": { "timeout": 15, "interval": 30, "msg": "seq-hash-notify" } }, "ipsecpolicy": { "authentication_algorithm": "sha2-256", "encryption_algorithm": "aes-128", "pfs": "group14", "transform_protocol": "esp", "lifetime_seconds": 3600, "encapsulation_mode": "tunnel" }, "created_at": "2022-11-26T13:41:34.626Z", "updated_at": "2022-11-26T13:41:34.626Z", "enterprise_project_id": "0" }, "request_id": "f91082d4-6d49-479c-ad1d-4e552a9f5cae" }
3. Responder a la solicitud de creación de una conexión VPN en modo de enrutamiento BGP
{ "vpn_connection": { "id": "98c5af8a-****-****-****-ae2280a6f4c3", "name": "vpn-1655", "vgw_id": "b32d91a4-****-****-****-e907174eb11d", "vgw_ip": "0c464dad-****-****-****-c22bb0eb0bde", "style": "BGP", "cgw_id": "5247ae10-****-****-****-dd36659a7f5d", "peer_subnets": ["192.168.44.0/24"], "tunnel_local_address": "169.254.56.225/30", "tunnel_peer_address": "169.254.56.226/30", "enable_nqa": false, "ikepolicy": { "ike_version": "v2", "authentication_algorithm": "sha2-512", "encryption_algorithm": "aes-256", "dh_group": "group16", "authentication_method": "pre-share", "lifetime_seconds": 172800, "local_id_type": "fqdn", "local_id": "123***", "peer_id_type": "fqdn", "peer_id": "456***", "dpd": { "timeout": 30, "interval": 60, "msg": "seq-notify-hash" } }, "ipsecpolicy": { "authentication_algorithm": "sha2-512", "encryption_algorithm": "aes-256", "pfs": "group16", "transform_protocol": "esp", "lifetime_seconds": 7200, "encapsulation_mode": "tunnel" }, "created_at": "2022-11-26T13:41:34.626Z", "updated_at": "2022-11-26T13:41:34.626Z", "enterprise_project_id": "0", }, "request_id": "f91082d4-6d49-479c-ad1d-4e552a9f5cae" }
Códigos de estado
Para obtener más información, véase Códigos de estado.