お得情報

IT全般

【IPv6】IPアドレスの構造・種類・関連技術などまとめ【基礎】

本サイトの記事内にアフェリエイト広告が含まれている場合があります。
Amazonのアソシエイトとして、当メディアは適格販売により収入を得ています。

【IPv6】IPアドレスの構造・種類・関連技術などまとめ【基礎】

matchan

しがない会社員。 自分への備忘録や記録、少しでもプラスになる情報を発信できたらと思います。

こんにちは。matchanです。

インターネットに接続するには「IPアドレス」が必要です。従来から一般的に使われているのは「IPv4」アドレスですが、最近は「IPv6」のアドレスも広まり始めています。

「IPv6って聞いたことあるけど、IPv4と何が違うの?アドレスが長くなっただけじゃないの?」と思われるかもしれませんが、IPv6は仕組みも考え方も、IPv4とは大きく異なる部分も多いのです。

今回はIPv6の「アドレス」に焦点を当て、

  • IPv6のアドレス構造
  • IPv6のアドレスの種類
  • IPv6のアドレス生成について
  • IPv6のアドレス自動設定について

と、IPv4との違いにも触れながら基礎的なことをまとめてみました。

IPv6のIPアドレス構造

IPv6のIPアドレスは128ビット。16ビットごとに『:(コロン)』で区切り、それぞれ16進数に変換して表記します。

例:「0010000000000001 0000110110111000 0000000000000000 0000000000000000 0000000000000000 1111111100000000 0000000001000010 1000001100101001」(128ビット)→「2001:0db8:0:0:0:ff00:0042:8329

重複なく割り振れるIPアドレスは単純計算で2の128乗≒3.4×10の38乗。IPv4の43億がちっぽけに思うほど膨大すぎて訳が分からなくなるほどです。

膨大すぎるということは「IPアドレスが枯渇することはない」のはもちろん、「ランダムにIPアドレスを生成しても、IPアドレスが重複する可能性は限りなく0に近い」ということでもあります。IPv6ではこのことを生かしたアドレス生成技術が使われており、IPv4とは全然違った仕組みとなっています。

IPv6アドレスの省略ルール

128ビットもあるIPv6アドレスは必然的にその表記も長くなるため、以下の省略ルールがあります。

  • 先頭のゼロの省略:各フィールドの先頭のゼロは省略可能です。
    • 例:0370370
  • 連続するゼロの省略:連続するゼロのフィールドは、1回に限り :: で省略可能です。
    • 例:2001:0db8:0:0:0:0:0:00012001:db8::1

プレフィックスとインターフェースID

IPv6のアドレスも、IPv4の「ネットワーク部」「ホスト部」に相当する「プレフィックス」「インターフェースID」があります。

例:2001:0db8:0000:0000:0000:0000:0000:0001/64の場合、

  • 2001:0db8:0000:0000::プレフィックス
  • 0000:0000:0000:0001 :インターフェースID

プレフィックス長はIPv4と同様に可変ですが、64ビットであることが一般的なようです。

また、IPv4の「192.168.1.1/24」表記と同様、IPアドレスに続けて『/[プレフィックス長]』と表記することで明示的にプレフィックス長を表記することができます。上記の場合はプレフィックス長が64ビットであることを明記しています。

IPv6のアドレス種類

IPv6のアドレスはいくつか種類があるのですが、「通信相手」「通信範囲」の2種類に基づいています。

通信相手に基づくアドレス種類

  • ユニキャストアドレス
    • 特定の相手との通信、すなわち1:1の通信で使われるアドレス
    • 通信範囲によって「リンクローカルアドレス」「ユニークローカルアドレス」「グローバルユニキャストアドレス」がある
  • エニーキャストアドレス
    • 複数のノードに割り当てられる共有のアドレス
    • エニーキャストアドレス宛へパケットを送信する場合、アドレスを持つ一番近いノードにパケットが届く
  • マルチキャストアドレス
    • 1:複数、および複数:複数の通信で使われるアドレス
    • ff00::/8』から始まる
    • マルチキャストアドレス宛へパケットを送信する場合、アドレスを持つ全てのノードにパケットが届く

ユニキャストアドレスには、通信範囲(どの範囲までパケットが届くか)に基づいて以下のアドレス種類があります。

通信範囲に基づくアドレス種類

  • リンクローカルアドレス
    • 同一リンク内通信(ルータは越えられない)
    • fe80::/10』から始まるアドレス(端末が自動で生成する)
    • ipconfigで「リンクローカル IPv6アドレス」と表示されている項目
    • IPv4でいう169.254.0.0~169.254.255.255のアドレス
  • ユニークローカルアドレス
    • プライベートネットワーク内限定のアドレス
    • IPv4でいうプライベートアドレス
    • インターネットでは利用不可
    • fc00:/7』から始まるアドレス
  • グローバルユニキャストアドレス
    • インターネット上で通信可能なIPv6アドレス
    • IPv4でいうグローバルアドレス

IPv4のプライベートアドレスは「ユニークローカルアドレス」、グローバルアドレスは「グローバルユニキャストアドレス」となります。

また、上記以外に特別な意味を持つアドレスについても挙げておきます。

その他、特別な意味を持つアドレス

  • ループバックアドレス:『::1/128
    • 自分自身を示すアドレス
    • IPv4でいう「127.0.0.1」

IPv6ではブロードキャストは使わずマルチキャストを使う

IPv6ではブロードキャストは使われません。代わりにマルチキャストアドレス(ff00::/8)を使って通信します。

マルチキャストアドレス宛に送信すると、対象のマルチキャストグループに参加しているすべての端末あてにパケットが届きます。マルチキャストアドレスの一例を以下に挙げてみます。

種類通信対象アドレス(マルチキャストグループ)
ブロードキャストに近い同一リンク内の全端末ff02::1
ルータ間通信すべてのルータff02::2
IPv6でのARP近隣探索対象の端末ff02::1:ffxx:xxxx(※下位24ビットは自分のIPv6アドレスの末尾に基づいて生成)
DHCPv6DHCPv6リレーエージェントff05::1:3

IPv6が有効になっている端末は、自動的に「ff02::1」「ff02::1:ffXX:XXXX」のマルチキャストグループに参加します。そのため、宛先アドレスを「ff02::1」としたパケットは「ff02::1」に参加している端末、すなわち同一リンク内にいるすべての端末に届くので、実質ブロードキャストのような動きになります。

そのほかマルチキャストを使う一例として、IPv6でのARPが挙げられます。

IPv6のARPでは、NS(Neighbor Solicitation)と呼ばれるメッセージを宛先が「ff02::1:ffxx:xxxx」という、MACアドレスを知りたいIPアドレスに対応したマルチキャストアドレス宛に送信します。

先述の通り、すべての端末は「ff02::1:ffxx:xxxx」のマルチキャストグループに参加している(下位24ビットは自身のIPv6アドレスの末尾に基づいて生成)ため、該当の端末だけがNA(Neighbor Advertisement)で応答する流れです。

IPv6ではNATの必要はなし

まあ、そりゃそうだよねという話ですがIPv6ではNATは原則不要です。

アドレス不足に対応するためにプライベートアドレスとグローバルアドレスを変換する技術がNATなわけですが・・・IPv6ではIPアドレスが枯渇する心配がないのと、端末がグローバルアドレスを生成可能なため(後述)、NATを使う必要が基本的にはないからです。

とはいえ、NATの技術自体はIPv6にもあります。

  • NAT66:IPv6アドレスからIPv6アドレスへの変換
  • NPTv6(Network Prefix Translation):プレフィックスのみ変換

IPv6アドレスの生成方法

128ビットあるIPv6アドレスですが、IPv4とは大きく異なり端末がアドレスを自動で生成することができます。というよりそのパターンが多いです。

例えばリンクローカルアドレスはIPv6が有効であれば自動的に生成されますし、後述するSLAACや一時アドレスも、別途配布されたプレフィックスと自身で生成したインターフェースIDを組み合わせて生成します

インターフェースIDは、完全にランダムな値で生成する方式や自身のMACアドレスを用いて生成する方式があります。ただしMACアドレスはNICに紐づくアドレスなのでNICが変わらない限りは同じです。そのため生成されるIPアドレスも変わらないため、プライバシー上のリスクがあります。

もちろん、IPv4同様に固定で設定することもできます。

IPv6アドレスの自動設定

IPv6ではアドレスの自動設定もIPv4のDHCPとは異なります

IPv4ではIPアドレスを割り振りするのはDHCP(Dynamic Host Configuration Protocol)サーバーですね。クライアントからの問い合わせに応じてアドレスプールからアドレスを割り当てます。

一方、IPv6アドレスを割り当てる方法は大きく3種類あります。

IPv6での自動設定方法

  • SLAAC(Stateless Address Autoconfiguration):
    • ルーター広告(RA)と呼ばれるメッセージを使ってルーターが情報を配布する方法
    • 前半64ビット(プレフィックス)をルータが配布し(RA)、後半64ビット(インターフェースID)はクライアント自身が生成したものを組み合わせてグローバルアドレスを生成する
  • ステートフルDHCPv6
    • IPv4と同様に、DHCPサーバーが情報を配布する方法
    • DHCPサーバーがプレフィックスとインターフェースID両方を配布する
    • そのほかDNSサーバ情報も配布
  • SLACC+ステートレスDHCPv6
    • IPv6アドレスのプレフィックスはRA、DNSサーバーの情報はDHCPv6で配布する方法

SLAACルータからプレフィックスが配布され、自身で生成したインターフェースIDと組み合わせてグローバルアドレスを生成する方式です。モバイル端末や家庭用ルータでよく使われています。

IPアドレスの確認方法

Windows PCの場合、PCに設定されているIPアドレスはコマンドプロンプトで『ipconfig』と入力すると確認できます。IPv4のアドレスを確認する場合と全く同じです。

以下の例は私の環境(自宅内Wi-Fi)でipconfigを実行した結果です。

C:\Users\User>ipconfig

Windows IP 構成

(省略)

Wireless LAN adapter Wi-Fi:

接続固有の DNS サフィックス . . . . .:
IPv6 アドレス . . . . . . . . . . . .: xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx
一時 IPv6 アドレス. . . . . . . . . .: xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx
リンクローカル IPv6 アドレス. . . . .: fe80::xxxx:xxxx:xxxx:xxxx%13
IPv4 アドレス . . . . . . . . . . . .: X.X.X.X
サブネット マスク . . . . . . . . . .: 255.255.255.0
デフォルト ゲートウェイ . . . . . . .: xxxx::xxxx:xxxx:xxxx:xxxx%13
192.168.3.1

ちなみに『ipconfig /all』と入力すると、さらに多くの項目(MACアドレス、DHCPサーバ情報、DNSサーバ情報など)が表示されます。

C:\Users\User>ipconfig /all

Windows IP 構成

(省略)

Wireless LAN adapter Wi-Fi:

   接続固有の DNS サフィックス . . . . .:
   説明. . . . . . . . . . . . . . . . .: Intel(R) Dual Band Wireless-AC 8260
   物理アドレス. . . . . . . . . . . . .: XX-XX-XX-XX-XX-XX
   DHCP 有効 . . . . . . . . . . . . . .: はい
   自動構成有効. . . . . . . . . . . . .: はい
   IPv6 アドレス . . . . . . . . . . . .: xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx(優先)
   一時 IPv6 アドレス. . . . . . . . . .: xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx(優先)
   リンクローカル IPv6 アドレス. . . . .: fe80::xxxx:xxxx:xxxx:xxxx%13(優先)
   IPv4 アドレス . . . . . . . . . . . .: X.X.X.X(優先)
   サブネット マスク . . . . . . . . . .: 255.255.255.0
   リース取得. . . . . . . . . . . . . .: 2025年5月17日 0:37:17
   リースの有効期限. . . . . . . . . . .: 2025年5月18日 0:37:12
   デフォルト ゲートウェイ . . . . . . .: xxxx::xxxx:xxxx:xxxx:xxxx%13
                                          X.X.X.X
   DHCP サーバー . . . . . . . . . . . .: X.X.X.X
   DHCPv6 IAID . . . . . . . . . . . . .: xxxxxxxxx
   DHCPv6 クライアント DUID. . . . . . .: XX-XX-XX-XX-XX-XX-XX-XX-XX-XX-XX-XX-XX-XX
   DNS サーバー. . . . . . . . . . . . .: xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx
                                          X.X.X.X
   NetBIOS over TCP/IP . . . . . . . . .: 有効

ipconfigに登場する3種類のアドレス

上記の場合、IPv6のIPアドレスが3種類表示されていることに気づくと思います。

  • IPv6アドレス:動的 or 手動で設定されたIPv6アドレス
  • 一時IPv6アドレス:期間限定で使われる、いわゆる使い捨てのアドレス
  • リンクローカルIPv6アドレス:先述の「リンクローカルアドレス」

このうち、「リンクローカルIPv6アドレス」は、PC側がIPv6有効状態であれば自動的に生成されます。

「IPv6アドレス」はIPv6アドレスが動的 or 手動設定で割り振られていれば表示されます。つまり「リンクローカルIPv6アドレス」しか表示されていない場合はインターネットでIPv6は使えないということです。

IPv6一時アドレス」はいわゆる有効期限付きのアドレスで、有効期限が過ぎると自動で別のアドレスが生成されます。デフォルトではインターネット通信はこの一時アドレスを使って行われます。IPv6ではプライベートアドレスはなく、すべてグローバルアドレスとなります。同じアドレスをずっと使い続けることはセキュリティリスクにつながるためです。

通常のIPv6アドレスも公開サーバなど、IPアドレスが変わってほしくない用途に使われます。

スポンサーリンク

アドセンス

まとめ

ポイント

  • IPv6のIPアドレスは128ビット
    • 16ビットずつ『:(コロン)』で区切り16進数表記
    • 前半の「プレフィックス」、後半の「インターフェースID」に分かれる(長さは可変だが64ビット+64ビットであることが多い)
  • IPv6は「通信相手」「通信範囲」に基づいたアドレス種類がある
    • ユニキャストアドレス:1:1通信
      • リンクローカルアドレス:同一リンク内でのみ通信
      • ユニークローカルアドレス:プライベートネットワーク内で通信可能(インターネットには出れない)
      • グローバルユニキャストアドレス:インターネット上で通信可能なアドレス
    • アニーキャストアドレス:複数のノードに割り当てられる共有のアドレス。
    • マルチキャストアドレス:1:複数、複数:複数。IPv6ではブロードキャストは使われないため、代わりに使われる。
  • IPv6アドレスは端末が自動的に生成できる
    • リンクローカルアドレスやSLACCによる自動生成
  • IPv6の自動設定には大きく以下の方法がある。
    • SLAAC:RAを使ってルーターが情報を配布する→端末自身が生成したインターフェースIDと組み合わせてアドレスを生成
    • ステートフルDHCPv6:DHCPサーバが情報を配布する
    • SLACC+ステートレスDHCPv6:IPv6アドレスのプレフィックスはRA、DNSサーバーの情報はDHCPv6で配布

IPv6アドレスは単なるIPv4のアドレスが長くなったバージョンでしょ」というわけではありません。

アドレスの種類、アドレスの生成や通信の方法・・・IPv4と異なる点も多くあり「IPv6はIPv4とは似て非なるものである」といえるでしょう。

参考になれば幸いです。

アドセンス

-IT全般