IPv6アドレスの種類を徹底解説

自分の機器にfe80::で始まるアドレスと2000:で始まるアドレスが同時に表示されている理由を整理しました。

IPv6アドレスがいくつもの種類に分かれている理由

IPv6はIPv4よりはるかに広いアドレス空間を持つよう設計されましたが、その分、あるアドレスがインターネット全体で通用するのか、それとも同じネットワーク内だけで通用するのかを、アドレスの形式そのものではっきり区別する必要がありました。そのため先頭のビットパターン(プレフィックス)によっていくつかの種類に分かれています。

グローバルユニキャストアドレス(2000::/3)

グローバルユニキャストアドレスは、IPv4における公人IP(グローバルIP)と同じ役割を果たし、インターネット上のどこからでも到達可能です。2000::/3の帯域から割り当てられ、インターネットプロバイダーが各家庭や企業にこの帯域のアドレスを配布することで、原則としてNATなしでも各機器が固有のグローバルアドレスを持てるようになっています。

ユニークローカルアドレス(fc00::/7)

ユニークローカルアドレス(ULA)は、fc00::/7の帯域に属し、組織や家庭の内部だけで使い、インターネットへ直接ルーティングされないという点でIPv4のプライベートIP帯域(192.168.x.xなど)に近い役割を果たします。ただしIPv4のプライベートIPと異なり、ランダムに生成された識別子を含んでいるため、2つの異なるプライベートネットワークを後から統合してもアドレスが衝突する確率は非常に低く設計されています。

マルチキャストアドレス(ff00::/8)

1つの送信元が特定のグループに属する複数の受信者へ同時にデータを送るときに使うアドレスで、ff00::/8の帯域が割り当てられています。IPv6ではIPv4にあったブロードキャスト(全体送信)の概念がなくなり、その役割の多くをマルチキャストが代わりに担っています。「すべてのノード」「すべてのルーター」といった特殊な予約グループアドレスもこれに含まれます。

ループバック・未指定アドレス(::1、::)

ループバックアドレス::1は、IPv4の127.0.0.1と同じ役割で、機器が自分自身と通信するとき(ローカルテストなど)に使われます。未指定アドレス::(0が128個続くアドレス)はまだアドレスが割り当てられていない状態を表すために使われ、実際の通信の送信元や宛先として指定されることはありません。

実際に自分の機器のIPv6アドレスを確認すると

ネットワーク設定画面でIPv6アドレスを確認すると、fe80::で始まるリンクローカルアドレスと2000:で始まるグローバルユニキャストアドレスが同時に表示されることがよくあります。これはエラーではなく、用途の異なる複数種類のアドレスを1台の機器が同時に持つというIPv6の設計上、自然な姿です。

もう解決すべきアドレス不足は残っていない

IPv4のおよそ43億個というアドレス数は、インターネット全体をプライベートIPとNATに頼らせるほど窮屈なものでした。IPv6のアドレス空間は、原則として地球上のすべての機器がそれぞれ固有のグローバルアドレスを持ってもまだ何倍もの余裕があるほど広大です。アドレスの種類分けが存在するのは、希少な資源を配給するためではなく、事実上無限にある供給を用途ごとに整理するためです。

アドレスの種類が分かるとトラブルシューティングが速くなる

fe80::は必ずローカル専用、fc00::やfd00::は内部専用、2000::はグローバルに到達可能、というようにプレフィックスを一目で見分けられるようになると、接続トラブルの診断がぐっと速くなります。本来グローバルアドレスが表示されるはずの場面でリンクローカルアドレスしか表示されていなければ、その機器がネットワークから正しくアドレスを受け取れていないことがすぐに分かるからです。

よくある質問

IPv6でもプライベートIPは必要ですか?

厳密には必須ではありません。IPv6のアドレス空間はNATなしでグローバルユニキャストアドレスを直接割り当てられるほど広いですが、インターネットから到達できないようにしたい内部専用通信のためにユニークローカルアドレス(ULA)を使うことはできます。IPv4のプライベートIPのように必須の構成要素というわけではありません。

リンクローカルアドレスでインターネットに接続できますか?

いいえ。リンクローカルアドレスは同じネットワークセグメント内でのみ有効で、ルーターを越えて転送されないよう設計されているため、インターネット通信には使われません。インターネット接続には常にグローバルユニキャストアドレスが使われます。