メインコンテンツまでスキップ

Appendix A. Creating Modified EUI-64 Format Interface Identifiers (修正EUI-64形式インターフェース識別子の作成)

Appendix A: Creating Modified EUI-64 Format Interface Identifiers (修正EUI-64形式インターフェース識別子の作成)

特定のリンクまたはノードの特性に応じて、修正EUI-64形式インターフェース識別子を作成する方法はいくつかあります。この付録では、これらの方法のいくつかについて説明します。

IEEE EUI-64識別子を持つリンクまたはノード

IEEE EUI-64識別子をインターフェース識別子に変換するために必要な唯一の変更は、「u」(universal/local、ユニバーサル/ローカル) ビットを反転することです。グローバルに一意なIEEE EUI-64識別子の例は次の形式です:

|0              1|1              3|3              4|4              6|
|0 5|6 1|2 7|8 3|
+----------------+----------------+----------------+----------------+
|cccccc0gcccccccc|ccccccccmmmmmmmm|mmmmmmmmmmmmmmmm|mmmmmmmmmmmmmmmm|
+----------------+----------------+----------------+----------------+

ここで、「c」は割り当てられた会社ID (company_id) のビット、「0」はユニバーサル範囲を示すuniversal/localビットの値、「g」は個体/グループビット、「m」は製造業者が選択した拡張識別子のビットです。IPv6インターフェース識別子は次の形式になります:

|0              1|1              3|3              4|4              6|
|0 5|6 1|2 7|8 3|
+----------------+----------------+----------------+----------------+
|cccccc1gcccccccc|ccccccccmmmmmmmm|mmmmmmmmmmmmmmmm|mmmmmmmmmmmmmmmm|
+----------------+----------------+----------------+----------------+

唯一の変更は、universal/localビットの値を反転することです。

IEEE 802 48ビットMACを持つリンクまたはノード

[EUI64] は、IEEE 48ビットMAC識別子からIEEE EUI-64識別子を作成する方法を定義しています。これは、48ビットMACの中央 (company_idとベンダー提供IDの間) に、16進値0xFFと0xFEの2つのオクテットを挿入することです (付録の最後にある注記を参照)。グローバル範囲を持つ48ビットIEEE MACの例:

|0              1|1              3|3              4|
|0 5|6 1|2 7|
+----------------+----------------+----------------+
|cccccc0gcccccccc|ccccccccmmmmmmmm|mmmmmmmmmmmmmmmm|
+----------------+----------------+----------------+

ここで、「c」は割り当てられた会社IDのビット、「0」はグローバル範囲を示すuniversal/localビットの値、「g」は個体/グループビット、「m」は製造業者が選択した拡張識別子のビットです。インターフェース識別子は次の形式になります:

|0              1|1              3|3              4|4              6|
|0 5|6 1|2 7|8 3|
+----------------+----------------+----------------+----------------+
|cccccc1gcccccccc|cccccccc11111111|11111110mmmmmmmm|mmmmmmmmmmmmmmmm|
+----------------+----------------+----------------+----------------+

IEEE 802 48ビットMACアドレスが利用可能な場合 (インターフェースまたはノード上)、その可用性と一意性の特性により、実装はそれらを使用してインターフェース識別子を作成できます。

他の種類の識別子を持つリンク

IEEE EUI-64またはIEEE 802 48ビットMAC以外のリンク層インターフェース識別子を持つ多くのタイプのリンクがあります。例としては、LocalTalkとArcnetがあります。修正EUI-64形式識別子を作成する方法は、リンク識別子 (例: LocalTalk 8ビットノード識別子) を取得し、左側にゼロを埋めることです。たとえば、16進値0x4FのLocalTalk 8ビットノード識別子は、次のインターフェース識別子になります:

|0              1|1              3|3              4|4              6|
|0 5|6 1|2 7|8 3|
+----------------+----------------+----------------+----------------+
|0000000000000000|0000000000000000|0000000000000000|0000000001001111|
+----------------+----------------+----------------+----------------+

これにより、universal/localビットが「0」に設定され、ローカル範囲を示すことに注意してください。

識別子のないリンク

組み込み識別子の種類を持たないリンクが多数あります。これらの最も一般的なものは、シリアルリンクと構成されたトンネルです。サブネットプレフィックス内で一意であるインターフェース識別子を選択する必要があります。

リンク上に組み込み識別子が利用できない場合、推奨されるアプローチは、別のインターフェースからのユニバーサルインターフェース識別子、またはノード自体に割り当てられたものを使用することです。このアプローチを使用する場合、同じノードを同じサブネットプレフィックスに接続する他のインターフェースは、同じ識別子を使用してはなりません。

リンク上で使用できるユニバーサルインターフェース識別子がない場合、実装はローカル範囲インターフェース識別子を作成する必要があります。唯一の要件は、サブネットプレフィックス内で一意であることです。サブネットプレフィックス一意のインターフェース識別子を選択する多くの可能な方法があります。これらには以下が含まれます:

  • 手動構成 (Manual Configuration)
  • ノードシリアル番号 (Node Serial Number)
  • その他のノード固有トークン (Other Node-Specific Token)

サブネットプレフィックス一意のインターフェース識別子は、ノードの再起動後またはインターフェースがノードから追加または削除された後に変更されないような方法で生成する必要があります。

適切なアルゴリズムの選択は、リンクと実装に依存します。インターフェース識別子の形成の詳細は、適切な「IPv6 over <link>」仕様で定義されています。衝突検出アルゴリズムを自動アルゴリズムの一部として実装することを強くお勧めします。

注記: [EUI-64] は実際には、IEEE MAC-48識別子からIEEE EUI-64識別子を作成するために挿入されるビットとして0xFFと0xFFを定義しています。IEEE EUI-48識別子から開始する場合、0xFFと0xFE値が使用されます。IEEE MAC-48とEUI-48識別子の違いについての誤解により、仕様の初期バージョンでは誤った値が使用されました。

このドキュメントは、IPv6インターフェース識別子の要件を満たし (つまり、リンク上で一意である必要があります)、IEEE EUI-48とMAC-48識別子は構文的に同等であり、実際に問題を引き起こさないため、意図的に0xFFと0xFEの使用を継続しています。