IPsec(IP security)协议族是IETF制定的一系列协议,它为IP数据报提供了高质量的、可互操作的、基于密码学的安全性。特定的通信方之间在IP层通过加密与数据源验证等方式,来保证数据报在网络上传输时的私有性、完整性、真实性和防重放。
IPsec作为一种重要的安全技术得到越来越广泛的应用,但是客户网络边缘大量使用的NAT地址转换操作可能影响到IPsec的正常操作。目前,NAT和IPsec之间存在的不兼容性问题主要可以分为以下三类:
l IP地址和端口不匹配的问题
l IPsec不能验证NAT报文的问题
l NAT超时影响IPsec的问题
针对此问题,我司在IKE野蛮模式的基础上实现NAT穿越,很好地解决了此问题。
为了使IKE支持目前广泛应用的通过ADSL及拨号方式构建VPN的方案中的特殊情况――即局端设备的IP地址为固定分配的,用户端设备的IP地址为动态获取的情况,在IKE阶段的协商模式中增加了IKE野蛮模式,它可以选择根据协商发起端的IP地址或者ID来查找对应的身份验证字,并最终完成协商。IKE野蛮模式相对于主模式来说更加灵活,能够支持协商发起端为动态IP地址的情况。
在IPsec/IKE组建的VPN隧道中,若存在NAT网关设备,且NAT网关设备对VPN业务数据流进行了NAT转换的话,则必须配置IPsec/IKE的NAT穿越功能。该功能删去了IKE协商过程中对UDP端口号的验证过程,同时实现了对VPN隧道中NAT网关设备的发现功能,即如果发现NAT网关设备,则将在之后的IPsec数据传输中使用UDP封装(即将IPsec报文封装到IKE协商所使用的UDP连接隧道里)的方法,避免了NAT网关对IPsec报文进行篡改(NAT网关设备将只能够修改最外层的IP和UDP报文头,对UDP报文封装的IPsec报文将不作修改),从而保证了IPsec报文的完整性(IPsec数据加密解密验证过程中要求报文原封不动地被传送到接收端)。目前仅在IKE野蛮模式下支持NAT穿越,主模式下不支持。