DPD
死亡对等体检测(dead peer detection),检查对端IKE SA(iskmp sa)是否存在。当隧道出现异常,检测出异常重新发起协商,维持隧道。
作用:DPD解决隧道黑洞问题,用于检查第一阶段是否生效;若检查第一阶段的IKE SA断开,则不会再发出DPD包
检查机制
- 周期发送
- 按需发送(空闲计时器)
DPD检查依赖超时计数器,默认5次不回包,则删除本地SA
IPSec的NAT问题
NAT会破坏IPSec的完整性
具体场景:当ipsec设备没有部署在企业边界,而是部署在企业内网时,ipsec的通信地址会被边界NAT设备做地址转换,这种情况下,需要考虑ipsec和nat的兼容性
(1)详细分析IPSEC在第一阶段和第二阶段与NAT具体兼容情况:
- 第一阶段的主模式
- 第一阶段的野蛮模式
- 第二阶段的ESP传输模式
- 第二阶段的ESP隧道模式
- 第二阶段AH传输模式
- 第二阶段AH隧道模式
第一阶段的主模式:第5、6包的认证ID,由于NAT破坏无法完成身份认证
第一阶段的野蛮模式:ID可以自定义为字符串,NAT无法破坏,可正常完成第一阶段身份认证
第二阶段的AH的传输模式和隧道模式:AH协议会校验外层IP地址,无论是传输还是隧道NAT都回转换外层IP地址,完整性都会被破坏,AH协议无法与NAT兼容。
第二阶段的ESP的隧道模式与传输模式:ESP不会对外层IP做认证或校验,所以完整算法不会被NAT破坏,但是TCP会进行头部校验
(2)伪首部校验
NAT在修改IP地址的时候也要修改伪首部校验和,这样就不会出现伪首部校验失败的问题,但ESP将加密封装将4层加密后,NAT就无法修改伪首部校验和,则会导致校验失败。
ESP的传输模式会导致伪首部校验失败
ESP的隧道模式,伪首部针对的是原始IP头,NAT转换的是新IP头,不存在校验失败的问题,ESP隧道模式可以与NAT兼容
(3)结论
- 结论一:AH传输模式和隧道模式都不支持ANT;
- 结论二:ESP的传输模式不支持NAT,IP头不做校验
(标准的IKE SA的主模式使用IP地址作为身份ID,nat会破坏IP地址故而不支持主模式,仅支持野蛮模式)
NAT环境下的IPSec配置 --- 野蛮模式 + ESP的隧道模式
IPSEC的多VPN问题
(ESP加密数据 -- ESP协议没有端口号)
以上问题是IPSEC在NAT环境下用野蛮模式和ESP隧道模式下会遇到的问题
NAT环境下IPSEC最终解决方案:NAT-T(NAT穿透)技术,改技术规定在NAT模式下IPSEC的IKE SA阶段使用目的端口UDP 500或4500作为端口号,源端口允许被修改(这种情况下防火墙写策略时不要规定其源端口号),IPSEC SA数据加密流传输阶段规定使用目的端口UDP 4500来传输ESP加密流,源端口允许被修改,解决了ESP没有端口号的问题。
华为与思科的产品都默认开启NAT-T技术;若需要对方主动协商,本端在NAT设备上需要配置静态NAT映射
nat static protocol udp global 100.1.1.1 500 inside 10.100.1.1 500
nat static protocol udp global 100.1.1.1 4500 inside 10.100.1.1 4500
附:IPSEC不支持动态协议