科创园

科创园地,分享技术知识,为科技助力发展,贡献一己之力。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

CWMP开源代码研究8——stun的NAT穿透

Posted on 2017-04-10 17:38  科创园  阅读(4415)  评论(5编辑  收藏  举报

声明:原创作品,涉及的开源程序代码学习和研究,严禁用于商业目的。 如有任何问题,欢迎和我交流:408797506@qq.com(微信:408797506)

 B站视频链接TR069协议与商业应用

腾讯课堂视频链接TR069协议与商业应用

 参考:

http://www.cnblogs.com/myblesh/p/6259765.html

http://www.cnblogs.com/myblesh/p/6225651.html

开篇我就计划stun的高级部分,现在终于理清楚实现的原理和CPE侧代码实现。要做一个言而有信的人。

一. 协议规范

  TR069 TR111

二. 执行流程

在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侧实现

下面的流程图是目前CPE侧实现的stun功能,如需高清PDF版,请留言邮箱地址。或者到csdn下载:http://download.csdn.net/detail/eryunyong/9809748

 

四. 接入公网ACS测试

测试环境:

设备wan口地址是:192.168.0.113, 

acs公网ip地址是:81.68.141.224。或者(注册acs云网址:http://39.106.195.193:9090/acscloud)

部分截图如下:

 

五. 日志与抓包分析

下载链接: https://download.csdn.net/download/eryunyong/83674086