有線電纜資料服務介面規範(DOCSIS)有線電纜裝置中的機頂盒是有線數據機(CM)的特殊情況。 機頂盒使用相同的步驟來聯機並接收網路連線。然而,機頂盒通常具有標準CM所不具備的額外功能,例如電視服務、按次付費以及電子節目指南。
因此,機頂盒可能要求調配系統為其提供額外的資訊,以幫助初始化或配置額外的功能。
本文描述了Motorola DCT5000機頂盒的示例。當此裝置從調配系統獲取DHCP租約時,還需要為其提供用作裝置起始頁的URL。否則,此特定品牌的機頂盒不能正確使用所有級別的功能。
注意:請不要將此文檔用作調配Motorola DCT5000機頂盒的參考文檔。請參閱Motorola文檔作為標準參考。
在本文檔中,使用的DHCP伺服器系統是Cisco Network Registrar(CNR)版本5.06。可以使用較早的CNR版本,但過程不同。您需要以ASCII格式輸入資訊,這會花費大量時間和複雜的過程。
注意:建議使用本文檔中介紹的流程,而不是手動定義選項43的值,如早期版本的CNR中所示。
本文件沒有特定需求。
本文檔中的資訊基於CNR 5.06版。
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路正在作用,請確保您已瞭解任何指令可能造成的影響。
如需文件慣例的詳細資訊,請參閱思科技術提示慣例。
DHCP客戶端可以使用供應商類識別符號(選項60)來標識DHCP客戶端的供應商和功能。該資訊是一個可變長度字串或八位位元組,由DHCP客戶端供應商指定其含義。
DHCP客戶端可以傳達它正在使用某種型別的硬體或韌體的一種方法是在其DHCP請求中設定一個值,稱為供應商類別識別符號(VCI)(選項60)。 例如,基於DOCSIS 1.0的CM必須將此DHCP選項的值設定為字串docsis1.0,而基於DOCSIS 1.1的CM將此值設定為docsis1.1。此方法使用DHCP伺服器來區分這兩種CM,並相應地處理來自這兩種數據機的請求。
某些型別的機頂盒還設定了VCI(選項60)以通知DHCP伺服器裝置的硬體型別和功能。將此選項設定為給DHCP伺服器一個提示值,提示該客戶端在DHCP響應中需要的任何額外資訊。
代碼 | Len | 供應商類別識別符號 | ||
---|---|---|---|---|
60 | 否 | i1 | i2 | ............. |
注意:選項60在RFC 2132中定義 。
機頂盒希望根據傳送的VCI返回其他供應商特定資訊的最常見選項是通過名為「供應商特定資訊選項」(選項43)的DHCP選項。 此選項的格式在RFC 2132 中定義。但是,此選項所返回值的定義由相關供應商指定。
根據RFC 2132 第8.4節,此選項的格式通常為type、length、value(TLV)樣式,其中不同的資訊段可以由不同的子選項型別表示。value欄位的含義由終端裝置的製造商定義。
代碼 | Len | 資料項 | 代碼 | Len | 資料項 | ||||
---|---|---|---|---|---|---|---|---|---|
T1 | 否 | d1 | d2 | ......... | T2 | 否 | D1 | D2 | ........ |
Motorola DCT5000機頂盒傳送DHCP請求時,會將VCI(選項60)設定為dct5000.008X值。X可以是從0到F的十六進位制數字,具體取決於機頂盒的功能。CNR使用此資訊確定DHCP客戶端確實是DCT5000機頂盒。
當CNR識別出來自DCT5000的DHCP請求時,CNR需要在DHCP響應中返回一個開始URL,以便摩托羅拉DCT5000正確初始化。Motorola已決定,此起始URL需要作為Vendor Specific Information Option(選項43)中的子選項2型別傳送。
代碼 | Len | 資料項 |
---|---|---|
2 | 61 | http://172.16.1.10/dtv/app/servicemanager/servicemanager.html |
需要在CNR中進行的第一步是通知CNR有關機頂盒使用的VCI。這可以通過在CNR命令列介面實用程式中發出nrcmd命令來完成: vendor-option <vendor-option-name>create <Vendor-class-identifier> 。
注意:此配置只能使用nrcmd命令執行。不能對這些命令使用GUI介面。
其中:
vendor-option-name — 代表傳送VCI的客戶端型別的識別符號。
Vendor-class-identifier — 供應商資訊選項(選項60)由特定型別的裝置設定的值。
注意:命令中的vendor-option-name欄位應在所有小寫下指定。如果使用大寫字母,則會將其轉換為小寫字母。Vendor-class-identifier欄位可以有大小寫字母。
對於DCT5000機頂盒,以下是已定義的反映不同型別DCT5000的供應商選項:
Vendor-option dct5000_80 create dct5000.0080 vendor-option dct5000_81 create dct5000.0081 vendor-option dct5000_82 create dct5000.0082 vendor-option dct5000_83 create dct5000.0083 vendor-option dct5000_84 create dct5000.0084 vendor-option dct5000_85 create dct5000.0085 vendor-option dct5000_86 create dct5000.0086 vendor-option dct5000_87 create dct5000.0087 vendor-option dct5000_88 create dct5000.0088 vendor-option dct5000_89 create dct5000.0089 vendor-option dct5000_8a create dct5000.008A vendor-option dct5000_8b create dct5000.008B vendor-option dct5000_8c create dct5000.008C vendor-option dct5000_8d create dct5000.008D vendor-option dct5000_8e create dct5000.008E vendor-option dct5000_8f create dct5000.008F
如果將來在您的網路中部署了其他型別的機頂盒,並且如果這些機頂盒使用不同的VCI,則可以在以後定義它們。
目前,在CNR中沒有一個解決方案可以將這些不同的VCI合併為一個條目。CNR將其視為完全獨立的實體。
下一步是將子選項型別2定義為這些VCI中的每一個的有效型別。
子選項型別是使用nrcmd命令vendor-option <vendor-option-name> definesuboption <suboption-name> <suboption-type-number> <option-data-type>建立的。
其中:
vendor-option-name — 選擇用於表示客戶端型別的識別符號。
suboption-name — 正在建立的子選項的名稱。這應代表子選項的函式。
suboption-type-number — 此子選項的子選項型別編號。
option-data-type — 該子選項使用的資料型別。例如IPADDR、STRING、BYTE_ARRAY。可以使用nrcmd命令option-datatype list檢視其他型別。
注意:此命令中的vendor-option-name 和suboption-name 欄位應在所有小寫下指定。如果使用大寫字母,則會將其轉換為小寫字母。option-data-type欄位可以有大小寫字母。
在本示例中,您需要為起始URL定義子選項型別編號2。由於URL是文本字串,因此發出type STRING命令作為option-data-type。
Vendor-option dct5000_80 definesuboption start_url 2 STRING vendor-option dct5000_81 definesuboption start_url 2 STRING vendor-option dct5000_82 definesuboption start_url 2 STRING vendor-option dct5000_83 definesuboption start_url 2 STRING vendor-option dct5000_84 definesuboption start_url 2 STRING vendor-option dct5000_85 definesuboption start_url 2 STRING vendor-option dct5000_86 definesuboption start_url 2 STRING vendor-option dct5000_87 definesuboption start_url 2 STRING vendor-option dct5000_88 definesuboption start_url 2 STRING vendor-option dct5000_89 definesuboption start_url 2 STRING vendor-option dct5000_8a definesuboption start_url 2 STRING vendor-option dct5000_8b definesuboption start_url 2 STRING vendor-option dct5000_8c definesuboption start_url 2 STRING vendor-option dct5000_8d definesuboption start_url 2 STRING vendor-option dct5000_8e definesuboption start_url 2 STRING vendor-option dct5000_8f definesuboption start_url 2 STRING
如果將來在機頂盒上定義了額外功能,並且需要定義其他子選項,則可以在以後階段以類似的方式指定這些子選項。
該過程的最後一步是將定義的供應商選項與策略相關聯,並指定各個子選項應採用的值。這是使用nrcmd命令policy <policy-name> setvendoroption <vendor-option-name> <suboption-name> <suboption-value>執行的。
其中:
policy-name — 機頂盒從中接收選項的DHCP策略的名稱。這是先前配置的。
vendor-option-name — 選擇用於表示客戶端型別的識別符號。
suboption-name — 子選項的名稱。
suboption-value — 在DHCP響應中賦給suboption的值。應根據定義子選項時指定的option-data-type輸入該值。
註:vendor-option-name 和suboption-name 欄位區分大小寫。確保在所有小寫形式中指定這些欄位非常重要。suboption-value欄位可以用大寫或小寫形式指定。只有在接收子選項的客戶端需要它區分大小寫,suboption-value欄位才區分大小寫。
在本示例中,假設已建立機頂盒的策略,該策略稱為STB_policy。此外,請為這些型別的機頂盒指定一個起始URL,即http://172.16.1.10/dtv/app/servicemanager/servicemanager.htmlhttp://www.lookuptables.com/。
這通過以下nrcmd命令執行:
policy STB_policy setvendoroption dct5000_80 start_url http://172.16.1.10/dtv/app/ servicemanager/servicemanager.html policy STB_policy setvendoroption dct5000_81 start_url http://172.16.1.10/dtv/app/ servicemanager/servicemanager.html policy STB_policy setvendoroption dct5000_82 start_url http://172.16.1.10/dtv/app/ servicemanager/servicemanager.html policy STB_policy setvendoroption dct5000_83 start_url http://172.16.1.10/dtv/app/ servicemanager/servicemanager.html policy STB_policy setvendoroption dct5000_84 start_url http://172.16.1.10/dtv/app/ servicemanager/servicemanager.html policy STB_policy setvendoroption dct5000_85 start_url http://172.16.1.10/dtv/app/ servicemanager/servicemanager.html policy STB_policy setvendoroption dct5000_86 start_url http://172.16.1.10/dtv/app/ servicemanager/servicemanager.html policy STB_policy setvendoroption dct5000_87 start_url http://172.16.1.10/dtv/app/ servicemanager/servicemanager.html policy STB_policy setvendoroption dct5000_88 start_url http://172.16.1.10/dtv/app/ servicemanager/servicemanager.html policy STB_policy setvendoroption dct5000_89 start_url http://172.16.1.10/dtv/app/ servicemanager/servicemanager.html policy STB_policy setvendoroption dct5000_8a start_url http://172.16.1.10/dtv/app/ servicemanager/servicemanager.html policy STB_policy setvendoroption dct5000_8b start_url http://172.16.1.10/dtv/app/ servicemanager/servicemanager.html policy STB_policy setvendoroption dct5000_8c start_url http://172.16.1.10/dtv/app/ servicemanager/servicemanager.html policy STB_policy setvendoroption dct5000_8d start_url http://172.16.1.10/dtv/app/ servicemanager/servicemanager.html policy STB_policy setvendoroption dct5000_8e start_url http://172.16.1.10/dtv/app/ servicemanager/servicemanager.html policy STB_policy setvendoroption dct5000_8f start_url http://172.16.1.10/dtv/app/ servicemanager/servicemanager.html
如果指定了VCI的其他子選項型別,則可以使用類似的方式將這些型別與策略和分配值相關聯。
在這個階段,儲存配置更改並重新載入DHCP伺服器以應用更改。可以使用以下命令發出nrcmd即可完成此操作:dhcp save和reload。
在早期版本的CNR中,高級供應商特定資訊選項功能不可用。相反,供應商特定選項(選項43)必須在策略中手動配置。無法在CNR 5.0中完成此操作。如果需要接收選項43中的值,您必須發出vendor-option和policy setvendoroption命令套件。
在5.0之前的CNR版本中,為了配置策略以提供供應商特定資訊選項(選項43)的值,請發出命令policy <policy-name> setoption vendor-encapsulated-option <value-byte-array> 。
其中:
policy-name — Set Top Boxes從中接收選項的DHCP策略的名稱。這是先前配置的。
value-byte-array — 返回的所有廠商專用資訊選項(選項43)所採用的值,該選項指定為十六進位制位元組陣列。
由於Vendor Specific Information Option(選項43)中包含的值是以十六進位制位元組陣列列出的,並且由於未設定子型別定義,因此必須將整個必需欄位解碼為相應的ASCII代碼。
使用文本到ASCII十六進位制轉換表(如http://www.lookuptables.com/ ),可以將URL http://172.16.1.10/dtv/app/servicemanager/servicemanager.html轉換為等效的十六進位制值。
此URL將變為以下值:
68:74:74:70:3a:2f:2f:31:37:32:2e:31:36:2e:31:2e:31:30:2f:64: 74:76:2f:61:70:70:2f:73:65:72:76:69:63:65:6d:61:6e:61:67:65: 72:2f:73:65:72:76:69:63:65:6d:61:6e:61:67:65:72:2e:68:74:6d:6c
為了正確格式化「供應商特定資訊」選項(選項43),您需要在此陣列的開頭新增type和length欄位。
代碼 | Len | 資料項 |
---|---|---|
2 | 61 | http://172.16.1.10/dtv/app/servicemanager/servicemanager.html |
代碼 | Len | 資料項 |
---|---|---|
02 | 3d | 68:74:74:70:3a:2f:2f:31:37:32:2e:31:36:2e:31:2e:31:30:2f:64:74:76:2f:61:70:70:2f:73:65:72:76:69:63:65:6d:61:6e:61:67:65:72:2f:73:65:72:76:69:63:65:6d:61:6e:61:67:65:72:2e:68:74:6d:6c |
如下表所示,十六進位制位元組61:3d需要預先新增到表示開始URL的十六進位制字串中。通過發出以下nrcmd命令,您可以指定「供應商特定資訊」選項(選項43)的整個值:
策略STB_policy setoption vendor-encapsulated-option
02:3d:68:74:74:70:3a:2f:2f:31:37:32:2e:31:36:2e:31:30:2f:64:74:76:2f:61:70:70:2f:73:65:72:76:69:63:65:6d:61:
6e:61:67:65:72:2f:73:65:72:76:69:63:65:6d:61:6e:61:67:65:72:2e:68:74:6d:6c
注意:此整個命令在一行上執行。
要驗證是否正確輸入了配置命令,可以發出nrcmd命令。
第一個命令是vendor-option list。如以下輸出所示,此命令的輸出提供供應商選項清單,提供vendor-option-name、vendor-class-id和vendor-option feature read_only。
nrcmd> vendor-option list 100 Ok dct5000_80: name = dct5000_80 read-only = disabled vendor-class-id = dct5000.0080 dct5000_81: name = dct5000_81 read-only = disabled vendor-class-id = dct5000.0081 dct5000_82: name = dct5000_82 read-only = disabled vendor-class-id = dct5000.0082 dct5000_83: name = dct5000_83 read-only = disabled vendor-class-id = dct5000.0083 dct5000_84: name = dct5000_84 read-only = disabled vendor-class-id = dct5000.0084 dct5000_85: name = dct5000_85 read-only = disabled vendor-class-id = dct5000.0085 dct5000_86: name = dct5000_86 read-only = disabled vendor-class-id = dct5000.0086 dct5000_87: name = dct5000_87 read-only = disabled vendor-class-id = dct5000.0087 dct5000_88: name = dct5000_88 read-only = disabled vendor-class-id = dct5000.0088 dct5000_89: name = dct5000_89 read-only = disabled vendor-class-id = dct5000.0089 dct5000_8a: name = dct5000_8a read-only = disabled vendor-class-id = dct5000.008A dct5000_8b: name = dct5000_8b read-only = disabled vendor-class-id = dct5000.008B dct5000_8c: name = dct5000_8c read-only = disabled vendor-class-id = dct5000.008C dct5000_8d: name = dct5000_8d read-only = disabled vendor-class-id = dct5000.008D dct5000_8e: name = dct5000_8e read-only = disabled vendor-class-id = dct5000.008E dct5000_8f: name = dct5000_8f read-only = disabled vendor-class-id = dct5000.008F
注意:預設情況下,廠商選項只讀功能處於禁用狀態。如果要啟用此功能,請發出vendor-option name enable read-only命令。在使用policy name setVendoroption命令中的選項為選項設定資料之前,應啟用供應商特定DHCP選項的只讀功能。
要驗證提供給每個供應商選項的子選項清單,請發出命令vendor-option vendor-option-name listsuboptions。使用此命令,您可以檢視子選項型別和值。在此輸出中,它是string型別,值為start_url。
nrcmd> vendor-option dct5000_80 listsuboptiovns 100 OK start_url(2) : string nrcmd> vendor-option dct5000_81 listsuboptions 100 OK start_url(2) : string
為了驗證將供應商特定資訊選項(選項43)的正確值返回給終端客戶端,可以啟用CNR中的擴展調試,以檢視DHCP選項在客戶端響應中的內容。有關在CNR中開啟擴展調試的詳細資訊,請參閱使用Cisco Network Registrar Debugs診斷有線網路中的DHCP問題。