10. 例
10.1. メッセージの例
STEP
6LN 6LR
| |
1. | ---------- Router Solicitation --------> |
| [SLLAO] |
| |
2. | <-------- Router Advertisement --------- |
| [PIO + 6CO + ABRO + SLLAO] |
図 2: ノードと6LRまたは6LBR間の基本的なルーター要請/ルーターアドバタイズメント交換
6LN 6LR
| |
1. | ------- NS with Address Registration ------> |
| [ARO + SLLAO] |
| |
2. | <----- NA with Address Registration -------- |
| [ARO with Status] |
図 3: ネイバー探索アドレス登録
6LN 6LR 6LBR
| | |
1. | --- NS with Address Reg --> | |
| [ARO + SLLAO] | |
| | |
2. | | ----------- DAR ----------> |
| | |
3. | | <---------- DAC ----------- |
| | |
4. | <-- NA with Address Reg --- | |
| [ARO with Status] |
図 4: マルチホップDADによるネイバー探索アドレス登録
10.2. ホストのブートストラップの例
次の例では、このドキュメントで指定されている改善されたNDメカニズムを使用したアドレスブートストラップシナリオについて説明します。6LNは、LoWPANのリンク層で安全なアクセスを取得し、リンク層セキュリティのキーを取得するために、最初に一連の操作を実行すると想定されています。リンク層セキュリティを確立する方法はこのドキュメントの範囲外です。この例では、IEEE 802.15.4 6LNは、DHCPv6を使用せずに(つまり、RAにMフラグが設定されていない)、16ビットの短いIPv6アドレスを形成します。
-
リンク層セキュリティを取得した後、6LNはリンクローカルIPv6アドレスを自身に割り当てます。リンクローカルIPv6アドレスは、[RFC4944]に従って形成された6LNのEUI-64リンク層アドレスに基づいて構成されます。
-
次に、6LNは、SLLAOをそのEUI-64リンクローカルアドレスに設定して、全ルーターマルチキャストアドレスにRSを送信することにより、ネットワーク内の1つ以上のデフォルトルーターを決定します。6LNがリンク層操作を通じてルーターのリンク層アドレスを取得できた場合、6LNはルーターのリンクローカル宛先IPv6アドレスを形成し、ユニキャストRSを送信できます。
6LRは、RSからのSLLAOを使用して、IP送信元アドレスにユニキャストRAで応答します(仮のNCEを作成した可能性があります)。図2を参照してください。
-
1 IPホップ以上離れて通信するために、6LNはグローバルIPv6アドレスを構成します。オーバーヘッドを節約するために、この6LNは、[RFC4944]に従って16ビットの短いアドレスに基づいてIPv6アドレスを構成することを望んでいます。ネットワークは管理されていないため(RAにMフラグが設定されていない)、6LNはランダムに16ビットのリンク層アドレスを選択し、そこから仮のIPv6アドレスを形成します。
-
次に、6LNは、登録する仮のグローバルIPv6アドレス、登録ライフサイクル、およびそのEUI-64を含むAROを含むユニキャストNSメッセージを送信することにより、そのアドレスを1つ以上のデフォルトルーターに登録します。登録されるアドレスに対応するリンク層アドレスを含むSLLAOも含まれます。成功(ステータス0)のNAメッセージが受信された場合、アドレスを使用でき、6LNは重複が正常にチェックされたと想定します。重複アドレス(ステータス1)NAメッセージが受信された場合、6LNは一時的なIPv6アドレスと16ビットのリンク層アドレスを削除し、ステップ3に戻ります。ネイバーキャッシュフル(ステータス2)メッセージが受信された場合、6LNは別のデフォルトルーターに登録しようとするか、ない場合はステップ2に戻ります。図3を参照してください。エラーを返すNAメッセージは、16ビット(重複)アドレスではなく、6LNのリンクローカルEUI-64ベースのIPv6アドレスに返送されることに注意してください。
-
6LNは、ライフサイクルが切れる前に新しいNSアドレス登録を送信することにより、メンテナンスを実行します。
マルチホップDADおよびマルチホッププレフィックスとコンテキスト配布が使用される場合、上記のブートストラッププロセスに従う6LRとホストの効果は、6LBRから外側に広がる6LRとホストの「波面」が構成されることです。最初に、6LBRに直接到達できるホストと6LRは、1つ以上のRAを受信し、IPv6アドレスを構成して登録します。それが完了すると、ルーティングプロトコルを有効にし、RAの送信を開始します。その結果、新しい6LRとホストのセットがRSへの応答を受信し、アドレスを形成して登録するなどします。これは、すべての6LRとホストが構成されるまで繰り返されます。
10.2.1. ホストブートストラップメッセージ
このセクションでは、上記のブートストラッププロセスに関連する特定のメッセージの例を示します。メッセージについて説明するときは、次の表記法を使用します。
- LL64: EUI-64に基づくリンクローカルアドレス。これは802.15.4ロングアドレスでもあります。
- GP16: 802.15.4ショートアドレスに基づくグローバルアドレス。このアドレスは一意ではない場合があります。
- GP64: [RFC4944]で指定されているようにEUI-64アドレスから派生したグローバルアドレス。
- MAC64: リンク層アドレスとして使用されるEUI-64アドレス。
- MAC16: IEEE 802.15.4 16ビットショートアドレス。
一部の実装では、LL64およびGP64の代わりにLL64およびGP16スタイルのアドレスを使用する場合があることに注意してください。以下では、ノードがLL64を使用してマルチホップDAD検証のためにGP16アドレスを登録する方法に関するメッセージフローの例を示します。
6LN-----RS-------->6LR
Src= LL64 (6LN)
Dst= all-router-link-scope-multicast
SLLAO= MAC64 (6LN)
6LR------RA--------->6LN
Src= LL64 (6LR)
Dst= LL64 (6LN)
Note: Source address of RA must be a link-local
address (Section 4.2 of RFC 4861).
6LN-------NS Reg------>6LR
Src= GP16 (6LN)
Dst= LL64 (6LR)
ARO
SLLAO= MAC16 (6LN)
6LR---------DAR----->6LBR
Src= GP64 or GP16 (6LR)
Dst= GP64 or GP16 (6LBR)
Registered Address= GP16 (6LN) and EUI-64 (6LN)
6LBR-------DAC--------->6LR
Src= GP64 or GP16 (6LBR)
Dst= GP64 or GP16 (6LR)
Copy of information from DAR
If Status is a success:
6LR ---------NA-Reg------->6LN
Src= LL64 (6LR)
Dst= GP16 (6LN)
ARO with Status = 0
If Status is not a success:
6LR ---------NA-Reg-------->6LN
Src= LL64 (6LR)
Dst= LL64 (6LN) --> Derived from the EUI-64 of ARO
ARO with Status > 0
図 5: 詳細なメッセージアドレスの例
10.3. ルーター相互作用の例
ルートオーバーポロジでは、ルーティングプロトコルが6LR間で実行される場合、ブートストラップとネイバーキャッシュ管理の処理が少し異なります。この段落の説明は、実装のガイドラインのみを提供します。
6LRの初期化時に、代替可能なマルチホップDADが6LBRで実行される場合、親6LRの助けを借りてホストとしてブートストラップすることを選択できます。ルーターのネイバーキャッシュ管理と隣接ルーター間のアドレス解決は、それぞれセクション6.5.3と6.5.5で説明されています。この例では、隣接する6LoWPANリンクが安全であると想定しています。
10.3.1. ルーターのブートストラップ
このシナリオでは、ブートストラップ6LR「R1」は6LBRから複数のホップ離れており、他の6LRネイバーに囲まれています。最初、R1はホストとして動作します。マルチキャストRSを送信し、1つ以上の隣接6LRからRAを受信します。R1は、一時的なデフォルトルーターとして1つの6LRを選択し、このデフォルトルーターを介してアドレス解決を実行します。マルチホップDADが必要ない場合(たとえば、管理されたネットワークやEUI-64ベースのアドレスを使用する場合)、一時的なデフォルトルーターを選択する必要はありませんが、6LBRによって配布されたグローバルプレフィックスでアドレスを自動構成する場合は、最初のRSメッセージを送信したい場合があります。
RAで受信した情報に基づいて、R1はすべての隣接6LRのエントリでキャッシュを更新します。アドレス登録が完了すると、ブートストラップルーターはデフォルトルーターの一時エントリを削除し、ルーティングプロトコルが開始されます。
また、R1は、6LBRに直接(6LBRに到達するためにルーティングプロトコルによって決定されたネクストホップ隣接6LRを使用して)マルチホップDAD登録を更新できることにも注意してください。
10.3.2. ネイバーキャッシュの更新
この例では、R1、R2、R3の3つの6LRがあります。最初、R2が起動すると、R1のみが表示されるため、R2はR1のNCEを作成します。ここで、R2がルーターR3から有効なルーティング更新を受信したとします。R2にはR3のNCEがありません。R2の実装がルーティング情報パケットからのリンク層アドレスの検出をサポートしている場合、そのリンク層情報を使用してネイバーキャッシュを直接更新します。これが不可能な場合、R2は、ルーティング更新パケットで受信した送信元IPアドレスのスコープに応じて、送信元をリンクローカルまたはグローバルアドレスに設定してマルチキャストNSを実行する必要があります。NSメッセージのターゲットアドレスは、受信したルーティング更新パケットの送信元IPv6アドレスです。NSメッセージの形式は、[RFC4861]のセクション4.3で説明されています。
より一般的には、NCEを持たない隣接ルーターから有効なルート更新を受信した6LRは、上記のようにネイバーキャッシュを更新する必要があります。
NDを介して学習されたルーター(6LRおよび6LBR)IPアドレスは、ルーティングプロトコルに再配布されません。