ITの教科書検索
入門・発展ページ読了 約10分

IPv4アドレス枯渇とIPv6移行 ― デュアルスタック

IPv4アドレス枯渇とは、新規に配れるIPv4アドレスが2011年に無くなったことです。延命策のCIDR・NATと、デュアルスタックなどIPv6移行方式の仕組みを解説します。

目次
  1. IPv4アドレス枯渇とデュアルスタック
  2. 枯渇までの経緯
  3. 移行方式の種類
  4. デュアルスタックの仕組み
  5. トランスレーション:NAT64とDNS64
  6. IPv4 over IPv6との違い
  7. 練習問題

IPv4アドレス枯渇とは、新規に配れるIPv4アドレスが無くなったこと

IPv4アドレス枯渇とは、IANAやAPNICなど上位の組織で、通常の方法で新規に割り振れるIPv4アドレスの在庫が無くなったことです。2011年に実際に起こりました。

IPv4を使い続けながらIPv6へ移る現実的な方法がデュアルスタックです。1台の機器にIPv4とIPv6の両方のアドレスを持たせ、相手に応じて使い分けます。日本の家庭用回線でも、この形が広く使われています。

枯渇を遅らせたCIDRとNATの働きから始めて、IPv6への移行方式の違いまでを説明します。

枯渇までの経緯:43億個から延命策、そして枯渇

IPv4アドレスは32ビットです(RFC 791)。作れる個数は2³²で、約43億個です。1980年代の設計時には、十分な数に見えました。

その後、インターネットに接続する機器は世界的に急増しました。43億個では、いずれ足りなくなることが見えてきました。そこで2つの延命策が取られました。

1つ目はCIDRです。アドレスのまとまりを、クラスという決まった大きさではなく、必要な大きさで配れるようにしました(RFC 4632)。無駄な配り方を減らし、在庫を長持ちさせました。

2つ目はNATです。1つのグローバルIPアドレスを、家庭やオフィス内の複数台の機器で共有できるようにしました。新しくグローバルIPアドレスを取得する必要が減りました。

延命策にも限界がありました。IANAの在庫は2011年2月3日に、APNICとJPNICの通常の在庫は2011年4月15日に、それぞれ枯渇しました。日付は、JPNIC「IPv4アドレスの在庫枯渇に関して」によります。

1981年RFC 79132ビット約43億個延命策①CIDR配布を効率化延命策②NAT1つを複数で共有2011年在庫枯渇新規の割り振り終了移行IPv6128ビットへ拡張IANA:2011年2月3日 APNIC・JPNIC:2011年4月15日
IPv4アドレスは32ビットで作られ、約43億個しかありません。CIDRとNATで延命してきましたが、2011年に新規に割り振れる在庫が枯渇し、128ビットのIPv6への移行が進んでいます。

枯渇後も、すでに割り振られているIPv4アドレスは今も使われ続けています。ただし、新規に大きな範囲をまとめて受け取ることは、通常の方法ではできなくなりました。根本的な解決として作られた規格が、128ビットのIPv6です。

IPv6への移行方式の種類

IPv4とIPv6は、ヘッダの形式が違うため、そのままでは直接やり取りできません。世界中の機器を一度に置き換えることもできません。そこで、IPv4とIPv6を共存させる移行方式が必要になります。

移行方式は、大きく3つに分けて整理できます。デュアルスタックとトンネリングはRFC 4213に、変換の考え方はRFC 6144にまとめられています。次の表に、それぞれの仕組みと使われる場面をまとめます。

方式仕組み(1行で)主に使う場面
デュアルスタック1台の機器がIPv4とIPv6の両方のアドレスを持ち、相手に合わせて使い分ける今のIPv6移行の主流。多くのOS・家庭用回線が対応済み
トランスレーション(NAT64・DNS64)IPv6のみの機器が送ったパケットを、IPv6とIPv4の間で変換してつなぐIPv6のみのネットワークから、まだIPv4のみのサイトに届かせたいとき
トンネリング(IPv4 over IPv6など)IPv4のパケットを、IPv6に変換せずにIPv6のパケットに包んで運ぶIPoEのようにIPv6の回線しかない区間で、IPv4の通信も運びたいとき

現在もっとも広く使われているのはデュアルスタックです。次の節からは、デュアルスタックを中心に、残り2つの方式も説明します。

デュアルスタックの仕組み:2つのアドレスを持ち分ける

デュアルスタックは、1台の機器がIPv4とIPv6の両方を実装する方式です。RFC 4213では、「IPv4とIPv6の完全な実装を提供する技術」と定義されています。

デュアルスタックの機器は、IPv4アドレスとIPv6アドレスを同時に持ちます。通信先がIPv4の機器ならIPv4で、IPv6の機器ならIPv6で、それぞれ直接やり取りします。IPv4とIPv6の間で変換したり、パケットを包んだりはしません。

どちらのアドレスで話すかは、名前解決の結果で決まります。DNSの記事で説明したとおり、AレコードはIPv4アドレス、AAAAレコードはIPv6アドレスを返します。通信先が両方のレコードを持っていれば、多くのOSは既定でIPv6を優先します(RFC 6724)。

日本の家庭でも、PCがIPv4とIPv6の両方のアドレスを持つデュアルスタックの形が広く使われています。回線の上では、IPv6はIPoE方式で直接つながります。IPv4は、PPPoEか、IPv6の中に包むIPv4 over IPv6で運ばれます。回線の方式そのものは、PPPoEとIPoEの記事で説明しています。

トランスレーション:IPv6のみの機器がIPv4のサーバに届く仕組み

デュアルスタックには、両方のアドレスを用意する手間があります。新しく作るネットワークをIPv6のみにしたい場合もあります。その場合でも、まだIPv4のみで動くサイトと通信したいことがあります。

この場面で使われるのがNAT64とDNS64です。2つを組み合わせると、多くの場合は端末もサーバも変更せずに、IPv6のみの端末からIPv4のみのサーバへ届けられます(RFC 6146・RFC 6147)。

まず、端末はアクセスしたいサーバの名前を、DNS64に問い合わせます。そのサーバがAAAAレコードを持っていなければ、DNS64はAレコードから、合成したAAAAレコードを作って返します。合成されたアドレスは、元のIPv4アドレスと、変換用に用意したプレフィックスを組み合わせたものです。

変換用のプレフィックスには、RFC 6052が定めた64:ff9b::/96がよく使われます。たとえば203.0.113.50は、16進数でcb00:7132と書けます。そのため、合成されたアドレスは64:ff9b::cb00:7132になります。

次に、端末はその合成アドレス宛に、ふつうにIPv6でパケットを送ります。このパケットは、NAT64という変換装置に届きます。NAT64は、宛先を元のIPv4アドレスに、送信元を自分のIPv4アドレスに変換します。変換したパケットは、IPv4のみのサーバへ転送します。

端末IPv6のみ端末IPv6のみDNS64AAAAを合成①AAAAを問い合わせ②合成したAAAAを返すNAT64IPv6⇄IPv4変換サーバIPv4のみ③IPv6で送信(宛先=合成アドレス)④IPv4に変換
点線は名前解決の経路です。端末はDNS64にAAAAを問い合わせ、DNS64はサーバのAレコードから合成したAAAAアドレスを返します。実線は実際の通信の経路です。端末はその合成アドレス宛にIPv6で送り、NAT64がIPv4アドレスに変換してサーバへ転送します。

名前解決を受け持つのがDNS64、パケットの変換を受け持つのがNAT64です。どちらも、IPv4のみのサーバ側を変更する必要はありません。

IPv4 over IPv6(DS-Lite・MAP-E)との違い

NAT64は、通信の中身をIPv6からIPv4に変換する技術です。これに対し、トンネリングは、IPv4とIPv6の間の変換をせず、パケットを別のIPのヘッダで包んで運ぶ技術です。

RFC 4213は、IPv6パケットをIPv4ヘッダで包んで運ぶ方式を、設定されたトンネリングと呼んでいます。日本のIPoE回線で広く使われているDS-LiteやMAP-Eは、この逆方向です。元のIPv4パケットを、そのままIPv6のパケットで包んで運びます。

DS-Liteでは、家庭側の機器がIPv4パケットを包み、プロバイダ側のAFTRという装置まで運びます(RFC 6333)。AFTRは、トンネルから取り出したIPv4パケットに、IPv4どうしのNATを行います。

MAP-Eでは、IPv6アドレスと、IPv4アドレス・ポート番号の範囲との対応を計算で決めます(RFC 7597)。NATは家庭側の機器が、割り当てられたポートの範囲で行います。包んだパケットは、プロバイダ側のBRという装置まで運ばれます。

トンネリングでは、通信の両端は最後までIPv4どうしで話しています。途中の区間だけ、IPv6の中を通っています。NATでIPv4アドレスが書き換わることはあっても、NAT64のようにIPv6とIPv4の間で変換はしません。

DS-Lite・MAP-Eの設定の詳細や、ポート開放ができるかどうかの違いは、NATの記事とPPPoEとIPoEの記事にまとめています。

練習問題(全5問)

Q1「IPv4アドレスが枯渇した」とは、どういう状態を指す?
Q2IANAの在庫枯渇とAPNIC・JPNICの通常の在庫枯渇の順番として正しいものは?
Q3デュアルスタックの説明として正しいものは?
Q4IPv6のみの端末が、IPv4のみのサーバにアクセスするときのDNS64とNAT64の役割分担として正しいものは?
Q5MAP-EのようなIPv4 over IPv6と、NAT64の違いとして正しいものは?

選んでから「採点する」を押すと、解説つきで答え合わせができます。

関連記事

おすすめの本 PR

ネットワークを初めて学ぶ人向けの入門書です。

目的別の本の選び方を見る

ネットワークの記事を探す