声明:原创作品,严禁用于商业目的。 如有任何技术问题,欢迎和我交流:19826269205(微信同号)。
B站学习链接
B站免费学习
文章目录
1. 概述
1.1 引言
1. 编写目的
目前,企业很少有独立的TR069模块或者协议管理功能,为了实现统一而且易用的TR069协议,需要做平台化考虑。本文档旨在说明TR069平台化开发以及商业应用的案例,帮助企业快速实现相关产品的网管功能开发。
2.预期的读者和阅读建议
本文档预期的读者和阅读建议见表:
3.定义
ACS Auto-Configuration Server
CPE Customer Premises Equipment
1. 2 TR069协议规范
tr069协议主要有tr069,tr098,tr106,tr181,TR111等。其中,TR069主要是通信协议的规范,交互的过程,TR098和TR181是数据模型的定义规范,tr111是stun应用的标准。建议必须至少阅读一次以上TR069的规范。
1.3 Easycwmp介绍
目前在CPE侧开源的TR069协议代码,维护最好、商用最广泛的就是easycwmp了,它已经集成在openwrt中,并且可以移植到Linux源码项目。easycwmp是早期freecwmp的升级版,官网提供easycwmp免费版本的packet,由于代码在业务层主要是使用脚本编写,维护和开发过程需要大量的时间和成本,而且可移植性差。但同时easycwmp还有一个纯C语言编写的商业版,毕竟是商业源码,推荐去看官网,商业和开源的差距:
Commercial solution implemented with C. This solution is recommended for big DataModels. With shell solution, the execution of GetParameterValue of the whole DataModel tree containing more than 150 parameters, can take more than 20 seconds. However, with the C solution it takes a few milliseconds.(官网部门描述)。
如果要实现自己的TR069协议的功能开发,根据EasyCwmp的设计理念,主要分为两个层次:分别是协议层CWMP程序和DataModel(数据模型)层动态库。 更多设计思想和开发技术讨论可以参考easycwmp官网:easycwmp官网。
1.4 TR069协议服务端测试工具
常见TR069的ACS端测试的软件,有openacs(鼻祖)、华为的itms、国外的测试工具vigoracs、还有个人组织的xacs等常见测试软件。后续会专门介绍相关测试软件的安装和测试。
2. TR069协议知识基础
2.1 TR069协议概述
CWMP是由数字用户线路DSL——Digital Subscriber’s Line论坛(之后更名为broadband-forum)发起开发的技术规范之一,编号为TR-069,所以又被称为TR-069协议。它提供了对下一代网络中家庭网络设备进行管理配置的通用框架、消息规范、管理方法和数据模型。
当前网络接入形式多样、网络复杂,由于用户设备数量繁多、部署分散,通常位于用户侧,不易进行设备的管理和维护。所以,CWMP提出通过ACS(Auto-Configuration Server,自动配置服务器)对CPE(Customer Premises Equipment,用户侧设备)进行远程集中管理,解决CPE设备的管理困难,节约维护成本,提高问题解决效率。
2.2 TR-069 网络框架
TR-069 网络的基本框架如图:
TR-069 网络元素主要有:
ACS:自动配置服务器,网络中的管理设备。
CPE:用户端设备,网络中的被管理设备。
DNS server:域名服务器。TR-069 协议规定 ACS 和 CPE 使用 URL 地址来互相识别和访问,DNS 用于帮助解析 URL 参数。
DHCP server:动态主机配置协议服务器,给网络 ACS、CPE 分配 IP 地址,使用 DHCP 报文中的 option 字段给 CPE 配置参数。
用户终端设备属于 CPE,使用 TR-069 协议与 ACS 进行消息交互。
2.3 协议栈结构
(1) TR069协议协议栈:
(2) 协议各层概要
2.4 TR069基本功能
(1). ACS 和 CPE 的自动连接
CPE 可以通过发送 Inform 报文自动连接 ACS。触发连接的方式有以下几种:
CPE 启动,根据获取的 URL 值找到相应的 ACS,并自动发起连接。
CPE使能了周期性发送 Inform报文功能,当周期(比如 1小时)到达时,CPE会自动发送 Inform报文来建立连接。
CPE 使能了定期发送 Inform 报文功能,当时间点到达时,CPE 会自动发送 Inform 报文来建立连接。
如果当前会话没有结束,但是连接异常中断,而且 CPE 自动重新连接的次数还没有达到上限,此时,CPE 也会自动建立连接。
ACS 可以在任何时候自动向 CPE 发起连接请求(Connect Request),通过 CPE 的认证(即匹配CPE 用户名、CPE 密码)后,可以与 CPE 建立连接。
(2). 支持 ACS 对 CPE 的自动配置
当 CPE 上线时,ACS 可以自动下发一些配置给 CPE,完成对 CPE 的自动配置。设备支持的自动配置项参数主要包括(不仅限于此):
配置文件(ConfigFile)
ACS 地址(URL)
ACS 用户名(Username)
ACS 密码(Password)
Inform 报文自动发送使能标志(PeriodicInformEnable)
Inform 报文周期发送时间间隔(PeriodicInformInterval)
Inform 报文定期发送日期(PeriodicInformTime)
CPE 用户名(ConnectionRequestUsername)
CPE 密码(ConnectionRequestPassword)
(3). 支持对 CPE 系统映像文件和配置文件的上传/下载管理
网络管理员可以将系统启动文件、配置文件等重要文件保存在 ACS 上,当 ACS 发现某个文件的版本有更新,将会通知 CPE 进行下载。CPE 收到 ACS 的下载请求后,能够根据 ACS 报文中提供的下载地址和文件名,自动到指定的文件服务器下载文件,下载完成后,对下载文件的合法性做相应的检查,并将下载结果(成功或失败)反馈给 ACS。目前,设备不支持以数字签名的方式进行的文件下载。
目前,设备支持下载的文件类型有:系统启动文件和配置文件。
同样,为了实现对重要数据的备份,CPE 将根据 ACS 的要求将当前的配置文件上传到指定的服务器。目前,设备支持上传的文件类型有:配置文件和日志文件。
(4). 支持 ACS 对 CPE 状态和性能的监控
ACS 可以监控与其相连的 CPE 的各种参数。由于不同的 CPE 具有不同的性能,可执行的功能也各异,因此ACS必须能识别到不同的CPE的性能,并监控到CPE的当前配置以及配置的变更。TR-069还允许网络管理人员自定义监控参数并通过 ACS 获取这些参数,以便了解 CPE 的状态和统计信息。
ACS 能够监控的状态和性能有:厂商名称(Manufacturer)、厂商标识 OUI(ManufacturerOUI)、序列号(SerialNumber)、硬件版本号(HardwareVersion)、软件版本号(SoftwareVersion)、设备状态(DeviceStatus)、启动时间(UpTime)、配置文件、ACS 地址、ACS 用户名、ACS 密码、Inform 报文自动发送使能标志、Inform 报文周期发送时间间隔、Inform 报文定期发送日期、CPE地址、CPE 用户名、CPE 密码等。
2.5 TR069方法
ACS 对 CPE 的管理和监控是通过一系列的操作来实现的,这些操作在 TR-069 协议里称为 RPC 方法。主要方法的描述如下:
Get:ACS 使用该方法可以获取 CPE 上参数的值。
Set:ACS 使用该方法可以设置 CPE 上参数的值。
Inform:当 CPE 与 ACS 建立连接时,或者底层配置发生改变时,或者 CPE 周期性发送本地信息到 ACS 时,CPE 都要通过该方法向 ACS 发起通告信息。
Download:为了保证 CPE 端硬件的升级以及厂商配置文件的自动下载,ACS 使用该方法可以要求 CPE 到指定的 URL 下载指定的文件来更新 CPE 的本地文件。
Upload:为了方便 ACS 对 CPE 端的管理,ACS 使用该方法可以要求 CPE 将指定的文件上传到 ACS 指定的位置。
Reboot:当 CPE 故障或者需要软件升级的时候,ACS 使用该方法可以对 CPE 进行远程重启。
3.TR069具体实现举例(电信光猫连接华为ITMS管理)
3.1 RPC方法接口
以参数变化上报接口为例,ITMS获得某一家庭网关特定的参数,调用如下RPC方法的接口:
3.2 接口时序
a)家庭网关发起Inform,包含EventCode CONNECTIONREQUET;
b)ITMS回应InformResponse;
c)家庭网关发起空的HTTP Post;
d)ITMS调用SetParameterAttributes RPC方法,设定参数值改变需要上报的参数属性;
e)家庭网关回应SetParameterAttributesResponse;
f)回应或结束Session;
g)参数值发生改变,家庭网关自动发起Inform,EventCode为VALUE CHANGE;
h)ITMS回应InformResponse;
i)结束。