向 VPN 网关添加连接
您可以在 创建 VPN 网关 时或在供应一个 VPN 网关之后添加连接。 配置 VPN 连接时,可以选择使用自动协商进行连接,或者使用预定义的定制 IKE 或 IPsec 策略。 有关更多信息,请参阅 关于策略协商。
为连接指定的 IKE 第 1 阶段和第 2 阶段(IPsec)安全选项必须与 VPC 外部网络对等网关上设置的选项相同。
在控制台中添加连接
要将 VPN 连接添加到现有 VPN 网关,请执行以下步骤:
-
高亮显示 VPN 网关表中要处理的网关行,然后单击操作菜单
操作中的新建连接。
或者,在网关的详细信息页面上,可以单击“VPN 连接”部分中的 创建。
-
通过指定以下信息来定义此网关与 VPC 外部网络之间的连接:
-
VPN 连接名称- 输入连接名称,如
my-connection
。 -
对等网关地址- 指定 VPC 外部网络的 VPN 网关的 IP 地址。
配置 VPN 连接后,不能将对等网关地址类型从 IP 地址更改为 FQDN,或从 FQDN 更改为 IP 地址。
-
建立方式-选择 双向 或 仅对等。
- 双向模式从 VPN 网关的任一侧启动 IKE 协议协商(或重新输入密钥过程)。
- 仅对等 方式允许对等方对此 VPN 网关连接启动 IKE 协议协商。 建立连接后,对等方还负责启动密钥更新过程。
如果同级设备位于 NAT 设备后面并且没有公共 IP 地址,请确保仅指定 同级。
-
预共享密钥- 为 VPC 外部网络指定 VPN 网关的身份验证密钥。 预共享密钥是十六进制数字的字符串,或者是可打印的 ASCII 字符的口令。 要与大多数对等网关类型兼容,此字符串必须遵循以下规则:
- 可以是数字,小写或大写字符或以下特殊字符的组合:
- + & ! @ # $ % ^ * ( ) . , :
- 字符串的长度必须为 6-128 个字符。
- 不能以
0x
或0s
开头。
- 可以是数字,小写或大写字符或以下特殊字符的组合:
-
分配流量(仅限基于路由的 VPN)- 当 VPC 路由的下一跳是 VPN 连接时,启用在 VPN 网关连接的
Up
隧道之间分配流量。 如果未选择此复选框,VPN 网关将使用小公网 IP 的隧道作为主出口路径,只有当主出口路径被禁用时,流量才会通过次要路径。 更多信息,请参阅 用例 4:为基于路由的 VPN 分配流量。 -
本地 IBM CIDR (仅限基于策略的 VPN)-在要通过 VPN 隧道连接的 VPC 中指定一个或多个 CIDR。
-
对等 CIDR (仅限基于策略的 VPN)-指定要通过 VPN 隧道连接的另一网络中的一个或多个 CIDR。 不允许本地子网和对等子网之间的子网范围重叠。
-
-
要配置 VPN 网关如何发送消息来检查对等网关是否处于活动状态,请在 “失效对等检测” 部分指定以下信息。
- Action- 对等网关停止响应时要采取的措施。 例如,如果希望网关立即重新协商连接,请选择重新启动。
- Interval (secs)- 检查对等网关是否处于活动状态的频率。 默认情况下,信息每 2 秒发送一次。
- 超时(秒)- 等待对等网关响应的时间。 默认情况下,如果对等网关在 10 秒内没有收到响应,就会被认为处于非活动状态。
-
在 策略 部分中,指定用于连接的阶段 1 和阶段 2 协商的因特网密钥交换 (IKE) 和 Internet Protocol 安全性 (IPsec) 选项。
- 如果希望网关尝试自动建立连接,请选择自动。
- 如果需要执行特定的安全要求,或者如果对方网络的 VPN 网关不支持自动协商尝试的安全建议,请选择或创建自定义策略。
-
在 高级选项 部分中,可以定制本地和同级 IKE 标识,而不是使用缺省 IKE 标识。 最多可以指定一个同级 IKE 标识。
对于基于策略的 VPN 网关,最多可以配置一个本地 IKE 身份。 对于基于路由的 VPN 网关,如果要配置本地 IKE 身份,必须提供两个。 您可以为成员提供值,也可以让输入字段为空。
-
本地 IKE 标识-选择本地 IKE 标识的类型,然后输入其值。 例如,您可以输入单个4 octe IPv4 地址(
9.168.3.4
)、FQDN(my-vpn.example.com
)、主机名(my-host
)或 base64-encoded 密钥ID(MTIzNA==
)。-
静态路由方式由处于主动/主动方式的两个成员组成,其中第一身份适用于第一成员,第二身份适用于第二成员。 如果未指定本地 IKE 标识,那么类型为 IPv4 地址,值为成员的 VPN 连接隧道的公共 IP 地址。
-
策略方式由处于活动/备用方式的两个成员组成。 本地 IKE 身份适用于活动成员。 如果未指定值,则本地 IKE 标识为 VPN 网关的公共 IP 地址。
-
-
对等 IKE 标识-选择对等 IKE 标识的类型,然后输入其值。 例如,可以输入 IPv4 地址 (
9.168.3.4
)、FQDN (my-vpn.example.com
)、主机名 (my-host
) 或 base64-encoded 密钥 ID (MTIzNA==
)。对等 IKE 身份适用于活动成员。 如果未指定值,请使用对等网关的 IPv4 地址或 FQDN。
-
-
查看“摘要”面板,然后单击 创建 VPN 连接。
从 CLI 添加连接
开始之前,请 设置 CLI 环境。
要从 CLI 创建 VPN 连接,请输入以下命令:
ibmcloud is vpn-gateway-connection-create CONNECTION_NAME VPN_GATEWAY PEER PRESHARED_KEY
[--vpc VPC] [--admin-state-up true | false] [--dead-peer-detection-action restart | clear | hold | none]
[--distribute-traffic true | false]
[--dead-peer-detection-interval INTERVAL] [--dead-peer-detection-timeout TIMEOUT] [--ike-policy IKE_POLICY_ID]
[--ipsec-policy IPSEC_POLICY_ID] [--peer-cidr CIDR1 --peer-cidr CIDR2 ... --local-cidr CIDR1 --local-cidr CIDR2 ...]
[[--local-ike-identity-type fqdn | hostname | ipv4_address | key_id --local-ike-identity-value VALUE] |
[--local-ike-identities LISTENER_POLICIES_JSON | @LISTENER_POLICIES_JSON_FILE]]
[--peer-ike-identity-type fqdn | hostname | ipv4_address | key_id --peer-ike-identity-value VALUE]
[--establish-mode bidirectional | peer_only] [--output JSON] [-q, --quiet]
ibmcloud is vpn-gateway-connection-create CONNECTION_NAME VPN_GATEWAY PEER PRESHARED_KEY
其中:
CONNECTION_NAME
- 连接的名称。
VPN_GATEWAY
- VPN 网关的 ID。
PEER
- 对等 VPN 网关的 IP 地址或 FQDN。
PRESHARED_KEY
- 预共享密钥。
--vpc
- VPC 的标识或名称。 只有在此 VPC 中通过名称指定唯一资源时才需要使用此功能。
--admin-state-up
- 如果设置为
false
,则会关闭 VPN 网关连接。 这可以是true
或false
。 --dead-peer-detection-action
- 死对等点检测操作。 这可以是
restart
,clear
,hold
或none
。(缺省值:restart
)。 --dead-peer-detection-interval
- 死同级检测时间间隔 (以秒为单位) (缺省值:
2
)。 --dead-peer-detection-timeout
- 死对等检测超时 (以秒为单位) (缺省值:
10
)。 --distribute-traffic
- 当 VPC 路由的下一跳是 VPN connection.This 时,设置为
true
可在 VPN 网关连接的Up
隧道之间分配流量,true
或false
。 更多信息,请参阅 为基于路由的 VPN 分配流量。 --ike-policy
- IKE 策略的 ID。
--ipsec-policy
- IPsec 策略的 ID。
--local-ike-identity-type
- 本地 IKE 标识的类型。 这可以是
fqdn
,hostname
,ipv4_address
或key_id
。 --local-ike-identity-value
- 本地 IKE 标识的值。
--local-ike-identities
- 本地 IKE 身份的标识。 JSON 或 JSON 文件中的
LOCAL_IKE_IDENTITIES_JSON | @LOCAL_IKE_IDENTITIES_JSON_FILE
。 -peer-cidr
- 资源的对等 CIDR。
-local-cidr
- 资源的本地 CIDR。
-peer-ike-identity-type
- 对等 IKE 身份的类型。 这可以是
ipv4_address
,fqdn
,hostname
或key_id
。 --peer-ike-identity-value
- 对等 IKE 身份的值。
基于策略的 VPN 网关只能具有一个本地 IKE 身份。
如果基于路由的 VPN 网关指定了本地 IKE 标识,那么必须至少有两个; 第一个标识适用于 VPN 网关的第一个成员,第二个标识适用于第二个成员。
--establish-mode
- 这可以是
bidirectional
或peer_only
。 双向模式从 VPN 网关的任一侧启动 IKE 协议协商(或重新输入密钥过程)。 仅对等方式允许对等方对此 VPN 网关连接启动 IKE 协议协商。 建立连接后,对等方还负责启动密钥更新过程。 如果未进行再加密,那么 VPN 网关连接将在其生存期到期后除去。 -output
- 指定输出将采用 JSON 格式。
-q, --quiet
- 禁止详细输出。
命令示例
-
使用其必需的配置值为特定网关标识创建 VPN 连接:
ibmcloud is vpn-gateway-connection-create my-connection fee82deba12e4c0fb69c3b09d1f12345 169.21.50.5 lkj14b1oi0alcniejkso --local-cidr 10.240.0.0/24 --peer-cidr 192.168.1.0/24
-
为基于路由的 VPN 网关创建 VPN 连接,并启用 流量分发功能:
ibmcloud is vpn-gateway-connection-create CONNECTION_NAME VPN_GATEWAY PEER PRESHARED_KEY --distribute-traffic true
-
创建具有相同核心参数和指定 DPD 配置的 VPN 连接:
ibmcloud is vpn-gateway-connection-create my-connection fee82deba12e4c0fb69c3b09d1f12345 169.21.50.5 lkj14b1oi0alcniejkso --local-cidr 10.240.0.0/24 --peer-cidr 192.168.1.0/24 --dead-peer-detection-action clear --dead-peer-detection-interval 33 --dead-peer-detection-timeout 100
-
使用相同的核心参数和具有指定标识的定制策略创建 VPN 连接:
ibmcloud is vpn-gateway-connection-create my-connection fee82deba12e4c0fb69c3b09d1f12345 169.21.50.5 lkj14b1oi0alcniejkso --local-cidr 10.240.0.0/24 --peer-cidr 192.168.1.0/24 --ipsec-policy 72251a2e-d6c5-42b4-97b0-b5f8e8d1f479 --ike-policy 72251a2e-d6c5-42b4-97b0-b5f8e8d1f480
-
创建具有对等 FQDN 的 VPN 连接,并指定本地和对等 IKE 身份:
ibmcloud is vpn-gateway-connection-create my-connection fee82deba12e4c0fb69c3b09d1f12345 on-prem.my-company.com lkj14b1oi0alcniejkso --local-cidr 10.240.0.0/24 --peer-cidr 192.168.1.0/24 --local-ike-identities '[{"type":"key_id","value":"MTIzNA=="}]' --peer-ike-identity-type fqdn --peer-ike-identity-value on-prem.my-company.com --establish-mode peer_only
-
创建允许同级为此 VPN 网关连接启动 IKE 协议协商的 VPN 连接:
ibmcloud is vpn-gateway-connection-create my-connection fee82deba12e4c0fb69c3b09d1f12345 169.21.50.5 lkj14b1oi0alcniejkso --establish-mode peer_only --local-ike-identities '[{type:ipv4_address,value:2.2.2.2},{type:fqdn,value:sadsadasd.com}]' --peer-ike-identity-type key_id --peer-ike-identity-value MTIzNA==
-
使用高级配置选项创建 VPN 连接:
ibmcloud is vpn-gateway-connection-create to-prem ${gateway_id} on-prem.test.com test123 --local-cidr 10.10.20.0/28 --peer-cidr 192.168.0.0/24 --peer-ike-identity-type ipv4_address --peer-ike-identity-value 192.168.0.1 --establish-mode peer_only
从 CLI 将本地 CIDR 添加到 VPN 网关连接
开始之前,请 设置 CLI 环境。
要从 CLI 将本地 CIDR 添加到 VPN 网关连接,请输入以下命令:
此命令仅受策略方式 VPN 网关支持。
ibmcloud is vpn-gateway-connection-local-cidr-add VPN_GATEWAY CONNECTION PREFIX_ADDRESS PREFIX_LENGTH [--vpc VPC] [--output JSON] [-q, --quiet]
其中:
VPN_GATEWAY
- VPN 网关的 ID。
CONNECTION
- VPN 连接的 ID 或名称。
PREFIX_ADDRESS
- CIDR 的前缀地址部分。
PREFIX_LENGTH
- CIDR 的前缀长度部分。
--output value
- 以 JSON 格式输出。
-q, --quiet
- 禁止详细输出。
命令示例
为具有必需配置值的特定连接名称添加本地 CIDR:
ibmcloud is vpn-gateway-connection-local-cidr-add my-vpn-gateway my-connection 3.3.3.0/24
从 CLI 将对等 CIDR 添加到 VPN 网关连接
开始之前,请 设置 CLI 环境。
要从 CLI 将对等 CIDR 添加到 VPN 网关连接,请输入以下命令:
此命令仅受策略方式 VPN 网关支持。
ibmcloud is vpn-gateway-connection-peer-cidr-add VPN_GATEWAY CONNECTION PREFIX_ADDRESS PREFIX_LENGTH [--vpc VPC] [--output JSON] [-q, --quiet]
其中:
VPN_GATEWAY
- VPN 网关的标识。
CONNECTION
- VPN 连接的标识或名称。
PREFIX_ADDRESS
- CIDR 的前缀地址部分。
PREFIX_LENGTH
- CIDR 的前缀长度部分。
--output value
- 以 JSON 格式输出。
-q, --quiet
- 禁止冗长输出。
命令示例
为具有所需配置值的特定连接名称添加对等 CIDR:
ibmcloud is vpn-gateway-connection-peer-cidr-add my-vpn-gateway my-connection 4.4.4.0/24
添加与 API 的连接
要使用 API 创建 VPN 连接,请执行以下步骤:
-
使用正确的变量设置 API 环境。
-
存储要在 API 命令中使用的任何其他变量,例如:
-
vpnGatewayId
-VPN 网关标识。export vpnGatewayId=<your_vpn_gateway_id>
-
ikePolicyId
-此 IKE 策略的唯一标识。export ikePolicyId=<your_ike_policy_id>
-
ipsecPolicyId
-此 IPsec 策略的唯一标识。export ipsecPolicyId=<your_ipsec_policy_id>
-
-
启动所有变量时,创建 VPN 网关连接。 例如:
curl -X POST "$vpc_api_endpoint/v1/vpn_gateways/$vpnGatewayId/connections?version=$api_version&generation=2" \ -H "Authorization: $iam_token" \ -d '{ "name": "my-vpn-connection", "psk": "'$psk'", "dead_peer_detection": { "action": "restart", "interval": 2, "timeout": 10 }, "local": { "cidrs": "'$localCidrs'" }, "peer": { "cidrs": "'$remoteCidrs'", "address": "7.8.9.10" } "ike_policy": { "id": "'$ikePolicyId'" }, "ipsec_policy": { "id": "'$ipsecPolicyId'" } }'
-
(可选) 要使用高级配置选项创建连接:
curl -X POST "$vpc_api_endpoint/v1/vpn_gateways/$vpnGatewayId/connections?version=$api_version&generation=2" \ -H "Authorization: $iam_token" -d '{ \ "name": "my-advanced-vpn-connection", "establish_mode": "peer_only", "psk": "'$psk'", "dead_peer_detection": { "action": "restart", "interval": 2, "timeout": 10 }, "local": { "cidrs": "'$localCidrs'", "ike_identities": [ { "type": "key_id", "value": "dGVzdGtleQ==" } ] }, "peer": { "cidrs": "'$remoteCidrs'", "ike_identity": { "type": "hostname", "value": "cisco-asa" }, "fqdn": "on-prem.test.com" } "ike_policy": { "id": "'$ikePolicyId'" }, "ipsec_policy": { "id": "'$ipsecPolicyId'" }, "distribute_traffic":true }'
使用 API 将本地 CIDR 添加到 VPN 网关连接
要使用 API 将本地 CIDR 添加到 VPN 网关连接,请执行以下步骤:
此 API 仅受策略方式 VPN 网关支持。
-
使用正确的变量设置 API 环境。
-
存储要在 API 命令中使用的任何其他变量,例如:
-
vpnGatewayId
-VPN 网关标识。export vpnGatewayId=<your_vpn_gateway_id>
-
connectionId
-此 VPN 连接的唯一标识。export connectionId=<your_connection_id>
-
cidr_prefix
- CIDR 的前缀地址部分。export cidr_prefix=<your_cidr_prefix>
-
prefix_length
- CIDR 的前缀长度部分。export prefix_length=<your_prefix_length>
-
-
启动所有变量时,将本地 CIDR 添加到 VPN 网关连接。 例如:
curl -X PUT "$vpc_api_endpoint/v1/vpn_gateways/$vpnGatewayId/connections/$connectionId/local_cidrs/${cidr_prefix}/${prefix_length}?version=$api_version&generation=2" \ -H "Authorization: $iam_token"
使用 API 将对等 CIDR 添加到 VPN 网关连接
要使用 API 将对等 CIDR 添加到 VPN 网关连接,请执行以下步骤:
此 API 仅受策略方式 VPN 网关支持。
-
使用正确的变量设置 API 环境。
-
存储要在 API 命令中使用的任何其他变量,例如:
-
vpnGatewayId
-VPN 网关标识export vpnGatewayId=<your_vpn_gateway_id>
-
connectionId
-此 VPN 连接的唯一标识export connectionId=<your_connection_id>
-
cidr_prefix
- CIDR 的前缀地址部分export cidr_prefix=<your_cidr_prefix>
-
prefix_length
- CIDR 的前缀长度部分。export prefix_length=<your_prefix_length>
-
-
启动所有变量时,将对等 CIDR 添加到 VPN 网关连接。 例如:
curl -X PUT "$vpc_api_endpoint/v1/vpn_gateways/$vpnGatewayId/connections/$connectionId/peer_cidrs/${cidr_prefix}/${prefix_length}?version=$api_version&generation=2" \ -H "Authorization: $iam_token"
使用 Terraform 添加连接
要使用 Terraform 添加连接,请运行以下命令:
resource "ibm_is_vpn_gateway_connection" "is_vpn_gateway_connection" {
name = "my-vpn-gateway-connection"
vpn_gateway = ibm_is_vpn_gateway.is_vpn_gateway.id
peer_address = "7.8.9.10"
preshared_key = var.presharedkey
local_cidrs = [var.localCIDR]
peer_cidrs = [var.peerCIDR]
}
以下 Terraform 示例创建 VPN 网关连接:
resource "ibm_is_vpn_gateway_connection" "is_vpn_gateway_connection" {
name = "my-vpn-gateway-connection"
vpn_gateway = ibm_is_vpn_gateway.is_vpn_gateway.id
preshared_key = "VPNDemoPassword"
establish_mode = "bidirectional"
peer {
cidrs = [var.peerCIDR]
address = "7.8.9.10"
}
local {
cidrs = [var.localCIDR]
}
ike_policy = ibm_is_ike_policy.is_ike_policy.id
ipsec_policy = ibm_is_ipsec_policy.is_ipsec_policy.id
}
下面的 Terraform 示例为基于路由的 VPN 网关创建了一个 VPN 连接,并启用了 流量分发功能:
resource "ibm_is_vpn_gateway_connection" "test_VPNGatewayConnection1" {
name = "example-vpn-gateway-connection"
vpn_gateway = "${ibm_is_vpn_gateway.example.id}"
peer_address = "${ibm_is_vpn_gateway.example.public_ip_address}"
preshared_key = "VPNDemoPassword"
distribute-traffic = true
}
以下 Terraform 示例使用高级配置选项创建 VPN 连接:
resource "ibm_is_vpn_gateway_connection" "is_vpn_gateway_connection" {
name = "to-prem"
vpn_gateway = ibm_is_vpn_gateway.is_vpn_gateway.id
preshared_key = "test123"
establish_mode = "peer_only"
peer {
cidrs = ["192.168.0.0/24"]
ike_identity {
type = "ipv4_address"
value = "192.168.0.1"
}
fqdn = "on-prem.test.com"
}
local {
cidrs = ["10.10.20.0/28"]
}
}
有关更多信息,请参阅 Terraform 注册表。
后续步骤
要创建基于路由的 VPN,请首先 创建路由表,然后 使用 VPN 连接类型创建路由。