logo

百度智能云 IPSEC VPN使用避坑指南

作者:ACG马鹏程2023.03.09 19:53浏览量:366

简介:使用百度智能云的IPSEC-VPN产品相关的科普

目标

在百度智能云上,创建一个稳定的VPN,打通云上VPC和云下IDC

IKE和IPSEC配置一致

配置一致包括:

  1. IKE版本一致,两端要么都是IKEv1, 要么都是IKEv2。
  2. IKE协商模式一致,两端要么都是主模式(main),要么都是野蛮模式(aggressive)
  3. IKE加密认证算法一致,目前百度云VPN支持的IKE加密算法有aes, aes192, aes256和3des四种加密算法,认证算法有sha1, sha2-245, sha2-384, sha2-512, md5五种认证算法。
  4. 本端标识和对端标识一致,百度云的VPN采用的是NAT穿越,所以对于百度云侧来说,local-peer是一个VPC内的私网地址, remote-peer是客户侧的公网地址。但是客户侧的设备并不关心百度云VPN真实的私网地址,只关心公网地址,所以在IKE认证的时候,需要配置本段标识和远端标识,避免两端IP地址不一致造成PEER认证失败。百度云默认的本段标识是百度云VPN网关绑定的EIP,远端标识是客户侧的公网地址,所以客户侧配置,也应该以两端的公网地址作为本端标识和远端标识。
  5. 一致的IKE阶段DH分组,百度云目前支持group2, goup5, group14, group24。
  6. 一致的IKE lifetime。不一致的话,IKE协商阶段会以小的参数为准。
  7. 一致的ESP加密认证算法,目前百度云VPN支持的ESP加密算法有aes, aes192, aes256和3des四种加密算法,认证算法有sha1, sha2-245, sha2-384, sha2-512, md5五种认证算法。
  8. 一致的IPSEC阶段DH分组,百度云目前支持group2, goup5, group14, group24。
  9. 一致的IPSEC lifetime。

开启DPD

IPSEC使用DPD(dead peer detection)功能来检测对端peer是否存活,类似到其它协议中的hello或keepalive机制。

  1. on-demand 机制,该机制在隧道闲置时间超过指定配置的时间,且此时有报文发送,才会刺激发送 DPD探测消息
  2. periodic机制,该机制是在超过配置的时间后就会主动发送 DPD 探测消息。最大重传次数5次。

百度智能云使用periodic机制,默认每15秒探测一次,超过90s认为PEER不存活。90s后,会重新发起IKE和IPSEC协商,试图重新建立SA。建议客户侧也开启该功能。

保证两端感兴趣流配置

感兴趣流对应网络设备,其实就是advance acl,在百度云VPN中,对应本端网络和对端网络。假如百度云的VPC中有三个网段分别是10.20.0.0/24,10.20.1.0/24,10.20.2.0/24. 云下IDC网段为192.168.0.0/24,192.168.1.0/24,192.168.2.0/24。 在百度云VPN中的配置,10.20.0.0/24,10.20.1.0/24,10.20.2.0/24是本端网络,192.168.0.0/24,192.168.1.0/24,192.168.2.0/24是对端网络。对应云下对端设备应该配置9条Advance ACL

acl advanced 3000
 rule 1 permit ip vpn-instance xxxx source 192.168.0.0 0.0.0.255 destination 10.20.0.0 0.0.0.255
 rule 2 permit ip vpn-instance xxxx source 192.168.0.0 0.0.0.255 destination 10.20.1.0 0.0.0.255
 rule 3 permit ip vpn-instance xxxx source 192.168.0.0 0.0.0.255 destination 10.20.2.0 0.0.0.255
 rule 4 permit ip vpn-instance xxxx source 192.168.1.0 0.0.0.255 destination 10.20.0.0 0.0.0.255
 rule 5 permit ip vpn-instance xxxx source 192.168.1.0 0.0.0.255 destination 10.20.1.0 0.0.0.255
 rule 6 permit ip vpn-instance xxxx source 192.168.1.0 0.0.0.255 destination 10.20.2.0 0.0.0.255
 rule 7 permit ip vpn-instance xxxx source 192.168.2.0 0.0.0.255 destination 10.20.0.0 0.0.0.255
 rule 8 permit ip vpn-instance xxxx source 192.168.2.0 0.0.0.255 destination 10.20.1.0 0.0.0.255
 rule 9 permit ip vpn-instance xxxx source 192.168.2.0 0.0.0.255 destination 10.20.2.0 0.0.0.255
ip access-list extended acc_acl_xxx
 permit ip 192.168.0.0 0.0.0.255 10.20.0.0 0.0.0.255
 permit ip 192.168.0.0 0.0.0.255 10.20.1.0 0.0.0.255
 permit ip 192.168.0.0 0.0.0.255 10.20.2.0 0.0.0.255
 permit ip 192.168.1.0 0.0.0.255 10.20.0.0 0.0.0.255
 permit ip 192.168.1.0 0.0.0.255 10.20.1.0 0.0.0.255
 permit ip 192.168.1.0 0.0.0.255 10.20.2.0 0.0.0.255
 permit ip 192.168.2.0 0.0.0.255 10.20.0.0 0.0.0.255
 permit ip 192.168.2.0 0.0.0.255 10.20.1.0 0.0.0.255
 permit ip 192.168.2.0 0.0.0.255 10.20.2.0 0.0.0.255

当然,也可以进行合并。配置百度云侧的本端网络为10.20.0.0/16, 对端网络为192.168.0.0/16. 对应云下设备的配置

acl advanced 3000
 rule 0 permit ip vpn-instance xxxx source 192.168.0.0 0.0.255.255 destination 10.20.0.0 0.0.255.255
ip access-list extended acc_acl_xxx
 permit ip 192.168.0.0 0.0.255.255 10.20.0.0 0.0.255.255

一定要一致,一定要一致,一定要一致!!!

下列配置是错误的

百度云本端网段10.20.0.0/16,对端网段192.168.0.0/16
在云下IDC的网段配置成

ip access-list extended acc_acl_xxx
 permit ip 192.168.0.0 0.0.0.255 10.20.0.0 0.0.0.255
 permit ip 192.168.0.0 0.0.0.255 10.20.1.0 0.0.0.255
 permit ip 192.168.0.0 0.0.0.255 10.20.2.0 0.0.0.255
 permit ip 192.168.1.0 0.0.0.255 10.20.0.0 0.0.0.255
 permit ip 192.168.1.0 0.0.0.255 10.20.1.0 0.0.0.255
 permit ip 192.168.1.0 0.0.0.255 10.20.2.0 0.0.0.255
 permit ip 192.168.2.0 0.0.0.255 10.20.0.0 0.0.0.255
 permit ip 192.168.2.0 0.0.0.255 10.20.1.0 0.0.0.255
 permit ip 192.168.2.0 0.0.0.255 10.20.2.0 0.0.0.255

这就是典型的,感兴趣流不一致,尽管从网段的包含关系上来说是合法的,但是会协商出来多个SPI,并且配置紊乱。

谨慎使用NAT-P

云下IDC的VPN网关,需要谨慎端口NAT,尤其是VPN网关通过端口动态分配的SNAT方式出公网和百度云建IPSEC PEER。IKE使用UDP协商,如果使用的SNAT,百度云的VPN网关无法主动发起和客户VPN网关的建联,在IKE和IPSEC中断后,只能由客户的VPN网关主动发起IKE协商。而很多客户使用的VPN网关形态各异,配置凌乱,没有主动发起协商的话,就会导致IPSEC连接中断短期无法恢复。

百度云不支持接口模式

IPSEC有两种模式,一种是接口模式,又称为路由模式。另一种是策略模式。百度云能且只能支持策略模式

接口模式(路由模式)

基于虚拟隧道接口来定义需要保护的数据流,首先需要在两端的IPSEC设备创建一个虚拟隧道接口Tunnel, 然后通过配置以该Tunnel接口为出接口的静态路由,以限定到达某个目的子网的数据流可以通过IPSEC隧道进行转发。因为Tunnel接口是点对点类型的接口,是运行PPP链路层协议的,所以以该接口为出接口的静态路由是可以不指定下一跳地址的。
IPSEC虚拟隧道接口是一种三层逻辑接口,采用这种方式时,所有路由到IPSEC虚拟接口的报文都将惊醒IPSEC保护,不在对数据流类型进行区分。

策略模式

百度智能云的IPSEC VPN基于xfrm策略选择对报文的加密类型以及密钥。高级IPACL(advance acl)可以基于源目地址,源目端口等信息对数据报文进行过滤,而这正可以用来对允许进入IPSEC隧道的数据流进行过滤。
接口模式从理论上说只需要建立一对IPSEC SA, 而策略模式的IPSEC隧道,报文匹配到不同的策略使用对应不同的密钥和算法。所以使用策略模式,会在云上VPN网关和云下VPN网关之间,根据客户配置的感兴趣流,建立多对IPSEC SA。

相关文章推荐

发表评论