关于CWMP基础(一)----(TR069)

概述

1.为什么需要TR069?

随着VoIP、IPTV等越来越多IP终端设备的普及(尤其在家庭中的普及),大量设备的配置和维护变得越来越困难,大大提高了网络产品运营商的成本,传统的基于SNMP的网管系统面对众多的终端设备时显得力不从心,限制了宽带接入市场的发展速度和规模。TR069定义了一套全新的网管体系结构,包括“管理模型”,“交互接口”,“管理参数”,在很大程度上减少了网络产品的运为成本。

2.概念

CWMP(CPE WAN Management Protocol,CPE广域网管理协议)是由DSL(Digital Subscriber’s Line,数字用户线路)论坛发起开发的技术规范之一,编号为TR-069,所以又被称为TR-069协议。它提供了对下一代网络中家庭网络设备进行管理配置的通用框架、消息规范、管理方法和数据模型。
CWMP主要应用于DSL接入网络环境。在DSL接入网络中,由于用户设备数量繁多、部署分散,通常位于用户侧,不易进行设备的管理和维护,CWMP提出通过ACS(Auto-Configuration Server,自动配置服务器)对CPE(Customer Premises Equipment,用户侧设备)进行远程集中管理,解决CPE设备的管理困难,节约维护成本,提高问题解决效率。

TR069协议族

  • TR-069 CPE广域网管理协议
  • TR-098 CPE数据业务的管理事务
  • TR-104 VOIP业务的管理参数
  • TR-106 TR069的通用数据模型
  • TR-111 基于TR-069的家庭网络设备远程管理

主要功能

TR069协议描述了一种建立ACS对CPE进行安全的自动化配置管理的框架,同时将它的CPE管理功能添加到这个框架中。实现一下多种功能,从而能够管理一个CPE或者CPE集合。

  1. 提供自动配置和动态服务:
    该机制涉及到的参数既有一般规定的参数,也可以包含用户自定义的参数,为软件实现留有更大的自主空间。

  2. 软件和固件镜像文件管理:
    CPE可以下载和上传文件,协议提供了检查软件或者固件的版本的方法,还可以对签名数据文件进行处理。在文件传输结束后,通知ACS,返回成功或者失败。

  3. 诊断:
    TR069协议为CPE生成有效的诊断信息提供支持,ACS可以使用这些信息来诊断和解决连通或业务问题,同时提供执行预先定义好的诊断测试能力。

  4. 告警:CPE主动发送事件报告来实现设备的实时告警。

  5. 穿越NAT连接:
    TR069本身允许ACS管理NAT后的设备,但限制了ACS不能主动发起会话。TR111的机制则是对TR069这部分的补充,可以使ACS主动发起会话。初始安装时,CPE会自动寻找ACS服务器(CPE出厂时配置一个默认的URL地址,用户将该地址指向ACS服务器),建立连接后即可与ACS通信、下载配置等,可完美解决NAT网关之后的管理难题。

网络架构

主要包含两层逻辑设备:受管理的用户设备(CPE,Customer Premises Equipment)和自动配置服务器(ACS,Auto-Configuration Servers)。
TR069的核心思想是通过定义一套ACS和CPE之间自动协商交互协议,实现终端的自动配置过程。下图描述了TR069协议在自动配置网络构架中的定位。ACS与CPE之间的接口为南向接口,ACS与第三方网管系统、业务管理系统之间的接口为北向接口。TR069协议主要定义了南向接口标准。
在这里插入图片描述CWMP网络元素主要有:

  • ACS:自动配置服务器,网络中的管理设备。
  • CPE:用户端设备,网络中的被管理设备。
  • DNS server:域名服务器。CWMP协议规定ACS和CPE使用URL地址来互相标识和访问,DNS 用于帮助解析URL参数。
  • DHCP server:动态主机配置协议服务器。给ACS和CPE分配IP地址,使用DHCP保温中的option字段给CPE配置参数。

协议栈结构如下所示:

分类协议描述
应用CPE /ACS Management Application应用可以再CPE和ACS端分别实现CWMP协议,应用可以进行本地的定义,而不必是CWMP的一部分
远程调用方法RPC Methods在CWMP中定义的各种RPC方法,实现ACS与CPE之间的交互
报文填写标准SOAP 1.1消息内容是基于SOAP标准封装XML文档,避免了与防火墙的冲突
传输协议HTTP 1.1ACS为HTTP服务器,CPE为HTTP客户端
安全传输协议SSL/TLS标准的互联网传输层安全协议(可选)
底层协议TCP/IP标准的TCP/IP
  • RPC: 远程过程调用是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。TR069为CPE定义了9种基本RPC方法,6种可选RPC方法;为ACS定义了2种基本RPC方法,2种可选的的RPC方法(CPE方法,CPE设备支持,可以被ACS调用;ACS方法,ACS设备支持,可以被CPE调用)。此外,TR069还对RPC方法中使用的数据类型做了定义,只能使用SOAP定义的的数据类型中的部分。
    • RPC函数

      • CPE函数参数(TR069协议的数据类型)
        网络架构上包含两种设备类型,故包含两套数据模型:
      1. 网络网关设备(Interner Gateway Device),如路由器,缩写为IGD DM(Data Model);

      2. 网关下普通局域网设备(LAN Device),如可视电话,缩写为Device DM(Data Model)
        TR069协议定义了其中网关设备的数据模型

        参数名 :使用由类似树型的点分层关系组织起来。树干为需要配置的对象,树叶为具体的配置参数,所有配置参数都具有是否可读写属性
        如 :InternetGatewayDevice.IPPingDiagnostics.Interface
        参数类型 :基于SOAP的数据类型

CPE侧RPC方法中文说明ACS侧RPC方法获取RPC方法列表
GetRPCMrthods获取RPC方法列表GetRPCMthods获取RPC方法列表
SetParameterValuesACS设置参数值Inform与ACS建立连接,通知
GetParameterValuesACS获取参数值TransferComplete通知传输完成
GetParameterNamesACS获取参数列表AutonomousTransferComplete通知传输完成(自动)
SetParameterAttributesACS设置参数属性
GetParameterAttributesACS获取参数属性
AddObjectACS增加一个新实例
DeleteObjectACS删除特定实例
Reboot重启
Download下载指定文件
Upload上传指定文件
FactoryReset恢复出厂设置

关于RPC协议基础

能够发送HTTP报文,证明TCP已经成功建立,也就是说Socket已经成功建立。那么服务器端和客户端如何相互调用对方的方法来实现自己想要进行的操作,这就需要用到RPC(Remote Procedure Call)远程调用方法了

远程调用比程序内部直接进行函数调用要复杂很多,RPC协议解决了以下的几个问题:

  • 规定了远程调用的语法,即用何种格式将函数传递给远程进行调用
  • 规定了远程调用的参数格式,即用何种方式将函数的参数传递给远程进行调用
  • 规定了如何获取远程已经支持的函数方法
  • 发生错误、重传、丢包时,应该如何处理

RPC协议的处理流程回路:

在这里插入图片描述

  1. 当客户端要发起一个远程调用时,先通过本地调用的Stub将调用的接口、方法和参数,通过约定的协议进行编码,并通过本地的RPCRuntime进行传输
  2. 服务器端的RPCRuntime在接收到请求之后,交给Stub进行解码,然后调用服务器端的方法
  3. 服务器端方法执行完成之后,再返回给Stub进行编码并通过RPCRuntime返回给客户端
  4. 客户端RPCRuntime接收到结果,交给Stub进行解码,最终在本地返回

SOAP协议基础

上边RPC的结论是,客户端和服务器端需要约定双方都认可的程序、版本、方法等,而这个约定的协议,在TR069中,就被规定为SOAP协议,SOAP(Simple Object Access Protocol)是一个基于XML的通信协议。
抬头:

POST /purchaseOrder HTTP/1.1
Host: www.geektime.com
Content-Type: application/soap+xml; charset=utf-8
Content-Length: nnn

正文:

<?xml version="1.0"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
      soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
    <soap:Header>
        <m:Trans xmlns:m="http://www.w3schools.com/transaction/"
          soap:mustUnderstand="1">1234
        </m:Trans>
    </soap:Header>
    <soap:Body xmlns:m="http://www.geektime.com/perchaseOrder">
        <m:purchaseOrder">
            <order>
                <date>0-0-0</date>
                <className> xxxx </className>
                <Author> xxx </Author>
                <price>68</price>
            </order>
        </m:purchaseOrder>
    </soap:Body>
</soap:Envelope>

SOAP\HTTP: 在Internet环境下实现分布式组件互操作有一个很重要的问题需要解决,那就是所谓的防火墙问题。大多数的防火墙都是基于端口扫描的,而基于CORBA的RPC使用的都不是常用的端口。如果不经过特殊配置,基于CORBA分布式组件调用将被作为恶意访问而拒绝。所以,TR069使用SOAP简单对象访问协议作为RPC报文的封装,利用标准HTTP协议来传送的方式。TR069规定将SOAP与HTTP绑定,以RPC方法调用来实现设备的管理。把SOAP绑定到HTTP提供了同时利用SOAP的分散性、灵活性的特点以及HTTP丰富的特征库的优点。在HTTP上传送SOAP并不是说SOAP会覆盖现有的HTTP语义,而是HTFP上的SOAP语义会自然的映射到HTTP语义。在使用HTTP作为绑定协议时,一个RPC调用自然地映射到一个HTTP请求,RPC应答同样映射到HTTP应答。一般情况下,一个完整的SOAP包的结构包括:一个信封(Envelope)、一个头部(Header)(可选)、一个SOAP体(Body)(必需)。SOAP协议中未说明一个SOAP包中可以包含多个Envelope,TR069采用了多个信封机制,这样增加了一次交换所带的信息量,减少了网络设备之间的数据交换次数。

SSL: SSL协议指定了一种在应用程序协议和TCP/IP协议之间提供数据安全性分层的机制,它为TCP/IP连接提供数据加密、服务器人证、消息完整性以及可选的客户机人证,确保数据在传送中不被改变。TR069协议实现的是远程管理,安全的信息交换是必需的。采用128bit加密算法、数字认证机制,实现CPE和ACS之间的安全信息交换。

CWMP基本功能

ACS可以在任何时候发送CPE连接请求,通过CPE认证(匹配CPE URL、CPE用户、密码)后建立连接。

1.ACS和CPE的自动连接

  • CPE启动,根据获取的URL找到相应的ACS,发起自动连接。
  • CPE使能周期性发送Inform报文的功能,当周期比如2小时到达时,CPE自动发送Inform报文来建立连接。
  • CPE使能定时发送报文。
  • 如果当前会话未结束,连接异常中断,而CPE自动重新连接的次数未达到上限,此时CPE也会重连。

2.支持ACS对CPE的自动配置
CPE上线时,ACS自动下发配置给CPE,完成对CPE的配置.
自动配置的主要参数:

  • (ConfigFile)配置文件
  • (URL)ACS地址
  • (Username) ACS用户名
  • (Password)ACS密码
  • (PeriodicInformEnable)Inform报文自动发送标志
  • (PeriodicInformInterval)Inform报文周期发送时间间隔
  • (PeriodicInformTime)Inform报文定期发送日期

3.支持对CPE系统启动文件和配置文件的上传和下载管理

网络管理员可以将系统启动文件、配置文件等重要文件保存在ACS上,当ACS发现某个文件的版本有更新,将会通知CPE进行下载。CPE收到ACS的下载请求后,能够根据ACS报文中提供的下载地址和文件名,自动到指定的文件服务器下载文件。下载完成后,对下载文件的合法性做相应的检查,并将下载结果(成功或失败)反馈给ACS。目前,设备不支持以数字签名的方式进行的文件下载。
设备支持下载的文件类型有:系统启动文件和配置文件。
同样,为了实现对重要数据的备份,CPE将根据ACS的要求将当前的配置文件上传到指定的服务器。目前,设备支持上传的文件类型有:配置文件。

4.支持ACS对CPE状态和性能的监控
ACS可以监控与其相连的CPE的各种参数。由于不同的CPE具有不同的性能,可执行的功能也各异,因此ACS必须能识别不同类型CPE的性能,并监控到CPE的当前配置以及配置的变更。CWMP还允许网络管理人员自定义监控参数并通过ACS获取这些参数,以便了解CPE的状态和统计信息。

  • 厂商名称(Manufacturer)
  • 厂商标识OUI(Manufacturer OUI)
  • 序列号(SerialNumber)
  • 硬件版本号(HardwareVersion)
  • 软件版本号(SoftwareVersion)
  • 设备状态(DeviceStatus)
  • 启动时间(UpTime)等

【Inform SOAP包信息】

名称描述
DeviceID标识CPE
Event此次Inform发起的原因
Inform调用上报状态
MaxEnvelopesHTTP Response可携带的SOAP包(信封)
CurrentTimeCPE当前时间
RetryCount这次session最大的重复连接数
ParameterList这次Inform函数所带参数
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值