0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

穿越NAT的SDWAN技术实现(中)

夽谷科技组网服务 来源:夽谷科技组网服务 作者:夽谷科技组网服务 2022-10-11 12:11 次阅读

本文章内容过长,上篇请移步主页进行观看。

书接上文,我们继续来说说NAT在SDWAN中的技术实现。

STUN报文结构

STUN基于UDP传输协议报文,协议报文的封装格式如下图所示。

图STUN报文结构

pYYBAGNE5LeAJBbvAAAhdnbPw6g657.png

如下图所示,STUN消息(STUN Message)包括STUN消息头和STUN消息属性两部分。STUN消息头的长度为20字节,后面跟着零个或多个属性。

图STUN消息结构

pYYBAGNE5MOATci8AAB3V-qIyrE949.png

STUN消息头包含如下字段:

STUN Message Type:STUN消息类型,长度为14比特。当前仅支持STUN捆绑请求和STUN捆绑响应两种类型的消息。

Message Length:STUN消息长度,长度为16比特(不包括消息头长度)。

Magic Cookie:魔术字,长度为32比特。魔术字包含固定值0x2112A442,用于STUN服务器检测STUN客户端是否可以识别特定属性。此外,当STUN与其他协议使用相同的端口号时,通过魔术字可以将STUN和其他协议区分开。

Transaction ID:事务ID,长度为96比特,用于唯一标识一次STUN探测。事务ID由STUN客户端来选择。在一次STUN探测中,STUN服务器收到STUN客户端发送的STUN捆绑请求消息后,回复的STUN捆绑响应消息的事务ID与STUN捆绑请求消息的事务ID相同。同时,STUN服务器根据事务ID来唯一标识STUN客户端的不同探测请求。

STUN消息属性采用TLV(Type/Length/Value,类型/长度/值)格式,结构如图所示。其中,Type和Length字段的长度均为16比特,Value字段的长度可变。

图STUN消息属性结构

poYBAGNE5NKAFBXZAAAvleS-63Q480.png

常见的STUN消息属性包括如下几种:

CHANGE-REQUEST:捆绑请求中携带的消息属性,STUN客户端使用此属性来请求STUN服务器改变发送捆绑响应报文的IP地址、端口号。

MAPPED-ADDRESS:捆绑响应中携带的消息属性,表示经过地址转换后的STUN客户端的IP地址和端口。

XOR-MAPPED-ADDRESS:捆绑响应中携带的消息属性,表示经过地址转换后的STUN客户端的IP地址和端口。与MAPPED-ADDRESS不同的是,XOR-MAPPED-ADDRESS属性中携带的IP地址经过了异或(XOR)处理。

RESPONSE-ORIGIN:捆绑响应中携带的消息属性,表示STUN服务器发送数据的IP地址和端口。

OTHER-ADDRESS:捆绑响应中携带的消息属性,表示STUN服务器的另一个IP地址和端口号。假设STUN服务器的IP地址为Y1,替代IP地址为Y2,端口号为YP1,替代端口号为YP2。Da表示STUN客户端发送捆绑请求的目的IP地址,Dp表示STUN客户端发送捆绑请求的目的端口号。如果Da为Y1,那么OTHER-ADDRESS中的IP地址为Y2;如果Da为Y2,那么OTHER-ADDRESS中的IP地址为Y1。如果Dp为YP1,那么OTHER-ADDRESS中的端口号为YP2;如果Dp为YP2,那么OTHER-ADDRESS中的端口号为YP1。当STUN客户端要求STUN服务器使用不同的IP地址发送捆绑响应时,如果Da为Y1,则捆绑响应报文OTHER-ADDRESS中的IP地址为Y2;如果Da为Y2,则OTHER-ADDRESS中的IP地址为Y1。类似地,当STUN客户端要求STUN服务器使用不同的端口号发送捆绑响应时,如果Dp为YP1,那么OTHER-ADDRESS中的端口号为YP2;如果Dp为YP2,那么OTHER-ADDRESS中的端口号为YP1。

STUN工作机制

STUN客户端通过和STUN服务器交互STUN协议报文,探测网络中NAT设备上的NAT映射的类型和NAT过滤的方式,并根据探测结果判断NAT类型。

1.NAT映射类型探测

假设STUN服务器进行STUN探测使用的IP地址为Y1、Y2,端口号为YP1、YP2。STUN客户端的IP地址和端口号为(X,XP)。STUN进行NAT映射探测的流程如下图所示,具体步骤为:

(1)STUN客户端以Endpoint(X,XP)为源地址和源端口向STUN服务器的外网Endpoint(Y1,YP1)发送捆绑请求。STUN服务器使用Endpoint(Y1,YP1)给STUN客户端发送捆绑响应,响应内容包括:STUN客户端经过NAT映射后的外网Endpoint(X1,XP1),以及STUN服务器的另一个外网Endpoint(Y2,YP2)。

(2)STUN客户端收到STUN服务器发送的捆绑响应报文后,判断NAT映射后的Endpoint(X1,XP1)是否与内网Endpoint(X,XP)相同:

a. 如果Endpoint(X1,XP1)与Endpoint(X,XP)相同,则SUTN客户端认为不存在NAT映射。

b. 如果Endpoint(X1,XP1)与Endpoint(X,XP)不同,则STUN客户端使用第(3)步进行探测。

(3)STUN客户端以Endpoint(X,XP)向STUN服务器的外网Endpoint(Y2,YP1)发送捆绑请求。STUN服务器使用Endpoint(Y2,YP1)向STUN客户端发送捆绑响应,响应内容包括:STUN客户端经过NAT映射后的外网Endpoint(X2,XP2)。

(4)STUN客户端收到STUN服务器发送的捆绑响应报文后,判断NAT映射后的Endpoint(X2,XP2)是否与第(1)步中NAT映射后的Endpoint(X1,XP1)相同:

a. 如果Endpoint(X2,XP2)与Endpoint(X1,XP1)相同,则STUN客户认为NAT映射类型为EIM。

b. 如果Endpoint(X2,XP2)与Endpoint(X1,XP1)不同,则STUN客户端使用第(5)步进行探测。

(5)STUN客户端以Endpoint(X,XP)向STUN服务器的外网Endpoint(Y2,YP2)发送捆绑请求。STUN服务器使用Endpoint(Y2,YP2)向STUN客户端发送捆绑响应,响应内容包括:STUN客户端经过NAT映射后的外网Endpoint(X3,XP3)。

(6)STUN客户端收到STUN服务器发送的捆绑响应报文后,判断NAT映射后的Endpoint(X3,XP3)是否与第(3)步中NAT映射后的Endpoint(X2,XP2)相同:

a. 如果Endpoint(X3,XP3)与Endpoint(X2,XP2)相同,则STUN客户认为NAT映射类型为ADM。

b. 如果Endpoint(X3,XP3)与Endpoint(X2,XP2)不同,则STUN客户认为NAT映射类型为APDM。

NAT映射类型探测流程图

poYBAGNE5PCAaR6YAAEsY5Xg6qU978.png

2.NAT过滤方式探测

假设STUN服务器的IP地址为Y1,替代IP地址为Y2,端口号为YP1,替代端口号为YP2。STUN客户端的IP地址和端口号为(X,XP)。STUN进行NAT映射探测的流程如下图所示,具体步骤为:

(1)STUN客户端以Endpoint(X,XP)为源地址和源端口向STUN服务器的外网Endpoint(Y1,YP1)发送捆绑请求,请求报文中携带CHANGE-REQUEST属性,要求STUN服务器改变IP地址和端口号来发送捆绑响应。STUN服务器使用Endpoint(Y2,YP2)向STUN客户端发送捆绑响应。

(2)STUN客户端根据是否能收到响应报文进行如下判断:

a. 如果STUN客户端收到了捆绑响应报文,则STUN客户端认为NAT过滤类型为EIF。

b. 如果STUN客户端未收到捆绑响应报文,则STUN客户端使用第(3)步进行探测。

(3)STUN客户端以Endpoint(X,XP)向STUN服务器的外网Endpoint(Y1,YP1)发送捆绑请求,请求报文中携带CHANGE-REQUEST属性,要求STUN服务器改变端口号来发送捆绑响应。STUN服务器使用Endpoint(Y1,YP2)给STUN客户端发送捆绑响应。

(4)STUN客户端根据是否能收到响应报文进行如下判断:

a. 如果STUN客户端收到了捆绑响应报文,则STUN客户端认为NAT过滤类型为ADF。

b. 如果STUN客户端未收到捆绑响应报文,则STUN客户端认为NAT过滤类型为APDF。

图NAT过滤方式探测流程图

poYBAGNE5QaASicyAAEnWNrydBQ833.png

STUN客户端重传机制

STUN基于UDP传输协议报文,STUN协议报文有可能在传输过程中被丢弃。通过STUN客户端的重传机制可以提高STUN协议报文传输的可靠性。具体机制如下:

(1)STUN客户端发送捆绑请求报文后,如果在一定时间没有收到捆绑响应报文,STUN客户端会以一定的时间间隔重传捆绑请求报文。

(2) 当STUN客户端收到捆绑响应报文,或者STUN报文的重传次数达到最大,STUN客户端将停止重传。

(3) 如果STUN客户端重传STUN报文的次数达到最大后,还未收到捆绑响应报文,则STUN客户端认为捆绑请求报文传输失败,无法进行STUN探测。

(部分内容素材来源网络,侵权请联系删除)

审核编辑 黄昊宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • NAT
    NAT
    +关注

    关注

    0

    文章

    109

    浏览量

    16062
  • sdwan
    +关注

    关注

    2

    文章

    118

    浏览量

    7119
收藏 人收藏

    评论

    相关推荐

    sdwan云间互联方案是怎样的?sdwan如何实现多云平台互联?

    速 度慢、连接不稳定等问题。SDWAN通过智能路由和负载均衡技术,优化数据传输路径,提高带宽利用率,降低延迟,解决了云间互联中的延迟和带宽瓶颈问题。 2、安全性隐患与数据传输风险 多个云平台之间的互联存在安全隐患和数据传输风险。未
    的头像 发表于 03-19 17:05 163次阅读

    什么是NATNAT类型有哪些?NAT是如何工作的?NAT解决了什么问题?

    的方式来连接多个设备,而不需要为每个设备都分配一个公共IP地址。通过将源IP地址和端口号映射到公共IP地址和端口号,NAT充当了一个中间人,使得设备可以通过一个公共IP地址与外部网络进行通信。 根据不同的应用场景和实现方式,有几种常见的
    的头像 发表于 02-04 11:03 685次阅读

    SDWAN能为跨境电商做什么?

    SDWAN是一种用于优化和管理局域网 (WAN) 的网络解决方案。传统的WAN连接通常由交换机和路由器组成,但随着组织内网络的增长和变化,传统WAN的管理和配置变得繁琐。SDWAN使用软件定义的方法
    的头像 发表于 11-08 17:37 324次阅读

    sdwan放哪个区域?

    SDWAN是一种新兴的网络技术,它可以帮助企业更好地管理和优化其网络。那么,SDWAN应该放在 哪个区域呢? 首先,我们需要了解SDWAN的工作原理。
    的头像 发表于 10-18 11:20 219次阅读

    专线和sdwan的区别

    的网络连接,但需 要较高的成本和较长的部署时间。相比之下,sdwan是一种虚拟连接,可以通过互联网实现。它可以快速部署,成本较低,但可能会受到互联网的不稳定性影响。 其次,专线通常是点对点的连接,只能连接两个地点。而sdwan
    的头像 发表于 10-11 10:56 992次阅读

    sdwan专线适合什么用户?sdwan专线怎么样?

    SDWAN组网专线是企业通信的一种高效连接方式,通过使用SDWAN组网技术实现了可靠、安全、 高速的网络传输服务。除此之外,SDWAN组网
    的头像 发表于 09-25 13:52 1187次阅读

    sdwan云桌面的意思是什么?sdwan云桌面的关键点

    SDWAN云桌面(SDWANCloudDesktop),从专业角度来看,是指通过软件定义广域网(SDWAN)技术 来优化和提供云端虚拟桌面服务的解决方案。云桌面是一种将操作系统、利用程序和数
    的头像 发表于 08-31 15:26 314次阅读

    SDWAN的缺点及其解决方法

    SDWAN作为一种新兴的网络技术,虽然具有许多优点,但也存在一些缺点和挑战。在考虑部署SDWAN时,企业需要充分了解这些缺点,并采取相应的解决办法以确保SDWAN的有效实施和运行。以下
    的头像 发表于 08-02 11:43 773次阅读

    网络专线如何改成SDWAN

    将网络专线改成SDWAN涉及一系列步骤和决策。下面是一个Ogcloud推荐的概括指南,帮助您了解如何将网络专线迁移到SDWAN
    的头像 发表于 07-26 14:11 301次阅读

    SDWAN组网案例——跨境电商

    跨境电商企业在全球范围内开展业务,需要构建稳定、高效的网络架构来支持其跨境电商平台的运营。SDWAN技术可以为跨境电商企业提供优化的网络连接和管理,提高网络性能、可靠性和安全性。下面是Ogcloud提供过的跨境电商企业的SDWAN
    的头像 发表于 07-25 14:18 1784次阅读

    SDWAN和负载均衡的关系

    SDWAN和负载均衡的关系
    的头像 发表于 07-21 14:28 369次阅读

    SDWAN和专线在成本上的区别

    SDWAN和专线在成本上的区别
    的头像 发表于 07-20 14:11 489次阅读

    SDWAN产品的7大特征

    SDWAN产品的7大特征
    的头像 发表于 07-19 14:58 238次阅读

    华为ENSP静态NAT与动态NAT实验

    NAT(Network Address Translation)是一种将私有网络地址转换为公共网络地址的技术
    的头像 发表于 06-11 17:06 1951次阅读
    华为ENSP静态<b class='flag-5'>NAT</b>与动态<b class='flag-5'>NAT</b>实验

    DHCP和NAT组网配置全过程

    说明:NAT实现方式中Easy IP和地址池NAT类似,配置参考其中一个即可!其中,地址池NAT中有以下两种选择方式
    发表于 05-19 14:10 667次阅读
    DHCP和<b class='flag-5'>NAT</b>组网配置全过程