IPv6 Global Unicast Addressについて仕様を軽く理解する

公開日: 2020年06月22日最終更新日: 2022年01月28日

少し前に家のインターネット環境をIPv6に移行しました。 速度計測してみると遅延が50msから5msに下がって、通信速度も向上しました。
IPv6とIPv4は意識することなく変換されるようになっていてどちらを使っていても家庭での使用に問題はありません。 しかしIPv6どれくらい普及しているんでしょうかね?
そんなIPv6のアドレスについて少しだけメモを記載します。

IPv6アドレスは128bitで表されます。そして、IPv4のグローバルアドレスに相当する、IPv6グローバルユニキャストアドレスがあります。 RFC3587: IPv6 Global Unicast Address Formatにグローバルユニキャストアドレスのフォーマットが記載されています。
グローバルユニキャストアドレスはglobal routing prefix, subnet ID, interface IDで構成され、それぞれのbit長は可変です。
ただし、RFC3177では以下のようなフォーマットが推奨されています。(2020/06/21現在)

| 3 |     45 bits         |  16 bits  |       64 bits              |
+---+---------------------+-----------+----------------------------+
|001|global routing prefix| subnet ID |       interface ID         |
+---+---------------------+-----------+----------------------------+

これに従っているならば、上位3bitを001に固定した48bitのglobal routing prefixがISPから割り当てられているはずです。そして、16bitのsubnet IDは各組織(各家庭)によって割り当てることができます。これらを合わせた上位64bitで自分が所属するサブネットをグローバルで一意に識別することができます。
そして、interface IDはサブネット内で各機器が持つIDです。

Google Analyticsのフィルタ作成で、アドレスの条件を上位64ビットの前方一致にしているのは、IPv6アドレスでは上位64bitがグローバルにおいて一意のサブネットを表すためです。