TR069协议与商业应用7——Stun协议实现技术(提供源码解决方案)

本文介绍了STUN协议的原理及其在TR111中的应用,详细阐述了TR069协议下CPE设备如何通过STUN穿透NAT与公网ACS建立连接。通过流程图和实际测试环境展示了CPE设备的STUN功能实现,并提供了成功对接公网ACS的日志和抓包文件示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

声明:原创作品,严禁用于商业目的。 如有任何技术问题,欢迎和我交流。

课堂链接
免费视频部分
环境:华为CPE设备、公网服务器acs
阅读:开发者

1. 协议规范

STUN(Simple Traversal of UDP over NATs,NAT 的UDP简单穿越)是一种网络协议,它允许位于NAT(或多重NAT)后的客户端找出自己的公网地址,查出自己位于哪种类型的NAT之后以及NAT为某一 个本地端口所绑定的Internet端端口。这些信息被用来在两个同时处于NAT 路由器之后的主机之间建立UDP通信。该协议由RFC 3489定义。
TR111的实现是基于STUN协议(Simple Traversal of UDP over NATs),由RFC3489制定,现已由RFC5389替代。STUN是通过client 和公网里的STUN server发送binding request/response来确定client的具体NAT类型。

2. 技术实现

在TR111中,CPE设备穿透NAT的策略是STUN,但是STUN是基于UDP的,而TR069中CPE和ACS之间建立的连接是TCP的,那么ACS是如何主动发起连接的呢?实际上ACS主动发起的并不是TCP连接,而是可以不需要响应的无连接的。ACS能够自动检测到位于NAT设备或者gateway后面的设备(与STUN bind成功),然后发送UDP connection Request到STUN server,通过STUN server进行转发到与STUN server关联的内部CPE设备,进而CPE发起tr069规范中定义的6 connection request事件(TCP连接成功),在tcp连接超时时间范围内可进行设备管理操作。如果超时,ACS再次主动发送UDP connection Request,然后对设备进行管理操作。
下面的流程图是目前CPE侧实现的stun功能,如有技术需求可以留言。
详细设计流程图

3. 对接公网ACS测试

测试环境:
设备wan口地址是:192.168.0.113,
acs公网ip地址是:81.68.141.224。(公网地址根据自己实际环境进行调整,服务器端要支持stun协议
提供对接成功的日志和完整抓包下载:通过STUN连接公网ACS成功日志和抓包过程
下图是链接成功后的部分节点截图:
服务相关节点
电信PPPOE仿真测试节点
三层路由节点
语音服务相关节点
电信用户信息相关节点
TR069连接相关节点
LAN设备端相关节点
WAN设备端相关节点

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kcyuan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值