Criação de uma conexão de VPN
Função
Essa API é usada para criar uma conexão de VPN que conecta um gateway de VPN a um gateway de cliente.
URI
Parâmetro |
Tipo |
Obrigatório |
Descrição |
---|---|---|---|
project_id |
String |
Sim |
Especifica um ID do projeto. Você pode obter o ID do projeto, referindo-se a Obtenção do ID do projeto. |
Solicitação
- Parâmetros de solicitação
Tabela 2 Parâmetros de solicitação Parâmetro
Tipo
Obrigatório
Descrição
vpn_connection
Sim
Especifica o objeto da conexão de VPN.
Tabela 3 CreateVpnConnectionRequestBodyContent Parâmetro
Tipo
Obrigatório
Descrição
name
String
Não
- Especifica o nome de uma conexão de VPN. Se este parâmetro não for especificado, um nome no formato vpn-**** é gerado automaticamente, por exemplo, vpn-13be.
- O valor é uma cadeia de 1 a 64 caracteres, que pode conter dígitos, letras, sublinhados (_) e hifens (-).
vgw_id
String
Sim
- Especifica um ID de gateway de VPN.
- O valor é um UUID contendo 36 caracteres.
Você pode obter o ID do gateway de VPN por consulta da lista de gateways de VPN.
vgw_ip
String
Sim
- Descrição da função:
Quando network_type do gateway de VPN estiver definido como public, defina vgw_ip como os IDs do EIP do gateway de VPN.
Quando network_type do gateway de VPN estiver definido como private, defina vgw_ip como os endereços IP privados do gateway de VPN.
- O valor é um UUID contendo 36 caracteres ou um endereço IPv4 em notação decimal pontilhada (por exemplo, 192.168.45.7).
Você pode obter os IDs do EIP ou endereços IP privados do gateway de VPN por consulta de informações sobre o gateway de VPN.
style
String
Não
cgw_id
String
Sim
- Especifica um ID de gateway de cliente.
- O valor é um UUID contendo 36 caracteres.
peer_subnets
Array of String
Não
- Especifica uma sub-rede de cliente.
- Restrições:
Este parâmetro não é necessário quando o modo de associação do gateway de VPN é definido como er e style é definido como policy ou bgp. Este parâmetro é obrigatório em outros cenários.
Os blocos CIDR reservados da VPC, como 100.64.0.0/10 e 214.0.0.0/8, não podem ser usados como sub-redes do cliente.
Um máximo de 50 sub-redes de clientes podem ser configuradas para cada conexão de VPN.
tunnel_local_address
String
Não
- Especifica o endereço da interface de túnel configurado no gateway de VPN no modo baseado em rota, por exemplo, 169.254.76.1/30.
- Restrições:
Os primeiros 16 bits devem ser 169.254 e o valor não pode ser 169.254.195.xxx.
O comprimento da máscara deve ser 30, e o endereço deve estar no mesmo bloco CIDR como o valor de tunnel_peer_address.
O endereço precisa ser um endereço de host em um bloco CIDR.
tunnel_peer_address
String
Não
- Especifica o endereço da interface de túnel configurado no dispositivo de gateway do cliente no modo baseado em rota, por exemplo, 169.254.76.2/30.
- Restrições:
Os primeiros 16 bits devem ser 169.254 e o valor não pode ser 169.254.195.xxx.
O comprimento da máscara deve ser 30, e o endereço deve estar no mesmo bloco CIDR como o valor do tunnel_local_address.
O endereço precisa ser um endereço de host em um bloco CIDR.
enable_nqa
Boolean
Não
- Especifica se deve ativar a função de análise de qualidade de rede (NQA).
- O valor pode ser true ou false.
- O valor padrão é false.
- Defina este parâmetro somente quando style for definido como static.
psk
String
Sim
- Especifica uma chave pré-compartilhada.
- O valor é uma cadeia de 8 a 128 caracteres, que deve conter pelo menos três tipos dos seguintes: letras maiúsculas, minúsculas, dígitos e caracteres especiais (~!@#$%^()-_+={ },./:;).
policy_rules
Array of PolicyRule
Não
- Especifica regras de política.
- Um máximo de cinco regras de política podem ser especificadas. Defina este parâmetro apenas quando style estiver definido como policy.
ikepolicy
Não
Especifica o objeto de política Internet Key Exchange (IKE).
ipsecpolicy
Não
Especifica o objeto de política Internet Protocol Security (IPsec).
Tabela 4 PolicyRule Parâmetro
Tipo
Obrigatório
Descrição
rule_index
Integer
Não
- Especifica um ID de regra.
- O valor varia de 0 a 50.
- O valor de rule_index em cada regra de política deve ser exclusivo.
source
String
Não
- Especifica um bloco CIDR de origem.
- O valor de source em cada regra de política deve ser exclusivo.
destination
Array of String
Não
Tabela 5 IkePolicy Parâmetro
Tipo
Obrigatório
Descrição
ike_version
String
Não
- Especifica a versão do IKE.
- O valor pode ser v1 ou v2.
- O valor padrão é v2.
phase1_negotiation_mode
String
Não
authentication_algorithm
String
Não
- Especifica um algoritmo de autenticação.
- O valor pode ser sha2-512, sha2-384, sha2-256, sha1 ou md5.
Tenha cuidado ao usar sha1 e md5, pois eles têm baixa segurança.
- O valor padrão é sha2-256.
encryption_algorithm
String
Não
- Especifica um algoritmo de criptografia.
- O valor pode ser aes-256-gcm-16, aes-128-gcm-16, aes-256, aes-192, aes-128 ou 3des.
Tenha cuidado ao usar 3des, pois tem baixa segurança.
- O valor padrão é aes-128.
dh_group
String
Não
- Especifica o grupo de DH usado para troca de chaves na fase 1.
- O valor pode ser group1, group2, group5, group14, group15, group16, group19, group20 ou group21.
- O valor padrão é group14.
lifetime_seconds
Integer
Não
- Especifica o tempo de vida da associação de segurança (SA). Quando o tempo de vida expira, uma SA do IKE é atualizado automaticamente.
- O valor varia de 60 a 604800, em segundos.
- O valor padrão é 86400.
local_id_type
String
Não
- Especifica o tipo de ID local.
- O valor pode ser ip ou fqdn.
- O valor padrão é ip.
local_id
String
Não
- Especifica o ID local.
- O valor pode conter no máximo 255 caracteres, incluindo apenas letras maiúsculas, minúsculas, dígitos e pontos (.). Este parâmetro é obrigatório quando local_id_type é definido como fqdn. O valor deve ser o mesmo do peer_id no dispositivo de par.
peer_id_type
String
Não
- Especifica o tipo de ID de par.
- O valor pode ser ip ou fqdn.
- O valor padrão é ip.
peer_id
String
Não
- Especifica o ID de par.
- O valor pode conter no máximo 255 caracteres, incluindo apenas letras maiúsculas, minúsculas, dígitos e pontos (.). Este parâmetro é obrigatório quando peer_id_type é definido como fqdn. O valor deve ser o mesmo do local_id no dispositivo de par.
dpd
Não
Especifica o objeto de detecção de ponto inativo (DPD).
Tabela 6 Dpd Parâmetro
Tipo
Obrigatório
Descrição
timeout
Integer
Não
- Especifica o intervalo para retransmissão de pacotes da DPD.
- O valor varia de 2 a 60, em segundos.
- O valor padrão é 15.
interval
Integer
Não
- Especifica o período de tempo limite de inatividade da DPD.
- O valor varia de 10 a 3600, em segundos.
- O valor padrão é 30.
msg
String
Não
Tabela 7 IpsecPolicy Parâmetro
Tipo
Obrigatório
Descrição
authentication_algorithm
String
Não
- Especifica um algoritmo de autenticação.
- O valor pode ser sha2-512, sha2-384, sha2-256, sha1 ou md5.
Tenha cuidado ao usar sha1 e md5, pois eles têm baixa segurança.
- O valor padrão é sha2-256.
encryption_algorithm
String
Não
- Especifica um algoritmo de criptografia.
- O valor pode ser aes-256-gcm-16, aes-128-gcm-16, aes-256, aes-192, aes-128 ou 3des.
Tenha cuidado ao usar 3des, pois tem baixa segurança.
- O valor padrão é aes-128.
pfs
String
Não
- Especifica o grupo de chaves DH usado pelo Perfect Forward Secrecy (PFS).
- O valor pode ser group1, group2, group5, group14, group15, group16, group19, group20, group21 ou disable.
- O valor padrão é group14.
transform_protocol
String
Não
lifetime_seconds
Integer
Não
- Especifica o tempo de vida de um túnel estabelecido através de uma conexão IPsec.
- O valor varia de 30 a 604800, em segundos.
- O valor padrão é 3600.
encapsulation_mode
String
Não
- Exemplo de solicitações
1. Criar uma conexão de VPN no modo de roteamento 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. Criar uma conexão de VPN no modo baseado em política.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. Criar uma conexão de VPN no modo de roteamento 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" } } }
Resposta
- Parâmetros de resposta
Código de status 201 retornado: operação bem-sucedida
Tabela 8 Parâmetros no corpo da resposta Parâmetro
Tipo
Descrição
vpn_connection
Especifica o objeto de conexão de VPN.
request_id
String
Especifica um ID da solicitação.
Tabela 9 ResponseVpnConnection Parâmetro
Tipo
Descrição
id
String
- Especifica um ID de conexão de VPN.
- O valor é um UUID contendo 36 caracteres.
name
String
- Especifica um nome de conexão de VPN. Se nenhum nome de conexão de VPN for especificado, o sistema gerará um automaticamente.
- O valor é uma cadeia de 1 a 64 caracteres, que pode conter dígitos, letras, sublinhados (_) e hifens (-).
vgw_id
String
- Especifica um ID de gateway de VPN.
- O valor é um UUID contendo 36 caracteres.
vgw_ip
String
- Especifica uma ID do EIP ou um endereço IP privado do gateway de VPN.
- O valor é um UUID contendo 36 caracteres ou um endereço IPv4 em notação decimal pontilhada (por exemplo, 192.168.45.7).
style
String
cgw_id
String
- Especifica um ID de gateway de cliente.
- O valor é um UUID contendo 36 caracteres.
peer_subnets
Array of String
Especifica uma sub-rede de cliente. Este parâmetro não é retornado quando o modo de associação do gateway de VPN é ER e style é BGP ou POLICY.
tunnel_local_address
String
Especifica o endereço da interface de túnel configurado no gateway de VPN no modo baseado em rota. Este parâmetro é válido somente quando style é STATIC ou BGP.
tunnel_peer_address
String
Especifica o endereço da interface de túnel configurado no dispositivo de gateway do cliente no modo baseado em rota. Este parâmetro é válido somente quando style é STATIC ou BGP.
enable_nqa
Boolean
- Especifica se NQA está ativada. Este parâmetro é válido somente quando style é STATIC.
- O valor pode ser true ou false.
policy_rules
Array of PolicyRule
Especifica regras de política. As regras de política são retornadas somente quando style é POLICY.
ikepolicy
Especifica o objeto de política IKE.
ipsecpolicy
Especifica o objecto de política IPsec.
created_at
String
Especifica a hora em que a conexão de VPN é criada.
updated_at
String
Especifica a hora da última atualização.
enterprise_project_id
String
- Especifica um ID do projeto empresarial.
- O valor é um UUID contendo 36 caracteres. O valor deve ser o mesmo que o ID do projeto empresarial do gateway de VPN especificado por vgw_id.
Tabela 10 PolicyRule Parâmetro
Tipo
Descrição
rule_index
Integer
- Especifica um ID de regra.
- O valor varia de 0 a 50.
source
String
Especifica um bloco CIDR de origem.
destination
Array of String
Especifica um bloco CIDR de destino. Por exemplo, um bloco CIDR de destino pode ser 192.168.52.0/24. Um máximo de 50 blocos CIDR de destino pode ser retornado para cada regra de política.
Tabela 11 IkePolicy Parâmetro
Tipo
Descrição
ike_version
String
- Especifica a versão do IKE.
- O valor pode ser v1 ou v2.
phase1_negotiation_mode
String
authentication_algorithm
String
- Especifica um algoritmo de autenticação.
- O valor pode ser sha2-512, sha2-384, sha2-256, sha1 ou md5.
encryption_algorithm
String
- Especifica um algoritmo de criptografia.
- O valor pode ser aes-256-gcm-16, aes-128-gcm-16, aes-256, aes-192, aes-128 ou 3des.
dh_group
String
- Especifica o grupo de DH usado para troca de chaves na fase 1.
- O valor pode ser group1, group2, group5, group14, group15, group16, group19, group20 ou group21.
authentication_method
String
lifetime_seconds
Integer
- Especifica o tempo de vida da SA. Quando o tempo de vida expira, uma SA do IKE é atualizada automaticamente.
- O valor varia de 60 a 604800, em segundos.
local_id_type
String
- Especifica o tipo de ID local.
- O valor pode ser ip ou fqdn.
local_id
String
Especifica o ID local. Quando local_id_type é definido como ip, o endereço IP do gateway de VPN correspondente à conexão de VPN é retornado. Quando local_id_type é definido como fqdn, o ID local especificado durante a criação ou atualização da conexão de VPN é retornado.
peer_id_type
String
- Especifica o tipo de ID de par.
- O valor pode ser ip, fqdn ou any.
peer_id
String
Especifica o ID de par. Quando peer_id_type é definido como ip, o endereço IP do gateway de cliente é retornado. Quando peer_id_type é definido como fqdn, o ID de par especificado durante a criação ou atualização da conexão de VPN é retornado. Quando peer_id_type é definido como any, nenhum dado é retornado.
dpd
Especifica o objeto da DPD.
Tabela 12 Dpd Parâmetro
Tipo
Descrição
timeout
Integer
- Especifica o intervalo para retransmissão de pacotes da DPD.
- O valor varia de 2 a 60, em segundos.
interval
Integer
- Especifica o período de tempo limite de inatividade da DPD.
- O valor varia de 10 a 3600, em segundos.
msg
String
Tabela 13 IpsecPolicy Parâmetro
Tipo
Descrição
authentication_algorithm
String
- Especifica um algoritmo de autenticação.
- O valor pode ser sha2-512, sha2-384, sha2-256, sha1 ou md5.
encryption_algorithm
String
- Especifica um algoritmo de criptografia.
- O valor pode ser aes-256-gcm-16, aes-128-gcm-16, aes-256, aes-192, aes-128 ou 3des.
pfs
String
- Especifica o grupo de chaves DH usado pelo PFS.
- O valor pode ser group1, group2, group5, group14, group15, group16, group19, group20, group21 ou disable.
transform_protocol
String
lifetime_seconds
Integer
- Especifica o tempo de vida de um túnel estabelecido através de uma conexão IPsec.
- O valor varia de 30 a 604800, em segundos.
encapsulation_mode
String
- Exemplo de respostas
1. Resposta à solicitação para criar uma conexão de VPN no modo de roteamento 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. Resposta à solicitação para criar uma conexão no modo baseado em 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. Resposta à solicitação para criar uma conexão de VPN no modo de roteamento 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 status
Para mais detalhes, consulte Códigos de status.