顯示具有 TR-064 標籤的文章。 顯示所有文章
顯示具有 TR-064 標籤的文章。 顯示所有文章

2008-11-27

TR-064 FAQs

這陣子在做 TR-064,順便將遇到的問題整理一下。

Reference :

1. What is the TR-064 ?

官方說法:『This Working Text will specify the method for configuring DSL CPE through software on PCs inside the LAN.』

CPE : customer premise equipment

其實就是從 LAN 端對 IGD (Internet Gateway Device) 做設定的一套規格,其中包含要使用什麼 Protocol(XML/SOAP/HTTP、SSDP/HTTPU)、有哪些項目需要被設定(Device or Service)、每個項目中可以執行的動作(Action)、包含哪些設定值(StateVariables)等。

1.1 Protocol

image

上面這張圖是由 TR-064 Specification 中截取出來的,我們可以看到他的Protocol部份分為兩類:XML/SOAP/HTTP與SSDP/HTTPU。SSDP/HTTPU是針對區域網路中搜尋機器所使用的協定,XML/SOAP/HTTP則是在傳送資訊時使用。

1.2 The Model

TR-064中有制定自己的 Data model,它以 UPnP IGD 1.0 specification為基礎再多作延伸,增加XML schema與parameter的定義。下圖黑色部份為 UPnP IGD 中訂定的model,藍色虛線則為 TR-064 增加的部份。

image

 

1.3 Conclusion

TR-064 不是制定 protocol 的文件,而是一套由 DSL Forum 制定的規格,只要符合文件中所規範的事項,就可說是支援 TR-064。

 

p.s. 由於各家廠商對產品的要求不同,也有可能出現與規格不符的情況。

 

2. What differents between TR-064 and TR-069 ?

TR-069 : CPE WAN Management Protocol。

TR-069 規範了WAN端對機器做設定的Protocol,藉由 CPE 與 ACS (Auto-configuration Server)的溝通讓管理者可以透過WAN端做設定。在機器上會執行一支 TR-069的 client,ACS就靠這支程式做設定。但由於各家ACS廠商在設計上有些許不同,造成在A廠可以用的,移到B廠就不一定可以正常運作,通常ACS是由電信業者所掌握。

TR-064沒有使用特別的Protocol運作,延習了UPnP的架構,增加Authentication機制,在user端安裝CPE management application就可以對機器做設定。

 

3. How to implement the TR-064 on the CPE ?

Linux-IGD 是一套 open source 的 UPnP IGD Server。雖然目前對 UPnP IGD 1.0 的支援尚不完整,也不支援 TR-064,但是個不錯的切入點,可以加以擴充以支援 TR-064。Linux-IGD 需搭配 libupnp 做為對外溝通的介面,這部份亦缺乏TR-064規範的Authentication機制,需要額外增加。

 

4. How to verify your TR-064 ?

假如你使用上面第三項所描述的方法,那麼可以使用Intel 提供的 UPnP Tool( IntelToolsForUPnPTechnology_v2.zip ) 中的 Device Spy 來驗證,安裝前需要先安裝 .NET Framework 2.0。但要注意的是Device Spy 是以 UPnP 來做 Device 的設定,而不是完整支援 TR-064 規格。

 

若是自行開發,目前還沒找到適當的驗證工具,若有人有好的 Test tool 也請留言跟我說一下。

 

5. What happen when the Device Spy cannot show correctly (TR-064 implemented by libupnp and linux-igd) ?

5.1 out of boundary

在 linux-igd 中配置的 buffer size 不夠存放要傳送出來的資訊。除了自己編寫的XML內容外,傳出的封包還會包含 SOAP資訊。

5.2 XML format does not correct

檢查傳送出來的 XML 文件格式是否正確,基本上是在每個<device>下只會有一個<serviceList>,如果<device>中還有多個device,則要用<deviceList>包起來。

5.3 XML content not correct

曾經有遇到如果XML中的value沒有設值,Device Spy 無法正確顯示的情況。舉例來說,正確的應該要這樣:

<u:GetInfoResponse xmlns:u=\"urn:dslforum-org:service:DeviceInfo:1\">

<NewManufacturerName>Jason</NewManufacturerName>

</u:GetInfoResponse>

但如果寫成:

<u:GetInfoResponse xmlns:u=\"urn:dslforum-org:service:DeviceInfo:1\">

<NewManufacturerName></NewManufacturerName>

</u:GetInfoResponse>

可能無法正確顯示。

 

// TBC...........

6. What is locking mechanism (ConfigurationStarted and ConfigurationFinished) ?

7. How about security ?

7.1 Access restriction

7.2 SSL/TLS

★★★★★★ 傑森系列 ★★★★★★