Solaris のシステム管理 (IP サービス)

第 3 章 IPv6 の紹介(概要)

この章では、Oracle Solaris Internet Protocol version 6 (IPv6) 実装の概要について説明します。この実装には、IPv6 アドレス空間をサポートする関連のデーモンやユーティリティーも含まれます。

IPv6 アドレスと IPv4 アドレスは Oracle Solaris ネットワーク環境に共存します。IPv4 アドレスがすでに存在する場合、IPv6 アドレスで構成されたシステムは IPv4 アドレスを保持します。IPv6 アドレスに関連する操作が IPv4 アドレスに悪影響を与えることはなく、その逆もありません。

この章では、主に次の内容について説明します。

IPv6 の詳細については、次の章を参照してください。

IPv6 の主な特長

IPv6 の主な特長は、IPv4 と比べてアドレス空間が増えたことです。IPv6 はまた、インターネット機能をさまざまな分野で強化します。この節では、この強化された機能について概説します。

拡張されたアドレス

IPv6 では、IP アドレスのサイズが IPv4 の 32 ビットから 128 ビットに拡張され、より多くのレベルの指定階層をサポートできます。IPv6 はさらに、より多くのアドレス可能な IPv6 システムを提供します。詳細については、「IPv6 アドレス指定の概要」を参照してください。

アドレスの自動構成と近傍検索

IPv6 の「近傍検索 (ND)」プロトコルは、IPv6 アドレスの自動構成を容易にします。「自動構成」とは、IPv6 ホストが自分の IPv6 アドレスを自動的に生成できるという機能のことです。自動構成を使用すると、アドレス管理が簡単になり、時間もかからなくなります。詳細については、「IPv6 アドレスの自動構成」を参照してください。

近傍検索プロトコルは、次に示す IPv4 プロトコルの組み合わせに対応します。 つまり、Address Resolution Protocol (ARP)、Internet Control Message Protocol (ICMP)、Router Discovery (RDISC)、および ICMP Redirect です。IPv6 ルーターは近傍検索を使用して、IPv6 サイト接頭辞を通知します。IPv6 ホストは、さまざまな目的のために近傍検索を使用します。これには、IPv6 ルーターからの接頭辞の要請が含まれます。詳細については、「IPv6 近傍検索プロトコルの概要」を参照してください。

ヘッダーフォーマットの簡略化

IPv6 ヘッダーフォーマットは、一部の IPv4 のヘッダーフィールドを削除したり、任意にしたりします。IPv6 のアドレスのサイズは増えましたが、ヘッダーフォーマットの簡略によって、IPv6 のヘッダーのサイズは極力減りました。IPv6 アドレスの長さは、IPv4 アドレスの 4 倍ですが、IPv6 ヘッダーのサイズは IPv4 の 2 倍に抑えられています。

IP ヘッダーオプションのサポートの強化

IP ヘッダーオプションをコード化する方法を変更したため、転送がより効率よく行われるようになりました。また、IPv6 オプションの長さに関する制限が緩和されました。この変更によって、将来新しいオプションを導入する際の柔軟性が高くなりました。

IPv6 アドレス指定のアプリケーションのサポート

多くの Oracle Solaris の重要なネットワークサービスは、IPv6 アドレスを認識およびサポートします。

IPv6 に関する追加情報

このパートのほかにも、IPv6 については、次の情報も参照してください。

IPv6 RFC と Internet Draft

IPv6 については、多数の RFC が入手可能です。次の表に、本書執筆時点での IPv6 に関する主な記事と、その記事が掲載されている IETF (Internet Engineering Task Force) の Web サイトを示します。

表 3–1 IPv6 関連の RFC と Internet Draft

RFC または Internet Draft 

件名 

場所 

RFC 2461、Neighbor Discovery for IP Version 6 (IPv6)

IPv6 近傍検索プロトコルの特長と機能について説明します。 

http://www.ietf.org/rfc/rfc2461.txt$number=2461

RFC 3306、Unicast—Prefix—Based IPv6 Multicast Addresses

IPv6 マルチキャストアドレスのフォーマットとタイプについて説明します。 

ftp://ftp.rfc-editor.org/in-notes/rfc3306.txt

RFC 3484: Default Address Selection for Internet Protocol version 6 (IPv6)

IPv6 のデフォルトのアドレスを選択するときに使用されるアルゴリズムについて説明します。 

http://www.ietf.org/rfc/rfc3484?number=3484

RFC 3513、Internet Protocol version 6 (IPv6) Addressing Architecture

IPv6 アドレスのタイプについて詳細に説明し、その例を示します。 

http://www.ietf.org/rfc/rfc3513.txt?number=3513

RFC 3587、 IPv6 Global Unicast Address Format

IPv6 ユニキャストアドレスの標準フォーマットを定義します。 

http://www.ietf.org/rfc/rfc3587.txt?number=3587

Web サイト

次の Web サイトには、IPv6 に関する有用な情報があります。

表 3–2 IPv6 関連の Web サイト

Web サイト 

説明 

場所 

IPv6 Forum 

この Web サイトからは、世界中の IPv6 関連のプレゼンテーション、イベント、クラス、および実装へのリンクが利用できます。 

http://www.ipv6forum.com

Internet Educational Task Force IPv6 Working Group 

この Web サイトからは、すべての関連する IPv6 RFC および Internet Draft へのリンクが利用できます。 

http://www.ietf.org/html.charters/ipv6-charter.html

IPv6 ネットワークの概要

この節では、IPv6 ネットワークトポロジの基本である用語を紹介します。次の図に、IPv6 ネットワークの基本部分を示します。

図 3–1 IPv6 ネットワークの基本部分

次のテキストは図について説明します。

この図は、IPv6 ネットワークとその ISP への接続を示します。内部ネットワークはリンク 1、リンク 2、リンク 3、およびリンク 4 から構成されます。各リンクはホストによって生成され、ルーターによって終了します。リンク 4 は内部ネットワークの DMZ であり、片方の終端は境界ルーターによって終了します。境界ルーターは ISP への IPv6 トンネルを実行して、内部ネットワークにインターネット接続を提供します。リンク 2 とリンク 3 はサブネット 8a として管理されます。サブネット 8b はリンク 1 上のシステムだけから構成されます。サブネット 8c はリンク 4 で DMZ につながります。

図 3–1 に示すとおり、IPv6 ネットワークの構成要素は IPv4 と本質的に同じです。しかし、IPv6 の専門用語は IPv4 と少しだけ異なります。次に、IPv6 で使用されるネットワーク構成要素の専門用語を示します。

ノード

IPv6 アドレスと IPv6 サポート用に構成されたインタフェースを持つシステム。この用語は汎用であり、ホストとルーターの両方に使用されます。

IPv6 ルーター

IPv6 パケットを転送するノード。少なくとも、ルーターのインタフェースの 1 つは IPv6 サポート用に構成されている必要があります。また IPv6 ルーターは、内部ネットワーク経由で、企業の登録済み IPv6 サイト接頭辞を通知できます。

IPv6 ホスト

IPv6 アドレスを持つノード。IPv6 ホストは、IPv6 サポート用に構成されたインタフェースを複数持つことができます。IPv4 と同様に、IPv6 ホストはパケットを転送しません。

リンク

単一の連続するネットワークメディア。一方の終端にルーターが存在します。

近傍

ローカルノードと同じリンク上にある IPv6 ノード。

IPv6 サブネット

IPv6 ネットワークの管理セグメント。IPv4 と同様に、IPv6 サブネットの構成要素はリンク上のすべてのノードに直接対応付けることができます。必要に応じて、リンク上のノードは別個のサブネット内で管理できます。さらに、IPv6 はマルチリンクサブネットをサポートします。マルチリンクサブネットでは、複数のリンク上の複数のノードを単一のサブネットの構成要素にできます。図 3–1 のリンク 2 とリンク 3 は、マルチリンクサブネット 8a の構成要素です。

IPv6 トンネル

ある IPv6 ノードとほかの IPv6 ノードのエンドポイント間に仮想 P2P パスを提供するトンネル。IPv6 は、手動構成可能なトンネルと自動 6to4 トンネルをサポートします。

境界ルーター

ネットワークの終端にあり、IPv6 トンネルの片側をローカルネットワーク外のエンドポイントに提供するルーター。境界ルーターは、内部ネットワークへの IPv6 インタフェースを少なくとも 1 つ持っている必要があります。外部ネットワークのルーターは、IPv6 インタフェースまたは IPv4 インタフェースのどちらを持っていてもかまいません。

IPv6 アドレス指定の概要

1 つのノードが複数のインタフェースを持つことができるため、IPv6 アドレスは、ノードではなく、インタフェースに割り当てます。さらに、1 つのインタフェースに複数の IPv6 アドレスを割り当てることも可能です。


注 –

IPv6 アドレスフォーマットについての技術的な詳細情報については、RFC 2374、 IPv6 Global Unicast Address Format を参照してください。


IPv6 は 3 つのタイプのアドレスを定義します。

ユニキャスト

個々のノードの 1 つのインタフェースを識別します。

マルチキャスト

複数のインタフェースの 1 つのグループ (通常は、異なるノードにある) を識別します。マルチキャストアドレスに送信されたパケットは、この「マルチキャストグループ」のすべてのメンバーに送信されます。

エニーキャスト

複数のインタフェースの 1 つのグループ (通常は、異なるノードにある) を識別します。エニーキャストアドレスに送信されたパケットは、この「エニーキャストグループ」のうち、送信者に物理的に最も近いメンバーに送信されます。

IPv6 アドレスの構成部分

IPv6 アドレスは、長さが 128 ビットで、8 つの 16 ビットフィールドから構成され、各フィールドはコロンで区切られます。各フィールドには、IPv4 アドレスのドット区切り表記ではなく、16 進数値で指定する必要があります。次の図において、x は 16 進数値を表します。

図 3–2 基本的な IPv6 アドレスフォーマット

次の図は、IPv6 アドレスの 3 つの構成部分を表します。次のテキストは、この 3 つの構成部分について説明します。

左の 3 つのフィールド (48 ビット) には、「サイト接頭辞」が含まれます。サイト接頭辞は「公開トポロジ」を表します。公開トポロジは、通常、ISP または RIR (Regional Internet Registry) がサイトに割り当てます。

真ん中の 1 つのフィールド (16 ビット) には、「サブネット ID」が入ります。サブネット ID は、管理者 (またはほかの管理者) が自分のサイトに割り当てます。サブネット ID は「プライベートトポロジ」を表します。サイトの内部を示すため、「サイトトポロジ」と呼ぶこともあります。

右の 4 つのフィールド (64 ビット) には「インタフェース ID」が含まれます。これは「トークン」と呼ばれることもあります。インタフェース ID は、インタフェースの MAC アドレスから自動的に構成されるか、EUI-64 フォーマットで手動で構成されます。

もう一度、図 3–2を見てください。

2001:0db8:3c4d:0015:0000:0000:1a2f:1a2b

この例は、IPv6 アドレスの 128 ビットすべてを示します。最初の 48 ビット 2001:0db8:3c4d はサイト接頭辞を含み、公開トポロジを表します。次の 16 ビット 0015 はサブネット ID を含み、そのサイトのプライベートトポロジを表します。右端の最後の 64 ビット 0000:0000:1a2f:1a2b はインタフェース ID を含みます。

IPv6 アドレスの省略

ほとんどの IPv6 アドレスは、128 ビットすべてが使用されるわけではありません。結果として、フィールド内の使用されていないビットはゼロで埋められます (ゼロだけが含まれます)。

IPv6 アドレスアーキテクチャーでは、2 つのコロン (: : ) 表記で、連続するゼロだけの 16 ビットフィールドを表すことができます。たとえば、図 3–2 の IPv6 アドレスでは、インタフェース ID の 2 つの連続するゼロだけのフィールドは 2 つのコロンで表現できます。したがって、 2001:0db8:3c4d:0015::1a2f:1a2b のようになります。その他のゼロだけのフィールドは、単一の 0 として表現できます。また、フィールド内の先頭のゼロは省略できます。たとえば、0db8db8 のように省略できます。

したがって、2001:0db8:3c4d:0015:0000:0000:1a2f:1a2b というアドレスは、2001:db8:3c4d:15::1a2f:1a2b のように省略できます。

2 つのコロン表記を使用すると、IPv6 アドレス内のゼロだけの連続するフィールドを表現できます。たとえば、 2001:0db8:3c4d:0015:0000:d234::3eee:0000 という IPv6 アドレスは 2001:db8:3c4d:15:0:d234:3eee:: のように省略できます。

IPv6 の接頭辞

IPv6 アドレスの左側は接頭辞を含みます。この接頭辞は、IPv6 パケットの経路制御に使用されます。IPv6 接頭辞のフォーマットは次のとおりです。

接頭辞/長さ (ビット数)

接頭辞の長さは CIDR (クラスレス相互ドメイン経路制御) 表記で表現されます。CIDR 表記とは、アドレスの終わりにスラッシュを付けて、その後ろに接頭辞の長さ (ビット数) を表します。CIDR フォーマットの IP アドレスについては、「IPv4 CIDR アドレス指定スキーマの設計」を参照してください。

IPv6 アドレスの「サイト接頭辞」は、IPv6 アドレスの左側の 48 ビット (最大) です。たとえば、2001:db8:3c4d:0015:0000:0000:1a2f:1a2b/48 という IPv6 アドレスのサイト接頭辞は、左側の 48 ビットである 2001:db8:3c4d に含まれています。この接頭辞を表現するには、ゼロを圧縮して、次のような表記を使用します。

2001:db8:3c4d::/48


注 –

2001:db8::/32 という接頭辞は、この例だけで使用される特別な IPv6 接頭辞です。


サブネット接頭辞」を指定すると、ルーターまでの内部ネットワークトポロジも定義できます。次に、IPv6 のサブネット接頭辞の例を示します。

2001:db8:3c4d:15::/64

サブネット接頭辞は常に 64 ビットを含んでいます。サブネット接頭辞の 64 ビットには、サイト接頭辞の 48 ビットとサブネット ID の 16 ビットが含まれます。

次の接頭辞は、特別な目的のために予約されています。

2002::/16

6to4 経路制御接頭辞が続くことを示します。

fe80::/10

リンクローカルアドレスが続くことを示します。

ff00::/8

マルチキャストアドレスが続くことを示します。

ユニキャストアドレス

IPv6 のユニキャストアドレスには、2 つの種類があります。

ユニキャストアドレスの種類は、アドレス内の左側の連続するビット (接頭辞が含まれるところ) によって判断されます。

ユニキャストアドレスフォーマットは、次の階層から構成されます。

グローバルユニキャストアドレス

グローバルユニキャストアドレスはインターネット内でグローバルに一意です。「IPv6 の接頭辞」に、グローバルユニキャストアドレスである IPv6 アドレスの例を示します。次の図に、IPv6 アドレスの一部と比較して、グローバルユニキャストアドレスの有効範囲を示します。

図 3–3 グローバルユニキャストアドレスの一部

この図では、ユニキャストアドレスは、その公開トポロジ、サイト接頭辞とそのサイトトポロジ、サブネット ID、およびインターネット ID から構成されます。

公開トポロジ

サイト接頭辞は、ルーターまでのネットワークの「公開トポロジ」を定義します。企業のサイト接頭辞は、ISP または RIR (Regional Internet Registry) から取得します。

サイトトポロジと IPv6 サブネット

IPv6 では、「サブネット ID」はネットワークの管理サブネットを定義し、その長さは 16 ビット (最大) です。サブネット ID は、IPv6 ネットワーク構成の一部として割り当てます。「サブネット接頭辞」は、サブネットが割り当てられる特定のリンクを指定することによって、ルーターへのサイトトポロジを定義します。

IPv6 サブネットは、概念的には IPv4 サブネットと同じであり、各サブネットは通常、単一のハードウェアリンクに関連付けられます。しかし、IPv6 サブネット ID は、ドット付き 10 進数表記ではなく、16 進数表記で表現されます。

インタフェース ID

インタフェース ID」は、特定のノードのインタフェースを識別します。インタフェース ID はサブネット内で一意である必要があります。IPv6 ホストは、近傍検索プロトコルを使用して、自分のインタフェース ID を自動的に生成します。近傍検索は、ホストのインタフェースの MAC アドレスまたは EUI-64 アドレスに基づいて、インタフェース ID を自動的に生成します。インタフェース ID は手動でも割り当てることができます。IPv6 ルーターと、IPv6 が有効なサーバーには、インタフェース ID を手動で割り当てることが推奨されます。手動で EUI-3513 アドレスを作成する方法については、RFC 3513、Internet Protocol Version 6 (IPv6) Addressing Architecture を参照してください。

移行用グローバルユニキャストアドレス

移行のため、IPv6 プロトコルは IPv4 アドレスを IPv6 アドレス内に埋め込む機能を持っています。この種類の IPv4 アドレスは、既存の IPv4 ネットワークへの IPv6 パケットのトンネルを容易にします。移行用グローバルユニキャストアドレスの例としては、6to4 アドレスがあります。6to4 アドレスの詳細については、「6to4 自動トンネル」を参照してください。

リンクローカルユニキャストアドレス

リンクローカルユニキャストアドレスを使用できるのは、ローカルネットワークリンク上だけです。リンクローカルアドレスは、企業の外では有効でなく、認識されません。次に、リンクローカルアドレスのフォーマットの例を示します。


例 3–1 リンクローカルユニキャストアドレスの一部

この図は、IPv6 リンクローカルアドレスのフォーマットを表します。次のテキストは、このフォーマットについて説明します。

リンクローカル接頭辞」のフォーマットは、次のとおりです。

fe80::interface-ID/10

次に、リンクローカルアドレスの例を示します。

fe80::23a1:b152


fe80

10 ビットの 2 進数接頭辞 1111111010 の 16 進数表記。この接頭辞は、IPv6 アドレスの種類がリンクローカルであると識別します。

interface-ID

インタフェースの 16 進数アドレス。通常は 48 ビットの MAC アドレスから生成されます。

Oracle Solaris インストール中に IPv6 を有効にした場合、ローカルマシン上の最も低い番号のインタフェースはリンクローカルアドレスで構成されます。ローカルリンクにおいて、あるリンクをほかのリンクから識別するために、各インタフェースは少なくとも 1 つのリンクローカルアドレスを必要とします。したがって、ノードにインタフェースを追加した場合、リンクローカルアドレスを手動で構成する必要があります。構成後、このノードはそのリンクローカルアドレスを使用して、アドレスの自動構成や近傍検索を行います。

マルチキャストアドレス

IPv6 は、マルチキャストアドレスの使用をサポートします。マルチキャストアドレスは、「マルチキャストグループ」を識別します。マルチキャストグループとは、通常は異なるノード上にあるインタフェースのグループのことです。1 つのインタフェースが所属できるマルチキャストグループは複数設定できます。IPv6 アドレスの最初の 16 ビットが ff00 n である場合、そのアドレスはマルチキャストアドレスです。

マルチキャストアドレスは、マルチキャストグループのメンバーとして定義されているすべてのインタフェースに情報やサービスを送信するのに使用されます。たとえば、ローカルリンク上のすべての IPv6 ノードと通信するときなどです。

あるインタフェースに IPv6 ユニキャストアドレスを作成するとき、カーネルは自動的にそのインタフェースを特定のマルチキャストグループのメンバーにします。たとえば、カーネルはすべてのノードを Solicited Node マルチキャストグループのメンバーにします。このグループは、近傍検索プロトコルが到達できるかどうかを検出するときに使用されます。また、カーネルはすべてのノードを All-Nodes または All Ruters マルチキャストグループのメンバーにします。

マルチキャストアドレスの詳細については、「IPv6 マルチキャストアドレスの詳細」を参照してください。技術的な情報については、RFC 3306, Unicast-Prefix-based IPv6 Multicast Addresses を参照してください。この RFC は、マルチキャストアドレスのフォーマットについて説明します。マルチキャストアドレスとマルチキャストグループの適切な使用方法の詳細については、RFC 3307, Allocation Guidelines for IPv6 Multicast Addresses を参照してください。

エニーキャストアドレスとエニーキャストグループ

IPv6 エニーキャストアドレスは、異なる IPv6 ノード上のインタフェースのグループを識別します。このようなインタフェースの各グループのことを「エニーキャストグループ」と呼びます。エニーキャストアドレスにパケットが送信されると、エニーキャストグループのうち、送信者に物理的に最も近いメンバーがそのパケットを受信します。


注 –

IPv6 の Oracle Solaris 実装は、エニーキャストアドレスやグループの作成をサポートしていません。しかし、Oracle Solaris IPv6 ノードはエニーキャストアドレスにパケットを送信できます。詳細については、「6to4 リレールーターとの間のトンネルについての考慮事項」を参照してください。


IPv6 近傍検索プロトコルの概要

IPv6 は近傍検索機能を導入します。近傍検索機能は、メッセージングを近傍ノード間の対話を処理する手段として使用します。「近傍ノード」とは、同じリンク上にある IPv6 ノードのことです。たとえば、近傍検索関係のメッセージを発行すると、ノードは近傍ノードのリンクローカルアドレスを知ることができます。近傍検索は、主に、次のような IPv6 ローカルリンク上の活動を制御します。

近傍検索は、リンク上のノード間で通信するとき、次の ICMP メッセージタイプを使用します。

近傍検索メッセージや近傍検索プロトコルの詳細については、「IPv6 近傍検索プロトコル」を参照してください。近傍検索の技術的な情報については、 RFC 2461, Neighbor Discovery for IP Version 6 (IPv6) を参照してください。

IPv6 アドレスの自動構成

IPv6 の主な特長は、ホストがインタフェースを自動構成できることです。ホストは近傍検索を使用して、ローカルリンク上の IPv6 ルーターを見つけて、サイト接頭辞を要求します。自動構成プロセスの一部として、ホストは次のことを行います。

ステートレス自動構成の概要

ステートレス自動設定では、手動によるホストの設定は不要です。ルーターは最小限の設定 (あれば) ですみ、サーバーの追加も不要です。ステートレス機構により、ホストは独自のアドレスを生成できます。ステートレス機構は、アドレスを生成するために、ローカルな情報とルーターが通知する情報を使用します。

インタフェースには、一時アドレスを実装できます。この一時アドレスも自動構成されます。一時アドレストークンは、ホスト上の 1 つまたは複数のインタフェースに対して有効にできます。しかし、標準の自動構成された IPv6 アドレスとは異なり、一時アドレスは、サイト接頭辞とランダムに生成された 64 ビット数から構成されます。このランダムな数は、IPv6 アドレスのインタフェース ID 部分になります。リンクローカルアドレスでは、一時アドレスはインタフェース ID としては生成されません。

ルーターは、リンクに割り当てられているすべての接頭辞を通知します。IPv6 ホストは近傍検索を使用して、ローカルルーターからサブネット接頭辞を取得します。ホストは、インタフェースの MAC アドレスから生成されたインタフェース ID とサブネット接頭辞を組み合わせることによって、自動的に IPv6 アドレスを作成します。ルーターがない場合、ホストはリンクローカルアドレスだけを生成します。リンクローカルアドレスは、同じリンク上のノード間の通信でのみ使用できます。


注 –

ステートレス自動構成を使用して、サーバーの IPv6 アドレスを作成しないでください。ホストは、自動構成中、ハードウェア固有の情報に基づいて、インタフェース ID を自動的に生成します。既存のインタフェースが新しいインタフェースに切り替わると、現在のインタフェース ID は無効になる可能性があります。


IPv6 トンネルの概要

ほとんどの企業では、既存の IPv4 ネットワークに IPv6 を導入するとき、徐々に段階的に行う必要があります。Oracle Solaris のデュアルスタックネットワーク環境は IPv4 と IPv6 の両方の機能をサポートします。ほとんどのネットワークは IPv4 プロトコルを使用するため、現在のところ、IPv6 ネットワークは IPv6 ネットワークの境界を越えて通信する方法を持つ必要があります。この通信のためには、IPv6 ネットワークはトンネルを使用します。

ほとんどの IPv6 トンネルシナリオでは、送信される IPv6 パケットは IPv4 パケット内にカプセル化されます。IPv6 ネットワークの境界ルーターは、宛先 IPv6 ネットワークの境界ルーターに向かうさまざまな IPv4 ネットワークにポインツーポイントトンネルを設定します。パケットはトンネルを通って、宛先ネットワークの境界ルーターに到着し、その境界ルーターでカプセル化が解除されます。次に、その境界ルーターは個々の IPv6 パケットを宛先のノードに転送します。

Oracle Solaris IPv6 実装がサポートするトンネルシナリオは、次のとおりです。

IPv6 トンネルの詳細については、「IPv6 トンネル」を参照してください。IPv4- to-IPv4 トンネルと VPN については、「仮想プライベートネットワークと IPsec」を参照してください。