UDP封装
ESP协议对数据包的上层(TCP/UDP)数据封装后,上层数据被加密保护,这样NAT无法获取正确的端口信息,从而使得转换发生失败。用IPv4协议中标准UDP协议头封装IPSec:数据包,构成一个UDP隧道,通信路径上的设备看到的是UDP数据包。其端口值对NAT可见,就可以进行正确的转换。因此,在这种方式下,不需要改变网络的基础设施,只需在IPSec网关或实现有IPSec:的主机上进行IPSec和NAT协同工作处理。ESP包的封装。
IPSEC 分装包
传输模式
IP头部 UDP头部 ESP头部 数据 ESP尾部 ESP鉴别数据
---------------------加密------------------
------------------------------鉴别-------------------------------
隧道模式
外部IP头部 UDP头部 ESP头部 IP头部 数据 ESP尾部 ESP鉴别数据
---------------------加密------------------
------------------------------鉴别------------------------------------------------------
由于UDP封装的ESP包使用了IKE协商端口500,因此必须对IKE协商包的格式进行修改以区别这两种不同的包。具体的做法是在IKE数据包中的UDP头和IKE头之间添加4 B的Non-ESP标志。其值设为全O,而在ESP头中的前4 B是SPI字段,在实现过程中该字段不为0。这样就能有效的区分UDP封装的ESP包和IKE协商包了。
转载于:https://blog.51cto.com/isjin/399476