⽤wireshark分析基站的tr069过程
Wireshark分析基站Tr069过程⽬录
1. Tr069是什么? (1)
2. Tr069的实现⽅法(http+xml+rpc) (1)2.1 CPE的注册建⽴到acs连接: (4)
2.2 ACS发起连接(即反向触发机制,⽤于管理cpe时): (6)3. 以ap和ap⽹管之间的tr069为例,分析⼀下如下过程 (8)3.1 Wireshark的显⽰环境的准备 (8)3.2 加电重启 (9)
3.3 基站的数据同步过程 (20)3.4 修改扰码 (24)3.5 ⽇志同步 (28)3.6 诊断复位 (33)1.Tr069是什么?
Tr069起源于对dsl设备的集中维护,是⼀个远程维护设备的协议,分为acs和cpe逻辑设备,通过⽹络tcp协议之上的http,soap,rpc进⾏,对远端设备进⾏维护,升级,诊断,报警等⼯作。
本⽂中基站⽹管为acs设备,基站为cpe设备,组⽹为星型,⼀个中⼼点acs对应多个cpe设备基站。2.Tr069的实现⽅法(http+xml+rpc)
Tr069基于tcp之上的协议,由http+xml(soap)+rpc实现。Acs侧启动http服务器,⽤来接收cpe设备的连接请求
Cpe侧配置acs的url地址,配置cpe的串号,加电后启动url 的连接,⽤设备的串号注册到acs上(acs采⽤固定的ip)。由于dsl设备多采⽤pppoe连接到⽹络,每次启动后获得的ip不固定,TR069定义的交互流程中,管理交互都是由CPE 发起,由CPE来“请求”ACS进⾏管理。所以acs管理cpe的数据采⽤“反向触发”机制,当ACS希望启动对CPE的管理时,协议定义了⼀个反向触发机制:CPE建⽴维护⼀个⽤于侦听的HTTP端⼝,这个端⼝信息在CPE初始连接时报给ACS,当ACS希望对CPE进⾏管理时,ACS向该端⼝建⽴传输控制协议(TCP)连接并发送(POST)报⽂,CPE收到该报⽂后随即启动正向的HTTP/HTTPS连接,请求⾃动配置服务器的管理。所以cpe设备中有定义⾃⾝访问的url地址,启动时打开此端⼝的监听。⼀般端⼝为7547.反向触发的⽰意图见下:
所以cpe的配置⽂件中有acs的url地址,⾃⾝的url地址,设备的串号,和⼼跳的周期等等配置。
Cpe的7547端⼝已经打开,见下图:
2.1CPE的注册建⽴到acs连接:
ACS与CPE建⽴连接的⽅式,按连接发起⽅划分可以分为两种⽅式:CPE发起连接、ACS主动建⽴连接CPE发起连接有以下⼏种情况(激活eventcode代码是下⾯数字+事件):(1)CPE第⼀次建⽴⽹络连接,对应RPC命令INFORM +\"0 BOOTSTRAP\";(2)加电或者重置,对应的RPC命令INFORM +\"1 BOOT\"
(3)每个周期上报时间,对应的RPC命令INFORM +\"2 PERIODIC\"
(4)可选的ScheduleInform⽅法被要求,对应RPC命令是的是INFORM+\"3 SCHEDULED\"
(5)CPE接收到来⾃ACS的连接确认后,对应的RPC命令INFORM +\"6 CONNECTION REQUEST\"
(6)ACS的URL发⽣变化,对应的RPC命令是对应RPC命令INFORM +\"0 BOOTSTRAP\" (7)CPE的参数值发⽣变化(基站cpe是⼩区状态,sctp状态,⽆线打开等状态发⽣改变时),并且这个变化不是由ACS引起的,对应对应的RPC命令是INFORM +\"4 VALUE CHANGE\"
(8)\"7 TRANSFER COMPLETE\表⽰会话发起的原因是上传或者下载成功(不管是否真的成功)
(9)\"8 DIAGNOSTICS COMPLETE\当完成由ACS要求的诊断测试后,重新与ACS建⽴连接时⽤(基站cpe是产⽣告警消息上报时)
(10)\"9 REQUEST DOWNLOAD\表⽰会话发起的原因是CPE要求调⽤RequestDownload⽅法
(11)\"10 AUTONOMOUS TRANSFER COMPLETE\表⽰会话发起的原因是由CPE主动的上传或者下载成功,⽽不是ACS的请求
(12)\"M Reboot\带有“M“字符说明这个是执⾏ACS请求⽅法的结果,⾥⾯⼀般含有其它的EVENT_CODE;如:\"M Reboot\"含有\"1 BOOT\",\"M ScheduleInform\"含有\"3 SCHEDULED\"(13)\"X_CU_ALARM\⼚商⾃定以规范前者表⽰告警信息,后者表⽰发现信息CPE与ACS连接⽰意图如下:
2.2ACS发起连接(即反向触发机制,⽤于管理cpe时):ACS向CPE发起连接通过HTTP post请求;
(1)需要注意的是连接使⽤的必须是HTTP请求⽽不是HTTPS
(2)并且GET通告中不需要包含其它数据,即使有数据也会被CPE忽略。
(3)CPE接到GET请求后与ACS建⽴连接,并在成功建⽴连接后发送⼀条INFORM报⽂。连接建⽴⽰意图
常见的acs发起的反向机制的⽅法:
a)GetParameterValues : 由ACS发起,⽤于查找CPE上⼀个或者多个参数的值。b)SetParameterValues:由ACS发起,⽤于修改CPE上⼀个或者多个参数的值。c)Reboot:由ACS发起,⽤于重启指定的CPE终端。
d)DownLoad: 由ACS发起,⽤于要求CPE终端在指定的位置下载指定的⽂件。e)Upload:由ACS发起,⽤于要求CPE终端向指定位置上传某⼀特定⽂件。3.以ap和ap⽹管之间的tr069为例,分析⼀下如下过程1,基站linux下执⾏reboot;2,数据同步;3,修改扰码;4,同步⽇志;5,诊断硬复位
3.1Wireshark的显⽰环境的准备
⾸先wireshark添加7547端⼝为http协议端⼝,⽤于⽅便分析ap⽹管到ap之间http消息。
3.2加电重启
Wireshark中可以通过ctrl+f来查找对应⾏
加电重启后,ap上1 boot事件
参数⾥含cpe的url地址和主芯⽚的型号
cpe侧发空包表⽰没有后续请求
ap⽹管回informresponse消息回复ap
cpe要求关闭连接
基站发起关闭连接后,⽹管回复close后四步关闭
告警信息中含⼀些告警信息,连接状态,⼩区状态之类
4 value change上报状态改变
2 periodic事件周期性⼼跳上报
⼤约10秒上传⼀条⼼跳
Upload⽅法上传⽇志,这个消息属于反向触发,acs⽹管先发给基站cpe的7547端⼝,upload⽅法,再由基站发起upload的post 请求
Acs回复cpe的informresponse消息
Cpe发acs空包表⽰请求完结
⽹管下发upload命令给cpe基站
⽹管acs发送ftp的⽬录,⽤户名,密码等信息给基站。
ftp的上传⽂件过程
基站发上载响应