3. プロトコル概要 (Protocol Overview)
3. プロトコル概要
これらの近隣探索 (Neighbor Discovery) 最適化は, mesh-under および route-over 構成の両方に適用できる。mesh-under 構成では 6LoWPAN Border Routers とホストのみが存在し, mesh-under トポロジには 6LoWPAN ルータは存在しない。
最適化の最も重要な部分は, スリープするノードを可能にし, かつホストが初期のデフォルトルータ集合を見つける場合と, その集合が到達不能になったときその判定をやり直す場合を除いて, マルチキャスト近隣探索 (Neighbor Discovery) メッセージの使用を回避するよう進化した host-to-router 交互作用である。
本プロトコルはまた, ルータ広告 (Router Advertisement) メッセージ内の新しいオプションにヘッダ圧縮情報を保持することで, header compression [RFC6282] を提供する。
さらに, 6LR と 6LBR の間で, マルチホップ重複アドレス検出 (Duplicate Address Detection) を実行し, ならびに 6LBR からすべての 6LR へプレフィックスおよび圧縮コンテキスト情報を配布するために使用できる別個の仕組みがある。6LR は続いて通常の近隣探索 (Neighbor Discovery) 機構を用いてこの情報をホストへ伝える。
このプロトコルは, host-to-router 交互作用が 6LoWPAN の構成の影響を受けないよう設計されている。host-to-router 交互作用は mesh-under と route-over の構成で同一である。
3.1. RFC 4861 への拡張
本書は IPv6 Neighbor Discovery [RFC4861] に対して以下の最適化と拡張を規定する:
- ホスト起動による Router Advertisement 情報の更新。これにより, ルータからホストへの定期的または非要請の Router Advertisements が不要となる。
- EUI-64 ベースの IPv6 アドレスが使用される場合(これらのアドレスはグローバルに一意であると仮定される), Duplicate Address Detection (DAD) を実行しない。
- DHCPv6 を用いてアドレスを割り当てる場合, DAD は任意である。
- ホストとルータの間で新しいアドレス登録オプション (Address Registration Option) を用いる新しいアドレス登録機構。これは, ルータがホストを見つけるためにマルチキャスト Neighbor Solicitations を使用する必要をなくし, スリープホストをサポートする。これにより, 同一の IPv6 アドレスプレフィックスを route-over 6LoWPAN 全体で使用できる。また, Duplicate Address Detection のための host-to-router インタフェースを提供する。
- 6LoWPAN header compression に用いるコンテキスト情報のための新しい Router Advertisement オプション, すなわち 6LoWPAN コンテキストオプション (6LoWPAN Context Option)。
- 新しい重複アドレス要求 (Duplicate Address Request) と重複アドレス確認 (Duplicate Address Confirmation) メッセージを用いて route-over 6LoWPAN 全体で Duplicate Address Detection を実行する新しい仕組み。
- 新しい権威ボーダールータオプション (Authoritative Border Router Option) を用いて構成変更のフラッディングを制御する, route-over ネットワーク全体でプレフィックスとコンテキスト情報を配布する新しい仕組み。
- 少数の新しい既定プロトコル定数が導入され, いくつかの既存 Neighbor Discovery プロトコル定数が調整される。
3.2. アドレス割り当て
6LoWPAN のホストは, Router Advertisement メッセージで受信した情報に基づき, [RFC4861] および [RFC4862] で規定されるとおり IPv6 アドレスを構成する。ただし, この最適化における M (managed address configuration) フラグの使用は [RFC4861] より制約が強い。M フラグが設定されると, ホストは任意の非 EUI-64 アドレスを割り当てるために DHCPv6 を使用すると仮定される。M フラグが設定されない場合, LoWPAN のノードは Duplicate Address Detection をサポートする。したがってホストは, アドレス登録機構を安全に用いて非 EUI-64 アドレスの一意性を確認できる。
6LR は同じ機構を用いて IPv6 アドレスを構成してもよい。
6LBR は, 手動設定, DHCPv6 Prefix Delegation [RFC3633], またはその他の仕組みを用いて, 6LoWPAN に割り当てられたプレフィックスの管理に責任を持つ。孤立した LoWPAN では, 6LBR が Unique Local Address (ULA) [RFC4193] プレフィックスを生成すべきである。
3.3. ホスト-ルータ交互作用
ホストは起動時, およびそのデフォルトルータの 1 つに対する近隣不到達検出 (Neighbor Unreachability Detection, NUD) が失敗した場合に, ルータ要請 (Router Solicitation) メッセージを送信する。
ホストは通常権威ボーダールータオプション (Authoritative Border Router Option, ABRO) を含むルータ広告 (Router Advertisement) メッセージを受信し, [RFC4861] で記述される既存のプレフィックス情報オプション (Prefix Information Options, PIOs) に加えて, 任意で 1 つ以上の 6LoWPAN コンテキストオプション (6LoWPAN Context Options, 6COs) を含んでもよい。
ホストが非リンクローカル IPv6 アドレスを構成したとき, NS メッセージ内のアドレス登録オプション (Address Registration Option, ARO) を用いて, そのアドレスを 1 つ以上のデフォルトルータへ登録する。ホストは登録の有効期間を選択し, その有効期間が切れる前に ARO を定期的に繰り返して登録を維持する。有効期間はホストがスリープしている間も登録が維持されるように選ぶべきである。同様に, 接続点を頻繁に変更する移動ノードは適切に短い有効期間を使用すべきである。登録の詳細は Section 5.5, プロトコル定数は Section 9 を参照する。
ARO が非ゼロのステータス (Status) を伴ってホストへ返されると登録は失敗する。理由の 1 つは, ルータがその IPv6 アドレスが別のホスト, すなわち異なる EUI-64 を持つホストによってすでに使用されていると判断する場合である。これは一時 IPv6 アドレス [RFC4941] のような非 EUI-64 ベースのアドレス, または IEEE 802.15.4 16 ビット短縮アドレス (16-bit short address) のインタフェース ID (Interface ID) に基づくアドレスをサポートするために使用できる。失敗は, そのルータの近隣キャッシュ (Neighbor Cache) が満杯である場合にも起こり得る。
アドレスの再登録は, どちらもユニキャスト近隣要請 (Neighbor Solicitation) メッセージを使用するため, ルータに対する近隣不到達検出 (Neighbor Unreachability Detection, NUD) と組み合わせることができる。これにより, ホストがパケットを送信するために起床し, ルータがまだ到達可能であることを確認するために NUD を実行し, かつルータへの登録を更新する必要がある場合に効率的となる。
route-over 構成では 6LR が 6LBR に対して重複アドレス検出 (Duplicate Address Detection) を実行する可能性があるため, アドレス登録への応答は即時ではない場合がある。ホストはアドレス登録オプション (Address Registration Option) の受信によって確認されるまで ARO を再送する。
最適化の一環として, アドレス解決は [RFC4861] のようにマルチキャスト近隣要請 (Neighbor Solicitation) メッセージで実行されない。代わりにルータは, 登録されたすべての IPv6 アドレスについて近隣キャッシュエントリ (Neighbor Cache Entries) を維持する。アドレスがルータの近隣キャッシュ (Neighbor Cache) に存在しない場合, そのアドレスは存在しないか, 6LoWPAN 内の別のルータに接続されたホストに割り当てられているか, または 6LoWPAN 外部である。route-over 構成では, ルーティングプロトコルがそのようなパケットを宛先へ向けてルーティングするために使用される。
3.4. ルータ-ルータ交互作用
新しいルータ-ルータ (router-to-router) 交互作用は, 6LR が存在する route-over 構成のみに適用される。Section 1.4 も参照する。
6LR は, [RFC4861] のルータとは異なり, システム起動およびプレフィックス構成の間, ルータ要請 (Router Solicitation) メッセージを送信して IPv6 アドレスを自動構成することで, ホストのように振る舞わなければならない。
マルチホップのプレフィックスおよびコンテキスト配布が使用される場合, 6LR は 6LBR から (直接または間接に) 受信した ABRO, 6CO, およびプレフィックス情報を保持し, 他の 6LR に送信するルータ広告 (Router Advertisement), またはルータ要請 (Router Solicitation) に応答してホストへ送信するルータ広告 (Router Advertisement) でこの情報を再配布する。ABRO にはバージョン番号 (Version Number) フィールド (Section 4.3 参照) があり, 6LR 間で更新情報のフラッディングを制限するために使用される。
6LR は新しい重複アドレス要求 (Duplicate Address Request, DAR) および重複アドレス確認 (Duplicate Address Confirmation, DAC) メッセージを用いて 1 つ以上の 6LBR に対して重複アドレス検出 (Duplicate Address Detection) を実行できる。これらはアドレス登録オプション (Address Registration Option) からの情報を運ぶ。DAR と DAC メッセージは 6LR と 6LBR の間で転送されるため, hop limit=255 を検査する [RFC4861] の規則は DAR と DAC メッセージには適用されない。これらのマルチホップ DAD メッセージは, hop limit=255 チェックにより得られるセキュリティ上の利点がないため, ルータ上のいかなる近隣キャッシュエントリ (Neighbor Cache Entries) も変更してはならない。
3.5. 近隣キャッシュ (Neighbor Cache) 管理
有効期間を伴う明示的な登録の使用, ならびにホストのためにマルチキャスト近隣要請 (Neighbor Solicitation) メッセージを送らないという要件は, [RFC4861] よりもわずかに異なる方法で近隣キャッシュエントリ (Neighbor Cache Entries, NCEs) を管理することを意味する。これにより 3 種類の NCE が存在し, それぞれの種類はエントリをどのように削除できるかを規定する:
- ガーベジ回収可能: [RFC4861] の通常の規則に従い, メモリ不足時にガーベジ回収の対象となるエントリ。
- 登録済み: 明示的な登録有効期間を持ち, 有効期間が切れるか, 明示的に登録解除されるまで保持されるエントリ。
- 暫定: 短い有効期間を持つ一時的なエントリで, 通常登録済み (Registered) エントリへ変換される。
NCE の種類は [RFC4861] に規定された状態とは直交であることに注意する。
ホストがルータ要請 (Router Solicitations) を送信してルータと交互作用すると, 暫定 (Tentative) NCE が生じる。ルータがノードの登録に成功すると, 結果は登録済み (Registered) NCE となる。ルータがホストへ RA を送信する場合, およびルータが RA メッセージまたは他のルータからのマルチキャスト NS メッセージを受信する場合, 結果はガーベジ回収可能 (Garbage-collectible) NCE となる。ある IP アドレスに対して同時に存在できる NCE の種類は 1 つだけである。
ルータ上の近隣キャッシュエントリ (Neighbor Cache Entries) は, 6LoWPAN で使用されるルーティングプロトコルによって追加または削除されることもある。これは, ルーティングプロトコルが隣接ルータのリンク層アドレスを運ぶ場合に有用である。そのようなルーティングプロトコルの詳細に依存して, そのような NCE は登録済み (Registered) またはガーベジ回収可能 (Garbage-collectible) のいずれかになり得る。