付録 A. 動作例
この付録では、RPLによるアドレス情報とプレフィックスの配布を説明するためのいくつかの例を示します。これらの例は、PIOとRIOによって情報が配布される様子と、DIOおよびDAOメッセージの使用法を示しています。この付録は規範的なものではなく、RPLアドレス計画と自動設定の詳細は、特定の実装によって異なる場合があることに注意してください。RPLは単に、他のメカニズムによって構築および使用される可能性のある情報を配布するための手段を提供するだけです。
これらの例は、RPL内で配布される情報によってサポートされるアドレス自動設定スキームの使用法を示していることに注意してください。ただし、実装に別のアドレス自動設定スキームが含まれている場合、RPLノードはPIOオプションで 'A' フラグを設定しないように構成される場合がありますが、PIOはプレフィックスとアドレス情報を配布するために引き続き使用できます。
A.1. ノード所有プレフィックスを使用したストアリングモードでの動作例
図32は、ストアリングモードで動作する単純なRPLネットワークの論理アドレス指定アーキテクチャを示しています。この例では、各ノードA、B、C、およびDが独自のプレフィックスを所有し、そのプレフィックスをオンリンクデバイスによるアドレス自動設定に使用できるようにします。(これは、DIOメッセージのPIOで 'A' フラグと 'L' フラグを設定することによって伝達されます)。ノードAはプレフィックスA::/64を所有し、ノードBはB::/64を所有します。ノードBは、ノードAに対してオンリンクアドレスA::Bを自動設定します。ノードCとDも同様に、ノードBのプレフィックスからそれぞれオンリンクアドレスB::CとB::Dを自動設定します。ノードには、'R' フラグを設定し、PIOのプレフィックスフィールド内で自身のアドレスを公開するオプションがあります。
+-------------+
| Root |
| |
| Node A |
| |
| A::A |
+------+------+
|
|
|
+------+------+
| A::B |
| |
| Node B |
| |
| B::B |
+------+------+
|
|
|
.--------------+--------------.
/ \
/ \
+------+------+ +------+------+
| B::C | | B::D |
| | | |
| Node C | | Node D |
| | | |
| C::C | | D::D |
+-------------+ +-------------+
図 32: ノード所有プレフィックスを使用したストアリングモード
A.1.1. DIOメッセージとPIO
ノードAは、たとえば、次のようなPIOを含むDIOメッセージを送信します。
- 'A' フラグ: セット
- 'L' フラグ: セット
- 'R' フラグ: クリア
- プレフィックス長: 64
- プレフィックス: A::
ノードBは、たとえば、次のようなPIOを含むDIOメッセージを送信します。
- 'A' フラグ: セット
- 'L' フラグ: セット
- 'R' フラグ: セット
- プレフィックス長: 64
- プレフィックス: B::B
ノードCは、たとえば、次のようなPIOを含むDIOメッセージを送信します。
- 'A' フラグ: セット
- 'L' フラグ: セット
- 'R' フラグ: クリア
- プレフィックス長: 64
- プレフィックス: C::
ノードDは、たとえば、次のようなPIOを含むDIOメッセージを送信します。
- 'A' フラグ: セット
- 'L' フラグ: セット
- 'R' フラグ: セット
- プレフィックス長: 64
- プレフィックス: D::D
A.1.2. DAOメッセージ
ノードBは、次の情報を含むDAOメッセージをノードAに送信します。
- ターゲット B::/64
- ターゲット C::/64
- ターゲット D::/64
ノードCは、次の情報を含むDAOメッセージをノードBに送信します。
- ターゲット C::/64
ノードDは、次の情報を含むDAOメッセージをノードBに送信します。
- ターゲット D::/64
A.1.3. ルーティング情報ベース
ノードAは、概念的に次の情報をルーティング情報ベース(RIB)に収集します。
- A::/64 接続済み
- B::/64 ノードBのリンクローカル経由
- C::/64 ノードBのリンクローカル経由
- D::/64 ノードBのリンクローカル経由
ノードBは、概念的に次の情報をRIBに収集します。
- ::/0 ノードAのリンクローカル経由
- B::/64 接続済み
- C::/64 ノードCのリンクローカル経由
- D::/64 ノードDのリンクローカル経由
ノードCは、概念的に次の情報をRIBに収集します。
- ::/0 ノードBのリンクローカル経由
- C::/64 接続済み
ノードDは、概念的に次の情報をRIBに収集します。
- ::/0 ノードBのリンクローカル経由
- D::/64 接続済み
A.2. サブネット全体のプレフィックスを使用したストアリングモードでの動作例
図33は、ストアリングモードで動作する単純なRPLネットワークの論理アドレス指定アーキテクチャを示しています。この例では、ルートノードAが、RPLサブネット全体のアドレス自動設定に使用されるプレフィックスを提供します。(これは、DIOメッセージのPIOで 'A' フラグを設定し、'L' フラグをクリアすることによって伝達されます。)ノードA、B、C、およびDはすべて、プレフィックスA::/64に自動設定されます。ノードには、'R' フラグを設定し、PIOのプレフィックスフィールド内で自身のアドレスを公開するオプションがあります。
+-------------+
| Root |
| |
| Node A |
| A::A |
| |
+------+------+
|
|
|
+------+------+
| |
| Node B |
| A::B |
| |
+------+------+
|
|
.--------------+--------------.
/ \
/ \
+------+------+ +------+------+
| | | |
| Node C | | Node D |
| A::C | | A::D |
| | | |
+-------------+ +-------------+
図 33: サブネット全体のプレフィックスを使用したストアリングモード
A.2.1. DIOメッセージとPIO
ノードAは、たとえば、次のようなPIOを含むDIOメッセージを送信します。
- 'A' フラグ: セット
- 'L' フラグ: クリア
- 'R' フラグ: クリア
- プレフィックス長: 64
- プレフィックス: A::
ノードBは、たとえば、次のようなPIOを含むDIOメッセージを送信します。
- 'A' フラグ: セット
- 'L' フラグ: クリア
- 'R' フラグ: セット
- プレフィックス長: 64
- プレフィックス: A::B
ノードCは、たとえば、次のようなPIOを含むDIOメッセージを送信します。
- 'A' フラグ: セット
- 'L' フラグ: クリア
- 'R' フラグ: クリア
- プレフィックス長: 64
- プレフィックス: A::
ノードDは、たとえば、次のようなPIOを含むDIOメッセージを送信します。
- 'A' フラグ: セット
- 'L' フラグ: クリア
- 'R' フラグ: セット
- プレフィックス長: 64
- プレフィックス: A::D
A.2.2. DAOメッセージ
ノードBは、次の情報を含むDAOメッセージをノードAに送信します。
- ターゲット A::B/128
- ターゲット A::C/128
- ターゲット A::D/128
ノードCは、次の情報を含むDAOメッセージをノードBに送信します。
- ターゲット A::C/128
ノードDは、次の情報を含むDAOメッセージをノードBに送信します。
- ターゲット A::D/128
A.2.3. ルーティング情報ベース
ノードAは、概念的に次の情報をRIBに収集します。
- A::A/128 接続済み
- A::B/128 ノードBのリンクローカル経由
- A::C/128 ノードBのリンクローカル経由
- A::D/128 ノードBのリンクローカル経由
ノードBは、概念的に次の情報をRIBに収集します。
- ::/0 ノードAのリンクローカル経由
- A::B/128 接続済み
- A::C/128 ノードCのリンクローカル経由
- A::D/128 ノードDのリンクローカル経由
ノードCは、概念的に次の情報をRIBに収集します。
- ::/0 ノードBのリンクローカル経由
- A::C/128 接続済み
ノードDは、概念的に次の情報をRIBに収集します。
- ::/0 ノードBのリンクローカル経由
- A::D/128 接続済み
A.3. ノード所有プレフィックスを使用した非ストアリングモードでの動作例
図34は、非ストアリングモードで動作する単純なRPLネットワークの論理アドレス指定アーキテクチャを示しています。この例では、各ノードA、B、C、およびDが独自のプレフィックスを所有し、そのプレフィックスをオンリンクデバイスによるアドレス自動設定に使用できるようにします。(これは、DIOメッセージのPIOで 'A' フラグと 'L' フラグを設定することによって伝達されます)。ノードAはプレフィックスA::/64を所有し、ノードBはB::/64を所有します。ノードBは、ノードAに対してオンリンクアドレスA::Bを自動設定します。ノードCとDも同様に、ノードBのプレフィックスからそれぞれオンリンクアドレスB::CとB::Dを自動設定します。ノードには、'R' フラグを設定し、PIOのプレフィックスフィールド内で自身のアドレスを公開するオプションがあります。
+-------------+
| Root |
| |
| Node A |
| |
| A::A |
+------+------+
|
|
|
+------+------+
| A::B |
| |
| Node B |
| |
| B::B |
+------+------+
|
|
|
.--------------+--------------.
/ \
/ \
+------+------+ +------+------+
| B::C | | B::D |
| | | |
| Node C | | Node D |
| | | |
| C::C | | D::D |
+-------------+ +-------------+
図 34: ノード所有プレフィックスを使用した非ストアリングモード
A.3.1. DIOメッセージとPIO
ノード所有プレフィックスを使用した非ストアリングモードのDIOメッセージに含まれるPIOは、ノード所有プレフィックスを使用したストアリングモードの場合(付録A.1.1)と同一であると見なすことができます。
A.3.2. DAOメッセージ
ノードBは、次の情報を含むDAOメッセージをノードAに送信します。
- ターゲット B::/64, トランジット A::B
ノードCは、次の情報を含むDAOメッセージをノードAに送信します。
- ターゲット C::/64, トランジット B::C
ノードDは、次の情報を含むDAOメッセージをノードAに送信します。
- ターゲット D::/64, トランジット B::D
A.3.3. ルーティング情報ベース
ノードAは、概念的に次の情報をRIBに収集します。ノードAは、RIBへの再帰的検索を行うことでソースルートを構築するための十分な情報を持っていることに注意してください。
- A::/64 接続済み
- B::/64 経由 A::B
- C::/64 経由 B::C
- D::/64 経由 B::D
ノードBは、概念的に次の情報をRIBに収集します。
- ::/0 ノードAのリンクローカル経由
- B::/64 接続済み
ノードCは、概念的に次の情報をRIBに収集します。
- ::/0 ノードBのリンクローカル経由
- C::/64 接続済み
ノードDは、概念的に次の情報をRIBに収集します。
- ::/0 ノードBのリンクローカル経由
- D::/64 接続済み
A.4. サブネット全体のプレフィックスを使用した非ストアリングモードでの動作例
図35は、非ストアリングモードで動作する単純なRPLネットワークの論理アドレス指定アーキテクチャを示しています。この例では、ルートノードAが、RPLサブネット全体のアドレス自動設定に使用されるプレフィックスを提供します。(これは、DIOメッセージのPIOで 'A' フラグを設定し、'L' フラグをクリアすることによって伝達されます。)ノードA、B、C、およびDはすべて、プレフィックスA::/64に自動設定されます。ノードは、トランジットオプションで使用するアドレスを子に通知するために、'R' フラグを設定し、PIOのプレフィックスフィールド内で自身のアドレスを公開する必要があります。
+-------------+
| Root |
| |
| Node A |
| A::A |
| |
+------+------+
|
|
|
+------+------+
| |
| Node B |
| A::B |
| |
+------+------+
|
|
.--------------+--------------.
/ \
/ \
+------+------+ +------+------+
| | | |
| Node C | | Node D |
| A::C | | A::D |
| | | |
+-------------+ +-------------+
図 35: サブネット全体のプレフィックスを使用した非ストアリングモード
A.4.1. DIOメッセージとPIO
ノードAは、たとえば、次のようなPIOを含むDIOメッセージを送信します。
- 'A' フラグ: セット
- 'L' フラグ: クリア
- 'R' フラグ: セット
- プレフィックス長: 64
- プレフィックス: A::A
ノードBは、たとえば、次のようなPIOを含むDIOメッセージを送信します。
- 'A' フラグ: セット
- 'L' フラグ: クリア
- 'R' フラグ: セット
- プレフィックス長: 64
- プレフィックス: A::B
ノードCは、たとえば、次のようなPIOを含むDIOメッセージを送信します。
- 'A' フラグ: セット
- 'L' フラグ: クリア
- 'R' フラグ: セット
- プレフィックス長: 64
- プレフィックス: A::C
ノードDは、たとえば、次のようなPIOを含むDIOメッセージを送信します。
- 'A' フラグ: セット
- 'L' フラグ: クリア
- 'R' フラグ: セット
- プレフィックス長: 64
- プレフィックス: A::D
A.4.2. DAOメッセージ
ノードBは、次の情報を含むDAOメッセージをノードAに送信します。
- ターゲット A::B/128, トランジット A::A
ノードCは、次の情報を含むDAOメッセージをノードAに送信します。
- ターゲット A::C/128, トランジット A::B
ノードDは、次の情報を含むDAOメッセージをノードAに送信します。
- ターゲット A::D/128, トランジット A::B
A.4.3. ルーティング情報ベース
ノードAは、概念的に次の情報をRIBに収集します。ノードAは、RIBへの再帰的検索を行うことでソースルートを構築するための十分な情報を持っていることに注意してください。
- A::A/128 接続済み
- A::B/128 経由 A::A
- A::C/128 経由 A::B
- A::D/128 経由 A::B
ノードBは、概念的に次の情報をRIBに収集します。
- ::/0 ノードAのリンクローカル経由
- A::B/128 接続済み
ノードCは、概念的に次の情報をRIBに収集します。
- ::/0 ノードBのリンクローカル経由
- A::C/128 接続済み
ノードDは、概念的に次の情報をRIBに収集します。
- ::/0 ノードBのリンクローカル経由
- A::D/128 接続済み
A.5. 外部プレフィックスを使用した例
図36に示す単純なネットワークを考えてみましょう。この例では、RPLネットワークに参加しているルーターのグループ(DODAGルート、ノードA、Y、およびZ)があります。DODAGルートとノードZは、異なる外部ネットワークドメイン(つまり、RPLネットワークの外部)への接続も持っています。これらの外部ネットワークは、RPLネットワークである場合もあれば、まったく別のタイプのネットワークである場合もあることに注意してください。
RPL Network +-------------------+
RPL::/64 | |
| External |
[RPL::Root] (Root)----------+ Prefix |
| | EXT_1::/64 |
| | |
| +-------------------+
[RPL::A] (A)
:
:
:
[RPL::Y] (Y)
| +-------------------+
| | |
| | External |
[RPL::Z] (Z)------------+ Prefix |
: | EXT_2::/64 |
: | |
: +-------------------+
図 36: 単純なネットワークの例
この例では、DODAGルートが、アドレス自動設定のためにRPLサブネットにプレフィックスを利用できるようにします。ここでは、RPLサブネット全体が同じプレフィックスRPL::/64をアドレス自動設定に使用していますが、他の実装では、より複雑な/ハイブリッドなスキームを採用することができます。
DODAGルートは、外部(そのRPLネットワークに関して)プレフィックスEXT_1::/64への接続を持っています。DODAGルートは、たとえば、明示的な構成や非RPLインターフェイス上のIPv6 NDを介して、このプレフィックスへの接続を知った可能性があります。DODAGルートは、このプレフィックスへの接続に関する情報をアナウンスするように構成されています。
同様に、ノードZは外部プレフィックスEXT_2::/64への接続を持っています。ノードZの下にはサブDODAGもあります。
-
DODAGルートは、そのDIOメッセージにRIOを追加します。RIOには外部プレフィックスEXT_1::/64が含まれています。この情報は、DODAG内の他のノードによって送信されるDIOメッセージで繰り返される場合があります。したがって、プレフィックスEXT_1::/64への到達可能性はDODAG全体に伝播されます。
-
ノードZは、ターゲットオプションのターゲットとしてEXT_2::/64を使用し、トランジット情報オプションの親として自身(ノードZ)を使用してDAOメッセージを送信することにより、ターゲットネットワークEXT_2::/64への到達可能性をアドバタイズできます。(ストアリングモードでは、そのトランジット情報オプションにノードZのアドレスを含める必要はありません)。非ストアリングルートは、ソースルートの構築に使用するために、1ホップリンク(ノードZ -- EXT_2::/64)を認識するようになります。ノードZはさらに、'A' フラグがクリアされたPIOを含むDIOメッセージを送信することにより、EXT_2::/64への到達可能性をサブDODAG内のノードにアドバタイズできます。