検索
連載

いまさら聞けない、IPv6アドレス体系の基礎これから始めるIPv6(1)(2/2 ページ)

IPv4アドレス在庫の枯渇やWorld IPv6 Dayの実施に伴い、「そういえば昔IPv6について読んだけれど、いまはどうなっているんだろう?」と感じている人も多いのではないでしょうか。最新状況を踏まえたIPv6の「基礎」を改めて紹介します。(編集部)

PC用表示 関連情報
Share
Tweet
LINE
Hatena
前のページへ |       

特殊アドレス

 特殊アドレスとして、下記のものが挙げられます。

  • 未指定アドレス
  • ループバックアドレス
  • IPv4互換アドレス(廃止に)
  • IPv4射影アドレス

 未指定アドレスは、システムの初期化中でまだアドレスが付いていないホストが、ソースアドレスとして使うことがあります。

0000:0000:0000:0000:0000:0000:0000:0000


 推奨略記に従うと「::」となります。

 ループバックアドレスは、IPv4では「127.0.0.1」として知られていたアドレスです。IPv6では

0000:0000:0000:0000:0000:0000:0000:0001


です。推奨略記に従うと「::1」となります。

 IPv4互換アドレスは廃止となりました。IPv4ネットワークにしかつながっていないIPv6ノード同士が通信する際に使用されていたアドレスです(Linuxではauto tunnelで利用されていました)。利便性を考え、IPv4アドレス部分は10進数表記のままとされていました。

例) ::192.168.0.1


図1 廃止となったIPv4互換アドレス
図1 廃止となったIPv4互換アドレス

 IPv4射影アドレスは、IPv6ノードが、IPv4しかサポートしていないノードと通信する際に使用されるアドレスです。こちらも利便性を考え、IPv4アドレス部分は10進数表記のままとされています。

例)::ffff:192.168.0.1


図2 IPv4射影アドレス
図2 IPv4射影アドレス

 IPv4でLinuxを運用してきた方の中には、このアドレスをログなどで見かけたことがあるのではないでしょうか? 「IPv4もIPv6アドレスとして扱って、IPv6のソケットで面倒を見てしまえ」といった実装で、このログが見受けられます。

IPv4アドレスとの違い

 IPv4とIPv6のヘッダ構成は、以下のとおりです。

図3 IPv4のヘッダ構成
図3 IPv4のヘッダ構成
図4 IPv6のヘッダ構成
図4 IPv6のヘッダ構成

 他にもIPv4とIPv6の違いとして、

  • ヘッダフォーマットの簡略化
  • IP層におけるチェックサムの廃止

などが挙げられます。運用を考える上で、特に気を付けるべき点を取り上げたいと思います。

ARPはどこへ行った?

 実はIPv6では、仕様からARPがなくなっています。では、近隣の通信相手のMAC Addressなどは、どうやって解決しているのでしょうか? 実はICMPv6で行っています。これをND(Neighbor Discovery)と呼んでいます。

図5 ND(Neighbor Discovery、近隣探索)の仕組み
図5 ND(Neighbor Discovery、近隣探索)の仕組み

 このようにICMPv6は、IPv6の基本動作上、非常に重要な役割を果たしています。このため、安易にICMPをフィルタしてしまうと実際の通信に影響を及ぼすことがあるので、注意が必要です。

フラグメントはホントに起きないの?

 「IPv6ではパケットのフラグメントが起きない」と聞いたことがあるかもしれませんが、それは正確ではありません。あくまで「転送途中のルータではパケットがフラグメントされない」だけで、サーバやクライアントにおいてはフラグメントが実施されます。

 しかし、サーバやクライアントは、どれだけのパケット長で送れば途中経路でフラグメントが不要なのかを知りません。それを知るための仕組みが、Path MTU Discoveryです。動作は図6のとおりです。

図6 Path MTU Discoveryの動作
図6 Path MTU Discoveryの動作
  1. 送信元ホストは、送信先リンクのMTUをPath MTUと仮定する
  2. 経由するルータ上でパケットを転送できない場合、ルータはそのパケットを破棄し、Packet Too Big(ICMPv6 Type2)を送信元に返信する。そのパケットは、次ホップへのリンクMTUの情報を含む

 このような処理を、最終的にパケットが転送できるようになるまで繰り返すことにより、サーバとクライアントはPath MTUの値を知ることができます。この動作にもICMPv6が利用されているため、これまた安易にICMPv6をフィルタすると、通信がうまくいかなくなってしまいます。

数珠つなぎの拡張ヘッダ

 IPv6では、TCPかUDPなのかといった識別も拡張ヘッダによって行っています。この拡張ヘッダは、図7にあるように、数珠つなぎ的に使えます。

図7 IPv6の数珠つなぎの拡張ヘッダ
図7 IPv6の数珠つなぎの拡張ヘッダ

 特に、ファイアウォールなどをIPv6ネットワークに導入する際には、「このヘッダをいくつまで評価できるのか」「フィルタ可能なのか」といったことを確認しておく必要があるでしょう。

しばらく続くIPv4とIPv6の共存

 以上、駆け足でIPv6の基礎について紹介をしてみましたが、いかがだったでしょうか。

 地デジ化とは異なり、ある時期からきれいにすべてのネットワークがスパッとIPv6へ移行する、といったことはまずありえないでしょう。IPv6対応は無視できない面もありながらも、しばらくはIPv4との共存状態が続くと考えられます。

 この記事では、IPv6でのデュアルスタックなど、取り上げきれなかった話題もありますが、IPv6理解の肝は、IPv6のアドレス体系の理解だと思っています。それさえ理解できてしまえば、あとは進みも早くなるはずです。この記事がその一助となれば幸いです。

 次回は、IPv6対応ルータの設定例とアドレス設計について紹介します。


Copyright © ITmedia, Inc. All Rights Reserved.

前のページへ |       
ページトップに戻る