全国直销电话:4006-854-568
IT-technology
以人为本,众志成城,以“用户至上”.“服务上乘”为原则,
追求产品和服务高质量,努力实现与客户之间真诚有效的沟通,
不断地圆梦、奔跑与腾飞。
新闻动态   NEWS
当IPSec遇上NAT之问题的解决之道-北京赛维博信科技发展有限公司
来源:本人摘自网络,如有侵权请联系删除 | 作者:毛豆 | 发布时间: 2024-07-08 | 563 次浏览 | 分享到:


注:NAT-D负载内容算法HASH = HASH(CKY-I | CKY-R | IP | Port),CKY-I/CKY-R分别是IKE初始方(initiator)和响应方(responder)的cookie;第一个NAT-D的IP | Port为对端(目的)IP地址/端口号,第二个NAT-D的IP | Port为本端(源)IP地址/端口号;哈希算法为双方在1/2包中协商好的。


若检测到双方通信路径中存在NAT/PAT设备,后续IKE通信端口由UDP源/目500转换成4500。

主模式下的NAT-D交互及端口转换过程
积极模式下的NAT-D交互及端口转换过程


由于后续的ESP报文也用UDP 4500端口来封装,为了区分UDP 4500端口承载的是IKE报文还是ESP报文,为此在UDP和IKE报头之间插入一个值为0的4字节Non-ESP Marker(非ESP标记)字段,用于标记UDP承载的是一个IKE报文。Non-ESP Marker字段与ESP报文的SPI字段对齐(位置和长度一致),若该字段值为非0,则该字段为ESP的SPI,UDP承载的是一个ESP报文。

UDP封装的IKE报文格式


UDP封装的ESP报文格式


为了防止NAT/PAT设备的地址转换表中的UDP 4500端口转换表项过期被删除,导致后续数据包找不到对应的转换表项而被丢弃,因此存在NAT/PAT设备一方启用NAT keepalive功能,定期发送NAT-keepalive报文防止地址转换表中的UDP 4500转换表项过期。接收方会忽略这个NAT-keepalive,不会做出响应。


NAT-keepalive报文格式(源/目端口4500)


2.IKE阶段二中的NAT-T协商及数据封装格式


NAT-T中新定义了两种IPSec数据封装模式:UDP-Encapsulated-Tunnel(UDP封装隧道模式)/UDP-Encapsulated-Transport(UDP封装传输模式)。如果IPSec配置的是隧道模式,当IPSec对等体间存在NAT/PAT设备,则使用UDP封装隧道模式;如果IPSec配置的是传输模式,当IPSec对等体间存在NAT/PAT设备,则使用UDP封装传输模式。双方通过快速模式的1/2包协商ESP报文的封装模式。UDP封装传输模式/UDP封装隧道模式的报文格式如下:



UDP封装传输模式报文格式


UDP封装隧道模式报文格式

UDP封装传输模式/UDP封装隧道模式都是在IP头和ESP头之间插入一个UDP头,插入的这个UDP头在ESP哈希计算之外,并不会破坏ESP哈希计算结果导致接收方完整性验证失败。同时,通过添加这个UDP头使PAT设备可以对ESP报文执行端口转换,解决了ESP协议报文在传输模式/隧道模式下没有TCP/UDP端口供PAT进行转换的问题。

 

服务热线

1391-024-6332