了解ESP NAT
了解ESP NAT
通常情况下,IPSec中ESP对数据进行的完整性检查不包括外部的IP头,若只进行地址转换时,ESP可以正常工作。但ESP是三层协议,无法设置端口,所以执行允许端口转换的NAT时ESP报文存在问题。
FW提供ESP NAT功能,对ESP报文进行NAT转换,并为ESP报文设置端口,以区分不同的ESP报文。
ESP NAT支持在源NAT和NAT Server场景下应用。
源NAT场景下的ESP NAT处理流程
在源NAT场景下,PC1与PC2之间建立IPSec隧道。当PC1主动访问PC2时,FW将ESP报文的源地址进行NAT转换,并通过ESP NAT将SPI值分配给ESP报文作为端口号。
如图所示,PC1位于局域网络1,PC2位于局域网络2。
FW作为NAT设备,对ESP报文处理过程如下:
(1)在PC1发送报文给PC2时,FW收到PC1发送的ESP首包报文时,会创建正向会话,将正向ESP报文中前16位SPI值fspi1作为源端口号,后16位SPI值fspi2作为目的地址的端口号,NAT转换后源地址和目的地址的端口设置为0。
在收到正向ESP首包报文时刻起,在3S内如果未收到反向报文,正向会话会老化掉;如果这个阶段又收到新的正向ESP首包报文,FW会刷新会话表。
(2)在PC2发送响应报文给PC1时,FW收到反向报文,优先使用反向ESP报文中SPI值作为端口号查找会话,如果命中,则为已经创建好的会话,正常处理。如果没命中,需要再使用0做为端口号查找正向会话,完成会话表创建。FW并将32位反向ESP报文中SPI值分为两部分,前16位SPI值rspi1作为NAT后目的地址端口号,后16位SPI值rspi2作为NAT后源地址端口号,同时更新会话表。
源NAT场景下ESP NAT工作原理示意图
NAT Server场景下的ESP NAT处理流程
在NAT Server场景下,PC1与PC2之间建立IPSec隧道。局域网内部PC1地址映射为公网地址。当PC2访问公网地址时,FW将目的地址转换为PC1地址并通过ESP NAT将SPI值分配给ESP报文作为端口号。
如图所示,PC1位于局域网络1,PC2位于局域网络2。FW作为NAT设备,对ESP报文处理过程如下:
(1)在PC2发送报文给PC1时,FW收到PC2发送的ESP首包报文时,会创建正向会话,将正向ESP报文中前16位SPI值fspi1作为源端口号,后16位SPI值fspi2作为目的地址的端口号,NAT转换后源地址和目的地址的端口设置为0。
在收到正向ESP首包报文时刻起,在3S内如果未收到反向报文,正向会话会老化掉;如果这个阶段又收到新的正向ESP首包报文,FW会刷新会话表。
(2)在PC1发送响应报文给PC2时,FW收到反向报文,优先使用反向ESP报文中SPI值作为端口号查找会话,如果命中,则为已经创建好的会话,正常处理。如果没命中,需要再使用0做为端口号查找正向会话,完成会话表创建。FW并将32位反向ESP报文中SPI值分为两部分,前16位SPI值rspi1作为NAT后目的地址端口号,后16位SPI值rspi2作为NAT后源地址端口号,同时更新会话表。
NAT Server场景下ESP NAT工作原理示意图
2、本资源基本为原创,部分来源其他付费资源平台或互联网收集,如有侵权请联系及时处理。
3、本站大部分文章的截图来源实验测试环境,请不要在生产环境中随意模仿,以免带来灾难性后果。
转载请保留出处: www.zh-cjh.com珠海陈坚浩博客 » 了解ESP NAT
作者: cjh
手机扫一扫,手机上查看此文章: |
一切源于价值!
其他 模板文件不存在: ./template/plugins/comment/pc/index.htm