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 のみの利用となります。
リンクローカルアドレス、グローバルアドレス、ユニークローカルアドレスのスコープですが、まとめると以下のようになります。