IPsec 隧道应用示例
本文介绍了使用 IPsec 隧道实现 VPC 对等连接以及 VPC 与本地数据中心连接的配置方法。 其他更高级的连接场景和 GRE 隧道类似,可参见 GRE 隧道应用示例,本文不再赘述。
VPC 与 VPC 互联
如下图所示,假设您在云平台中有两个 VPC 网络 ,位于同一区域,分别为 router1 和 router2,这两个 VPC 网络各连接有两个私有网络。您可以通过 IPsec 隧道将他们连接在一起。
步骤1:在 VPC1 上配置隧道规则
-
登录管理控制台,选择产品与服务 > 网络服务 > VPC 网络,进入 VPC 列表页面。
-
点击 VPC1 网络名称(本例中为 router1),进入详情页。
-
在 VPC 详情页的管理配置页签,选择隧道服务。
-
点击添加隧道规则,弹出添加隧道规则窗口。
-
配置以下参数,添加一条到 router2 的 IPsec 隧道。
参数详细说明,请参见 IPsec 隧道参数说明。以下为本场景中的配置示例。
-
名称:为该隧道起个名字,如
router1 to router2
。 -
远端路由器: 因为是内网互连,在本例中填入远端路由器(router2)的 ID 即可。如果是公网互连,则需要填入远端路由器的公网 IP 或是域名。
-
协议:选择
IPsec
。 -
密钥:隧道两端共同约定的密钥,填写任意字符串。本例中为
passw0rd
。 -
本地网络:至少包括一个路由器已有的私有网络。在本例中为当前 VPC 的两个私有网络
192.168.1.0/24
、192.168.2.0/24
。 -
目标网络:在本例中为对端 VPC( router2 )的两个私有网络
192.168.3.0/24
、192.168.4.0/24
。 -
其他配置使用默认选项。
-
-
确认无误后,点击提交,返回隧道服务界面。
-
点击页面上方的应用修改,完成路由器的配置更新。
-
前往 VPC 网络使用的安全组规则中打开 IPsec 协议需要的端口/协议,分别为 UDP/500、UDP/ 4500、AH 协议 和 ESP 协议,添加规则后点击应用修改使之生效。
步骤2:在 VPC2 上配置隧道规则
由于隧道的对称性,在 VPC 网络 router2 上也需要有对应的配置。
-
在 VPC 列表页,点击 VPC2 网络名称(本例中为 router1),进入详情页。
-
在管理配置页签,点击隧道服务 > 添加隧道规则。
-
在隧道配置对话框里,填写以下参数,添加一条到 router1 的 IPsec 隧道。
-
名称:为该隧道起个名字,如
router2 to router1
。 -
协议:选择
IPsec
。 -
远端路由器:因为是内网互连,在本例中填入对端 VPC (router2)的 ID 即可。如果是公网互连,则需要填入远端路由器的公网 IP 或是域名。
-
密钥:隧道两端共同约定的密钥。本例中为
passw0rd
,与 router1 上配置的密钥保持一致。 -
本地网络:在本例中为当前 VPC 的两个私有网络
192.168.3.0/24
、192.168.4.0/24
。 -
目标网络:在本例中为对端 VPC( router1 ) 的两个私有网络
192.168.1.0/24
、192.168.2.0/24
。 -
其他配置使用默认选项。
-
-
确认无误后,点击提交,返回隧道服务界面。
-
点击页面上方的应用修改,完成路由器的配置更新。
-
前往 VPC 网络使用的安全组规则中打开 IPsec 协议需要的端口/协议,分别为 UDP/500、UDP/ 4500、AH 协议 和 ESP 协议,添加规则后点击应用修改使之生效。
步骤3:测试 VPC 之间的连通性
完成两个 VPC 网络的隧道配置之后,可以通过这两个 VPC 网络下的云服务器进行连通性测试。
-
登录到 VPC2 内的一台无公网 IP 的云服务器。
-
执行
ping
命令,访问 VPC1 内的一台服务器,验证通信是否正常。如果能够收到回复报文,则证明通信正常。
VPC 与本地数据中心互联
除 VPC 之间可以通过 IPsec 互联外,VPC 也可以和具有 IPsec 功能的物理设备(路由器、防火墙等)做互联。
假设本地数据中心的路由器公网地址为 88.88.88.88
,私有网络为 192.168.1.0/24
,云平台 VPC 公网地址为 99.99.99.99
, VPC 私有网络为 192.168.100.0/24
,现需要在本地数据中心的路由器中配置 IPsec 隧道实现与 VPC 通信。
步骤1:在 VPC 上配置隧道规则
-
登录管理控制台,选择产品与服务 > 网络服务 > VPC 网络,进入 VPC 列表页面。
-
点击 VPC 网络名称,进入详情页。
-
在 VPC 详情页的管理配置页签,选择隧道服务。
-
点击添加隧道规则,弹出添加隧道规则窗口。
-
配置以下参数,添加一条到本地数据中心的 IPsec 隧道。
参数详细说明,请参见 IPsec 隧道参数说明。以下为本场景中的配置示例。
-
名称:为该隧道起个名字,比如
vpc to idc
。 -
远端路由器:在本例中填入数据中心的公网 IP
88.88.88.88
。 -
协议:选择
IPsec
。 -
密钥:隧道两端共同约定的密钥,填写任意字符串。
-
本地网络:本端私有网络。在本例中为 VPC 的私有网络
192.168.100.0/24
。 -
目标网络:对端私有网络。在本例中为本地数据中心的私有网络
192.168.1.0/24
。 -
其他配置使用默认选项。
-
-
确认无误后,点击提交,返回隧道服务界面。
-
点击页面上方的应用修改,完成路由器的配置更新。
-
前往 VPC 网络使用的安全组规则中打开 IPsec 协议需要的端口/协议,分别为 UDP/500、UDP/ 4500、AH 协议 和 ESP 协议,添加规则后点击应用修改使之生效。
步骤2:在数据中心配置隧道规则
配置说明
以下是现阶段云平台 VPC IPsec 的支持参数,支持参数自动匹配、自动协商。
MODE: main[主模式]/aggrmode[野蛮模式]
TYPE: tunnel
IKE: ikev1(默认)/ikev2
IKE encrypt: AES(默认)/3DES
ESP encrypt: AES(默认)/3DES/DES/CAST/BLOWFISH/CAMELLIA/SERPENT/TWOFISH
IKE SA lifetime: 3600s
IPsec SA lifetime: 28800s
HASH: MD5/SHA1(默认)/SHA2
DH-GROUP: 2/5/14(默认)/15/16/17/18/22/23/24
PFS: up
NAT-Traversal: up
AUTH: PSK
DPDDelay: 15s
-
通常在物理设备上需要显式地定义 IPsec 的加密集(encryption 和 HASH)、DH group、lifetime、access-list、路由、NAT 豁免等信息。
-
如果对接的物理设备在内网,需要在基于 IPsec 的隧道规则中配置对端设备 ID,通常填写所对接内网的网关 IP。
配置示例
根据物理设备的品牌和型号,IPsec 的配置方法会存在差异性,详细配置方法请参阅设备的用户手册。以下以 Cisco ASA 及 H3C Router 为例。
以下为 Cisco ASA 设备使用 cli 进行配置的示例,主要包含了 crypto-map、access-list、psk、tunnel 的配置文本。
ASA(config)# access-list my_nat extended permit ip 192.168.1.0 255.255.255.0 192.168.100.0 255.255.255.0
ASA(config)# access-list cisco-to-cloud extended permit ip 192.168.1.0 255.255.255.0 192.168.100.0 255.255.255.0
ASA(config)# nat (inside) 0 access-list my_nat
ASA(config)# crypto ipsec transform-set ESP-3DES-MD5 esp-3des esp-md5-hmac
ASA(config)# crypto ipsec security-association lifetime seconds 28800
ASA(config)# crypto ipsec security-association lifetime kilobytes 4608000
ASA(config)# crypto map my_map 1 match address cisco-to-qingcloud
ASA(config)# crypto map my_map 1 set pfs
ASA(config)# crypto map my_map 1 set peer 99.99.99.99
ASA(config)# crypto map my_map 1 set transform-set ESP-3DES-MD5
ASA(config)# crypto map my_map interface outside
ASA(config)# crypto isakmp enable outside
ASA(config)# crypto isakmp policy 10
ASA(config-isakmp)# authentication pre-share
ASA(config-isakmp)# encryption 3des
ASA(config-isakmp)# hash md5
ASA(config-isakmp)# group 2
ASA(config-isakmp)# lifetime 3600
ASA(config)# crypto isakmp nat-traversal 60
ASA(config)# tunnel-group 99.99.99.99 type ipsec-l2l
ASA(config)# tunnel-group 99.99.99.99 ipsec-attributes
ASA(config-tunnel-ipsec)# pre-shared-key *****
以下为 H3C Router 设备使用 cli 进行配置的示例,主要包含了 transform-set、policy、profile、proposal、psk、acl 的配置文本。
#
acl number 3100
rule 10 permit ip source 192.168.1.0 0.0.0.255 destination 192.168.100.0 0.0.0.255
#
ipsec transform-set tran1
esp encryption-algorithm aes-cbc-128
esp authentication-algorithm sha1
pfs dh-group14
#
ipsec policy map1 10 isakmp
transform-set tran1
security acl 3100
remote-address 99.99.99.99
ike-profile profile1
sa duration time-based 28800
#
ike profile profile1
keychain keychain1
local-identity address 88.88.88.88
match remote identity address 99.99.99.99 255.255.255.255
proposal 1
#
ike proposal 1
encryption-algorithm 3des-cbc
dh group14
sa duration 3600
#
ike keychain keychain1
pre-shared-key address 99.99.99.99 255.255.255.255 key cipher *****