IPSec是现网中常用的VPN技术,也经常和GRE隧道用来互相嵌套;很多人对其中的一些原理并不是很清楚,本文结合具体现网经验(H3C),总结出两者之间的差异,望有所收获。
———— / BEGIN / ————
首先是清晰的配置区别,如下:
VPN类型 |
GRE over IPSec |
IPSec over GRE |
感兴趣流量(ACL定义) |
GRE(或隧道源目地址) |
内网数据流 |
IKE-Peer中指定的远程地址 (remote-address) |
对端公网口地址 |
对端Tunnel口地址 |
应用端口 |
公网接口(物理口) |
GRE Tunnel接口 |
通俗来说,GRE over IPSec是将GRE流量作为私网流量进行加密,GRE隧道的建立以及隧道中传输的流量都会被加密;而IPSec over GRE是在GRE隧道建立的基础之上,进行私网数据的加密,与普通的IPSec相比,区别仅仅是私网流量从哪转发就从哪进行加密。纯IPSec流量从公网接口转发,将策略应用在公网接口;IPSec over GRE只是因为私网流量从隧道转发,将策略应用在了Tunnel接口下。
以下是一些常见的注意事项:
1、对于GREVPN,若公网地址不固定,则应在Tunnel中的源和目的参数选用本地Loopback接口地址,公网打通Loopback,如果GRE路由选用OSPF等动态路由协议发布,一定不能发布Loopback接口地址,否则会引起路由表表内自环,路由动荡,接口频繁Up/Down。
2、对于IPSecVPN,若一端公网地址固定,一端公网地址不固定(如通过PPPoE拨号方式,或DHCP分配等),则需要采用野蛮模式,且公网地址不固定端需使用id-type name (默认是id-type ip)、remote name(ike local name默认是网关设备名称)和remote addess方式,IPSec流量触发为公网地址不固定一端主动触发。
对于v7设备,id-type name == identity fqdn;id-type ip == identity address;ike local name== ike identity fqdn。
2、对于IPSecVPN的NAT穿越功能,必须IKE对等体配置为野蛮模式,必须使用ESP封装方式(默认),不能用AH封装也不能AH+ESP,且IPSec的安全提议必须工作在隧道模式(默认),而不能为传输模式;隧道也由私网内部(藏在NAT后方)触发,在两端配置nat-traversal(v5需配置,v7默认)。
如果本网关也是NAT设备,则需要Deny掉IPSec的流防止NAT修改IPSec流导致IPSec失败(纯IPSec必须注意此项)。
4、对于总部多分支机构的情况下做IPSecVPN,总部端必须通过IPSec的安全模板来实现,然后在IPSec的安全策略中调用安全模板,安全模板中可以不定义匹配的安全ACL,此时IPSec的数据流触发为分支机构端单向触发。配置如:
ipsec policy 1 1 isakmp template 前一个1为策略名字,后一个1为结点号(顺序号)安全模板的意思就是自动配置IPSec ACL流配置。
5、可以通过dispaly ike sa和display ipsec sa来查看sa建立情况,在配置完成IPSec VPN后,一定要触发一下保护的流量(ping-a 源地址 目标地址),若清除sa,顺序应为先reset ipsec sa,然后再reset ike sa。