ニュースレターNo.32/2006年3月発行
インターネット10分講座:IPv6アドレス~技術解説~
- 464XLATとは
- 6boneとは
- 6rdとは
- Happy Eyeballsとは
- IPv4/IPv6共存技術
- IPv4/IPv6デュアルスタックとは
- IPv6 over IPv4トンネリングとは
- IPv6セキュリティ
- IPv6/IPv4トランスレータとは
- IPv6/IPv4フォールバックとは
- IPv6アドレスの推奨表記
- IPv6アドレスの表記法とは
- IPv6関連情報
- IPv6におけるデフォルトアドレス選択とは
- JPNICが管理を行っているIPv6アドレス一覧
- MAP-Eとは
- NAT64/DNS64とは
- RA (Router Advertisement; ルータ広告)とは
- Teredoとは
- インターネット10分講座:IPv6
- 簡単にできる!IPv6アドレス割り振り手続き
- 文書用のIPv6アドレス(IPv6 Documentation prefix)に関するFAQ
- マルチプリフィクス問題とは
今回の10分講座では、次世代のプロトコルとしてその普及が注目されているIPv6アドレスについて技術的見地から解説します。
1. インターネットとIPアドレス
インターネットに接続している機器には、インターネット内で一意の識別番号(=IPアドレス)がつくのが基本です(NAT等の機器を用いて、一つのIPアドレスを複数の機器で共有することはありえます)。インターネットを介して機器同士が通信をするためには、相手のIPアドレス宛にIPパケットを送ります。このIPアドレスは、現在広く利用されているIPv4(IPバージョン4)で32ビット幅、IPv6では128ビット幅となっています。
そもそもIPv6が開発された大きな理由は、IPv4においてIPアドレスが不足することが予想されたため、それを解決しようとしたことです。IPv4アドレスの絶対数は約43億個であり、インターネットが通信基盤の一つとなって世界中で利用されている現在、60億を越える世界人口を考えてみてもその不足は明らかです。IPv6の128ビットというアドレス幅は、今後のインターネットの発展による接続機器の増大にも十分に耐えられるよう考慮され、決定されました。
2. IPv6 アドレス概略
2.1 IPv6アドレスの種類
IPv6アドレスはIPv4アドレスと同じく、機器そのものにではなく、機器の持つネットワークインタフェースに付与されます。一つのインタフェースに複数のIPv6アドレスが付与されることも、複数のインタフェースに単一のIPv6アドレスが付与されることもあります。IPv6アドレスは次の3種類に分類されます。
- ◇ユニキャストアドレス
- 単一インタフェースの識別番号で、 ユニキャストアドレス宛のパケットはそのアドレスを持つインタフェースに配送されます。 ユニキャストアドレスに関しては、 「ユニキャストアドレスについて」の章で詳説します。
- ◇エニーキャストアドレス
- インタフェースの集合の識別番号で、 普通は複数の別機器に付与されます。 エニーキャストアドレス宛のパケットは、 そのアドレスを持つ「一番近くにある」機器のインタフェースに配送されます。 エニーキャストアドレスはユニキャストアドレス空間から割り当てられ、 表記上、 エニーキャストアドレスとユニキャストアドレスの区別はつきません。
- ◇マルチキャストアドレス
- インタフェースの集合の識別番号です。 通常は別の機器となります。 マルチキャストアドレス宛のパケットはそのアドレスを持つすべてのインタフェースに配送されます。
IPv4とは違い、IPv6にはブロードキャストアドレスは存在せず、マルチキャストアドレスが同様の役割を果たします。
2.2 IPv6アドレスの表記法
IPv4アドレスは、32ビットを8ビットずつ4つに“.” (ピリオド)で区切った数値列を“192.168.0.1” のように10進数で記述しています。対してIPv6アドレスは、128ビットを16ビットずつ8つに“:” (コロン)で区切った数値列を、16進数で表記します。
記述例:ABCD:EF01:2345:6789:ABCD:EF01:2345:6789
2001:DB8:0:0:8:800:200C:417A
上記二番目の例のように、連続する“0” は省略可能です。また、“::” は16ビットの0が複数連続していることを示します(表1の例を参照)。“::” は、どこでも使用できますが、省略できるのは一カ所のみです。表1に例を示します。(アドレスの型については後述)
FF01:0:0:0:0:0:0:101 (マルチキャストアドレス) (省略)⇒FF01::101 |
2001:DB8:0:0:8:800:200C:417A (ユニキャストアドレス) (省略)⇒2001:DB8::8:800:200C:417A |
0:0:0:0:0:0:0:1 (ループバックアドレス) (省略)⇒::1 |
0:0:0:0:0:0:0:0 (未指定アドレス) (省略)⇒:: |
これにより、長いIPv6アドレスを短く表記することができます。また、IPv6アドレスプレフィックスの表記法はIPv4におけるCIDR表記と同一であり、
[IPv6アドレス]/[プレフィックス長]
のように表記します。IPv6アドレスとプレフィックスを同時に表記することもあります。
例:
2001:0DB8:0:CD30:123:4567:89AB:CDEF/60 というアドレス表記は
ノードアドレス
2001:0DB8:0:CD30:123:4567:8 9 AB:CDEF
サブネット番号
2001:0DB8:0:CD30::/60
を同時に表記しています。
2.3. IPv6アドレスの型
IPv6アドレスは、上位ビットにより、未指定アドレス、ループバックアドレス、マルチキャストアドレス、リンクローカルユニキャストアドレス、およびグローバルユニキャストアドレスに分類されます。
表2に、IPv6アドレスの型を示します。
アドレスの型 | バイナリプレフィックス | IPv6 表記 |
未指定(Unspecified) | 00…0 (128 ビット) | ::/128 |
ループバック | 00…1(128 ビット) | ::1/128 |
マルチキャスト | 1111 1111 | ff00::/8 |
リンクローカルユニキャスト | 1111 1110 10 | fe80::/10 |
グローバルユニキャスト | 上記以外 |
3. ユニキャストアドレスについて
IPv6ユニキャストアドレスは、連続ビットマスクを利用して経路情報の集約を行うIPv4のCIDRと同様に集約可能となっています。IPv6ユニキャストアドレスには現状、グローバルユニキャストアドレス、リンクローカルユニキャストアドレス、IPv4アドレス埋め込みIPv6アドレスなどの種類が存在します。従来、サイトローカルアドレスが定義されていましたが、現在は利用停止となっています(RFC3879 に経緯が説明されています)。
IPv6ユニキャストアドレスの構造を「図1 IPv6アドレスの基本構造」に示します。前半であるサブネットプレフィックスの部分がネットワーク上での位置を示し、後半のインタフェース識別子の部分がサブネットワーク内でのノードを示すのはIPv4と同等です。“000”以外で始まるユニキャストアドレスのインタフェース識別子は、長さが64ビットとなっており、改EUI-64(ModifiedEUI-64) フォーマットに従うこととされています。
IPv4では、ネットワークを識別する部分と、ノードを識別する部分の境界は可変となっていました。このためネットワークを設計する際、同一サブネットワーク上に配置されるホスト数を考慮して境界を決定する必要がありました。一般にノード識別部のサイズ見積もりは難しく、利用可能なアドレス数とのバランスを考慮して決定する必要があります。また、一度運用に入った後にホスト数が増加し、設計時の想定サイズを越えた場合に必要なアドレスの再設計、ネットワークの再設定は非常に困難でした。IPv6では境界が固定であるため、ネットワーク設計時のアドレス設計が非常に容易であり、また、ノード識別部も64ビットあることから、同一サブネットワーク上に存在できるホスト数も実利用上、十分な数となっています。このネットワーク設計におけるアドレス設計の容易さはIPv6の特徴の一つとなっています。
3.1 インタフェース識別子
IPv6ユニキャストアドレス中のインタフェース識別子は、リンク上でインタフェースを識別するために利用され、同一リンク上で一意であることが必要です。多くの場合、インタフェース識別子の生成にはそのインタフェースの持つリンク層アドレスが利用されます。例えばイーサネットを利用している場合には、インタフェース識別子は48ビットのイーサネットアドレスから導出されることになります。IPv6のステートレス自動設定を利用している場合には、グローバルユニキャストアドレスの後半64ビットがこのインタフェース識別子になるため、通信相手のIPv6アドレスからイーサネットアドレスがわかることがあります。
3.2 リンクローカルアドレス
IPv6では、同一リンク上でのみ有効なアドレスとして、リンクローカルアドレスが定義されています。IPv6ノードは、少なくとも一つのリンクローカルアドレスを持つことが規定されているため、ノードをネットワークに接続するだけで、何の設定もなしに同一リンク上のほかのノードと通信が可能になります。リンクローカルアドレスは主にアドレス自動設定、近隣探索(IPv4のARPに相当)などに利用されます。
3.3 グローバルユニキャストアドレス
現在、一般に使われているIPv6グローバルユニキャストアドレスのフォーマットを「図2 IPv6グローバルユニキャストアドレスのフォーマット」に示します。グローバルルーティングプレフィックスの部分がそれぞれのサイトに割り当てられ、サブネット識別子の部分でサイト内のサブネットが指定できます。RFC3177、および2006年1月現在施行されているアドレス配布ポリシー※1では、n=48、m=16という値となっており、このサイズですとそれぞれのサイト内に216(65,535) 個のサブネットが構築可能です。昨今、特に家庭でのインターネットユーザー向けにはこの割り当てサイズは大きすぎるのではないか、という問題が提起されており、サブネット識別子mの割り当てサイズを変更しよう、という議論が起きています。
3.4 ユニークローカルIPv6ユニキャストアドレス(ULA)
サイトローカルアドレスでは、RFC1918で定義されているIPv4のプライベートアドレスと同じ問題を持つことが懸念されたため、このアドレスを利用停止し、RFC4193で新しいローカルアドレスとしてユニークローカルIPv6ユニキャストアドレスが定義されました(詳しくは、JPNICニュースレターNo30,「IPv6アドレス最新動向」のテクニカル面での動向を参照※2)。ULAのフォーマットを図3に示します。ULAはfc00::/8とfd00::/8に二分されていますが、fd00::/8の部分は、アドレス中のグローバル識別子部分をランダムな値とし、完全な一意性は保証されないが、いつでも誰でも利用可能なアドレスとしています。ランダム値の計算方法も紹介されており、この計算方法を使用することで、異なる組織間で重複するアドレスを利用してしまう可能性を低減することができます。
3.5 文書記述用アドレスプレフィックス
IPv6では、マニュアルや設定サンプルへの利用を想定し、文書記述用にアドレスプレフィックスを定義しています。2001:db8::/32がそれで、本文中でも、説明用にこのプレフィックスを用いています。この空間の利用は自由ですが、通信に使用してはいけないことになっています。この空間は、RFC3849、および、APNICのポリシー文書※3として定義されています。
4. マルチキャストアドレス
IPv6マルチキャストアドレスは、ノードのグループに対応した識別子です。図4に、IPv6マルチキャストアドレスの構造を示します。
図からわかるように、2進数で“11111111”、16進数でff00::/8で始まるアドレスがIPv6のマルチキャストアドレスです。フラグフィールドは、マルチキャストアドレスがIANA※4 により恒久的に割り当てられているものか、一時的に割り当てられているものかを示すフラグや、組織の保有するユニキャストプレフィックスを利用したマルチキャストアドレスであることを示すフラグ(RFC3306) などが含まれます。
IPv6のマルチキャストアドレスには、「スコープ」という概念があり、スコープフィールドの値でそのマルチキャストアドレスグループの有効範囲を表します。このスコープがIPv6マルチキャストの特徴の一つとなっており、リンクローカルスコープ、サイトローカルスコープ、組織内スコープなどが定義されています。
5. 終わりに
本稿では、IPv6アドレスについて解説しました。IPv6アドレスは、単にIPv4アドレスのビット幅を4倍に拡張しただけでなく、そのアドレス幅を活かし、アドレスに構造を持たせたり、自動設定をしやすくしたりしています。また現在、IPv6アドレスに、位置情報や特定の意味を持たせるような提案も実施されており、今後もIPv6アドレスの使い方についての議論を注視していく必要があるでしょう。
(日本電信電話情報流通プラットフォーム研究所 藤崎智宏)
- ※1 JPNICにおけるIPv6アドレス割り振りおよび割り当てポリシー
- http://www.nic.ad.jp/doc/jpnic-01042.html
- ※2 JPNICニュースレターNo.30「IPv6アドレス最新動向テクニカル面での議論動向」
- http://www.nic.ad.jp/ja/newsletter/No30/022.html
- ※3 APNIC“IPv6 Documentation Prefix”
- http://www.apnic.net/info/faq/ipv6-documentation-prefix-faq.html
- ※4 IANA(the Internet Assigned Number Authority)
- http://www.iana.org