IPv6のマルチキャストアドレスについて

IPv6のマルチキャストアドレスは先頭8ビットが 1111 1111 (FF00::/8) となるアドレスです。マルチキャストアドレス宛に送信されたパケットは、同じグループに属する複数の端末に届きます。マルチキャストアドレスの構成です。

先頭8ビットは固定値です。

フラグの上位3ビットは予約されている領域であり、常に 000 となります。フラグの4ビット目はマルチキャストアドレスが永続的か一時的かを示しており、永続的に割り当てられる場合は「0」、一時的な場合は「1」になります。

スコープはマルチキャストパケットが到達する範囲を示します。以下がスコープの一覧です。

インターフェイスローカルは単一ノード(1つの端末)のみに有効なスコープです。1台にしか届かないのであまり意味がないと思われるかもしれませんが、1台の端末の中でマルチキャストを扱う複数のプロセスが稼働していた場合、インターフェイスローカルのスコープでは、その複数のプロセスにマルチキャストパケットが届きます。

リンクローカルのスコープは、同一ネットワーク(通常はルーターやL3スイッチで区切られる)に有効なスコープとなります。

サイトローカルのスコープは、同一拠点内で有効なスコープです。言い換えると、同一拠点内にあるリンクローカルのスコープが複数集まったものです。

組織ローカルのスコープは、一組織において複数拠点で有効なスコープです。複数の拠点(サイトローカル)が複数集まったものです。

グローバルスコープは、インターネットでも有効なスコープとなります。

管理ローカルのスコープですが、実際の構成ではなく管理上の仮想的なスコープのようです。マルチキャスのスコープの中では最小のスコープになるようです。

マルチキャストアドレスのスコープです。

グループIDは、マルチキャストパケットが到達するノードの種類を示しています。例えば、全ノードを対象にマルチキャストパケットを届けたい場合は、グループIDは「1」になります。全ルーターを対象にする場合は「2」です。スコープとあわせることで、どの範囲のどのノードにマルチキャストパケットが届くかが決まります。

以下は、マルチキャストアドレスのパケットがどの範囲(どのノード)に届くかの、例です。

要請ノードマルチキャストアドレスについても、書いておきます。要請ノードマルチキャストアドレスは FF02::1:FFxx:xxxx となるアドレスです。

下位24ビット( x の部分)にはIPv6ユニキャストアドレスの下位24ビットをマッピングします。

要請ノードマルチキャストアドレスが使われるケースの1つは、重複アドレス検出(DAD : Duplicate Address Detection)のときです。DADは同一ネットワーク上で自身のリンクローカルユニキャストアドレスが他のノードで使われていないかどうかを確認するために使用します。

もう一つのケースとして、IPv6のアドレス解決の際にも要請ノードマルチキャストアドレスが使われます。IPv4のARPと同様の機能です。

IPv6ではブロードキャストは廃止されました。従来のブロードキャストはマルチキャストで代用します。マルチキャストにすることにより不要なノードへのパケット転送がなくなり、効率的なネットワークの利用が可能になっています。

IPv6のアドレススコープについて

IPv6のアドレススコープについてです。リンクローカルアドレス、グローバルアドレス、ユニークローカルアドレスについて記載します。

まずはリンクローカルアドレスです。

リンクローカルアドレスは同一ネットワーク内だけで有効なアドレスで、ルーターを超えて通信はできません。IPv4のリンクローカルアドレスとスコープは同じです。リンクローカルアドレスは FE80::/10 で始まるアドレスと定義されています。リンクローカルアドレスは自動的に生成されます。

前半の64ビットですが、先頭の10ビットは FE80(1111 1110 10)で、残りの54ビットはすべて 0 となります。

後半の64ビット(インターフェイスID)ですが、以前は EUI-64 という方法でMACアドレスをもとに生成をしていましたがセキュリティ上の理由により非推奨になりました。今は Semantically Opaque Interface Identifiers(RFC 7217)が使われているようです。

次に、グローバルアドレスです。

グローバルアドレスはISP(機器としてはルーター)から配布されるアドレスです。インターネット上での通信が可能です。先頭の3ビットが 001(2000::/3)で始まるアドレスとされています。ISPは組織に対して「/64〜/48」のアドレスブロックを割り当てます。

以下の例はインターネットを管理する上位組織がISPに /32 のプレフィックスを割り振り、ISPが各組織に /48 のプレフィックスを割り当てた場合です。

この場合、各組織では16ビット分のサブネットIDを利用していくつかのサブネット(最大65,536個のサブネット)に分割することができます。

インターフェイスIDは自動生成する場合(SLAAC)とDHCPサーバーから取得する場合があります。どちらの方法を取るかはルーターがプレフィックスを配布する際に指定します。

なお、このようなIPアドレスの割り当て方法はルーターの経路集約においても効果的です。

最後に、ユニークローカルアドレスです。

ユニークローカルアドレスは組織内のみで有効なアドレスです。IPv4のプライベートアドレスに該当します。IPv6ではアドレス空間が広大なため内部の全ホストにグローバルアドレスを割り当てることが可能です。ですのでユニークローカルアドレスは必要に応じて使用します。

ユニークローカルアドレスは FC00::/7 で始まるアドレスとされています。先頭から8ビット目(L)はグローバルIDの使用方法を指定します。L=0 はIETFによって予約されており、通常は L=1 になります。したがってユニークローカルアドレスの上位8ビットは 1111 1101 となり、実際には FD00::/8 のみの利用となります。

リンクローカルアドレス、グローバルアドレス、ユニークローカルアドレスのスコープですが、まとめると以下のようになります。