IPv6 (Internet Protocol Version 6) は全く新しいネットワーク層プロトコルであり,インターネット・アーキテクチャの大きな改訂でもあります。 このため,IPv6 には,IPv4 での経験が取り入れられています。 この章では,次のトピックについて説明します。
トラブルシューティング情報については,10.4 節を参照してください。
3.1 IPv6 の歴史的背景
1990 年代の初めには,現在の TCP/IP アーキテクチャのアドレス空間および一部の側面が,インターネットの爆発的な成長に対応できなくなるとインターネット関係者の間で指摘されていました。 具体的な問題としては,インターネット・アドレス空間の不足,ルーティング・テーブルのサイズ不足,および新しい技術や機能を実現するための条件の高度化などがあります。
IETF (Internet Engineering Task Force) では,32 ビットのインターネット・プロトコル (IPv4) アドレスの使用方法について,いくつかの研究や改善が試みられました。 さらに,より長期的な目標として,インターネットの成長を妨げる可能性のあるプロトコルとサービスを特定し,他のプロトコルやサービスで置き換えるための活動も実施されました。
これらの試みの結果,ルータのオーバヘッドやネットワーク管理の観点から,IPv4 の 32 ビット・アドレス・アーキテクチャが最大の問題であることが分かりました。 しかも,IPv4 アドレスの割り当てはブロックが大きすぎたり小さすぎるなど不均等になる場合が多く,既存のネットワーク内で変更することは困難です。
1994 年 7 月,IPng (Internet Protocol Next Generation) は新しいネットワーク層プロトコルとして IPv6 (Internet Protocol Version 6) を発表し,IETF のワーキング・グループが仕様の作成を開始しました。
IPv6 プロトコルが選択されるまでの過程についての詳細は,RFC 1752
("The Recommendation for the IP Next Generation Protocol") を参照してください。
3.2 用語
他のノード宛の IPv6 パケットを転送するノード。 通常,このようなシステムには複数のネットワーク・インタフェース・カード (NIC) が装備,構成されています。
ルータ以外のノード。
リンク層でのノード間通信に使用される媒体または設備。 イーサネット,FDDI,PPP リンク,インターネット層トンネリングなどがあります。
ノードをリンクに接続する部分。
この部分には通常,IPv6 のアドレスが割り当てられます。
物理 NIC (tu0
,ee0
など) や,仮想ネットワーク・インタフェース (3.6.2.3 項で説明する
ipt0
など) があります。
プロトコルを他のプロトコルのパケット内にカプセル化したパケットによるリンク。 この方式では,一方のプロトコルのパケットは他方のプロトコルのインフラストラクチャ上で伝送することができます。 このような処理をトンネリングといいます。 使用できるトンネルのタイプについては,3.4 節 を参照してください。
この節では,管理者を対象として,IPv6 のアドレッシングの概要について説明します。 すでにこの情報をご存知の方は,3.5 節に進んでください。
IPv6 の最も大きな特徴は,IPv6 アドレス自体にあります。 IPv6 では,アドレスが従来の 32 ビットから 128 ビットに拡張されました。 この節では,次のトピックについて説明します。
アドレスのテキスト表記
アドレスの自動構成
アドレス解決
アドレス割り当て
次の構文を使用すると,IPv6 アドレスをテキスト文字列で表記できます。
x:x:x:x:x:x:x:x
x は,アドレス内の 1 つの 16 ビット値を表す 16 進数です。 たとえば,次のアドレスは IPv6 アドレスです。
FEDC:BA98:7654:3210:FEDC:BA98:7654:3210 1070:0:0:0:0:800:200C:417B
IPv6 アドレスには,ゼロ (0) のビットがいくつも連続して含まれる場合があります。
そのようなアドレスを表記する場合には,アドレス内に 1 回だけ 2 つのコロン文字 (::
) を使用し,1 個以上の,ゼロの 16 ビット・グループを表すことができます。
たとえば,上記の 2 番目の IPv6 アドレスの例は,次のように圧縮できます。
1070::800:200C:417B
IPv4 ノードと IPv6 ノードが混在する環境では,IPv6 アドレスを次の構文で表記することもできます。
x:x:x:x:x:x:d.d.d.d
この場合,x はアドレスの上位 6 つの 16 ビット値を表す 16 進数,d はアドレスの下位 4 つの 8 ビット値を表す 10 進数 (標準の IPv4 ドット表記) です。 たとえば,次のアドレスは IPv6 アドレスです。
0:0:0:0:0:0:13.1.68.3 0:0:0:0:0:FFFF:129.144.52.38
この 2 つのアドレスは,次のように圧縮できます。
::13.1.68.3 ::FFFF:129.144.52.38
IPv4 アドレス・プレフィックスと同様,IPv6 アドレス・プレフィックスも CIDR (Classless Inter-Domain Routing) 記法で表されます。 この記法のフォーマットは,次のとおりです。
ipv6-address/prefix-length
たとえば,60 ビットの 16 進プレフィックス
12AB00000000CD3
は,次のいずれかのように表記できます。
12AB:0000:0000:CD30:0000:0000:0000:0000/60 12AB::CD30:0:0:0:0/60 12AB:0:0:CD30::/60
ユニキャスト
エニーキャスト
マルチキャスト
注意
IPv4 とは異なり,IPv6 ではブロードキャスト・アドレスは定義されていません。 ブロードキャスト・アドレスの機能を使用するには,リンク・ローカル・スコープのマルチキャスト・アドレスを使用します (3.3.2.3 項を参照)。
以降の項では,ユニキャスト・アドレスとマルチキャスト・アドレスのみを取り上げ,それぞれの例を紹介します。
3.3.2.1 ユニキャスト・アドレス
ユニキャスト・アドレスは,物理ネットワーク・インタフェースの識別子です。 1 つのユニキャスト・アドレスへ送信されたパケットは,そのアドレスで識別されるインタフェースを持つノードに配信されます。
ユニキャスト・アドレスは通常,次のフォーマットで表現されます。
このアドレスは,次に示すように,通常は 64 ビットのプレフィックスと,それに続く 64 ビットのインタフェース ID からなります。
インタフェース ID は,1 つのリンク上の特定インタフェースを示します。 同じリンク上に存在する各インタフェースは,それぞれ異なるインタフェース ID を持つ必要があります。 ただし,より広いスコープでインタフェース ID が一意になることもあります。 多くの場合,インタフェースの ID には,そのリンク層アドレスが利用されます。 1 つのノードの複数のインタフェースに,同じインタフェース ID が使用されることもあります。
RFC 2373
によれば,大部分のプレフィックスには 64 ビットのインタフェース ID が必要です。
48 ビットの MAC アドレスからインタフェース ID を作成するには,アドレスの中間位置に 2 つの 16 進数 (0xFF と 0xFE) を挿入して 64 ビット化した後,7 ビット目のユニバーサル/ローカル・ビットを反転します。図 3-1
は,この処理を図示しています。
図 3-1: MAC アドレスに基づくインタフェース ID の作成
一般的なユニキャスト・アドレスと,その値を次に示します。
未指定アドレスはアドレスがないことを示し,インタフェースに割り当てられることはありません。
未指定アドレスの値は
0:0:0:0:0:0:0:0
(圧縮フォームでは
::
) です。
IP データグラムを自分に送信するためにノードが使用するアドレス。
通常はループバック・インタフェースに割り当てられます。
IPv6 のループバック・アドレスの値は,0:0:0:0:0:0:0:1
(圧縮フォームでは
::1
) です。
IPv4 と IPv6 が混在している環境で使用されるアドレス。 次のアドレスのいずれかです。
IPv4 互換 IPv6 アドレス
IPv4 のルーティング・インフラストラクチャを通して IPv6 パケットをトンネリングするために,IPv6 ノードが使用するアドレス。 IPv4 のアドレスは,下位 32 ビットで運ばれます。 このアドレスのフォーマットは,次のとおりです。
注意
IPv4 互換 IPv6 アドレスは,DNS (Domain Name System) や,ローカルの
/etc/ipnodes
ファイルでは使用しないでください。
IPv4 射影 IPv6 アドレス
IPv4 アドレスを表現し,IPv6 をサポートしていないノード (IPv4 のみのノード) を識別するために使用されるアドレス。 このアドレスは IPv6 パケットでは使用されません。 このアドレスのフォーマットは,次のとおりです。
次のいずれかのアドレスです。
リンク・ローカル・アドレス
アドレスの自動構成や,近隣ノード検出を実行する場合,またはルータが存在しない場合に,単一リンク上のアドレッシングに使用されるアドレス。 このアドレスは,該当するインタフェースが接続されているリンク上のみで一意であるものと見なされます。 このアドレスのフォーマットは,次のとおりです。
サイト・ローカル・アドレス
グローバルなインターネットに接続されていないサイトや組織で使用されるアドレス。 このアドレスは,該当するインタフェースが接続されるサイト内のみで一意であるものと見なされます。 このアドレスのフォーマットは,次のとおりです。
サイト・ローカル・アドレスを使用する場合には,次の点に留意してください。
1 つのノードを複数のサイトに接続しないでください。
サイト・ローカル・アドレスをグローバル DNS で使用しないでください (サイト・ローカル・アドレスは,サイト外部からは見えないようにしてください)。
サイト・ローカル・アドレスの動的 DNS 更新はサポートされません。
サイト・ローカル・プレフィックスを含む経路をサイト外に通知したり,送信しないでください。
インタフェースは通常,複数の IPv6 アドレスを持ちます。
IPv6 を構成してシステムをブートすると,LAN,PPP,および構成したトンネル・インタフェースに,リンク・ローカル・アドレスが自動的に割り当てられます。
さらに,リンク上にルータが存在する場合には,グローバル・ユニキャスト・アドレスがインタフェースに自動設定されます。
3.3.2.2 エニーキャスト・アドレス
エニーキャスト・アドレスはノードのグループに対する識別子であり,IPv4 のエニーキャスト・アドレスと類似しています。 エニーキャスト・アドレスに送られたパケットは,そのアドレスで識別されるインタフェースを備えた 1 つのノードに配信されます。 通常は,ルーティング・プロトコルでの距離計測で最も近いノードになります。
エニーキャスト・アドレスはユニキャスト・アドレス空間から割り当てられ,ユニキャスト・アドレスと区別することはできません。 サブネット・ルータ・エニーキャスト・アドレスと RFC 2526 で定義されたアドレスだけが,簡単に識別できます。 サブネット・ルータ・エニーキャスト・アドレスに送られたパケットは,発信したホストに最も近いルータにのみ配信されます。 エニーキャスト・アドレスのフォーマットは,次のとおりです。
上記のフォーマットでは,サブネットのプレフィックスは特定のリンクを識別するプレフィックスになっています。
エニーキャスト・アドレスは,インタフェースの識別子がゼロに設定されている点以外は,インタフェースのユニキャスト・アドレスと同じです。
3.3.2.3 マルチキャスト・アドレス
IPv4 マルチキャスト・アドレスと同様,マルチキャスト・アドレスは一群のノードを示す識別子です。 マルチキャスト・アドレスのフォーマットを次に示します。
上記のアドレス・フォーマット内の各フィールドについて,次に説明します。
11111111
アドレスがマルチキャスト・アドレスであることを示します。
0000 または 0001 です。 前者は恒久割り当ての (周知の) マルチキャスト・アドレスで,後者は非恒久割り当ての (一時的な) マルチキャスト・アドレスを示します。
マルチキャスト・グループのスコープを示します。 Scope の値を,次の表に示します。
値 (16 進) | スコープ |
1 | ノード・ローカル |
2 | リンク・ローカル |
5 | サイト・ローカル |
8 | 組織ローカル |
E | グローバル |
指定されたスコープ内のマルチキャスト・グループを識別します。
表 3-1は,周知のマルチキャスト・アドレスの例を示しています。
表 3-1: 周知のマルチキャスト・アドレス
マルチキャスト・アドレス | 意味 |
FF02::1 | 全ノード (リンク・ローカル) |
FF02::2 | 全ルータ (リンク・ローカル) |
FF02::9 | 全 RIPng ルータ (リンク・ローカル) |
各 IPv6 アドレスには,アドレス・タイプを示す固有のビット・パターンが先頭に付けられます。
このビット・パターンは,フォーマット・プレフィックス (または単に「プレフィックス」) と呼ばれます。
表 3-2
は,IPv6 アドレス・タイプをいくつかリストし,対応するプレフィックスを示しています。
表 3-2: IPv6 アドレス・タイプとプレフィックス
アドレス・タイプ | プレフィックス |
集約可能グローバル・ユニキャスト | 2000::/3 |
リンク・ローカル | FE80::/10 |
サイト・ローカル | FEC0::/10 |
マルチキャスト | FF00::/8 |
IPv6 アドレスでの変更により,次のアドレス構成が定義されました。
ステートレス・アドレスの自動構成
ステートフル・アドレスの自動構成である,DHCPv6 (Dynamic Host Configuration Protocol Version 6)
ステートレス・モデルでは,ノードはルータ通知パケットをリッスンすることによって,アドレス・プレフィックスを得ます。 このプレフィックスと,データリンク固有のインタフェース識別子を結合して,アドレスが形成されます。 このインタフェース識別子は通常,インタフェースのデータリンク・アドレスから抽出されます。 このモデルは,アドレスの構成を厳密に制御する必要がない場合に適しています。 詳細については,RFC 2462 を参照してください。
DHCPv6 では,ホストは専用の構成サーバにアドレス,構成情報,およびサービスを要求することができます。 このモデルは,クライアント/サーバ・モデルでアドレスを割り当てる場合に適しています。 DHCPv6 Internet Draft は現在,改訂作業が進められています。 詳細については,http://www.ietf.org/html.charter/dhc-charters.html にある「Dynamic Host Configuration」Web ページを参照してください。
注意
現バージョンの Tru64 UNIX は DHCPv6 をサポートしていません。
どちらの方法でも,構成される各アドレスには存続期間が対応付けられています。
このためシステムは,期限の切れたアドレスを解放し,新しいアドレスを取得しなければなりません。
これらの自動構成に,更新後のアドレス情報を DNS (Domain Name System) サーバに登録する機能を付け加えれば,ネットワークの番号再割り当てが可能となり,ネットワーク上の各ホストに手作業で介入することなくネットワーク・アドレスの制御を行うことができます。
3.3.5 アドレス解決
DNS (Domain Name System) は,名前を IP アドレスにマッピングしたり,逆に IP アドレスを対応する名前にマッピングするサービスを提供します。 IPv6 でアドレスのサイズが大きくなったため,DNS には次の新しい機能が追加されました。
ネットワークのバイト順に符号化された IPv6 アドレスを保持します。 オペレーティング・システムに付属しているバージョンの BIND は,AAAA レコードをサポートしています (BIND は,Tru64 UNIX で実装されている DNS です)。
AAAA 照会
インターネット・クラス内の特定のドメイン名の照会を行うと,その応答として,関連する全 AAAA リソース・レコードが戻されます。
IP6.INT ドメイン
指定アドレスに対応する名前の検索 (アドレスから名前へのマッピング) を行うためのドメインです。
IPv6 アドレスは,ドット記号 (.) で区切られた 4 ビット値の末尾に
.IP6.INT
が付加されたシーケンスとして,逆順で表されます。
たとえば,4321:0:1:2:3:4:567:89ab
という IPv6 アドレスの逆引きルックアップ・ドメイン名は,次のとおりです。
b.a.9.8.7.6.5.0.4.0.0.0.3.0.0.0.2.0.0.0.1.0.0.0.0.0.0.0.1.2.3.4.IP6.INT
IPv6 環境で BIND を構成する際のガイドラインについては,『ネットワーク管理ガイド:サービス編』を参照してください。
3.3.6 アドレス割り当て
IPv6 アドレスは,世界各地の登録局で登録が受け付けられています。 IPv6 がすでに構成されているネットワークにシステムを接続すると,そのシステムには必要な IPv6 アドレスが自動的に設定されます。
運営するサイトで利用可能な IPv6 アドレスの範囲については,利用しているインターネット・サービス・プロバイダ (ISP) に問い合わせてください。 地域別の登録局とアドレスの割り当てについての詳細は,IANA の Web ページ (http://www.iana.org/ipaddress/ip-addresses.htm) を参照してください。
IPv6 RFC のさまざまな実装をテストするため,IETF は一時的な IPv6 アドレスの割り当てスキームを定義しました。 このスキームに従うと,6bone 上で IPv6 をテストするためのアドレスを,ホストやルータに割り当てることができます。 6bone によるアドレス割り当てについての詳細は,次の 6bone のホーム・ページを参照してください。
現在,6bone のテスト・アドレスは,集約可能グローバル・ユニキャスト・アドレスです。
6bone のアドレス割り当てについては,6bone サービス・プロバイダ (gw-6bone@pa.dec.com
など) にお問い合わせください。
以降の項では,集約可能グローバル・ユニキャスト・アドレスと集約可能テスト・アドレスについて説明します。
3.3.6.1 集約可能グローバル・ユニキャスト・アドレス・フォーマット
IPv6 の集約可能グローバル・ユニキャスト・アドレス・フォーマットは,プロバイダ・ベースの現行の集約方式と,相互接続点ベースの新しい集約方式をサポートするように設計されています。 サイトがプロバイダと相互接続点のどちらに接続する場合でも,このアドレス・フォーマットによって,効率的な経路集約が可能です。 集約可能グローバル・ユニキャスト・アドレスのフォーマットを,次に示します。 詳細については,RFC 2374 を参照してください。
上記のアドレス・フォーマット内の各フィールドについて,次に説明します。
フォーマット・プレフィックス。
集約可能グローバル・ユニキャスト・アドレスの場合,このフィールドの値は
001
です。
トップレベル集約識別子。
将来使用するために予約されています。 現在は,すべてゼロ (0) が設定されます。
次レベル集約識別子。 TLA ID の管理者によって,アドレッシング階層の構築と,エンド・ユーザのサイトの識別のために割り当てられます。 TLA ID を割り当てられた各組織には,24 ビットの NLA ID 空間も割り当てられます。 この空間のレイアウトと使い方は,該当する組織が決めます。
サイト・レベル集約識別子。 エンド・ユーザのサイトで,独自のローカル・アドレッシング階層の構築とサブネットの識別のために使用されます。
リンクに接続されているインタフェースを識別する 64 ビットのインタフェース識別子。
IPv6 のテスト用の集約可能グローバル・ユニキャスト・アドレスのフォーマットを,次に示します。 提案されているテスト用アドレス割り当て計画についての詳細は,RFC 2471 を参照してください。
上記のアドレス・フォーマット内の各フィールドについて,次に説明します。
001
集約可能グローバル・ユニキャスト・アドレスのフォーマット・プレフィックス。
1111111111110
6bone のトップレベル集約 (TLA: Top-Level Aggregation) 識別子 (0x1FFE)。 この識別子は IANA (Internet Assigned Numbers Naming Authority) によって予約されており,IPv6 のテスト用として一時的に使用されています。
次レベル集約識別子 (Next-Level Aggregation Identifier)。 6bone ネットワーク上にアドレッシング階層を構築し,エンド・ユーザのサイトを識別するために,TLA ID の管理者によって割り当てられる ID。
サイト・レベル集約識別子 (Site-Level Aggregation Identifier)。 独自のローカル・アドレッシング階層を構築し,サブネットを識別するために,エンド・ユーザのサイトによって割り当てられる ID。
リンクに接続されているインタフェースを識別する 64 ビットのインタフェース識別子。
TLA および NLA の割り当てに関する最新情報は,次の 6bone ホーム・ページを参照してください。
http://www.6bone.net
3.4 トンネルを用いた IPv6 の展開
インターネットと一般のネットワークは IPv4 の上に構築されているので,IPv6 のルーティング構造を徐々に構築する際には,IPv4 のルーティング構造を使用して IPv6 のトラフィックを運ぶ方法を知っておく必要があります。 IPv4 ルーティング構造を通して IPv6 トラフィックのルーティングを行う場合の最適なメカニズムは,トンネリングです。 サポートされているトンネルのタイプは次のとおりです。
自動
6to4
構成済み
次に,各トンネルとその長所と短所について説明します。 トンネルが強力であるほど,構成と管理の作業量が増えます。 トンネルについての追加情報は,次の場所にある『ネットワークへの IPv6 の導入』Best Practice にも記載されています。
http://h30097.www3.hp.com/docs/best_practices/
3.4.1 自動トンネル
IPv6 自動トンネルは,構成と実施が最も簡単なトンネルです。
このメカニズムにより,グローバル IPv4 アドレスを持つホストは,自動的に IPv4 ネットワーク上にトンネルを作成できるようになります。
トンネルは仮想インタフェース (tun0
) として作成され,IPv4 アドレスから生成された IPv4 互換 IPv6 アドレスによって構成されます。
パケットの宛先アドレスはトンネルの終端の宛先を指定します。
IPv4 互換 IPv6 アドレスについては,3.3.2.1 項
を参照してください。
このメカニズムは,ホストを IPv6 に移行する際に適した方法です。 アプリケーションの移植,テスト,実験を IPv6 プロトコルで行えるためです。 ただし,自動トンネルには次のような制限があります。
グローバル (プライベートでない) IPv4 アドレスが必要です。
ルータよりホストに適しています。 自動トンネル上で RIPng プロトコルを使用したり,トンネルを通してパケットを転送したりすることはできません。
通信相手のノードは,IPv4 互換 IPv6 アドレスで構成されているノードのみになります。 ネイティブの IPv6 アドレスのみで構成されたノードとは通信できません。
IPv6 コミュニティによって廃止されるおそれがあります。 生産環境では採用しないようにしてください。
6to4 トンネルは自動トンネルの一種ですが,接続性が高くなっています。
このメカニズムを使用すると,6to4 サイトと呼ばれる特別な IPv6 サイトが,グローバル IPv4 アドレスを 1 つ使用して,IPv4 ネットワークを通してトンネルを作成して他の 6to4 サイトと通信できるようになります。
トンネルは,IPv4 ネットワーク接続ポイントのノード上の仮想インタフェース (tun1
) として作成されます。
このノードは個別のホストでも,Border Router と呼ばれるルータでもかまいません。
このトンネルは,IPv4 アドレスから生成された特別な 6to4 アドレスで構成されます。
パケットの宛先アドレスはトンネルの終端の宛先を指定します。
6to4 サイトの内部では,Border Router はグローバル IPv4 アドレスから 6to4 サイト・プレフィックスを作成し,そのプレフィックスを 6to4 サイト内の全ノードに公開します。 各ノードは 6to4 プレフィックスに基づいて自動的に 6to4 アドレスを構成します。 特別な構成は不要です。 6to4 サイト内のノードは,ネイティブの IPv6 を用いてお互いに通信します。 サイトの外に向けられたトラフィックはすべて,Border Router に転送されます。
このメカニズムは構成が簡単で,生産環境に採用できます。 ただし,6to4 トンネルには次のような制限があります。
通信できるノードが,6to4 アドレスで構成されたノードに限られます。 ただし,サードパーティの 6to4 Relay Router サービスまたはインターネット上の 6to4 リレー・サービスを使用すると,ネイティブの IPv6 アドレスのみで構成されたノードとも通信できます。
基礎を成す IPv4 ネットワーク・ルーティング構造に依存しています。 そのため,ルーティングはネイティブの IPv6 接続や構成済みトンネルほど効率的ではありません。
構成済みトンネルは,構成と実施が最も複雑なトンネルです。 構成済みトンネルには次の 2 種類があります。
IPv4 構成済みトンネル -- IPv4 または IPv6 パケットを IPv4 パケットにカプセル化し,そのパケットを IPv4 ネットワーク構造を通して伝送します。 IPv6 over IPv4 構成済みトンネルでは,IPv6 のサイトとホストを,IPv4 ネットワークを通して他の IPv6 ノードと通信させることができます。
IPv6 構成済みトンネル -- IPv4 または IPv6 パケットを IPv6 パケットにカプセル化し,そのパケットを IPv6 ネットワーク構造を通して伝送します。 IPv6 over IPv6 構成済みトンネルは,Mobile IPv6 に対応させるための技術であり,トラフィック・エンジニアリングにも使用できます (たとえば,IPv6 マルチホーミングのサポートなど)。
構成済みトンネルは仮想インタフェース (iptx
) として作成され,IPv4 アドレス (IPv4 構成済みトンネルの場合) または IPv6 (IPv6 構成済みトンネルの場合) を,終端の送信元および宛先として使用します。
いずれかの構成済みトンネルを通して IPv6 トラフィックを伝送する場合,IPv6 アドレスをトンネル・インタフェース上に構成します。
いずれかの構成済みトンネルを通して IPv4 トラフィックを伝送する場合,IPv4 アドレスをトンネル・インタフェース上に構成します。
このメカニズムは最も強力なトンネリングですが,次のような制限があります。
各トンネルの終端を組織的に構成しておく必要があります。
トラフィックを効率的にルーティングするためには,管理者が熟練していなければなりません。 終端の構成に誤りがあると,ルーティングの効率低下,ルーティングのループ,またはその両方が発生するおそれがあります。
この節では,IPv6 のいくつかの構成例を紹介します。 IPv6 を構成しようとしているシステムの環境に最も近い構成を選んでください。 これらの構成例は,3.6 節でも,選択されたシステムを各構成に従って設定する方法を説明する際に使用します。 構成例に含まれる IPv6 のグローバル・アドレスやアドレス・プレフィックスには,3.3.6.2 項で説明したフォーマットを使用しています。
IPv6 は LAN と PPP ネットワークのインタフェースでサポートされます。 IPv6 環境でサポートされているコマンドとデーモンについては,『Tru64 UNIX 概要』のリストを参照してください。
図 3-2
は,ホスト A とホスト B が IPv6 で通信を行うシンプルな LAN 構成を示しています。
図 3-2: シンプルなホスト対ホスト構成
図 3-3
は,ホスト A,ホスト B,およびルータ A が IPv6 で通信を行うシンプルな LAN 構成を示しています。
ホスト A とホスト B は,ルータ A からグローバル・アドレスを取得します。
図 3-3: ホスト対ホスト構成 (ルータあり)
図 3-4
は,2 つの IPv6 ネットワークを 1 台の IPv6 ルータ (ルータ A) を通して接続した構成を示しています。
図 3-4: IPv6 ネットワーク対 IPv6 ネットワーク構成 (ルータあり)
図 3-5
は,4 つの IPv6 ネットワークを 3 台のルータで接続した構成を示しています。
3 台のルータは,RIPng プロトコルを使用して,ルーティング情報を交換します。
図 3-5: 複数の IPv6 ネットワークと複数のルータがある構成
図 3-6
は,1 つの IPv4 ネットワークに接続されたホスト A とホスト B が,IPv4 の構成済みトンネルを通して IPv6 で通信する構成を示しています。
図 3-6: ホスト対ホスト構成 (構成済みトンネルあり)
図 3-7 は,ホスト X が IPv4 ネットワークに接続されており,1 台の IPv6 ルータ (ルータ A) が同じ IPv4 ネットワークと 2 つの IPv6 ネットワークに接続されている構成を示しています。 ホスト X は,ホスト X と ルータ A との間の IPv4 構成済みトンネルを通して,IPv6 でホスト B と通信します。
図 3-8
は,4 つの IPv6 ネットワークが 2 台のルータと IPv4 ネットワークを介して接続されている構成を示しています。
ホスト A は,ルータ A とルータ B との間の IPv4 構成済みトンネルを通してホスト F と通信します。
図 3-8: IPv6 ネットワーク対 IPv6 ネットワーク構成 (構成済みトンネルあり)
図 3-9
は,ホスト E が IPv4 ネットワークに接続され,ルータ B (IPv6 ルータ) が同じ IPv4 ネットワークに接続され,また同時に 2 つの IPv6 ネットワークにも接続されている構成を示しています。
ホスト E は,ホスト E とルータ B の間の 6to4 トンネルを通してホスト B と通信します。
図 3-9: 6to4 構成
IPv6 はどのようなノードにも構成できます。 クラスタ構成では,クラスタ内の各メンバに個別に IPv6 を構成することが可能です。
注意
IPv6 はクラスタ全体の通信ではサポートされていないため,IPv6 のアドレスをクラスタ別名に使用することはできません。 クラスタの構成については,『クラスタ管理ガイド』を参照してください。
この節では,IPv6 を構成する前に行う必要がある作業について説明します。
3.6.1 カーネル内の IPv6 サポートの確認
IPv6 (IPV6) と IP-in-IP トンネリング (IPTUNNEL) のサポートがカーネル内にあることを,次のコマンドを実行して確認します。
# sysconfig -q ipv6 # sysconfig -q iptunnel
サブシステム属性の
ipv6:
または
iptunnel:
が表示されない場合には,次の手順を実行します。
次のコマンドで新しいカーネルを構築します。
# doconfig -c SYSTEM_NAME
IPV6 オプションと IPTUNNEL オプション,およびその他の必要なオプションを選択します。
元のカーネルを保存し,新しいカーネルを root ディレクトリに移動します。
# mv /vmunix /vmunix.save # mv /sys/SYSTEM_NAME/vmunix /vmunix
システムをリブートします。 リブートする際には,システムに他のユーザがいないことを確認してください。 次のようなコマンドを使用します。
# shutdown -r +5 "Adding IPv6 and IPTUNNEL kernel options ..."
以上の手順が完了すると,IPv6 ネットワーク環境で通信できるようにシステムを構成する準備が整います。
3.6.2 構成の準備
IPv6 がカーネルでサポートされていることを確認した後,IPv6 構成ユーティリティ (ip6_setup
) を実行して,システムを IPv6 ネットワーク環境で通信できるように構成します。
ip6_setup
ユーティリティでは,次のシステムを構成できます。
IPv6 ホスト
IPv6 ルータ
ip6_setup
構成ユーティリティは,起動後にシステムの情報を収集し,その他の構成情報の入力を求めます。
IPv6 ネットワーク・ソフトウェアの構成を行う前に,システムおよびネットワーク環境の情報を収集しておかなければなりません。
IPv6 構成のワークシートを,図 3-10
および
図 3-11
に示します。
以降の項では,このワークシートに記録する必要のある情報について説明します。
本書をオンラインで参照している場合は,印刷機能を使用するとワークシートのコピーを印刷できます。
図 3-10: IPv6 構成ワークシート 1
システムを IPv6 ルータとして構成する場合は Yes をチェックします。 ルータとしない場合は,No をチェックします。 No をチェックすると,システムは IPv6 ホストとして構成されます。
IPv6 ルータは,LAN や構成済みのトンネルなど,接続されているリンク上の全ホストにアドレス・プレフィックスを通知し,パケットを宛先に転送できます。 パケットはリンク上で直接転送することも,IPv4 トンネルを通して転送することも可能です。
システムのアドレスを DNS/BIND データベースに自動的に記録する場合には Yes,自動記録が不要であれば No をチェックします。 Yes をチェックした場合には,システムを DNS/BIND クライアントとして構成しなければならず,DNS/BIND サーバは DNS データベースの動的更新をサポートしていなければなりません。 DNS/BIND サーバの構成方法については,『ネットワーク管理ガイド:サービス編』を参照してください。
IPv6 ネットワークへのネットワーク・インタフェースとして使用するデバイスの名前 (le0
や
fta0
など) を入力します。
構成済みトンネルをシステムに作成するだけの場合は,none
と入力します。
PPP インタフェース上で IPv6 ルーティングを使用する場合には Yes,使用しない場合は No をチェックします。
PPP
インタフェースの構成については,
ppp_manual_setup
(7)
6to4 トンネル上で IPv6 を使用する場合には Yes,使用しない場合は No をチェックします。 1 本の 6to4 トンネルは,IPv4 ネットワーク内に送信元を 1 箇所と宛先を 1 箇所持ちます。
構成済みの IPv4 トンネル上で IPv6 を使用する場合には Yes,使用しない場合は No をチェックします。 1 本の構成済みの IPv4 トンネルは,IPv4 ネットワーク内に送信元を 1 箇所と宛先を 1 箇所持ちます。 自動トンネルではなく構成済みトンネルを使用してください。 構成済みトンネルを複数定義することもできます。
IPv4 自動トンネル上で IPv6 を使用する場合には Yes,使用しない場合は No をチェックします。
注意
自動トンネルは,今後廃止される可能性があるので,使用しないでください。
他のシステムへの経路を手動構成する場合は Yes,手動構成しない場合は No をチェックします。
ルータ上では,次の条件のいずれかが満たされる場合に静的経路を構成できます。
構成済みのトンネルを使用し,トンネル・リンクではアドレス・プレフィックスの通知を行わない。
構成済みのトンネルを使用し,トンネルの他端のルータは RIPng プロトコルを使用しない。
システムは RIPng プロトコルを使用しない。
ホスト上では,ルータとの間で構成済みトンネルを使用し,そのルータが自分をトンネル・リンク上の省略時のルータとして通知しない場合に静的経路を構成できます。
IPv6 を
ip6_setup
構成ユーティリティから直接開始する場合には Yes,システムの次回のブート時に開始する場合は No をチェックします。
ノードの完全修飾ドメイン名。
完全修飾ドメイン名は,ホスト名と DNS/BIND ドメイン名からなります (host1.subdomain.example
など)。
ノードの名前または IP アドレス (トンネルの終端)。
ip6_setup
ユーティリティは,48 ビットの 6to4 サイト・プレフィックスを自動的に生成します。
システムが IPv6 ホストの場合は,6to4 トンネル・インタフェースに構成する,64 ビットの 6to4 プレフィックスを入力します。
アドレス・プレフィックスの上位 48 ビットは,ip6_setup
ユーティリティが生成するサイト・プレフィックスと同じでなければなりません。
IPv6 のみのネットワークで通信を行う場合は,リレー・ルータの 6to4 アドレスを入力します。
構成済みトンネルのタイプ。 有効なタイプは IPv4 と IPv6 です。
構成済みトンネル・インタフェースの名前 (ipt0
,ipt1
など)。
この値は,ip6_setup
スクリプトが設定します。
リモート・ノードの IP アドレス (トンネルの相手側の端)。
ご使用のノードの IP アドレス (トンネルの自分側の端)。
システムがルータであり,そのルータがトンネル・リンク上で RIPng プロトコルを使用して IPv6 ルーティング情報をトンネルのリモート側のルータと交換する場合は Yes,この条件に該当しない場合は No をチェックします。
システムがルータであり,トンネルのリモート側ノードにアドレス・プレフィックスを通知する場合は 64 ビットのプレフィックスを入力し,この通知を行わない場合は Done と入力します。
システムが IPv6 ホストであり,トンネルのリモート側ルータからアドレス・プレフィックスが通知されない場合には,このトンネル・インタフェース上に構成する 64 ビットのプレフィックスを入力します。
RIPng プロトコルを使用したり,アドレス・プレフィックスを通知するインタフェース (LAN や PPP,構成済みトンネルなど) の名前。
指定されたインタフェースでルータが RIPng プロトコルを使用し,リンク (LAN,PPP,構成済みトンネルなどの) 上で他のルータと IPv6 ルーティング情報を交換する場合は Yes,この条件に該当しない場合は No をチェックします。
リンク上のすべてのホストにアドレス・プレフィックスを通知する場合は 64 ビットのプレフィックスを入力し,アドレス・プレフィックスを通知しない場合は Done と入力します。
Done と入力すると,ルータによるアドレス・プレフィックスの通知が行われないため,各ホストは自分のプレフィックス情報を別のソースから取得する必要があります。
IPv6 のプレフィックスはサブネットを定義します。 このプレフィックスは通常,ネットワーク管理者によって,特定リンク用としてルータ上に構成されます。 ルータは,構成されたプレフィックスを,そのリンクに接続されている全ノードに通知します。 プレフィックスを通知する際には,プレフィックスの長さ,このプレフィックスがリンク上に存在するかどうか (近隣であるかどうか),ステートレス・アドレス構成で使用できるかどうか,およびプレフィックスの有効時間もあわせて通知されます。
リモート IPv6 ネットワークのアドレス・プレフィックス。 このアドレス・プレフィックスには,CIDR (Classless Inter-Domain Routing) スタイルのビット長情報が含まれています (例: 5F00::/8)。 省略時の経路を使用する場合には,Default と入力します。
リモート IPv6 ネットワークへのトラフィック送信に使用するインタフェースの名前。
宛先プレフィックスへのパス上に存在する最初のルータの IPv6 アドレス。 そのルータのリンク・ローカル・アドレスを入力します。 そのルータへのコネクションが IPv4 トンネル上にある場合には,トンネルのリモート側のリンク・ローカル IPv6 アドレスを入力します。
この項では,3.5 節で紹介した各構成例について説明し,それぞれの例でのシステムの構成方法を示します。
また,特定の構成で利用可能な選択肢を紹介する場合もあります。
3.6.3.1 シンプルなホスト対ホスト構成
図 3-2
のホスト A と ホスト B は,IPv6 リンク・ローカル・アドレスを使用します。
特に指定しないかぎり,ip6_setup
構成ユーティリティは,システムのリンク・ローカル・アドレスを自動的に作成します。
ホスト A の構成ワークシートの記入例を次に示します。
ホスト A で IPv6 を構成した後,/etc/ipnodes
ファイルを編集して,ホスト B のリンク・ローカル・アドレスをファイル内に記述します。
ホスト B は,ホスト A とほぼ同じ手順で構成できます。
この構成では,グローバル・アドレス・プレフィックスは LAN 上で通知されません。
グローバル・アドレス・プレフィックスの通知を行うには,ip6_setup
ユーティリティでいずれかのノードをルータとして構成するか,LAN 構成に IPv6 ルータを追加します。
IPv6 ルータは,リンク上でグローバル・アドレス・プレフィックスを通知します。
ローカル・ノードのリンク・ローカル・アドレスとグローバル・アドレスは,netstat -in
コマンドを使用すれば参照できます。
ホスト A で
telnet
コマンドを使ってホスト B に接続するには,コマンドを次のように実行します。
# telnet fe80::0a00:2bff:fee2:1e11
リンク・ローカル・アドレスを指定する代わりに,アドレスとノード名を
/etc/ipnodes
ファイルに記述する方法もあります。
この場合,telnet
コマンドの引数には,ノード名を指定します。
3.6.3.2 ホスト対ホスト構成 (ルータあり)
図 3-3
では,ホスト A とホスト B がルータ A とともに LAN 上に配置されています。
この場合,ルータ A が LAN 上でグローバル・アドレス・プレフィックス (3ffe:1200:4112:1::/64
) を通知します。
ホスト A とホスト B は,このアドレス・プレフィックスを使用して,グローバル IPv6 アドレスを作成します。
テスト用のアドレスの取得方法については,3.3.6 項を参照してください。
ルータ A の構成ワークシートの記入例を次に示します。
ルータ A で IPv6 を構成した後,/etc/ipnodes
ファイルを編集して,他のノードのグローバル・アドレスをファイル内に追加します。
この作業を,ホスト A とホスト B でも行います。
代わりにグローバル・アドレスを使用して,ネットワーク内に DNS/BIND を確立することも可能です。
動的更新を使用可能にした DNS/BIND サーバをネットワークに追加した場合,ホスト A の構成ワークシートは次のようになります。
3.6.3.3 IPv6 ネットワーク対 IPv6 ネットワーク構成 (ルータあり)
図 3-4 では,ルータ A とその複数のインタフェースを介して,2 つの IPv6 ネットワークが相互に接続されています。 ルータ A の構成ワークシートの記入例を次に示します。
3.6.3.4 複数の IPv6 ネットワークと複数のルータがある構成
図 3-5 では,4 つの IPv6 ネットワークが 3 台のルータを介して相互接続されています。 この構成では,ネットワーク内の他のサブネットへのルートについての情報を得るため,ルータはルーティング情報を交換しなければなりません。 この交換を行うには,各ルータで RIPng プロトコルを使用しなければなりません。 ルータ A の構成ワークシートの記入例を次に示します。
他のルータの構成ワークシートもほぼ同じです。
3.6.3.5 ホスト対ホスト構成 (IPv4 構成済みトンネルあり)
図 3-6 では,2 つの IPv6 システムが構成済みトンネルを通じて,IPv4 ネットワーク越しに相互通信を行います。 これらのシステムは IPv6 リンク・ローカル・アドレスを使用します。 ホスト A の構成ワークシートの記入例を次に示します。
ホスト A で IPv6 を構成した後,/etc/ipnodes
ファイルを編集して,ホスト B のリンク・ローカル・アドレスをファイル内に追加します。
ホスト B は,ホスト A とほぼ同じ手順で構成できます。
この構成では,グローバル・アドレス・プレフィックスはトンネル上で通知されません。
グローバル・アドレス・プレフィックスの通知を行うには,ip6_setup
でいずれかのノードをルータとして構成します。
IPv6 ルータは,リンク上でグローバル・アドレス・プレフィックスを通知します。
ローカル・ノードのリンク・ローカル・アドレスとグローバル・アドレスは,netstat -in
コマンドを使用すれば参照できます。
ホスト A で
telnet
コマンドを使ってホスト B に接続するには,コマンドを次のように実行します。
# telnet fe80::5.6.7.8
リンク・ローカル・アドレスを指定する代わりに,アドレスとノード名を
/etc/ipnodes
ファイルに記述する方法もあります。
この場合,telnet
コマンドの引数には,ノード名を指定します。
3.6.3.6 ホスト対ルータ構成 (IPv4 構成済みトンネルあり)
図 3-7 では,ホスト X が構成済みトンネルを介して IPv4 ネットワーク越しにホスト B と通信を行います。 どちらのノードも IPv6 アドレスを使用します。 この場合のトンネルは,ホスト X とルータ A との間に存在します。 ルータ A が自分をトンネル・リンクの省略時のルータとして通知し,トンネル・リンク上でグローバル・アドレス・プレフィックスを通知する場合の,ホスト X の構成ワークシートの記入例を次に示します。
ルータ A がトンネル・リンクでグローバル・アドレス・プレフィックスを通知しない場合,ホスト X の構成ワークシートの「構成済みトンネル」セクションにある「アドレス・プレフィックス」フィールドの値は
3ffe:1200:4113:1::/64
になります。
また,ルータ A が自分をトンネル・リンクの省略時ルータとして通知しない場合,ホスト X の構成ワークシートに次の情報も記入します。
ルータ A がトンネル・リンク上でグローバル・アドレス・プレフィックスを通知する場合の,ルータ A の構成ワークシートの記入例を次に示します。
ルータ A がトンネル・リンク上でグローバル・プレフィックスを通知しない場合には,ルータ A の構成ワークシートの情報は次のようになります。
ホスト X への「手動経路」に注意してください。
宛先のネットワーク・プレフィックスを指定する代わりに,ホスト X へのホスト経路 (3ffe:1200:4113:1::5.6.7.8
) を指定します。
ホスト X のトンネル・インタフェースのリンク・ローカル IPv6 アドレス (fe80::5.6.7.8
) が次のホップになります。
3.6.3.7 IPv6 ネットワーク対 IPv6 ネットワーク構成 (IPv4 構成済みトンネルあり)
図 3-8 のホスト A は,1 本の構成済みトンネルを介して IPv4 ネットワーク越しにホスト F と通信します。 ホスト構成は,3.6.3.1 項のホスト A に似ています。 各ノードは,他のネットワーク上のノードとの通信で,自動的に省略時のルータを使用します。 ルータ A の構成ワークシートの記入例を次に示します。
tu0
インタフェースと
tu1
インタフェースにはルータが接続されていないため,これらのインタフェースで RIPng を使用する必要はありません。
ルータ B の構成も同様です。
ただし,構成済みトンネルの送信元アドレスは
5.6.7.8
,宛先アドレスは
1.2.3.4
になり,tu0
と
tu1
上で通知されるアドレス・プレフィックスはそれぞれ
3ffe:1200:4113:1::/64
と
3ffe:1200:4113:2::/64
になります。
注意
トンネル・インタフェースで RIPng を使用するようにルータを構成していない場合には,各ルータ間の経路を手動で指定する必要があります。
図 3-9 では,6to4 サイト内のノードはホスト E のみです。 このノードは,6to4 トンネルを用いて IPv4 ネットワークを通してホスト B と通信を行います。 どちらのノードも IPv6 の 6to4 アドレスを使用します。 この場合,トンネルはホスト E とルータ B の間にあります。 ホスト E の物理インタフェースは IPv4 ネットワークに接続されているため,ホスト E の物理インタフェースには IPv6 は構成されていません。 ただし,IPv6 は 6to4 トンネルに構成されています。 ホスト E のワークシートの記入例を次に示します。
ルータ B は他の 6to4 サイトに対する Border Router で,そのサイトの IPv6 ルータでもあります。 ルータ B は各サブネットの 6to4 プレフィックスを公開しています。 各 6to4 プレフィックスの上位 48 ビットは,6to4 サイト・プレフィックスと同じでなければなりません。 ルータ B のワークシートの記入例を次に示します。
ホスト B のワークシートの記入例を次に示します。 ルータ B は 6to4 アドレス・プレフィックスをサブネット上に公開しているので,ホスト B はサイトに参加する際に,自分の 6to4 アドレスを自動的に設定します。 6to4 トンネルのインタフェースを構成する必要はありません。
この節では,システムを IPv6 ホストまたは IPv6 ルータとして構成する方法を説明します。 始める前に,構成ワークシートの記入が終っていることを確認してください。
IPv6 は,/usr/sbin/ip6_setup
ユーティリティを実行して構成します。
このユーティリティは,IPv6 の通信に使用するインタフェースと接続のタイプを定義し,システム・ファイルを更新して IPv6 の動作ができるようにします。
構成は,準備を除いて 10 分以内に終ります。
この項の説明の見方を,次に示します。
この手順での省略時の応答は [ ] で囲まれています。 [Enter] キーを押すと省略時の値が使用されます。
3.7.1 項
では,5 つのインタフェースを持つ IPv6 ホストの構成を説明します。
インタフェースには,物理インタフェース (le0
),6to4 インタフェース (tun1
),IPv6 over IPv4 トンネル (ipt0
),IPv6 over IPv6 トンネル (ipt1
),自動トンネル (tun0
) があります。
le0
には手動経路が構成されています。
3.7.2 項
では,6 つのインタフェースを持つ IPv6 ルータの構成を説明します。
インタフェースには,物理インタフェース (le0
),ポイント・ツー・ポイントのインタフェース (ppp0
),6to4 インタフェース (tun1
),IPv6 over IPv4 トンネル (ipt0
),IPv6 over IPv6 トンネル (ipt1
),自動トンネル (tun0
) があります。
le0
では,RIPng が起動され,手動経路が構成され,アドレス・プレフィックスが公開されています。
ppp0
では,RIPng が起動され,アドレス・プレフィックスが公開されています。
ipt0
および
ipt1
では,RIPng が起動され,アドレス・プレフィックスが公開されています。
(このページは強制的に改ページしています。)
3.7.1 IPv6 ホストの構成
# /usr/sbin/ip6_setup[Enter] This utility will gather some IPv4 information from your system then prompt you for IPv6 related information. You may enter a question mark (?) at any question for further explanation. Do you want to enable IPv6 in inetd services on this system? [Yes]: [Enter] Do you want to configure this system as an IPv6 router? [No]: [Enter] [脚注 2] Do you want to enable dynamic updates of IPv6 addresses in the DNS/BIND namespace? [No]: [脚注 3] Enter the fully qualified domain name for IPv6? [host1.corp.com]: [Enter] [脚注 4] Do you want to configure a 6to4 interface? [no]: y [Enter] [脚注 5] The 6to4 tunnel will be created as tun1 Enter this node's hostname or IPv4 address to use when generating your site's 6to4 prefix [16.140.64.103]: [Enter] [脚注 6] Your 6to4 site prefix is: 2002:108c:4067::/48 PLEASE SAVE THIS INFORMATION TO CONFIGURE YOUR 6TO4 SITE. Enter the address prefix to use on tun1 ? [2002:108c:4067::/64]: [Enter] [脚注 7] Enter the hostname or 6to4 address of a 6to4 Relay Router? [2002:c058:6301::]: [Enter] [脚注 8] 6to4 interface configuration completed. Enter the IPv6 LAN interfaces? [ le0 ]: [Enter] [脚注 9] Do you wish to define IPv6 over IPv4 configured tunnels? [No] y [Enter] [脚注 10] Enter the destination hostname or IPv4 address of tunnel ipt0? [No Default]: 16.140.64.142 [Enter] [脚注 11] Enter the source hostname or IPv4 address of tunnel ipt0? [16.140.64.103]: [Enter] [脚注 12] Enter an address prefix to use on ipt0? [Done]: [Enter] [脚注 13] Enter the destination hostname or IPv6 address of tunnel ipt1? [Done]: [Enter] Do you wish to define IPv6 over IPv6 configured tunnels? [No] y [Enter] [脚注 14] Enter the destination hostname or IPv6 address of tunnel ipt1? [No Default]: 3ffe::2 [Enter] [脚注 15] Enter the source hostname or IPv6 address of tunnel ipt1? [No Default]: 3ffe::1 [Enter] [脚注 16] Enter an address prefix to use on ipt1? [Done]: [Enter] [脚注 17] Enter the destination hostname or IPv6 address of tunnel ipt2? [Done]: [Enter] Do you want to configure an IPv6 over IPv4 automatic tunnel interface? [no] y [Enter] [脚注 18] The automatic tunnel will be created as tun0 Enter this node's hostname or IPv4 address to use when creating your automatic tunnel [16.140.64.103]: y [Enter] [脚注 19] Do you wish to define manual IPv6 routes? [No] y [Enter] [脚注 20] Enter the destination network address prefix? []: 5f02:2::/32 [Enter] [脚注 21] Enter interface to use when forwarding messages? [le0]: y [Enter] [脚注 22] Enter the next node's IPv6 address: [No Default]: 3ffe::5 [Enter] [脚注 23] Enter the destination network address prefix? [Done]: [Enter] You configured this node as a Host with the following [脚注 24] Interfaces: tun1 6to4 Tunneling Enabled using 16.140.64.103 Prefix 2002:108c:4067::/64 Relay Router 2002:c058:6301:: le0 Dynamic Address Configuration Enabled ipt0 Dynamic Address Configuration Enabled Tunnel Source 16.140.64.103 Tunnel Destination 16.140.64.142 ipt1 Dynamic Address Configuration Enabled Tunnel Source 3ffe::1 Tunnel Destination 3ffe::2 tun0 Automatic Tunneling Enabled using 16.140.64.103 Manual Routes: 5f02:2::/32 le0 3ffe::5 (G) Do you wish to update the IPv6 startup procedures with this configuration? [No Default] y [Enter] Do you want to start IPv6? [Yes]: [Enter] [脚注 25]
# /usr/sbin/ip6_setup [Enter] This utility will gather some IPv4 information from your system then prompt you for IPv6 related information. You may enter a question mark (?) at any question for further explanation. Do you want to enable IPv6 in inetd services on this system? [Yes]: [Enter] Do you want to configure this system as an IPv6 router? [No]: y [Enter] [脚注 26] Do you want to configure a 6to4 interface? [no]: y [Enter] [脚注 27] The 6to4 tunnel will be created as tun1 Enter this node's hostname or IPv4 address to use when generating your site's 6to4 prefix [16.140.64.103]: [Enter] [脚注 28] Your 6to4 site prefix is: 2002:108c:4067::/48 PLEASE SAVE THIS INFORMATION TO CONFIGURE YOUR 6TO4 SITE. Enter the hostname or 6to4 address of a 6to4 Relay Router? [2002:c058:6301::]: [Enter] [脚注 29] 6to4 interface configuration completed. Enter the IPv6 LAN interfaces? [ le0 ]: [Enter] [脚注 30] Do you want to enable RIPng on interface le0? [Yes]: [Enter] [脚注 31] Enter an address prefix to advertise on le0? [No Default]: 5f02:2::/64 [Enter] [脚注 32] Enter an address prefix to advertise on le0? [Done]: [Enter] Do you wish to configure IPv6 routing over any PPP links? [No] y [Enter] [脚注 33] Enter a PPP interface name? [ppp0]: [Enter] [脚注 34] Do you want to enable RIPng on interface ppp0? [Yes]: [Enter] [脚注 35] Enter an address prefix to advertise on ppp0? [No Default]: 5f03:3::/64 [Enter] [脚注 36] Enter an address prefix to advertise on ppp0? [Done]: [Enter] Enter a PPP interface name? [Done]: [Enter] Do you wish to define IPv6 over IPv4 configured tunnels? [No] [Enter] [脚注 37] Enter the destination hostname or IPv4 address of tunnel ipt0? [No Default]: 16.140.64.142 [Enter] [脚注 38] Enter the source hostname or IPv4 address of tunnel ipt0? [16.140.64.103]: [Enter] [脚注 39] Do you want to enable RIPng on interface ipt0? [Yes]: [Enter] [脚注 40] Enter an address prefix to advertise on ipt0? [Done]: aaa::/64 [Enter] [脚注 41] Enter an address prefix to advertise on ipt0? [Done]: [Enter] Enter the destination hostname or IPv4 address of tunnel ipt1? [Done]: [Enter] Do you wish to define IPv6 over IPv6 configured tunnels? [No] y [Enter] [脚注 42] Enter the destination hostname or IPv6 address of tunnel ipt1? [No Default]: 3ffe::2 [Enter] [脚注 43] Enter the source hostname or IPv6 address of tunnel ipt1? [No Default]: 3ffe::1 [Enter] [脚注 44] Do you want to enable RIPng on interface ipt1? [Yes]: [Enter] [脚注 45] Enter an address prefix to advertise on ipt1? [Done]: bbbb::/64 [Enter] [脚注 46] Enter an address prefix to advertise on ipt1? [Done]: [Enter] Enter the destination hostname or IPv6 address of tunnel ipt2? [Done]: [Enter] Do you want to configure an IPv6 over IPv4 automatic tunnel interface? [no] [Enter] [脚注 47] Enter this node's hostname or IPv4 address to use when creating your automatic tunnel [16.140.64.103]: [Enter] [脚注 48] Do you wish to define manual IPv6 routes? [No] y [Enter] [脚注 49] Enter the destination network address prefix? []: 5f02:2::/64 [Enter] [脚注 50] Enter interface to use when forwarding messages? [le0]: [Enter] [脚注 51] Enter the next node's IPv6 address: [No Default]: 3ffe::5 [Enter] [脚注 52] Enter the destination network address prefix? [Done]: [Enter] You configured this node as a Router with the following [脚注 53] Interfaces: tun1 6to4 Tunneling Enabled using 16.140.64.103 Prefix 2002:108c:4067::/64 Relay Router 2002:c058:6301:: le0 RIP Enabled Prefix 5f02:2::/64 ppp0 RIP Enabled Prefix 5f03:3::/64 ipt0 RIP Enabled Tunnel Source 16.140.64.103 Tunnel Destination 16.140.64.142 Prefix aaaa::/64 ipt1 RIP Enabled Tunnel Source 3ffe::1 Tunnel Destination 3ffe::2 Prefix bbbb::/64 tun0 Automatic Tunneling Enabled using 16.140.64.103 Manual Routes: 5f02:2::/64 le0 3ffe::5 (G) Do you wish to update the IPv6 startup procedures with this configuration? [No Default] y [Enter] Do you want to start IPv6? [Yes]: [Enter] [脚注 54]
ip6_setup
ユーティリティによる IPv6 の初期構成が完了したら,必要に応じて次の作業を実行します。
6bone ネットワークへの接続
IPv6 用の新しいインタフェースの初期化
構成済みトンネルの作成
インタフェースへのアドレスの追加またはアドレスの削除
省略時のルータの追加または削除
オンリンク・プレフィックスへの経路の手動追加
カーネルのルーティング・サポートの構成
実行時構成ファイル (/etc/rc.config
) の編集
ルータ構成ファイル (/etc/ip6rtrd.conf
) の編集
ipv6
および
iptunnel
カーネル・サブシステムのチューニング
以降の項では,これらの各作業について説明します。
3.8.1 6bone ネットワークへの接続
6bone ネットワークに接続するには,インターネット接続に通常使用している IPv4 パスに近い,適切な 6bone 接続ポイントを選択します。 6bone の Web サイト (http://www.6bone.net) には,6bone ネットワークへの加入方法と接続ポイントの見つけ方に関する情報が掲載されています。
たとえば,Compaq の Palo Alto サイト (米国カリフォルニア州) を経由して 6bone ネットワークに接続するには,ホストやルータ上の IPv6 の構成前または構成後に,次の手順を実行します。
ルータの IPv4 アドレスを次のアドレスに送信し,IPv4 トンネルを登録します。
gw-6bone@pa.dec.com
このトンネルのサポートが構成された旨を通知する HP からの返信を待ちます。 ユーザのサイトで使用する IPv6 グローバル・アドレス・プレフィックスと,HP の Palo Alto のルータの IPv4 アドレスが HP から提供されます。
ip6_setup
ユーティリティを実行してトンネルを構成します。
ホストの構成については
3.7.1 項,ルータの構成については
3.7.2 項を参照してください。
または,iptunnel
コマンドを実行することもできます (3.8.4 項
を参照)。
次のいずれかの HP の IPv6 ノードに対して
ping
コマンドを実行し,トンネルが正しく機能しているかどうかを確認します。
altavista.ipv6.digital.com ftp.ipv6.digital.com www.ipv6.digital.com
システムに新しいインタフェース・カードを追加したり,他の種類のインタフェース・カードと交換した場合には,装着した新しいカードを IPv6 用に初期化しなければなりません。
インタフェースを初期化するには,ifconfig
コマンドを次の構文で使用します。
ifconfig
device
ipv6 up
LAN インタフェースの場合,ifconfig
コマンドはリンク・ローカル・アドレス (FE80::) を生成し,重複アドレスの検出処理を開始します。
たとえば,イーサネット・インタフェース
ee0
を IPv6 用に初期化するには,次のコマンドを実行します。
# ifconfig ee0 ipv6 up
ループバック・インタフェースを IPv6 用に初期化するには,次のコマンドを実行します。
# ifconfig lo0 ipv6 up
自動トンネル・インタフェースを初期化するには,次のコマンドを実行します。
# ifconfig tun0 ipv6 up
このコマンドを実行すると,システムのいずれかの IPv4 アドレスがトンネルの端点として選択されます。
新しいインタフェース・カードを継続して使用する場合には,ip6_setup
ユーティリティを使用してください。
3.8.2.1 IPv6 インタフェース識別子の設定
インタフェースを初期化する際に
ifconfig
コマンドを
ip6interfaceid
パラメータ付きで使用すれば,IPv6 インタフェース ID も設定できます。
たとえば,イーサネット・インタフェース
ee0
を IPv6 用に初期化し,インタフェース ID に 64 ビット値の 0x0123456789abcdef を設定するには,次のコマンドを実行します。
# ifconfig ee0 ip6interfaceid ::0123:4567:89ab:cdef ipv6 up
インタフェース ID は標準の IPv6 アドレス・フォーマットで表現しますが,使用されるのは下位 64 ビットのみです。
3.8.3 インタフェースからの IPv6 の削除
インタフェースから IPv6 を削除すると,すべての IPv6 アドレスや,このインタフェースを経由する IPv6 経路など,このインタフェースに関連する IPv6 構成がすべて削除されます。
インタフェースから IPv6 を削除するには,ifconfig
コマンドを次の構文で使用します。
ifconfig
device
-ipv6
たとえば,イーサネット・インタフェース
ee0
から IPv6 を削除するには,次のコマンドを実行します。
# ifconfig ee0 -ipv6
構成済みトンネル (手動トンネル) を作成するには,/usr/sbin/iptunnel
コマンドを次の構文で使用します。
iptunnel
create remote-tunnel-endpoint
[local-tunnel-endpoint
]
たとえば,リモート・システム
16.20.136.47
へのトンネルを作成するには,次のコマンドを実行します。
# iptunnel create 16.20.136.47
作成したトンネルを IPv6 用に初期化するには,次のコマンドを実行します。
# ifconfig ipt0 ipv6 up
この変更を恒久的にするには,ip6_setup
ユーティリティを使用します。
3.8.5 インタフェースへのアドレスの追加
インタフェースへの IPv6 アドレスの追加または割り当てを行い,同時にインタフェース ID を自動的に追加するようにカーネルに指示するには,ifconfig
コマンドを次の構文で使用します。
ifconfig
interface-name inet6 ip6prefix prefix
次のコマンドは,インタフェース
ln0
にプレフィックス
3ffe:1200:4112:2::/64
を割り当てます (インタフェース ID は
0a00:2bff:fe12:3456
)。
このコマンドの結果,インタフェースのアドレスは
3ffe:1200:4112:2:0a00:2bff:fe12:3456
になります。
# ifconfig ln0 inet6 ip6prefix 3ffe:1200:4112:2::/64
ip6prefix
パラメータが,インタフェース ID をアドレス・プレフィックスに自動的に追加するようにカーネルに指示します。
完全な IPv6 アドレスをインタフェースに手動で追加または割り当てるには,ifconfig
コマンドを次の構文で使用します。
ifconfig
interface-name inet6 address
次のコマンドは,インタフェース
ee0
にアドレス
3ffe:1200:4112:2::1
を割り当てます。
# ifconfig ee0 inet6 3ffe:1200:4112:2::1
注意
IPv6 ホストでは,ルータから通知される情報を基に,
nd6hostd
デーモンによってインタフェース・プレフィックスが自動的に構成されます。IPv6 ルータでは,
/etc/ip6rtrd.conf
ファイルの内容を基に,ip6rtrd
デーモンによってインタフェース・プレフィックスが自動的に構成されます。
インタフェースから IPv6 アドレスを手動で削除するには,ifconfig
コマンドを次の構文で使用します。
ifconfig
interface-name inet6 delete address
次に例を示します。
# ifconfig ee0 inet6 delete 3ffe:1200:4112:2::1
省略時のルータを追加するには,route
ユーティリティを次の構文で使用します。
route
add -inet6 default router-address -dev interface
次に例を示します。
# route add -inet6 default fe80::0a00:2bff:fe12:3456 -dev ee0
省略時のルータを削除するには,route
ユーティリティを次の構文で使用します。
route
delete -inet6 default router-address -dev interface
次に例を示します。
# route delete -inet6 default fe80::0a00:2bff:fe12:3456 -dev ee0
注意
IPv6 ホストの場合,ルータから通知される情報を基に,
nd6hostd
デーモンによってルータの追加および削除が自動的行われます。
インタフェースにアドレスとプレフィックスを手動で追加すると,静的経路も追加できます。
静的経路を追加すれば,プレフィックスが同じノードへのトラフィックは,ルータを経由せずに直接宛先に送信されます。
たとえば,リンク・ローカル・アドレス
fe80::0a00:2bff:fe12:3456
で初期化したイーサネット・インタフェースにプレフィックス
3ffe:1200:4112:5::/64
を追加した場合,同じプレフィックスを持つ近隣ノードへの経路を追加するには,次のコマンドを使用します。
# route add -inet6 3ffe:1200:4112:5::/64 fe80::0a00:2bff:fe12:3456 -interface
このコマンドによって,プレフィックス
3ffe:1200:4112:5::/64
を持つ宛先が,アドレス
fe80::0a00:2bff:fe12:3456
のインタフェースからアクセスできるようになります。
つまり,3ffe:1200:4112:5::/64
がオンリンク・プレフィックスになります。
注意
IPv6 ホストでは,ルータから通知される情報を基に,
nd6hostd
デーモンが自動的にオンリンク・プレフィックスを追加します。
ルータを構成するには,その前に
ipv6
カーネル・サブシステムの
ipv6forwarding
属性と
ipv6router
属性に 1 を設定して,転送を使用可能にする必要があります。
これらの属性を設定するには,次に示す
sysconfig
コマンドを実行します。
# /sbin/sysconfig -r ipv6 ipv6forwarding=1 # /sbin/sysconfig -r ipv6 ipv6router=1
これらのコマンドは通常,IPv6 ルータとして構成したノードのシステム・スタートアップ・スクリプトで実行されます。
3.8.10 実行時構成ファイルの編集
システムを IPv6 ホストまたは IPv6 ルータとして構成すると,システムのスタートアップ手順で IPv6 の起動に使用される情報が,/etc/rc.config
ファイルに格納されます。
このファイルは,rcmgr
コマンドを使用すると,必要に応じて編集できます。
IPv6 は,次の変数を使用します。
yes
を設定すると,システムのスタートアップ時に IPv6 が起動されます。
IPv6 のデバイス名を指定します。
このデバイス名は,rc.config
ファイル内に存在しなければなりません。
n
は整数で,0 から順に,デバイス 1 つごとに 1 ずつ増やします。
システムのスタートアップ時に
ifconfig
コマンド行で使用するオプションとパラメータを指定します。
n
は,IP6DEV_n
変数と同じ値の整数です。
m
は整数で,0 から順に,各デバイスの
ifconfig
行 1 つごとに 1 ずつ増やします。
構成した IPv6 デバイスの数を指定します。
yes
を設定すると,ノードを IPv6 ルータとして構成します。
no
を設定すると,ノードを IPv6 ホストとして構成します。
yes
を設定すると,IPv6 のスタートアップ時に IPv6 ルータ・デーモン (ip6rtrd
) を起動します。
ip6rtrd
デーモンの起動時に使用するオプションとパラメータを含む文字列を指定します。
yes
を設定すると,IPv6 のスタートアップ時に IPv6 ホスト・デーモン (nd6hostd
) を起動します。
nd6hostd
デーモンの起動時に使用するオプションとパラメータを含む文字列を指定します。
システムのスタートアップ時に構成済みトンネルの作成に使用するオプションとパラメータを含む文字列を指定します。
この変数が使用されるのは,IP6DEV_n
変数で指定したデバイスが構成済みトンネル (ipt0
など) である場合のみです。
例 3-1
に,/etc/rc.config
ファイル内の IPv6 ホスト用変数の一例を示します。
例 3-1: IPv6 ホストの構成変数の例
IPV6="yes" IP6DEV_0="tu0" IP6IFCONFIG_0_0="ipv6 up" IP6DEV_1="tun0" IP6IFCONFIG_1_0="ipv6 up" NUM_IP6CONFIG=2 IP6ROUTER="no" IP6RTRD="no" IP6RTRD_FLAGS="" ND6HOSTD="yes" ND6HOSTD_FLAGS=" -u -n host1.corp.com"
例 3-2
に,/etc/rc.config
ファイル内の IPv6 ルータ用変数の一例を示します。
例 3-2: IPv6 ルータの構成変数の例
IPV6="yes" IP6DEV_0="tu0" IP6IFCONFIG_0_0="ipv6 up" IP6DEV_1="tu1" IP6IFCONFIG_1_0="ipv6 up" NUM_IP6CONFIG=2 IP6ROUTER="yes" IP6RTRD="yes" IP6RTRD_FLAGS="/etc/ip6rtrd.conf" ND6HOSTD="no" ND6HOSTD_FLAGS=""
システムを IPv6 ルータとして構成すると,ip6rtrd
デーモンによって定期的にルータ通知メッセージが送信されます。
このメッセージは,次の目的に使用されます。
自分自身を,IPv6 トラフィックの省略時ルータの候補として通知する
同じリンク上の IPv6 ノードは,この通知を近隣検出処理の一環として受信します。
IPv6 アドレス・プレフィックスを通知する
この場合,同じリンク上の IPv6 ノードは,アドレスの自動構成を実行します。
/etc/ip6rtrd.conf
ファイルには,ルータ通知メッセージの送信に必要な構成データが格納されています。
このファイルは,システムがルータとして構成されている場合,ip6_setup
の実行時に作成されます。
リンク・インタフェースおよび通知されたプレフィックスが挿入され,その他の省略時の値が使用されます。
このファイルは,複数のプレフィックス値を使用している場合など,ネットワーク環境上の必要に応じて編集できます。
詳細については,
ip6rtrd.conf
(4)
例 3-3
に,ルータ構成ファイルの一例を示します。
例 3-3: ip6rtrd.conf ファイルの例
# # Sample ip6rtrd configuration file # interface tu0 { MaxRtrAdvInterval 600 MinRtrAdvInterval 200 AdvManagedFlag 0 AdvOtherConfigFlag 0 AdvLinkMTU 1500 AdvReachableTime 0 AdvRetransTimer 0 AdvCurHopLimit 64 AdvDefaultLifetime 1800 Prefix dec:1::/64 { AdvValidLifetime 1200 AdvPreferredLifetime 600 AdvOnLinkFlag 1 AdvAutonomousFlag 1 } }
IPv6 サブシステムは,sysconfig
ユーティリティや
dxkerneltuner
ユーティリティを使用してチューニングできます。
IPv6 サブシステムのチューニングについては
sys_attrs_ipv6
(5)sys_attrs_iptunnel
(5)3.9 IPv6 デーモンのログ・ファイル
nd6hostd
デーモンと
ip6rtrd
デーモンは,情報イベントや重大なイベントのログを,/var/adm/syslog.dated/date/daemon.log
ファイルに取得します。
このメッセージ・ファイルの内容は,SysMan Menu ユーティリティのイベント・ビューアで参照できます。
イベント・ビューアについての詳細は,11.9 節を参照してください。
これらのデーモンは,省略時の設定ではデバッグ情報のログを取得しません。
nd6hostd
デーモンにデバッグ情報のログを取得させるには,次のコマンドを実行します。
# rcmgr set ND6HOSTD_FLAGS "-d -l /usr/tmp/nd6hostd.log" # /usr/sbin/rcinet restart inet6
ip6rtrd
デーモンにデバッグ情報のログを取得させるには,次のコマンドを実行します。
# rcmgr set IP6RTRD_FLAGS "-d -l /usr/tmp/ip6rtrd.log" # /usr/sbin/rcinet restart inet6