NAT-T技术

IPSec NAT穿越场景

在IPSec VPN部署中,如果发起者位于私网内部(如FW_C),而它希望与FW_A之间直接建立一条IPSec隧道,这种情况下 NAT会对部署IPSec VPN网络造成障碍。

在这里插入图片描述
PC2发业务报文给PC1,IPSec先对IP包头或端口信息进行验证,报文到达NAT设备时,IP地址或端口号会被转换,报文到达FWA的时候,因报文已经被修改,FW_A进行IPSec AH验证失败。如果IPSec使用了ESP进行加密,那么NAT设备读不到端口号,不能进行正常的地址转换。

IPSec穿越分析

AH会对整个IP报文进行保护,包括IP头,任何对Data或者IP头的修改都会导致验证失败。
在这里插入图片描述

TCP在计算检验和时,要加上一个12字节的伪首部。伪首部顾名思义就是假的首部,既不往上传也不往下传,只是用于校验TCP/UDP报文段。
  伪首部共有12字节,包含IP首部的一些字段,有如下信息:32位源IP地址、32位目的IP地址、8位保留字节(置0)、8位传输层协议号(TCP是6,UDP是17)、16位报文长度(首部+数据)。

ESP的传输模式下,NAT修改IP头,由于TCP会对IP进行校验然后加上对数据的校验,所以导致报文到达对端后,由于IP头部已经改变,导致TCP校验不正确丢包;

ESP的隧道模式下,NAT修改的是假IP头,所以可以,但是ESP会加密原始数据包的传输层端口信息,所以不支持PAT(不支持修改端口)。仅仅支持一对一的NAT

在这里插入图片描述

总结:

  • AH的传输模式和隧道模式都不支持NAT穿越
  • ESP传输模式也是不支持的
  • ESP隧道模式默认只支持一对一NAT转换,不支持PAT

IPSec VPN NAT穿越原理

NAT-T技术在ESP封装和外层IP报头之间插入8个字节的UDP报头,端口号为4500。有了端口号之后,NAT就可以正常进行转发了。

在这里插入图片描述
NAT设备对于私网用户不可见,所以网络设备要想知道是否有NAT的存在,以及什么时候该添加UDP报头,通过IPSec的IKE协商阶段决定

IPSec NAT穿越协商过程一

NAT穿越能力协商:在第一阶段IKE协商中通过Vender ID进行能力协商。
在这里插入图片描述

  • NAT穿越能力由IKE消息携带的厂商ID来决定。
  • 用来确定对端是否支持NAT穿越,如果对端不支持,本端添加UDP头后,对端无法识别会导致业务报文不能被正常处理。
  • 这个IKE协商报文是发起者的第一个报文,对端COOKIE为0。

IPSec NAT穿越协商过程二

NAT网关检测:在第一阶段IKE协商中实用NAT-D负载用于发现是否存在NAT。
在这里插入图片描述
为了侦测IP地址或者端口信息是否在传输过程中发生变化,双方交换IP地址/端口号的 Hash值,Hash值不同,说明使用了NAT或者PAT。Hash值以NAT-D负载进行发送,一个 NAT-D负载包含一个Hash值,一般情况下,只有本端和对端的两个Hash值。NAT-D负载包含在主模式的消息3、4中或者是包含在野蛮模式的消息2、3中。

IPSec NAT穿越协商过程三

NAT网关检测:在第一阶段IKE协商中测试UDP 4500端口是否可用
在这里插入图片描述
当设备检测到有NAT存在时,发起方将消息5、6的源端口和目的端口都设置为4500,
所有和发起方交换的IKE消息都使用4500端口通信。

IPSec NAT穿越协商四

  • NAT穿越功能启用协商∶IKE第二阶段的SA载荷中协商是否使用NAT穿越
  • 使用UDP封装IPSec ESP报文穿越NAT。
    在这里插入图片描述
  • IKE第一阶段完成后,通信双方都知道了NAT的存在,然后在IKE第二阶段的SA载荷中协商是否使用NAT穿越。
  • 如果使用NAT穿越,则在UDP报头后面直接封装ESP报文头。在UDP报文头中源端口号以及目的端口号采用和IKE协议一致的端口号4500。共用端口号的情况下如何区分这是IKE报文还是ESP报文呢?为了区分这两种报文,RFC3948规定采用UDP封装方式的ESP报文的SPI一定不能为0,同时规定使用启用NAT穿越的IKE协商报文在UDP报文头后插入4个值为0的字节,作为非ESP报文的标识。
  • 至此,双方完成NAT穿越协商,能够对后续的报文进行正确的处理。

IPSec VPN NAT穿越配置

在这里插入图片描述
场景分析∶

  • FWA与FWC之间需要建立IPSec隧道;
  • FWA通过分支机构宽带接入公网,即FWA外网口获得的是私网 地址;
  • NAT设备将分支机构的用户私有地址转换为公网地址以便在公网 路由
  • NAT设备通常处于ISP,对于分支机构不可见。

配置思路:
在这里插入图片描述
[ FWA-ike-peer-a ] nat traversal

  • IPSec NAT穿越功能配置比较简单,和普通IPSecVPN的配置最大的区别就在于多了这条命令。
  • FW_C的IPSec配置需指向FW_B公网地址,且需FW_A先发起协商,否则需在NAT设备上配置NAT-Server,放行UDP500和UDP4500端口。
  • FWB的配置、型号与IPSec隧道的建立无关。只需保证FWC经过FWB做地址转换后还可和FWA互通。 IPSec隧道两端均需配置该命令。
  • 需要在IPSec两端都配置NAT穿越

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值