目录
一、ACS发现
TR069协议定义了用于CPE发现ACS地址的机制:
1. CPE配置ACS的URL。可以通过预置方式、LAN侧自动配置协议配置等方式配置ACS域名,然后使用DNS解析URL域名对应的IP地址。
2. DHTP服务器配置ACS URL作为Option之一。可以通过DHCP Opt43来设置相应的参数,包括InternetGatewayDevice.ManagementServer.URL、InternetGatewayDevice.
ManagementServer.ProvisioningCode。当ACS URL发生改变,CPE必须使用更新后的地址和ACS进行后续的连接。
二、ACS和CPE连接建立
1.CPE发起连接
CPE可以在任何时刻发起与ACS的连接。在下述情况中,CPE必须建立与ACS的连接(短连接),并启用Inform RPC方法:
在初始化时,CPE第一次建立与网络的连接;
在启动或重启时;
在每个PeriodicInformInterval(周期上报时 2 Periodic);
当可选的ScheduleInform方法被要求时;
当CPE接收到来自ACS的有效连接请求(反向连接请求时);
当ACS的URL变化时;
当参数发生更改,需要发起Inform报文(4 Value Change)。对Internet网关设备,涉及改变的参数包括:默认宽带连接的IP地址、管理IP地址(与连接请求URL关联)、供给代码、软件版本。
当由ACS通过SetParameterAttributes方法标定为“主动通告”(active notification)的参数值发生了外在原因导致的改变(该改变源非ACS自身,例如web、APP等其他媒介)。由ACS自身通过SetParameterValues对参数的改变不得初始化新会话。如果在CPE初始化会话前,参数发生多次变化,只能进行一次notify。
2. CPE发起连接流程
(1) CPE发起连接,发送Inform request,携带鉴权认证信息(username password等)
(2) ACS响应200 ok,回复Inform Reponce
(3)CPE发送Post报文,可携带/不携带内容后;HTTP responce返回空报文标识无后续请求
(4)CPE收到空报文,关闭连接
3.ACS发起连接
ACS可在任何时刻要求CPE使用连接请求(Connection Request)inform机制发起与ACS的连接。该机制的依赖条件是CPE拥有可达到ACS的IP地址。如果ACS与CPE之间存在防火墙或NAT设备,CPE在该设备之后,则ACS根本不能访问CPE。在这种情况下,只有CPE发起连接的可能性存在。
Connection Request inform机制定义如下:
Connection Request inform是CPE发送特定的HTTP Get请求,携带的该URL值是CPE的只读参数,由CPE随机产生,以使每台CPE有不同值。
URL必须使用HTTP,而不是HTTPS。
在连接请求HTTP Get通告中不会承载数据。任何可能的数据都应当由CPE忽略。
CPE应当在处理该报文之前,使用摘要认证(digest-authentication)来认证ACS——如果认证失败,CPE不应当向 ACS发起连接。
CPE应当限制在指定时间段接收连接请求通告的次数以进一步减少可能发生的拒绝服务(DOS)攻击。
对指定端口和URL的HTTP Get成功认证后,CPE会执行一个固定的动作:它与预先已确定的ACS地址(见3.1节)建立会话,并在成功建立会话连接后发送一条Inform报文。
如果CPE接收到一条连接请求通告时,已经与ACS建立了一个会话,则CPE不得因此而过早地结果该会话。
本机制的前提是ACS在此前至少有一次由CPE发起的通信。在该此通信中,如果ACS希望允许将来进行ACS发起的通信,则会读取InternetGatewayDevice.ManagementServer.ConnectionRequestURL参数的值。如果该管理用URL值改变,CPE必须发出一条Inform报文通知ACS说明新的管理IP地址(如表33的描述),以维护ACS信息的及时更新。
4. ACS发起连接流程
(1) ACS发送HTTP GET请求,携带Request URL和Request Method,以及鉴权信息(反向连接的username password等)
(2) CPE返回200OK后,向ACS发送6 Connection Request inform request
(3) ACS返回200 OK,返回Inform Responce后,返回HTTP Post空报文
(4)若ACS无其他请求,ACS返回空报文
(5)CPE关闭连接