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

    文章

    169

    浏览量

    17217
  • sdwan
    +关注

    关注

    2

    文章

    341

    浏览量

    8001
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    跨境 SDWAN 专线:企业海外应用访问的优化方案

    应用的高效使用需求。而跨境SDWAN专线结合应用加速技术,成为解决这一问题的有效方式,从连接稳定性、应用体验、安全合规、成本部署等多方面为企业跨境网络使用提供支撑
    的头像 发表于 03-09 13:14 517次阅读
    跨境 <b class='flag-5'>SDWAN</b> 专线:企业海外应用访问的优化方案

    NAT 网关:工业跨网段通信的 “智能桥梁”,三格电子方案详解

    PLC、MES、HMI 等关键设备的协同工作。NAT(网络地址转换)网关作为解决跨网段通信难题的核心设备,通过智能的地址与端口映射技术,无需改动原有系统架构,即可实现异构网络的无缝互联。本文将深入解析工业级
    的头像 发表于 01-12 14:58 557次阅读
    <b class='flag-5'>NAT</b> 网关:工业跨网段通信的 “智能桥梁”,三格电子方案详解

    数据采集网关和NAT网关有什么区别

    数据采集网关与NAT网关在功能定位、应用场景、技术特性及设计重点上存在显著差异,以下是具体分析: 一、功能定位 数据采集网关 核心功能 :作为工业设备与上层管理系统(如MES、云平台)的桥梁,实现
    的头像 发表于 11-25 11:44 706次阅读

    NAT网关能够实现哪些工业设备的网段隔离

    NAT网关在工业场景实现PLC、HMI、CNC、DCS、MES等设备的网段隔离与跨网段通信,具体功能及设备支持如下 : 一、核心功能实现 跨网段隔离与IP转换 统一异构网段 :将分
    的头像 发表于 10-27 11:03 810次阅读
    <b class='flag-5'>NAT</b>网关能够<b class='flag-5'>实现</b>哪些工业设备的网段隔离

    NAT网关与网段隔离器有什么联系

    NAT网关与网段隔离器在功能上存在紧密联系,二者常通过技术整合实现网络地址转换与安全隔离的协同作用,尤其在工业网络环境中常被结合使用以解决跨网段通信与网络安全问题。以下从功能定位、技术
    的头像 发表于 10-21 14:03 614次阅读

    NAT网关能够接入工业物联网平台吗

    NAT网关能够接入工业物联网平台 ,且在工业物联网场景中发挥着关键作用,主要通过解决IP地址冲突、实现跨网段通信、保障网络安全及优化网络管理,支持工业设备与物联网平台的高效连接。以下是具体分析
    的头像 发表于 10-21 10:53 753次阅读
    <b class='flag-5'>NAT</b>网关能够接入工业物联网平台吗

    求助,关于lwip实现NAT转发到本地端口遇到的问题求解

    两个问题 (1)我下载了ipv4_nat.c,也按照说明在main.c写了几个例子,但是一直没有激活,不知道什么原因,我想把评论过来的端口返回到本地的监听端口,类似LINUX上的生成
    发表于 09-29 10:04

    如何使用ipv4_nat模块实现SNAT转发?

    255.255.255.255 172.16.1 00.231 转发给了板子,在板子上打印底层日志可以看到数据包 在RTOS内核的MAIN方法上增加NAT策略 ip_nat
    发表于 09-29 06:08

    网段隔离器实现静态NAT网络通信

    在许多网络场景,不同网段之间需要进行通信,但又要保证各网段的相对独立性和安全性。如果缺少网络规划与网段隔离,会使网络面临巨大的安全风险,各类网络攻击更容易传播。而静态NAT能够在实现网段隔离的前提下,建立起不同网段间的通信桥梁
    的头像 发表于 08-16 13:44 1104次阅读

    企业选择SDWAN方案时,需要注意哪些?

    ##企业选择SDWAN方案时,需要注意哪些?在数字化转型浪潮,企业广域网正经历从“连通即可”向“智能、安全、云原生”的深刻变革。SD-WAN技术凭借其颠覆性的架构理念,成为企业优化网络性能
    的头像 发表于 08-15 10:03 1714次阅读
    企业选择<b class='flag-5'>SDWAN</b>方案时,需要注意哪些?

    负载箱高低压穿越测试的必备设备:构建严苛“考场”的核心系统

    (低压穿越时),或吸收/提供高压穿越测试所需的功率。 四象限运行能力(理想):高级负载箱应能吸收和回馈能量,提高能效,尤其在高压穿越测试和多机并联测试优势明显。 电网环境“模拟器”:
    发表于 07-23 09:09

    宇联SDWAN:重塑企业网络智能连接新纪元

    拥抱数字化转型浪潮,企业网络架构正面临连接敏捷性、成本压力与安全威胁的三重挑战。宇联SDWAN解决方案正在深刻改变企业广域网的构建逻辑,其核心在于以软件定义技术重构传统网络架构,将原本僵硬、高成本
    的头像 发表于 07-16 17:56 1028次阅读

    NAT网关与网段隔离器有什么区别

    路径 。以下是具体分析: 核心功能差异 NAT网关 : 地址转换 :NAT网关的核心功能是将私有网络的IP地址转换为公共网络的可路由IP地址,
    的头像 发表于 07-16 15:19 1001次阅读

    NAT网关在国外PLC设备联网通信的作用

    NAT(网络地址转换)网关在国外PLC(可编程逻辑控制器)设备联网通信中扮演着关键角色,尤其在跨国工业网络部署、远程监控与数据交互场景,其作用主要体现在以下几个方面: 一、解决公网IP资源限制
    的头像 发表于 06-24 17:29 988次阅读
    <b class='flag-5'>NAT</b>网关在国外PLC设备联网通信的作用

    NAT网关实现跨网段访问与设备统一管理

    在某大型汽车制造工厂,随着生产线的不断升级和设备的增加,工厂网络面临着日益复杂的挑战。近期,工厂在引入一批新的自动化生产设备时,发现新设备与现有设备存在IP地址冲突的问题。这些新增的CNC机床
    的头像 发表于 06-21 15:41 1153次阅读
    <b class='flag-5'>NAT</b>网关<b class='flag-5'>实现</b>跨网段访问与设备统一管理