メインコンテンツへジャンプする

JPNICはインターネットの円滑な運営を支えるための組織です
文字サイズ:
インターネット10分講座 IPv6 もあわせてご覧ください。

ニュースレターNo.32/2006年3月発行

インターネット10分講座:IPv6アドレス~技術解説~

今回の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に例を示します。(アドレスの型については後述)

表1:IPv6アドレスの表記法
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アドレスの型を示します。

表2:Pv6アドレスの型
アドレスの型 バイナリプレフィックス 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) フォーマットに従うこととされています。

図1 IPv6アドレスの基本構造

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の割り当てサイズを変更しよう、という議論が起きています。

図2 IPv6グローバルユニキャストアドレスのフォーマット

3.4 ユニークローカルIPv6ユニキャストアドレス(ULA)

サイトローカルアドレスでは、RFC1918で定義されているIPv4のプライベートアドレスと同じ問題を持つことが懸念されたため、このアドレスを利用停止し、RFC4193で新しいローカルアドレスとしてユニークローカルIPv6ユニキャストアドレスが定義されました(詳しくは、JPNICニュースレターNo30,「IPv6アドレス最新動向」のテクニカル面での動向を参照※2)。ULAのフォーマットを図3に示します。ULAはfc00::/8とfd00::/8に二分されていますが、fd00::/8の部分は、アドレス中のグローバル識別子部分をランダムな値とし、完全な一意性は保証されないが、いつでも誰でも利用可能なアドレスとしています。ランダム値の計算方法も紹介されており、この計算方法を使用することで、異なる組織間で重複するアドレスを利用してしまう可能性を低減することができます。

図3 ユニークローカルIPv6ユニキャストアドレス(ULA)のフォーマット

3.5 文書記述用アドレスプレフィックス

IPv6では、マニュアルや設定サンプルへの利用を想定し、文書記述用にアドレスプレフィックスを定義しています。2001:db8::/32がそれで、本文中でも、説明用にこのプレフィックスを用いています。この空間の利用は自由ですが、通信に使用してはいけないことになっています。この空間は、RFC3849、および、APNICのポリシー文書※3として定義されています。

4. マルチキャストアドレス

IPv6マルチキャストアドレスは、ノードのグループに対応した識別子です。図4に、IPv6マルチキャストアドレスの構造を示します。

図からわかるように、2進数で“11111111”、16進数でff00::/8で始まるアドレスがIPv6のマルチキャストアドレスです。フラグフィールドは、マルチキャストアドレスがIANA※4 により恒久的に割り当てられているものか、一時的に割り当てられているものかを示すフラグや、組織の保有するユニキャストプレフィックスを利用したマルチキャストアドレスであることを示すフラグ(RFC3306) などが含まれます。

IPv6のマルチキャストアドレスには、「スコープ」という概念があり、スコープフィールドの値でそのマルチキャストアドレスグループの有効範囲を表します。このスコープがIPv6マルチキャストの特徴の一つとなっており、リンクローカルスコープ、サイトローカルスコープ、組織内スコープなどが定義されています。

図4 マルチキャストアドレスのフォーマット

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

このページを評価してください

このWebページは役に立ちましたか?
ページの改良点等がございましたら自由にご記入ください。

このフォームをご利用した場合、ご連絡先の記入がないと、 回答を差し上げられません。 回答が必要な場合は、お問い合わせ先をご利用ください。

▲頁先頭へ