ブロードバンド ケーブル : ケーブル管理とサービス

CNR の設定 - ベンダー固有情報オプション(オプション 43)

2003 年 1 月 13 日 - ライター翻訳版
その他のバージョン: PDFpdf | 機械翻訳版 (2013 年 2 月 10 日) | 英語版 (2006 年 5 月 30 日) | フィードバック

目次


概要

Data-over-Cable Service Interface Specifications(DOCSIS)のケーブル プラントにおけるセット トップ ボックスは、ケーブル モデムの特殊なケースです。 セット トップ ボックスでは、オンラインになるときと、ネットワークに接続するときにケーブル モデムと同じ手順を踏みます。ただし、セット トップ ボックスでは、標準的なケーブル モデムにはない、テレビ放送のサービス、ペイ パー ビュー、電子番組ガイドなどの他の機能レベルを一般的に備えています。

このため、セット トップ ボックスでは、これらの追加機能を初期化して設定するための情報を提供するプロビジョニング システムが必要となる場合があります。

この文書では、Motorola DCT5000 セット トップ ボックスの例を使用して説明します。 この装置が、プロビジョニング システムから Dynamic Host Configuration Protocol(DHCP; ダイナミック ホスト コンフィギュレーション プロトコル)リースを取得している場合は、装置の開始ページとなる URL も提供される必要があります。これが行われないと、このブランドのセット トップ ボックスでは、すべての機能が正常に動作しなくなる可能性があります。

この文書で使用する DHCP サーバ システムは、Cisco Network Registrar(CNR)バージョン 5.06 です。 これより前の CNR リリースが使用されている場合もありますが、処理方法が異なり、情報を ASCII 形式で入力する必要があるため、処理に時間がかかり、複雑になります。

ベンダー クラス ID(オプション 60)

ベンダー クラス ID(オプション 60)は、DHCP クライアントによって、DHCP クライアントのベンダーや機能を識別するために使用することができます。 この情報は可変長の文字列またはオクテットで、DHCP クライアントのベンダーによって指定された意味をもちます。 つまり、DHCP クライアントである種類のハードウェアとファームウェアを使用して通信する方法が、自身の ベンダー クラス ID(オプション 60)と呼ばれる DHCP 要求に値として設定されます。 たとえば、DOCSIS 1.0 ベースのケーブル モデムでは、この DHCP オプションの値を「docsis1.0」という文字列に設定し、DOCSIS 1.1 ベースのケーブル モデムはこの値を「docsis1.1」に設定する必要があります。 これは、DHCP サーバで 2 種類のケーブル モデムを識別し、さらにこの 2 種類のモデムからの要求を適切な方法で処理できるようにするための方法です。

セット トップ ボックスの種類によっては、ベンダー クラス ID(オプション 60)を設定することで、装置のハードウェアの種類と機能を DHCP サーバに通知します。 このオプションに設定される値により、このクライアントが DHCP 応答の中で必要とする情報についてのヒントを DHCP サーバに送ることができます。

コード 長さ ベンダー クラス ID
60 n i1 i2 .............

図 1 - オプション 60 で送信されるデータの Type-Length-Value 構造

注:オプション 60 は、RFC 2132 leaving cisco.com で定義されています。

ベンダー固有情報(オプション 43)DHCP オプション

セット トップ ボックスで、送信したベンダー クラス ID に基づいて返されるベンダー固有の情報を得るための最も一般的な方法は、ベンダー固有情報オプション(オプション 43)と呼ばれる DHCP オプションを使用することです。 このオプションの書式は RFC 2132 で定義されていますが、このオプションによって返される値の定義は、関係するベンダーによって指定されています。

RFC 2132 leaving cisco.com の 8.4 項によれば、通常このオプションは「Type-Length-Value」形式でフォーマットされます。この形式では、異なる長さの情報を、異なるサブオプションのタイプで表現します。 「Value」フィールドの意味は、エンド デバイスのメーカーによって定義されます。

コード 長さ データ項目   コード 長さ データ項目  
T1 n d1 d2 ......... T2 n D1 D2 ........

図 2 - オプション 43 で送信されるデータの Type-Length-Value 構造

Motorola DCT5000 セット トップ ボックスの開始ページに応答するための CNR の設定

Motorola DCT5000 セット トップ ボックスが DHCP 要求を送信するときには、ベンダー クラス ID(オプション 60)を dct5000.008X という値に設定します。ここで X は 0 から F までの 16 進数のディジットで、セット トップ ボックスの機能によって変わります。 CNR では、この情報を使用して、DHCP クライアントが確かに DCT5000 セット トップ ボックスであることを判断します。

CNR で DHCP 要求が DCT5000 からであることが認識されたら、CNR では Motorola DCT5000 が正しく初期化されるように、開始 URL を DHCP 応答で返す必要があります。 Motorola では、この開始 URL はベンダー固有情報オプション(オプション 43)のサブオプション タイプ 2 として送信される必要があると定義しています。

コード 長さ データ項目
2 61 http://172.16.1.10/dtv/app/servicemanager/servicemanager.html

図 3 - 開始 URL が DCT5000 セット トップ ボックスに返されるときに DHCP オプション 43 で必要な書式。 URL の例が指定されています。

注:以下に示す設定は、nrcmd でしか行えません。 このコマンドの場合、GUI インターフェイスは使用できません。

CNR で行う必要のある最初のステップは、CNR にセット トップ ボックスで使用されているベンダー クラス ID を指定することです。 これを行うには、CNR のコマンドライン インターフェイス ユーティリティである nrcmd で次のコマンドを使用します。

vendor-option <vendor-option-name> create <Vendor-class-identifier>  

以下に、ここでの意味を示します。

vendor-option-name: 後に続くベンダー クラス ID(Vendor-class-identifier)を送信するクライアントのタイプを表す識別情報。
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  
     

将来、ネットワークで他のタイプのセット トップ ボックスが使用され、これらのセット トップ ボックスで異なるベンダー クラス ID が使用される場合には、これらを後から定義することができます。

現在では、これらの異なるベンダー クラス ID を 1 つのエントリにまとめる方法は CNR にありません。 CNR では、これらを全く異なるものとして扱います。

次のステップは、サブオプション タイプ 2 をこれらのベンダー クラス ID に対して有効なタイプであると定義することです。

サブオプション タイプは、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 コマンドのオプション データタイプ リストで参照できます。

注: 上記のコマンドの vendor-option-namesuboption-name のフィールドは、すべて小文字で指定する必要があります。 大文字が使用されると、小文字に変換されます。 option-data-type フィールドでは、大文字も小文字も指定できます。

この例では、サブオプション タイプ 2 を開始 URL として定義する必要があります。 この URL は文字列であるため、option-data-type に STRING と入力します。

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 応答の中でサブオプションに与えられる値。 サブオプションを定義する際に、指定された option-data-type ごとに入力される必要があります。

注:vendor-option-namesuboption-name フィールドでは、大文字と小文字が区別されます。 したがって、これらのフィールドはすべて小文字で指定するようにしてください。 suboption-value フィールドでは、大文字と小文字が両方使用できます。 suboption-value フィールドは、サブオプションを受信するクライアントで大文字小文字を区別する場合にのみ、大文字小文字を区別します。

この例では、セット トップ ボックス用のポリシーが既に定義されていて、STB_policy という名前であると想定します。 また、各セット トップ ボックスのタイプに対して、次のように開始 URL を指定するものとします。

http://172.16.1.10/dtv/app/servicemanager/servicemanager.html

これを行うには、次の 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  

他のベンダー クラス ID のサブオプション タイプが指定されている場合は、これらも同様の方法でポリシーに関連付け、値を割り当てることができます。

この時点で、設定の変更を保存して、DHCP サーバをリロードして変更を適用します。 これを行うには、nrcmd を使用して次のコマンドを実行します。
dhcp save
reload

CNR バージョン 5.0 以前の手作業によるベンダー固有オプションの設定

CNR の以前のバージョンには、上記のような高度なベンダー固有情報オプションの機能はありません。 そのため、ベンダー固有オプション(オプション 43)をポリシーに対して手作業で設定する必要があります。 この操作は CNR 5.0 では行えません。 クライアントがオプション 43 で値を受け取る必要がある場合は、上記のように vendor-optionpolicy setvendoroption のコマンドを組み合わせて使用します。

CNR の 5.0 以前のバージョンでポリシーを設定し、ベンダー固有情報オプション(オプション 43)の値を提供できるようにするには、次のコマンドを使用して設定します。

policy <policy-name> setoption vendor-encapsulated-option  <value-byte-array>  

この場合、以下のようになります。

policy-name: セット トップ ボックスがオプションを受信する DHCP ポリシーの名前。 このポリシーは事前に設定しておきます。
value-byte-array: ベンダー固有情報オプション(オプション 43)で返される全体の値。16 進数のバイトの配列で指定します。

ベンダー固有情報オプション(オプション 43)に含まれる値は 16 進数のバイトの配列として表され、またサブタイプの定義を含めることはできないため、要求されたフィールド全体を適切な ASCII コードにデコードする必要があります。

http://www.asciitable.com/ leaving cisco.com などのテキストから ASCII へ変換する表を使用すれば、上の例で示したような URL を、対応する 16 進数の値に変換することができます。

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)を正しくフォーマットするためには、この配列の先頭にタイプ長さのフィールドを付加することを思い出してください。

コード 長さ データ項目
2 61 http://172.16.1.10/dtv/app/servicemanager/servicemanager.html

コード 長さ データ項目
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 

図 4 - DHCP オプション 43 に必要なフォーマットを、判読可能なテキストと対応する 16 進数のフォーマットで表したもの

図 4 に示されているように、16 進数値の 61:3d を、開始 URL を表す 16 進数の列の前に付加する必要があります。 このようにして、ベンダー固有情報オプション(オプション 43)に対する全体の値を次の nrcmd コマンドを使用して指定します。 このコマンドは、全体を 1 行で実行しなくてはならないことに注意してください。
 

policy STB_policy setoption vendor-encapsulated-option
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
 

設定の確認

設定コマンドが正しく入力されたことを確認するには、nrcmd コマンドを使用します。

最初のコマンドは vendor-option list です。以下の出力で示すように、このコマンドの出力では、ベンダー オプションのリストが表示され、ベンダー オプション名(vendor-option-name)、ベンダー クラス ID(vendor-class-id)、ベンダー オプション機能の読み取り専用(read_only)が表示されます。read_only はデフォルトで無効(disabled)になっています。

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

注:ベンダー オプションの read-only 機能はデフォルトでは無効(disabled)になっています。 これを有効にするには、vendor-option name enable read-only コマンドを使用してください。 ベンダー固有の DHCP オプションの read-only 機能は、ポリシー名 setVendoroption コマンドでオプションを使用し、オプション用にデータを設定する前に有効にされている必要があります。

各ベンダー オプションに割り当てられているサブオプションのリストを表示したい場合には、vendor-option vendor-option-name listsuboptiovns コマンドを使用してください。このコマンドを使用すると、サブオプションのタイプと値を参照できます。 以下の出力では、タイプは文字列(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 応答に含まれる DHCP オプションの内容を表示することができます。 CNR で拡張でバッグをオンにする場合の詳細は、「Cisco Network Registrar のデバッグを使用したケーブル ネットワークにおける DHCP 問題のトラブルシューティング」を参照してください。

最後に

CNR 5.0 の ベンダー クライアント ID(オプション 60)とベンダー固有情報オプション(オプション 43)の高度の処理によって導入された概念を把握することは容易ではないかもしれません。しかし、多数の異なるデバイスで構成される大規模なシステムでは、このような高度な方法を使用した方が、CNR の古いバージョンで説明したような手作業によるオプション 43 の定義よりも、より高い拡張性が実現できます。

この文書は、Motorola DCT5000 セット トップ ボックスのプロビジョニング用のマニュアルとしては使用しないでください。 モトローラのマニュアルを正規の文書として必ず参照してください。


Cisco サポート コミュニティ - 特集対話

Cisco サポート コミュニティでは、フォーラムに参加して情報交換することができます。現在、このドキュメントに関連するトピックについて次のような対話が行われています。


関連情報


Document ID: 12193