IPv4とIPv6の違い:アドレス長・ヘッダ・フラグメンテーション・アドレスの設定・NATを比較

IPv4とIPv6は、どちらもネットワーク層で、パケットを宛先まで届けるためのプロトコルです。IPv4のアドレスは32ビットで、約43億個しかないため、プライベートアドレスとNATを使って、1つのグローバルアドレスを複数の機器で共有する使い方が広がりました。IPv6はアドレスを128ビットに広げ、ヘッダを40バイトの固定長にして単純にし、途中のルータでのパケットの分割(フラグメンテーション)をなくしました。ただし、2つのあいだに互換性はなく、IPv4だけの機器とIPv6だけの機器は直接は通信できません。そのため、両方を同時に使うデュアルスタック、一方のパケットを他方のパケットに包んで運ぶトンネリング、アドレスを変換するNAT64などを組み合わせて移行を進めます。

項目IPv4IPv6
アドレスの長さと数32ビット。2の32乗(約43億)個128ビット。2の128乗(約3.4×10^38)個
表記8ビットずつ4つに分けた10進数を点で区切る(例: 192.0.2.1)16ビットずつ8つに分けた16進数をコロンで区切る。各グループの先頭の0と、0が続く部分の1か所を「::」で省略できる(例: 2001:db8::1)
ヘッダ20〜60バイトの可変長。オプションと、ヘッダのチェックサムがある40バイトの固定長。チェックサムはなく、オプションは拡張ヘッダとして後ろにつなぐ。TTLに当たるのはホップリミット
フラグメンテーション送信元のほか、途中のルータもパケットを分割できる(DFビットが立っていなければ)途中のルータは分割しない。送信元だけが拡張ヘッダを使って分割する。リンクのMTUは最低1280バイト
アドレスの自動設定DHCPで割り当てる(または手で設定する)ルータ広告(RA)の情報から端末が自分でアドレスを作るSLAAC、またはDHCPv6。リンクローカルアドレスは常に自動で作る
MACアドレスの解決ARP。ブロードキャストで問い合わせるICMPv6の近隣探索(NDP)。マルチキャストで問い合わせる
NATアドレスの不足を補うため、プライベートアドレスとNAPTで、1つのグローバルアドレスを共有するのが一般的アドレスが十分にあるので、各機器にグローバルアドレスを割り当て、端から端まで同じアドレスで通信する設計。NATは一般に使わない
宛先の種類ユニキャスト、ブロードキャスト、マルチキャストユニキャスト、マルチキャスト、エニーキャスト。ブロードキャストはなく、マルチキャストで代わりをする
IPsecオプション。必要なときに追加して使う初期の要件では実装が必須とされたが、現在の要件(RFC 8504)では推奨。実際に使うかどうかは、どちらも設定しだい

数値は代表的な目安で、世代や製品によって異なります。

どんなときに使うか

IPv4
今も多くのネットワークとサービスで使われているので、当面はほとんどの機器で対応が必要です。アドレスが足りないため、プライベートアドレスとNATを組み合わせて使います。
IPv6
たくさんの機器に、NATを通さずにグローバルアドレスを割り当てたいときや、ネットワークを新しく作るとき。実際には、IPv4と両方を使うデュアルスタックで導入するのが一般的です。

よくある質問

IPv6の機器は、IPv4の機器とそのまま通信できますか?

できません。ヘッダの形式もアドレスの長さも違い、互換性はありません。多くのネットワークでは、機器にIPv4とIPv6の両方のアドレスを持たせるデュアルスタックにして、相手に合わせて使い分けます。IPv6だけの機器がIPv4だけのサーバと通信するには、アドレスを変換するNAT64とDNS64のようなしくみを使います。IPv4のネットワークをはさんでIPv6のパケットを運ぶときは、IPv4のパケットに包んで送るトンネリングを使います。

IPv6では、NATは使わないのですか?

使えないわけではありませんが、一般には必要としません。IPv4でNATが広まった主な理由はアドレスの不足で、IPv6では各機器に十分な数のグローバルアドレスを割り当てられるからです。外から始まる通信を制限する役割は、NATではなくファイアウォールで担います。NATは通信を暗号化するものではなく、それだけで外からの攻撃を防げるものでもありません。

IPv6を使うと、DNSはどう変わりますか?

名前からIPv4のアドレスを引くにはAレコード、IPv6のアドレスを引くにはAAAAレコードを使います。デュアルスタックの機器は両方を問い合わせ、IPv6で接続できればIPv6を、できなければIPv4を使うのが一般的です。

IPv6のアドレスは、なぜ16進数で書くのですか?

128ビットを10進数で書くと、非常に長くなるからです。16ビットずつ8つのグループに分け、各グループを4桁の16進数で書きます。各グループの先頭の0は省けます。また、0だけのグループが続く部分は、1か所だけ「::」にまとめられます。例えば 2001:0db8:0000:0000:0000:0000:0000:0001 は 2001:db8::1 と書けます。

理解度チェック

IPv6アドレス 2001:0db8:0000:0000:0000:0000:0000:0001 を、省略の規則に従って正しく短く書いたものはどれか。

  1. A2001:db8:1
  2. B2001:db8::1
  3. C2001:db8::0::1
答えと解説を見る

正解:B. 2001:db8::1

IPv6アドレスは128ビットで、16ビットずつ8つのグループに分け、各グループを4桁の16進数で書きます(IPv4は32ビットです)。省略の規則は2つで、各グループの先頭の0は省ける(0db8→db8、0001→1)ことと、0だけのグループが続く部分を1か所だけ「::」に置き換えられることです。この例では、3番目から7番目までの0のグループ5つをまとめて 2001:db8::1 になります。「::」を2か所に使うと、それぞれが何グループ分の0かが決まらなくなるため使えません。「2001:db8:1」は3グループしかなく、0のグループを省いたことを示す「::」がないので、別のアドレスとして読めてしまい、正しくありません。

次のIPv4アドレスのうち、プライベートアドレスの範囲に含まれるものはどれか。

  1. A172.32.0.1
  2. B192.168.100.1
  3. C11.1.1.1
答えと解説を見る

正解:B. 192.168.100.1

RFC 1918で定められたプライベートアドレスは、10.0.0.0/8、172.16.0.0/12(172.16.0.0〜172.31.255.255)、192.168.0.0/16 の3つの範囲です。組織や家庭の中で自由に使えるアドレスで、インターネットでは経路が広告されないため、同じアドレスを多くの組織が重複して使えます。インターネットと通信するときは、ルータのNATでグローバルアドレスに変換します。172.32.0.1 は第2オクテットが16〜31の範囲を外れているので 172.16.0.0/12 に入らず、11.1.1.1 も 10.0.0.0/8 の外です。

家庭のブロードバンドルータは、NAT(ネットワークアドレス変換)の一種であるNAPT(IPマスカレード)を行っている。NAPTによって可能になることとして正しいものはどれか。

  1. A家庭内の複数の端末が、ポート番号で区別されることで、1つのグローバルIPアドレスを同時に共有してインターネットと通信できる
  2. B家庭内の端末とインターネットの間の通信が暗号化され、途中で盗み見られなくなる
  3. C家庭内の端末それぞれに、別々のグローバルIPアドレスが自動的に割り当てられる
答えと解説を見る

正解:A. 家庭内の複数の端末が、ポート番号で区別されることで、1つのグローバルIPアドレスを同時に共有してインターネットと通信できる

NAT(ネットワークアドレス変換)は、ルータを通るパケットの送信元や宛先のIPアドレスを書き換える技術です。NAPTは、IPアドレスに加えてポート番号も書き換え、「内側のアドレスとポート」と「外側のポート」の対応を変換表に記録します。そのため、プライベートアドレスを使う複数の端末が、ルータのもつ1つのグローバルアドレスを同時に使えます。戻ってきたパケットは、変換表を見て正しい端末に届けられます。アドレスを書き換えるだけで暗号化はしません。また、外から始まる通信は変換表にないため、そのままでは内側の端末に届かず、内側でサーバを公開するにはポート転送などの設定が必要です。

  1. ARPの役割として正しいものはどれか。
  2. IPv4ヘッダのTTL(Time To Live)の役割として正しいものはどれか。
  3. DHCPで端末がIPアドレスを得るときの、メッセージの順序として正しいものはどれか。

ネットワークの基礎の練習問題へ

関連する用語の解説

CIDR
Classless Inter-Domain Routingの略。IPアドレスのネットワーク部の長さを、192.168.1.0/24 のように「/」の後のビット数(プレフィックス長)で自由に決める方式と、その書き方。
サブネットマスク
IPアドレスのうち、上位の何ビットがネットワークを表す部分(ネットワーク部)かを示す32ビットの値。255.255.255.0 のように書き、CIDR表記の /24 と同じ意味になる。
NAT
Network Address Translation(ネットワークアドレス変換)の略。ルータを通るパケットのIPアドレスを書き換える技術。ポート番号も書き換えて1つのグローバルアドレスを多くの端末で共有するものをNAPT(IPマスカレード)と呼ぶ。
DHCP
Dynamic Host Configuration Protocolの略。ネットワークにつないだ端末に、IPアドレス、サブネットマスク、デフォルトゲートウェイ、DNSサーバなどの設定を期限付きで自動的に割り当てるプロトコル。
ARP
Address Resolution Protocolの略。IPアドレスから、同じネットワークにある機器のMACアドレスを調べるプロトコル。要求をブロードキャストで送り、該当する機器が答える。
MACアドレス
イーサネットや無線LANで、同じネットワークの中の機器を指定するのに使う48ビットのアドレス。上位24ビットが製造者を表し、製造時にインターフェースごとに割り当てられる。
DNS
Domain Name Systemの略。www.example.com のようなドメイン名と、通信に使うIPアドレスを対応づける、世界中のサーバで分散して管理されるしくみ。

関連する比較