• 全部
  • 经验案例
  • 典型配置
  • 技术公告
  • FAQ
  • 漏洞说明
  • 全部
  • 全部
  • 大数据引擎
  • 知了引擎
产品线
搜索
取消
案例类型
发布者
是否解决
是否官方
时间
搜索引擎
匹配模式
高级搜索

举报

×

侵犯我的权益 >
对根叔知了社区有害的内容 >
辱骂、歧视、挑衅等(不友善)

侵犯我的权益

×

泄露了我的隐私 >
侵犯了我企业的权益 >
抄袭了我的内容 >
诽谤我 >
辱骂、歧视、挑衅等(不友善)
骚扰我

泄露了我的隐私

×

您好,当您发现根叔知了上有泄漏您隐私的内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到pub.zhiliao@h3c.com 邮箱,我们会尽快处理。
  • 1. 您认为哪些内容泄露了您的隐私?(请在邮件中列出您举报的内容、链接地址,并给出简短的说明)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)

侵犯了我企业的权益

×

您好,当您发现根叔知了上有关于您企业的造谣与诽谤、商业侵权等内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到 pub.zhiliao@h3c.com 邮箱,我们会在审核后尽快给您答复。
  • 1. 您举报的内容是什么?(请在邮件中列出您举报的内容和链接地址)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)
  • 3. 是哪家企业?(营业执照,单位登记证明等证件)
  • 4. 您与该企业的关系是?(您是企业法人或被授权人,需提供企业委托授权书)
我们认为知名企业应该坦然接受公众讨论,对于答案中不准确的部分,我们欢迎您以正式或非正式身份在根叔知了上进行澄清。

抄袭了我的内容

×

原文链接或出处

诽谤我

×

您好,当您发现根叔知了上有诽谤您的内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到pub.zhiliao@h3c.com 邮箱,我们会尽快处理。
  • 1. 您举报的内容以及侵犯了您什么权益?(请在邮件中列出您举报的内容、链接地址,并给出简短的说明)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)
我们认为知名企业应该坦然接受公众讨论,对于答案中不准确的部分,我们欢迎您以正式或非正式身份在根叔知了上进行澄清。

对根叔知了社区有害的内容

×

垃圾广告信息
色情、暴力、血腥等违反法律法规的内容
政治敏感
不规范转载 >
辱骂、歧视、挑衅等(不友善)
骚扰我
诱导投票

不规范转载

×

举报说明

IPSecVPN在NAT场景下的应用原理,强烈要求大佬们多多指正、多多分享!

2024-12-09发布
  • 1关注
ZL_ZN 二段
粉丝:0人 关注:0人

 

一、总结来说,为什么ipsec vpn nat场景下要使用UDP4500端口

1、nat场景需要的基础条件:隧道封装模式、ESP安全协议

2、在非nat模式下,用户的esp报文是承载在IP报文内的,是没有传输层端口的,而ipsec vpn使用的ike协商是用的UDP500端口,此时ike报文500端口,用户加密的ESP数据直接承载在IP下

3、而处于nat场景下时,由于nat设备一般不允许不带传输层端口的数据发出,此时正好用户的ESP数据没有传输层端口,所以发送端在检测到自身处于nat场景下就会给用户的esp报文添加一个端口用于顺利通过nat设备传输,至于这个端口是什么,一会揭晓

4、由于nat场景下会给用户的esp报文添加一个UDP500端口号,此时就出现了ike协议和用户的ESP封装后的数据都使用UDP500,此时系统无法识别从UDP500端口收到的数据是ike还是esp,所以在综合考虑之下选择给ike报文添加一个8位全0的标记来区分ike和esp数据,因为ike的协议数据相对比esp数据少很多,对ike加标记消耗的资源更少;

5、对ike的协议添加一个8位全0的字段标记后就无法继续使用UDP500端口,因为UDP500端口要对接很多其他设备,为了保证兼容性以及其他设备能识别UDP500端口的数据,综合考虑之下,将IKE协议已添加标记的报文使用新的UDP4500端口来传输,同时也将用户的ESP数据端口改为UDP4500,;

6、此时的报文类型就有了三种:1、最初的两个ike报文使用UDP500传输,一但检测到处于nat场景就衍生出2、3报文;2、添加标记的UDP4500ike协议报文;3、没有添加标记的UDP4500的用户ESP报文;

7、至于为什么用户的ESP数据不采用最初的UDP500报文,只将ike添加了标记的报文改为UDP4500:因为需要考虑IPSecVPN隧道建立完成了,nat外部的设备作为用户ESP报文发起方,同时因为nat设备的nat映射表是有时间的,如果用户长时间没有交互数据,nat设备上的udp500端口的映射就会删除,此时只留下了udp4500的ike协议一直交互(因为nat场景下,处于nat网关内部的设备会一直向外部设备发生UDP4500端口的nat刷新报文,来更新nat设备上的映射时间),那么现在nat外部用户再往nat内部的用户UDP500端口发送用户数据,此时流量到达nat设备,由于nat设备上500端口的映射早已删除,所以nat设备把流量丢弃,这样就导致外部用户始终无法主动发起流量给内部用户;

8、如果将用户的ESP数据也改为使用UDP4500端口,和ike协议报文一样:此时就会发生nat设备由于一直收到nat网关内部发生的nat刷新报文持续更新本地UDP4500端口映射表象时间,防止过期;此时外部用户过一段时间后主动往nat内部的UDP4500发生ESP数据,流量达到nat设备,nat查询到映射表象,将流量转发到nat内部IPSEcVPN设备;

9、总结来说为什么也把用户的ESP数据端口由500改为了UDP4500,因为UDP500端口在nat场景下,只有nat内部运行IPSecVPN的设备初始发生时使用,此时nat设备上建立映射表象,但是当发起方检测到处于nat场景下时就会把ike报文协商的端口改为4500,因为加了标记; 此时等待一段时间后nat设备上的500端口映射关系到期删除,4500端口由于nat内部的发送方会周期性发送nat更新报文用来刷新nat设备上的UDP4500端口映射表象,当前nat设备上只有UDP4500的映射表象;那么当外部用户还发送UDP500端口的ESP用户数据,此数据到达nat设备由于没有映射表象,将数据丢弃,如果用户发送的是和IKE协议一样的UDP4500端口的用户ESP数据,那么就会匹配nat设备上的映射表象将流量进行转发;

10、总归来说nat场景下需要给用户ESP数据加上传输层端口,由于给ESP数据加了端口,导致UDP500端口会收到IKE和ESP两种流量,系统无法区分。所以把ike的流量添加一个标记用来区分,但是ike流量添加了标记考虑到兼容性,添加了标记还使用500端口可能会导致其他设备无法识别,所以综合考虑把添加了标记的ike协议报文更换为UDP4500端口。同时为了nat外部用户能够在IPSecVPN隧道建立的情况下主动发起用户ESP数据,将用户的ESP数据封装到UDP4500下,和ike协议一样。这样外部用户在隧道建立完成后主动发起ESP用户数据就可以匹配到nat设备上建立的UDP4500映射关系,如果用户数据使用500端口会被丢弃,因为nat设备上500端口映射早不存在;

 

二、总结:nat场景下需要给用户esp数据添加一个传输层端口让其顺利通过防火墙等nat设备,而起始添加的端口是UDP500,导致UDP500有ike和esp两种数据,此时给ike协议数据添加一个标记用来区分,但由于添加了标记考虑到兼容性所以把ike协议报文端口改为UDP4500;如果用户的ESP数据继续使用UDP500端口的话,那么等nat映射设备上的500映射端口过期的话,外部用户再主动发起udp500端口的ESP数据就会被nat设备丢包,所以也将esp数据改为4500,因为4500端口会一直被nat网关设备内的运行IPSec的设备默认持续发送的nat-keeplive刷新报文刷新,此时外部用户使用UDP4500端口就可以正常主动发起用户ESP数据了

 

三、用户的ESP数据封装在UDP4500端口下有两个考虑:

1、添加端口是为了顺利通过nat出口设备,因为正常情况下nat设备是基于端口转换,没有传输层端口基本都会丢包

2、封装在UDP4500端口下,主要是考虑到等添加了标记的ike协议报文使用4500端口建立起来VPN隧道后,外部用户主动发起用户封装的esp数据给到nat内部时的端口映射情况,如果esp还使用udp500就会丢包,使用udp4500和ike一样端口时就会匹配存在的映射表现转发到nat内部设备

 

 

0个回复

该话题暂时没有网友回复过

回复

分享扩散:

提出建议

    +

亲~登录后才可以操作哦!

确定

亲~检测到您登陆的账号未在http://hclhub.h3c.com进行注册

注册后可访问此模块

跳转hclhub

你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作