?

基于TR-069協議的配置管理功能研究與應用

2012-06-29 01:37曹祁生
電視技術 2012年23期
關鍵詞:配置管理網關實例

付 超,曹祁生

(1.武漢郵電科學研究院,湖北 武漢 430073;2.烽火通信科技股份有限公司,湖北 武漢 430073)

責任編輯:許 盈

隨著FTTx在國內的迅速建設和家庭網絡技術的發展,家庭網關以其自身優勢,提供更多的功能和業務,滿足大部分家庭用戶的需求,成為了網絡時代的潮流應用。早期,運營商采用一對一的人工服務方式對終端設備進行維護和管理,在設備初始安裝、業務開通的時候,以及在后期運行中業務配置變更、軟件升級或出現故障的時候,需要派維護人員上門進行安裝或調試終端設備,通過提供的Web界面,完成相關配置或故障診斷的工作。這種方式增加了運維的成本,降低了管理的效率,顯然給運營商帶來巨大的負擔。

為了有效地幫助運營商解決上述服務難題,便于家庭網絡業務的開展,數字用戶線(DSL)論壇專門制定了一個面向終端設備的網管協議——TR-069協議[1]。該協議包含了一些特有的組件,同時也使用了一些標準協議。比如,傳輸層基于TCP/IP協議或安全套接層/安全傳輸層協議(SSL/TLS),會話層基于HTTP協議的簡單對象訪問協議(SOAP),SOAP協議定義和封裝了標準的遠程過程調用方法(RPC Method),用于實現一些特定的管理功能。目前,各大運營商采用基于TR-069實現零配置快速開通的方案[2],極大提高了管理效率,降低了管理成本。以PON上行網關為例,當設備上電后,在設備注冊頁面輸入LOID(邏輯序列號),點擊注冊。設備管理系統平臺會根據LOID匹配的工單信息,將寬帶上網、語音或其他基本業務參數,如寬帶賬號/密碼、電話號碼等,下發到設備上,實現業務的自動開通。還可以通過設備管理系統平臺,查詢到線路信息、上網信息、LAN側連接情況等,以及對終端設備下發一些遠程指令或操作,比如重啟、軟件版本升級、恢復出廠設置等。

1 基于TR-069協議的配置管理功能設計

1.1 總體設計構架

根據TR-069協議定義的內容和數據模型存儲的方式,按照功能模塊化設計的思想,可以劃分為3個部分:協議棧模塊、應用模塊和數據(DB)模塊,如圖1所示。

圖1 基于TR-69協議的參數配置管理功能模塊

TR-069模型中各模塊的功能如下所述:協議棧模塊主要負責客戶端認證/服務器認證,SOAP編碼/解析、RPC方法調度等功能。其中,RPC方法調用和業務會話流程的實現由TR-069引擎模塊負責。應用模塊主要負責初始化QoS模塊、VOIP模塊和配置管理(Manager)模塊等,以及執行RPC方法。其中,Manager模塊負責配置管理參數模型結構和數據儲存。DB模塊是整個協議所支持的參數的數據庫,應用模塊通過數據庫接口來獲取和設置參數值。該模塊主要由一個基于XML格式的數據配置文件和一個用于讀寫這個文件的程序組成[3]。

1.2 協議棧模塊

根據TR-069協議棧中對各種業務邏輯實現的描述,協議棧模塊可以劃分為5個模塊,即HTTP_SERVER模塊、HTTP_CLIENT模塊、HTTP_AUTHOR 模塊、HTTP_SCHDULE模塊和HTTP_DOWNLOAD模塊,如圖2所示。其中,HTTP_Client模塊負責建立CPE與ACS之間的會話連接,并收發、存貯數據。HTTP_Server模塊負責監聽ACS主動發起連接的請求,處理響應[4]。HTTP_Author模塊主要完成HTTP報文的解析,并實現HTTP客戶端的認證和HTTP服務器的認證。HTTP_SCHDULE模塊主要完成SOAP報文的解析與構建[5],及RPC方法的調度運算。HTTP_Upload模塊和HTTP_Download模塊主要實現HTTP文件的上傳和下載。

圖2 TR-069協議棧模塊

1.3 應用模塊

在應用模塊中包括一些特定的服務模塊,如QoS,VOIP,STB,IPTV模塊等,并且這些服務模塊的相應服務或者設備對象均存在于參數模型中。通過TR-069協議來實現遠程設備管理和服務管理,其具體的交互方式是基于SOAP的遠程調用的。

如果從SOAP報文中解析出的RPC方法與參數配置的操作相關,比如 Addobject,Deleteobject,SetParameterValues,GetParameterValues等,則Manager模塊通過讀取消息隊列中來自協議棧模塊內的TR-069引擎模塊的請求,調用參數或對象方法進行處理,然后將處理的結果通過消息隊列返回給協議棧模塊。如果RPC方法與參數配置的操作無關,如 Reboot,Upload,Download,FactoryReset等操作,則由協議棧模塊進行處理,實現設備重啟、配置文件上傳、下載、恢復出廠設置等功能。

1.4 DB模塊

在該設計方案中,DB模塊的數據配置文件對于實現配置管理功能是不可缺少的,必須依賴這個文件配合完成參數模型的存儲和配置。這里選擇XML格式的param.xml文件作為該文件的設計形式。XML即擴展標記語言[6],作為一種簡單的數據存儲語言,用元素和屬性來描述數據,將數據以純文本的格式存儲。在數據交換過程中,將數據封裝成XML,通過不兼容的應用程序和系統平臺之間交換數據。鑒于XML的優點,Web服務器用XML在系統之間交換數據,使用SOAP協議作為通信的主要協議。因此,XML正好符合TR-069協議的設計和實現的需要。

param.xml文件既存儲參數模型的結構,同時存儲所有參數的管理配置值。通過配置管理的統一接口,完成對param.xml中的參數或對象進行的一些操作,包括param.xml的加載、動態對象實例的增刪、參數值的查詢和修改。最后,將數據和參數模型均儲存在這個文件中。

2 TR-069參數模型

2.1 param.xml設計原則

param.xml給出了TR-069規定的分層次結構的參數模型[7],即一種樹結構,它從“根部”開始,然后擴展到“樹葉”。在參數模型中,首先,設置了一個設備根對象InternetGatewayDevice作為管理的起點,然后在其下面是一些管理內容的子對象,如 DeviceInfo,Services,WANDevice,ManagementServer等,并且在這些對象以及對象下面分別定義了一組標準(以及擴展)的參數和屬性。廠商根據自己的需求增加一些參數,但是需要按照規定的格式(即X_<VENDOR>_VendorSpecificName)對其進行命名,其中VENDOR(唯一廠商標示符)可以為OUI(組織唯一標識)或者域名,VendorSpecificName代表一個有效的字符串,不超過256個字符。例如X_CT-COM_UplinkQoS,X_CT-COM_UserInfo,X_FIB_COM_FlagReboot。

作為對象(obj),均設計有名稱(name)、讀寫屬性(rw)、關鍵字(key)等屬性。比如<obj name="X_CT-COM_UplinkQoS"rw="0"key="0"> </obj>。rw 屬性用于判斷參數或對象的讀寫狀態,用0,1,2這3個數值標識,rw為0表示參數只可讀,對于對象實例不可以增加或者刪除,如<obj name="IPInterface"rw="0"key="0"> </obj>,表示IPInterface對象不可以被增刪;rw為1,表示參數只可寫,暫沒有給對象定義;rw為2,表示參數既可讀又可寫,對于對象實例可以被增刪,例如<obj name="Alarm-Config"rw="2"key="0"max="10"> < /obj>,表示AlarmConfig對象可以增加或者刪除其實例。key屬性定義參數為關鍵參數(或對象)或非關鍵參數(或對象),在執行本地恢復出廠設置或者遠程出廠設置時,根據參數的key值決定是否保留修改后的對象實例或參數值。

根據給每個對象定義的rw屬性,對象可分為靜態對象和動態對象,如果對象的rw取0,則定義為靜態對象,不允許增刪該對象,例如<obj name="PortFilter"rw="0"key="1"> < /obj>,表示PortFilter為靜態對象,其下的實例數為8個,始終保留不變。如果對象的rw取2,則定義為動態對象,可以增加或刪除一個或者多個實例對象。動態對象除了具有共有的屬性外還有max屬性,用于規定該對象可支持的最大實例數。例如:<obj name="AlarmConfig"rw="2"key="0"max="10"> < /obj>,表明AlarmConfig對象可以支持的最大實例數目為10個。在動態對象下面必須增加一個默認的實例模板,即對象為0的節點,用于記錄該動態對象的默認節點和參數值,不允許刪減。例如<obj name="0"rw="0"key="1"></obj>,該節點即為復制實例的模板。

作為參數param,除了具有和對象相同的屬性之外,還設計有 value,type,dev_func等屬性。例如:<param name="Bandwidth"rw="2"type="u"key="0"dev_func="dev_X_CT_COM_UplinkQoS_Bandwidth"value="0"></param>。value屬性用于記錄參數的值,type屬性定義數據的類型,dev_func屬性是一種對參數進行讀寫的方法。當需要讀取參數值或者有參數值寫入時,由type,dev_func屬性控制參數的讀寫操作。若參數的rw為1或2時,通過調用其dev_func方法,將符合type數據類型的值允許被寫入參數中。若rw取0或2時,通過調用其dev_func方法,將參數的值從param.xml中讀取出來。例如<param name="Enable"rw="2"type="b"key="0"dev_func="dev_WANEth_If_Enable"value="1"></param>,參數Enable的value值的類型為bool型,允許對這個參數的值進行修改。

2.2 param.xml讀寫保護機制

在整個讀寫param.xml文件的過程中,param.xml文件的正確性、完整性尤其重要。因此,需要對這個讀寫過程作特殊的處理和保護。

當第一次有配置寫入內存,系統目錄中會自動創建一個記錄文件param.log,用于記錄參數寫配置的動作。每次配置先更新內存,操作成功后再將更新信息記錄到param.log中,待下次開機時將param.log中的配置信息一次性全部寫入param.xml文件中。這種新機制避免了配置頻繁寫入文件的操作,減少了Flash寫入次數,提高了程序執行效率。

為保證當前寫入或存在的param.xml文件的完整性和結構正確性,利用創建的一個讀寫標志位節點和XML檢查工具對該文件進行檢查。每次寫入param.xml文件之前創建備份文件,然后將標志位置于寫入狀態,然后開始寫入數據,數據寫入完成后利用XML檢查工具檢查param.xml文件。假若param.xml文件完整并且結構正確,則將標志位重置為讀狀態。在讀取param.xml過程,首先檢查標志位write_tag是否為讀狀態,假若write_tag為讀狀態,則上次寫入過程正確,可以使用該文件讀取;否則使用從備份文件拷貝的文件中讀取。

3 應用實例

日前,烽火通信已開發了一款基于Marvell芯片的PON上行家庭網關產品,該設備集EPON上行和GPON于一體,能依據光信號的類型自動適配PON接口。作為家庭網絡中的核心設備,家庭網關提供用戶側接口與家庭網絡內部各種終端進行通信,對經過其的數據和應用進行轉發、控制和管理,并通過網絡側接口與遠程網管系統交互。圖3是該網關產品的組網拓撲結構。用戶側通過RJ-45口與PC或IPTV機頂盒相連,通過RJ-11口與話機等設備相連,通過WiFi與筆記本等設備相連。網絡側則通過與OLT設備相連,接受設備管理系統平臺和PON網管系統的管理。

圖3 組網拓撲結構圖

針對上述網關產品,根據中國電信規定的《e家終端測試要求(EPON上行)》進行了測試。其中,對于TR-069模塊的測試項和測試結果如表1所示。通過設備管理系統平臺對設備進行操作,測試結果均為通過。該測試結果驗證了本文的設計方案具備可行性和實用價值。

4 小結

本文主要介紹了一種實現TR-069參數模型配置管理功能的模塊設計方案。通過一個param.xml文件的配合,完成對各種業務數據的集中配置與存儲。從根本上提高配置管理的效率,增強程序和參數模型的可擴展性[8]。

表1 TR-069模塊測試項和測試結果

[1]DSL Forum.TR-069,CPE WAN management protocol[S].2004.

[2]劉國萍,譚國權,楊明川.基于TR-069實現寬帶接入業務零配置快速開通解決方案[J].電信科學,2009(S2):31-35.

[3]王遠波.家庭網關遠程管理功能模塊的設計與實現[D].武漢:華中科技大學,2009.

[4]馬素剛,王力,許振文.基于嵌入式Linux的Web服務器的設計與實現[J].計算機與數字工程,2010(9):183-186.

[5]郝穎,丁月華,文貴華.SOAP及其應用研究[J].計算機工程,2001(6):128-130.

[6]XML 教程[EB/OL].[2012-05-06].http://www.w3school.com.cn/xml/index.asp.

[7]TR-098 Amendment 2,Internet gateway device data model for TR-069[S].2008.

[8]唐珂,王民.TR-069在家庭網關中的應用[J].中興通訊技術,2006(8):38-40.

猜你喜歡
配置管理網關實例
汽車委托外加工零件自動化配置管理
信號系統網關設備的優化
配置管理數據庫運用與實現
LTE Small Cell網關及虛擬網關技術研究
應對氣候變化需要打通“網關”
建設CMDB任重道遠
配置管理在軟件測試中的應用
完形填空Ⅱ
完形填空Ⅰ
一種實時高效的伺服控制網關設計
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合