TR069-client实现了用于远程设备管理的CPE WAN管理协议(CWMP),该协议是由宽带论坛(BBF)标准化的。CWMP通过IP网络工作,使用HTTP(S)与自动配置服务器(ACS)通信,它可以监测、配置属性并更新远程设备的固件。通常由ISP用于管理CPE,但也可用于网络基础设施设备管理。
配置设置
TR069-client菜单参数。当软件包被安装时(首次在RouterOS 6.38中提供)。配置在 /tr069-client 中。
可写设置
客户端配置设置。
| 属性 | 说明 |
|---|---|
| enabled | 启用/禁用CWMP协议 |
| acs-url | ACS的URL例子: https://example.com:8080/path/, https://192.168.1.100/ |
| username | HTTP认证用户名(CPE用来 "登录 "ACS) |
| password | HTTP认证密码(CPE用来 "登录 "ACS)。 |
| periodic-inform-enabled | 启用/禁用CPE周期性会话启动。计时器在每次成功的会话后启动。当会话以周期性间隔启动时,信息RPC包含 "2 PERIODIC "事件。映射到 "Device.ManagementServer.PeriodicInformEnable "参数 |
| periodic-information-interval | 周期性信息的定时器间隔时间。映射到 "Device.ManagementServer.PeriodicInformInterval "参数。 |
| client-certificate | 客户端/CPE的证书,ACS可以使用它来进行额外的认证。 |
只读设置
只读参数用于监控客户的状态。
| 属性 | 说明 |
|---|---|
| status | CWMP的信息状态。 - disabled - 协议禁用 - waiting-URL - 协议已启用,但ACS URL未配置 - running - CWMP配置正确,将在事件发生时与ACS通信。 |
| last-session-error | 用户友好的错误描述,表明为什么前一个会话没有成功完成。 |
| retry-count | 连续不成功的会话数。如果>0,那么last-session-error应该表示错误。在一个成功的会话、禁用的协议或重启时重设为0。 |
命令
| 命令 | 说明 |
|---|---|
| reset-tr069-config | 完全重置并忘记tr069-client的配置和状态(不影响其他ROS的配置)。当CWMP进入无响应/挂起状态,并且应该在不重新安装RouterOS的情况下恢复时使用。 |
CWMP会话
CWMP客户端通常在不同的事件中开始与ACS通信(会话)-首次启动、重启、周期性间隔、远程请求、数值变化等。在每个会话中,CPE和ACS可以调用RPC,在另一方 "执行"。CPE总是以Inform RPC开始,其中包含连接原因、设备信息和一些参数值,这取决于配置。当CPE没有什么可说的了,ACS就会执行它的RPC(大多数情况下是参数管理RPC)。
参数和数据模型
参数是简单的名称+值对,每个供应商可以决定在其设备中支持哪些参数。所有支持的参数的组合被称为数据模型(DM)。BBF定义了三个根数据模型(TR-098, TR-181:1, TR-181:2),供应商应在此基础上支持其参数。RouterOS数据模型是基于 "TR-181 Issue 2 Amendment 11",这是最新的DM,由BBF推荐。
下载RPC
RouterOS更新(1个固件升级镜像)
CWMP标准规定,CPE的固件可以使用Download RPC进行更新,FileType="1 Firmware Upgrade Image "和可下载文件的URL(支持HTTP和HTTPS)。标准还指出,下载的文件可以是任何类型,并且可以应用供应商的特定流程来完成固件更新。因为MikroTik的更新是基于软件包的(也是为了获得额外的灵活性),所以使用XML文件来描述固件升级或降级。目前,XML配置支持提供多个文件的URL,这些文件将被下载并应用,就像常规的RouterOS更新通过固件包文件上传一样。
一个RouterOS捆绑包和tr069-client包更新的例子(别忘了也要更新tr069-client包)。一个XML文件应该放在某个HTTP服务器上,可以从CPE上访问,以供下载。另外,可下载的RouterOS包文件也应以同样的方式访问(可以在任何HTTP服务器上)。使用ACS执行下载RPC,URL指向XML文件(例如:https://example.com/path/upgrade.xml),内容是:
<upgrade version="1" type="links">
<config/>
<links>
<link>
<url>https://example.com/routeros-mipsbe-X.Y.Z.npk</url>
</link>
<link>
<url>https://example.com/tr069-client-X.Y.Z-mipsbe.npk</url>
</link>
</links>
</upgrade>
CPE将下载XML,解析验证其内容,从提供的URL下载文件并尝试升级。结果将通过TransferComplete RPC报告。
注意
始终使固件更新增量 - 首先,更新本地测试的设备,并确保CWMP通信以新的版本恢复,并且所需的ROS功能可以工作。其次,重复步骤,渐进地更新CPE组。不建议一次性更新所有远程设备。
警告: 在生产中使用HTTPS进行固件管理。
配置更改 (3个供应商配置文件)
同样的下载RPC可以用来执行完整的配置覆盖(按照标准的意图)或配置更改(当URL的文件名扩展名为".alter "时)。
改动配置
RouterOS有很多配置属性,不是所有的东西都可以移植到CWMP参数中,这就是为什么RouterOS提供了执行其强大的脚本语言来配置任何属性的可能性。可以使用下载RPC FileType="3 Vendor Configuration File "和可下载的文件扩展名".alter "来执行配置更改(这实际上是一个常规的脚本执行)。这个强大的功能可用于配置任何ROS属性,这些属性不能通过CWMP参数获得。
覆盖所有配置
完整的ROS配置可以通过使用下载RPC FileType="3 Vendor Configuration File "和任何URL文件名(扩展名为".alter "的除外)进行覆盖。
警告: 提供的配置文件(脚本)必须足够 "聪明",以便在重启后正确应用配置。当使用上传的配置文件与Upload RPC时,这一点尤其重要,因为它只包含导出的值。有些东西应该手动添加:
开始时的延迟,以便接口显示出来;
用户的隐藏密码;
证书。
RouterOS默认配置更改 (X MIKROTIK出厂配置文件)
这个供应商特定的文件类型允许改变RouterOS默认配置脚本,该脚本在 /system reset-configuration 命令被执行时(或路由器配置被重置时的其他方式)被执行。
注意
如果默认配置脚本被改变,它将不会被 /system default-configuration print 显示出来,因为如果该脚本被Netinstall工具改变,就会出现这种情况。该命令将始终显示MikroTik设置的默认脚本。
警告: 谨慎使用,因为上传脚本的失败可能会导致设备无法操作或无法被ACS访问。
FactoryReset RPC
这是CWMP标准RPC,执行RouterOS配置的工厂复位。重置过程的执行方式与执行命令的方式相同:
/system reset-configuration skip-backup=yes
请注意,每个设备的默认出厂配置可能不同(见 1 ),执行此命令会删除所有配置并执行内部存储的默认配置脚本。
为TR069准备具有自定义出厂设置的CPE的最佳实践指南 https://wiki.mikrotik.com/wiki/Tr069-best-practices
上传RPC
上传当前配置(1个供应商配置文件)
其结果是上传到ACS的文件与RouterOS中 /export 命令的输出相同。
上传日志文件 (2 Vendor Log File)
这是上传到ACS的文件,其结果与RouterOS中 /log print 命令的输出相似。
上传默认配置 (X MIKROTIK Factory Configuration File)
这个结果是上传到ACS的文件,其中有当前设置的默认配置脚本的内容,如果 /system reset-configuration 命令被执行,将被执行。它可能与使用 /system default-configuration print 返回的文件不同。
安全
HTTP只能在安全/私人网络中测试初始设置时使用,因为中间人攻击者可以读取/改变配置参数。在生产环境中,HTTPS是必须的。
CWMP的传入连接验证在设计上是安全的,因为除了先前配置的ACS,CPE不会与任何其他设备通信。连接请求只提示CPE与先前配置的ACS开始一个新的连接+新的会话。
经测试的ACS
顺序是按字母顺序排列的。MikroTik并不意味着任何一个供应商比另一个供应商优越。如果缺少某些ACS,可以通知我们它的存在,可能会被添加到列表中。
商业
我们已经测试并验证了以下商业ACS解决方案的有效性:
开放源代码
注意:下面这些ACS系统没有维护,不建议作为有用的选择。