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

パート II TCP/IP の管理

このパートでは、TCP/IP ネットワークを構成、管理、および障害追跡するための手順および概念情報について説明します。

第 2 章 TCP/IP ネットワークの計画 (手順)

この章では、コスト効率のよい整然とした方法でネットワークを構築するために解決しておく必要のある事柄について説明します。これらの事柄を解決後、ネットワークを設定し管理するための計画を立てることができます。

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

ネットワークを構成する手順については、第 5 章TCP/IP ネットワークサービスと IPv4 アドレス指定の構成 (作業)を参照してください。

ネットワーク計画 (作業マップ)

次の表に、ネットワークを構成するための各種作業の一覧を示します。表では、各作業で実行する内容について説明し、作業の具体的な実行手順が詳しく説明されている現在のマニュアル内の節を示しています。

作業 

説明 

参照先 

1. ハードウェア要件とネットワークトポロジを計画します 

必要な機器の種類とサイトの機器レイアウトを決定します。 

2. ネットワークの登録 IP アドレスを取得します 

インターネットなど、自分のローカルネットワークの外部と通信を行う計画の場合、ネットワークには一意の IP アドレスが必要となります。 

「ネットワークの IP 番号の取得」を参照してください。

3. IPv4 ネットワーク接頭辞または IPv6 サイト接頭辞に基づいたシステムの IP アドレス指定スキームを作成します。 

サイトでのアドレスの割り振りを決定します。 

「IPv4 アドレス指定スキーマの設計」または「IPv6 アドレス指定計画の準備」を参照してください。

4. ネットワーク上のすべてのマシンの IP アドレスとホスト名を含むリストを作成します。  

このリストを使用してネットワークデータベースを構築します 

「ネットワークデータベース」を参照してください

5. ネットワークで、どのネームサービスを使用するかを決定します。  

ローカルの /etc ディレクトリで、NIS、LDAP、DNS、またはネットワークデータベースを使用するかどうかを決定します。

「ネームサービスとディレクトリサービスの選択」を参照してください

6. 必要に応じて、管理作業を分担するための区分を設定します。 

サイトで、管理作業を分担するための区分にネットワークを分割する必要があるかどうかを決定します 

「管理作業の分化」を参照してください

7. ネットワーク設計でのルーターの位置を決定します。 

ネットワークがルーターを必要とする大きさの場合は、ルーターをサポートするネットワークトポロジを作成します。 

「ネットワーク上でのルーターの計画」を参照してください

8. 必要な場合、サブネット戦略を策定します。 

IP アドレス空間を管理するためや、ユーザーが使用できる IP アドレスを増やすために、サブネットの作成が必要な場合があります。 

IPv4 でのサブネット計画については、「サブネット化とは」を参照してください

IPv6 サブネットの計画については、「サブネット用の番号付けスキームの作成」を参照してください

ネットワークハードウェアの決定

ネットワークを設計するときは、自分の組織のニーズに一番合った種類のネットワークを選ばなければなりません。計画段階の決定事項には、次のネットワークハードウェアを含めてください。

これらの要因に基づいて、ローカルエリアネットワークのサイズを決定できます。


注 –

ネットワークハードウェアの計画方法については、このマニュアルでは取り上げません。ハードウェアに付属しているマニュアルを参照してください。


ネットワークの IP アドレス指定形式の決定

サポート予定のシステムの数によって、ネットワークの構成方法が変わります。組織によっては、1 つの階または 1 つのビルの中にある数十台のスタンドアロンシステムから成る小さいネットワークが必要な場合もあります。また、複数のビルに散在する 1000 以上のシステムを持つネットワークの設定が必要な場合もあります。このような大きい設定の場合は、ネットワークを「サブネット」と呼ばれる小区分に分割することが必要になる場合もあります。

ネットワークアドレス指定スキームを計画する場合は、次の要因を考慮してください。

1990 年以来、世界中にインターネットが広まり、使用可能な IP アドレスが不足してきました。この状況を改善するために、インターネットエンジニアリングタスクフォース (IETF) は、多数の代替 IP アドレス指定を開発してきました。今日使用されている IP アドレスの種類には、次のようなものがあります。

組織に 2 つ以上のネットワーク用 IP アドレスが割り当てられている、または組織がサブネットを使用している場合は、組織内の中央の管理者にネットワーク IP アドレスの割り当てを担当させます。この責任者が、割り当てられたネットワーク IP アドレスのプールを管理する権限を保持し、ネットワーク、サブネット、ホストアドレスを必要に応じて割り当てます。問題の発生を避けるために、組織内に重複したネットワーク番号や無秩序なネットワーク番号が生じないことを確認してください。

IPv4 アドレス

この 32 ビットのアドレスは、TCP/IP 向けに設計された元々の IP アドレス指定書式です。元来、IP ネットワークには 3 つのクラス、A、B、C があります。ネットワークに割り当てられた「ネットワーク番号」は、このクラス指定とホストを表す 8 以上のビットを反映しています。クラスベースの IPv4 アドレスでは、ネットワーク番号のネットマスクを構成する必要があります。さらに、ローカルネットワーク上のシステムで使用可能なアドレスを増やす目的で、これらのアドレスは、多くの場合サブネットに分割されます。

今日、IP アドレスは「IPv4 アドレス」と呼ばれます。ISP からクラスベースの IPv4 ネットワーク番号を入手することはできなくなりましたが、既存ネットワークの多くは、まだこの番号を持っています。IPv4 アドレスの管理については、「IPv4 アドレス指定スキーマの設計」を参照してください。

CIDR 書式の IPv4 アドレス

IETF は、短期または中期的に IPv4 アドレスの不足に対処するために CIDR (Classless Inter-Domain Routing) アドレスを開発しました。さらに、CIDR 書式は、世界的なインターネット経路制御テーブルの容量不足の解決も意図しています。CIDR 表記の IPv4 アドレスは、長さが 32 ビットで、同じドット付き 10 進数の書式を持っています。ただし、CIDR は、IPv4 アドレスのネットワーク部を定義するために、右端のバイトのあとに接頭辞指定を追加します。詳細については、「IPv4 CIDR アドレス指定スキーマの設計」を参照してください。

DHCP アドレス

動的ホスト構成プロトコル (DHCP) を使用すると、システムは、起動プロセスの一環として、IP アドレスなどの構成情報を DHCP サーバーから受け取ることができます。DHCP サーバーは、DHCP クライアントに割り当てるアドレスの入った IP アドレスのプールを格納しています。そのため、DHCP を使用する 1 つのサイト用の IP アドレスプールは、すべてのクライアントに常時 IP アドレスを割り当てた場合に比べて、小さくなります。Oracle Solaris DHCP サービスを設定すると、サイトの IP アドレスまたはアドレスの一部を管理できます。詳細は、第 12 章Oracle Solaris DHCP について (概要)を参照してください。

IPv6 アドレス

使用可能な IPv4 アドレスの不足の長期的解決策として、IETF は 128 ビットの IPv6 アドレスを導入しました。IPv6 アドレスは、IPv4 で使用できるものより大きなアドレス空間を提供します。Oracle Solaris では、デュアルスタック TCP/IP を使用することで、同一ホスト上に IPv4 と IPv6 のアドレス指定を行うことができます。CIDR 形式の IPv4 アドレスと同様、IPv6 アドレスにはネットワーククラスまたはネットマスクの考え方はありません。CIDR と同様、IPv6 アドレスは接頭辞を使用して、サイトのネットワークを定義するアドレスの部分を指定します。IPv6 の紹介については、「IPv6 アドレス指定の概要」を参照してください。

プライベートアドレスと文書の接頭辞

IANA では、プライベートネットワークで使用するために、IPv4 アドレスのブロックと IPv6 サイト接頭辞が予約されています。これらのアドレスは、企業ネットワーク内のシステムに割り振ることができますが、プライベートアドレスを持つパケットは、インターネットでは経路制御できないことに注意してください。プライベートアドレスの詳細については、「プライベート IPv4 アドレスの使用」を参照してください。


注 –

プライベート IPv4 アドレスは、文書化目的でも予約されています。このマニュアルの例では、プライベート IPv4 アドレスと予約 IPv6 文書接頭辞を使用します。


ネットワークの IP 番号の取得

IPv4 ネットワークは、IPv4 ネットワーク番号とネットワークマスク、つまり「ネットマスク」を組み合わせて定義されます。IPv6 ネットワークは、「サイト接頭辞」、およびサブネット化されている場合は、「サブネット接頭辞」で定義されます。

ネットワークを永遠にプライベートにするつもりでない限り、そのネットワークのローカルユーザーは、大部分の場合、ローカルネットワークの外と通信する必要があります。したがって、ネットワークが外部と通信できるように、適切な組織からネットワークの登録 IP 番号を取得する必要があります。取得したアドレスが、IPv4 アドレス指定スキームのネットワーク番号または IPv6 アドレス指定スキームのサイト接頭辞となります。

インターネットサービスプロバイダは、複数のサービスレベルを基準にした課金体系によって、ネットワークの IP アドレスを提供します。各 ISP を調査して、どこが自分のネットワークに最も合ったサービスを提供しているのかを決定します。一般的に ISP は、企業に対して動的に割り当てられるアドレスまたは静的 IP アドレスを提供します。IPv4 アドレスと IPv6 アドレスの両方を提供する ISP もあります。

自分が ISP の場合は、自分のロケールのインターネットレジストリ (IR) から、顧客用の IP アドレスを取得します。インターネットアサインドナンバーオーソリティー (IANA) は、世界中で登録 IP アドレスの IR への委託に対して最終的な責任を負います。各 IR には、IR がサービスを提供するロケールの登録情報とテンプレートが含まれています。IANA とその IR については、IANA の IP Address Service のページを参照してください。


注 –

現在、使用しているネットワークを外部の TCP/IP ネットワークに接続していなくても、勝手な IP アドレスを割り当てないでください。代わりに、「プライベート IPv4 アドレスの使用」に説明があるプライベートアドレスを使用してください。


IPv4 アドレス指定スキーマの設計


注 –

IPv6 アドレスの計画については、「IPv6 アドレス指定計画の準備」を参照してください。


この節では、IPv4 アドレス指定計画を立てるにあたって役立つ IPv4 アドレス指定の概要を紹介します。IPv6 アドレスについては、「IPv6 アドレス指定の概要」を参照してください。DHCP アドレスについては、第 12 章Oracle Solaris DHCP について (概要)を参照してください。

各 IPv4 ベースのネットワークには次の要素が必要です。

IPv4 アドレスは 32 ビットの数値で、「ネットワークインタフェースへの IP アドレスの適用法」に説明されているように、システム上のネットワークインタフェースを一意に識別します。IPv4 アドレスは 10 進数で表され、ピリオドで区切った 4 つの 8 ビットフィールドに分割されます。個々の 8 ビットフィールドは、それぞれ IPv4 アドレスの 1 バイトを表します。このような形式で IPv4 アドレスのバイトを表す方式を「ドット化 10 進形式」と呼びます。

次の図に、IPv4 アドレス 172.16.50.56 のコンポーネント部を示します。

図 2–1 IPv4 アドレス形式

図では、IPv4 アドレスをネットワーク部とネットワークホストという 2 つの部分に分割します。これらについては、次で説明します。

172.16

登録 IPv4 ネットワーク番号。クラスベースの IPv4 表記では、この番号が IP ネットワーククラスも定義します。この例では、クラスは、IANA によって登録されたクラス B です。

50.56

IPv4 アドレスのホスト部。ホスト部は、ネットワーク上のシステムのインタフェースを一意に識別します。ローカルネットワーク上の各インタフェースについて、アドレスのネットワーク部は同じで、ホスト部はそれぞれ異なる必要があります。

クラスベースの IPv4 ネットワークをサブネット化する予定の場合は、サブネットマスク、つまり、「ネットマスク」を定義する必要があります (netmasks データベース」を参照)。

次の例は、CIDR 形式のアドレス 192.168.3.56/22 を示します。

図 2–2 CIDR 形式の IPv4 アドレス

図は、CIDR アドレスの 3 つの構成部、ネットワーク部、ホスト部およびネットワーク接頭辞を示します。これらについては、次で説明します。

192.168.3

ISP または IR から受け取った IPv4 ネットワーク番号で構成されるネットワーク部。

56

システムのインタフェースに割り当てるホスト部。

/22

ネットワーク番号を構成するアドレスのビット数を定義するネットワーク接頭辞。ネットワーク接頭辞は、IP アドレスのサブネットマスクも提供します。また、ISP または IR によっても割り当てられます。

Oracle Solaris ベースのネットワークでは、標準の IPv4 アドレス、CIDR 形式の IPv4 アドレス、DHCP アドレス、IPv6 アドレス、および プライベート IPv4 アドレスを組み合わせることができます。

IPv4 アドレス指定スキーマの設計

この節では、標準 IPv4 アドレスを整理するクラスについて説明します。IANA はクラスベースのネットワーク番号の配布をやめていますが、これらのネットワーク番号は今でも多くのネットワークで使用されています。クラスベースのネットワーク番号を持つサイトでは、アドレス空間の管理が必要な場合もあります。IPv4 ネットワーククラスの詳細については、「ネットワーククラス」を参照してください。

次の表は、標準 IPv4 アドレスがどのようにネットワークアドレス空間とホストアドレス空間に分かれるかを示しています。どのクラスについても、「範囲」の欄は、ネットワーク番号の最初のバイトの 10 進数値の範囲を示しています。「ネットワークアドレス」は、IPv4 アドレスの中でネットワーク部の働きをするバイト数を示します。 xxx は 1 バイトを表します。「ホストアドレス」は、アドレスのホスト部を表すバイト数を示します。たとえばクラス A ネットワークアドレスの場合は、最初の 1 バイトがネットワーク番号で、残りの 3 バイトがホスト番号です。クラス C ネットワークの場合はこの関係が逆になり、最初の 3 バイトがネットワーク番号で、残りの 1 バイトがホスト番号です。

表 2–1 IPv4 クラスの分割

クラス 

バイトの範囲 

ネットワーク番号 

ホストアドレス 

A

0 〜 127  

xxx

xxx.xxx. xxx

B

128 〜 191  

xxx.xxx

xxx.xxx

C

192 〜 223  

xxx.xxx. xxx

xxx

IPv4 アドレスの最初のバイトが示す数字は、そのネットワークがクラス A、B、C のどれなのかを定義します。残りの 3 バイトは 0 から 255 までの数字です。0 と 255 の 2 つは予約されています。1 から 254 までの数字は、IANA によってネットワークに割り当てられたネットワーククラスに従って、各バイトに割り当てることができます。

次の表は、IPv4 アドレスのどのバイトがユーザーに割り当てられているかを示しています。また、ホストへの割り当てが可能な、各バイト内の値の範囲を示します。

表 2–2 割り当て可能な IPv4 クラスの範囲

ネットワーククラス 

バイト 1 の範囲 

バイト 2 の範囲 

バイト 3 の範囲  

バイト 4 の範囲 

A

0 〜 127 

1 〜 254 

1 〜 254  

1 〜 254 

B

128 〜 191 

IANA によって事前割り当て 

1 〜 254 

1 〜 254 

C

192 〜 223 

IANA によって事前割り当て 

IANA によって事前割り当て 

1 〜 254 

IPv4 サブネット番号

多数のホストを持つローカルネットワークは、サブネットに分割される場合があります。IPv4 ネットワーク番号をサブネットに分割した場合は、ネットワーク識別子を各サブネットに割り当てる必要があります。IPv4 アドレスのホスト部の一部のビットをネットワーク識別子として使用することで、IPv4 アドレス空間の有効率を最大限にできます。ネットワーク識別子として使用した場合、アドレスの指定した部分がサブネット番号になります。サブネット番号は、ネットマスクを使って作成します。ネットマスクは、IPv4 アドレスのネットワーク部とサブネット部を選択するビットマスクです。詳細は、「IPv4 アドレス用のネットワークマスクの作成」を参照してください。

IPv4 CIDR アドレス指定スキーマの設計

元々 IPv4 を構成していたネットワーククラスは、現在インターネットでは使用されていません。現在は、IANA は、クラスを持たない CIDR 形式のアドレスを世界中のレジストリに配布しています。ISP から提供される IPv4 アドレスはすべて CIDR 形式です (図 2–2を参照)。

CIDR アドレスのネットワーク接頭辞は、ネットワーク上のホストに対して割り当て可能な IPv4 アドレスの数を示しています。これらのホストアドレスは、ホストのインタフェースに割り当てられます。ホストに複数の物理インタフェースがある場合は、使用されているすべての物理インタフェースにホストアドレスを割り当てる必要があります。

CIDR アドレスのネットワーク接頭辞は、サブネットマスクの長さも定義します。大部分の Oracle Solaris 10 コマンドは、ネットワークのサブネットマスクの CIDR 接頭辞の指定を認識します。ただし、Oracle Solaris インストールプログラムおよび /etc/netmask ファイルでは、ドット付き 10 進数表現を使用して、サブネットマスクを設定する必要があります。この 2 つの場合、次の表に示されているように、CIDR ネットワーク接頭辞のドット付き 10 進数表現を使用してください。

表 2–3 CIDR 接頭辞と 10 進数での表現

CIDR ネットワーク接頭辞 

割り当て可能な IP アドレス 

ドット付き 10 進数でのサブネット表現 

/19 

8,192  

255.255.224.0 

/20 

4,096  

255.255.240.0 

/21 

2,048 

255.255.248.0 

/22 

1024 

255.255.252.0 

/23 

512 

255.255.254.0 

/24 

256 

255.255.255.0 

/25 

128 

255.255.255.128 

/26 

64 

255.255.255.192 

/27 

32 

255.255.255.224 

CIDR アドレスについては、次の文書を参照してください。

プライベート IPv4 アドレスの使用

IANA は、企業がプライベートネットワークのために使用できるように IPv4 アドレスの 3 つのブロックを予約しています。これらのアドレスは、RFC 1918, Address Allocation for Private Internets に定義されています。1918 アドレスとしても知られるこれらの「プライベートアドレス」は、企業のイントラネット内のローカルネットワーク上のシステムに使用できます。ただし、インターネット上ではプライベートアドレスは無効です。ローカルネットワークの外部とも通信する必要があるシステムでは使用しないでください。

次の表に、プライベート IPv4 アドレスの範囲と、各範囲に対応するネットマスクの一覧を示します。

IPv4 アドレス範囲 

ネットマスク 

10.0.0.0 - 10.255.255.255 

10.0.0.0 

172.16.0.0 - 172.31.255.255 

172.16.0.0 

192.168.0.0 - 192.168.255.255 

192.168.0.0 

ネットワークインタフェースへの IP アドレスの適用法

ネットワークと接続するには、システムに 1 つ以上の「物理ネットワークインタフェース」が必要になります。各ネットワークインタフェースは、それぞれ一意な IP アドレスを持っていなければなりません。Oracle Solaris のインストール時には、インストールプログラムが最初に検出したインタフェースの IP アドレスを設定する必要があります。通常、そのインタフェースは、eri0 または hme0 などの device-name0 という名前を持ちます。このインタフェースは、「一次ネットワークインタフェース」とみなされます。

ホストに 2 番目のネットワークインタフェースを追加する場合は、そのインタフェースにも一意の IP アドレスが必要です。2 番目のネットワークインタフェースを追加すると、ホストは「マルチホーム」になります。一方、2 番目のネットワークインタフェースをホストに追加し、IP 転送を有効にした場合は、そのホストはルーターになります。説明は、「IPv4 ルーターの構成」を参照してください。

/devices ディレクトリには、各ネットワークインタフェースのデバイス名、デバイスドライバ、関連するデバイスファイルが入っています。ネットワークインタフェースのデバイス名には、たとえば le0 または smc0 などがあります。これらは、よく使用される 2 つの Ethernet インタフェースのデバイス名です。

インタフェースに関する情報および作業については、「Solaris 10 3/05 の管理インタフェース」または第 6 章ネットワークインタフェースの管理 (作業)を参照してください。


注 –

このマニュアルは、システムに Ethernet ネットワークインタフェースがあることを想定しています。別のネットワークメディアを使用する予定の場合は、そのネットワークインタフェースのマニュアルの中の構成に関する情報を参照してください。


ネットワーク上のエンティティーへの名前付け

割り当てられたネットワーク IP アドレスを受け取り、その IP アドレスをシステムに指定すると、次の作業はホストへ名前を割り当てることです。ここで、ネットワーク上のネームサービスをどのように扱うかを決める必要があります。これらの名称は最初にネットワークを設定する場合や、後日ルーター、ブリッジまたは PPP を使ってネットワークを拡張する場合に使います。

TCP/IP は、ネットワーク上の特定のシステムを見つけるときに、そのシステムの IP アドレスを使用します。ただし、認識可能な名前を使用すると、そのシステムを簡単に識別できます。したがって、TCP/IP プロトコル (および Oracle Solaris) では、システムを一意なものとして識別するために、IP アドレスとホスト名の両方が必要です。

TCP/IP の視点から見れば、ネットワークは名前が付けられたエンティティーの集合です。ホストは名前が付けられた 1 個のエンティティーです。ルーターも名前が付けられた 1 個のエンティティーです。さらに、ネットワークも名前が付けられた 1 個のエンティティーです。ネットワークがインストールされているグループや部門にも、名前を付けることができます。部課、地区、会社も同様です。理論的には、ネットワークを識別するために使用できる名前の階層については、事実上まったく制限はありません。このドメイン名で「ドメイン」が特定されます。

ホスト名の管理

多くのサイトでは、ユーザーはマシンのホスト名を選択できます。サーバーにも少なくとも 1 つのホスト名が必要で、このホスト名は一次ネットワークインタフェースの IP アドレスに関連付けられます。

システム管理者は、自己の管轄ドメイン内のすべてのホスト名が一意なものであることを確認する必要があります。言い換えると、ネットワーク上の 2 つのマシンが同じ「fred」という名前を持つことはできません。ただし、「fred」というマシンが複数の IP アドレスを持つことは可能です。

ネットワークの計画を立てるときは、IP アドレスとそれぞれのホスト名のリストを作って、設定工程中に各マシンに簡単にアクセスできるようにしてください。このリストは、すべてのホスト名が一意かどうかを検査するために役立ちます。

ネームサービスとディレクトリサービスの選択

Oracle Solaris を使用すると、3 種類のネームサービスを使用できます。3 つのネームサービスとは、ローカルファイル、NIS、DNS です。ネームサービスは、ネットワーク上のマシンに関する重要な情報、たとえばホスト名、IP アドレス、Ethernet アドレスなどを保持しています。Oracle Solaris では、ネームサービスに加えて、またはネームサービスの代わりに LDAP ディレクトリサービスを使用することもできます。Oracle Solaris のネームサービスについては、『Solaris のシステム管理 (ネーミングとディレクトリサービス : DNS、NIS、LDAP 編)』のパート I「ネームサービスとディレクトリサービスについて」を参照してください。

ネットワークデータベース

オペレーティングシステムをインストールするときに、手順の一環として、サーバー、クライアント、スタンドアロンシステムのホスト名および IP アドレスを指定します。Oracle Solaris インストールプログラムは、この情報を hosts に追加し、Solaris 10 11/06 以前の Solaris 10 リリースでは ipnodes ネットワークデータベースにも追加します。このデータベースは、ネットワーク上の TCP/IP の動作に必要な情報を含んでいるネットワークデータベースセットの一部です。管理者が自己のネットワーク用として選択したネームサービスは、これらのデータベースを読み取ります。

ネットワークデータベースの設定は重要です。したがって、ネットワーク計画工程の一環として、どのネームサービスを使用するかを決定する必要があります。ネームサービスの使用の決定は、ネットワークを管理ドメインとして編成するかどうかにも影響を与えます。「ネットワークデータベースと nsswitch.conf ファイル」は、ネットワークデータベースのセットを詳細に説明しています。

ネームサービスとしての NIS または DNS の使用

NIS および DNS ネームサービスは、ネットワーク上の複数のサーバーのネットワークデータベースを格納しています。これらのネームサービス、およびデータベースの設定方法については、『Solaris のシステム管理 (ネーミングとディレクトリサービス : DNS、NIS、LDAP 編)』を参照してください。このガイドでは、「名前空間」と「管理ドメイン」の概念についても詳しく説明されています。

ネームサービスとしてのローカルファイルの使用

NIS、LDAP または DNS を実行しないと、ネットワークは、「ローカルファイル」を使用してネームサービスを提供します。「ローカルファイル」とは、ネットワークデータベースが使用するためのものとして /etc ディレクトリに入っている一連のファイルのことです。このマニュアルに示す手順では、特に断らない限り、ネームサービスとしてローカルファイルを使用しているものとします。


注 –

ネットワーク用のネームサービスとしてローカルファイルを使用することに決めた場合、後日、別のネームサービスを設定することもできます。


ドメイン名

多くのネットワークは、ホストとルーターを管理ドメインの階層で整理しています。NIS または DNS のネームサービスを使用する場合は、所属組織のドメイン名として、全世界の中で一意な名前を選択する必要があります。ドメイン名が一意であることを確認するには、そのドメイン名を InterNIC に登録する必要があります。DNS を使う予定がある場合は、必ず選択したドメイン名も登録します。

ドメイン名は階層構造になっています。一般に、新規のドメインは、既存の関連するドメインの下に配置されます。たとえば、子会社のドメイン名はその親会社のドメイン名の下に配置されます。特にほかとの関連性のない組織のドメイン名は、既存の最上位ドメインのいずれかの下に直接配置できます。

次に最上位ドメインの例を 2、3 示します。

その名前が一意であるという制限を守って、自分の組織を識別する名前を選択します。

管理作業の分化

管理作業の分業化の問題は、規模と制御の問題に関係します。ネットワーク内のホストとサーバーの数が増えるに従って、管理作業はますます複雑になります。このような状況に対処するための方法としては、管理部門を増設することが考えられます。そのためには、特定のクラスのネットワークを増設したり、既存のネットワークをサブネットに分割したりします。ネットワーク管理の作業を分化するかどうかは、次の要因によって判断します。

ネットワーク上でのルーターの計画

TCP/IP では、ネットワークに 2 種類のエンティティーがあったことを思い出してください。 つまりホストとルーターだけです。ホストはすべてのネットワークに必要ですが、ルーターはすべてのネットワークに必要なわけではありません。ネットワークの物理的なトポロジによってルーターを使用する必要があるかどうかが決まります。この節では、ネットワークトポロジと経路制御の概念を紹介します。これらの概念は、既存のネットワーク環境に別のネットワークを追加すると決めた場合に重要になります。


注 –

IPv4 ネットワークでのルーター構成の詳細と手順については、「IPv4 ネットワーク上でのパケット転送と経路制御」を参照してください。IPv6 ネットワークでのルーター構成の詳細と手順については、「IPv6 ルーターの構成」を参照してください。


ネットワークトポロジの概要

ネットワークトポロジは、ネットワークの組み合わせ方を定義します。ルーターは、ネットワークを相互に接続するエンティティーです。ルーターは、複数のネットワークインタフェースを持ち、IP 転送を実行するマシンです。ただし、「IPv4 ルーターの構成」で説明されているとおりに正しく設定されるまで、システムはルーターとして機能できません。

ルーターは、複数のネットワークに接続して、より大きなインターネットワークを形成します。ルーターは、隣接する 2 つのネットワーク間でパケットの受け渡しをするように構成する必要があります。さらに、隣接するネットワークを越えた位置にあるネットワークに、パケットを渡す機能も備えられている必要があります。

次の図に、ネットワークトポロジの基本部分を示します。最初の図は、2 つのネットワークを 1 台のルーターで接続した単純な構成です。2 番目の図は、3 つのネットワークを 2 台のルーターで相互接続した構成を示しています。最初の例では、ルーター R がネットワーク 1 とネットワーク 2 を連結して、より大きなインターネットワークを作っています。2 番目の例では、ルーター R1 はネットワーク 1 と 2 に接続し、ルーター R2 は、ネットワーク 2 と 3 に接続しています。この接続で、ネットワーク 1、2、3 を含むネットワークが形成されます。

図 2–3 基本的なネットワークトポロジ

この図では、1 台のルーターで接続した 2 つのネットワークトポロジ、および 2 台のルーターで接続した 3 つのネットワークトポロジを示しています。

ネットワークをインターネットワークに結合したあと、ルーターは、宛先ネットワークのアドレスを基にネットワーク間でパケットの経路制御を行います。インターネットワークがより複雑になるにつれて、ルーターがパケットの宛先を決定する回数は増加します。

次の図に、より複雑な例を示します。ルーター R3 は、ネットワーク 1 と 3 に直接接続されており、この冗長性によって信頼性が向上します。ネットワーク 2 が停止しても、ルーター R3 は、ネットワーク 1 と 3 の間にルートを提供できます。 多くのネットワークを相互接続することが可能です。ただし、相互接続するネットワークは、同じネットワークプロトコルを使う必要があります。

図 2–4 ネットワーク間に追加パスを提供するネットワークトポロジ

この図では、3 台のルーターに接続した 3 つのネットワークトポロジを示しています。

ルーターがどのようにパケットを転送するか

パケットヘッダーの一部である受信側の IP アドレスによって、パケットの経路制御方法が決まります。このアドレスにローカルネットワークのネットワーク番号が含まれている場合は、その IP アドレスを持つホストに直接パケットが送られます。ネットワーク番号がローカルネットワークではない場合は、パケットはローカルネットワーク上のルーターに送られます。

ルーターは、「経路制御テーブル」に経路制御情報を格納します。このテーブルには、ルーターが接続されているネットワーク上のホストとルーターの IP アドレスが含まれています。また、それらのネットワークを指すポインタも含まれています。ルーターは、パケットを受信すると、経路制御テーブルを調べて、ヘッダー内の宛先アドレスがテーブルにリストされているかどうかを確認します。テーブルにその宛先アドレスが含まれていない場合は、ルーターは、経路制御テーブルにリストされているほかのルーターにパケットを転送します。ルーターの詳細については、「IPv4 ルーターの構成」を参照してください。

次の図は、2 つのルーターにより接続された 3 つのネットワークのネットワークトポロジを示します。

図 2–5 3 つの相互接続ネットワークを持つネットワークトポロジ

この図では、2 台のルーターに接続した 3 つのネットワークを示しています。

ルーター R1 は、ネットワーク 192.9.200192.9.201 に接続しています。ルーター R2 は、ネットワーク 192.9.201 とネットワーク 192.9.202 と接続しています。ネットワーク 192.9.200 のホスト A がネットワーク 192.9.202 のホスト B にメッセージを送る場合、次のイベントが発生します。

  1. ホスト A は、ネットワーク 192.9.200 にパケットを送り出します。パケットヘッダーには、受信側ホスト B の IPv4 アドレスである 192.9.202.10 が含まれています。

  2. ネットワーク 192.9.200 には、192.9.202.10 の IPv4 アドレスを持つマシンはありません。したがって、ルーター R1 がパケットを受け取ります。

  3. ルーター R1 は自己の経路制御テーブルを調べます。ネットワーク 192.9.201 には、アドレスが 192.9.202.10 であるマシンはありません。ただし、経路制御テーブルにはルーター R2 がリストされています。

  4. R1 は「次のホップ」ルーターとして R2 を選択し、パケットを R2 に送信します。

  5. R2 は、ネットワーク 192.9.201192.9.202 に接続します。R2 は、ホスト B の経路制御情報を持っており、パケットをネットワーク 192.9.202 に転送します。ここで、ホスト B がパケットを受諾します。

第 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」を参照してください。

第 4 章 IPv6 ネットワークの計画 (手順)

新しいネットワークまたは既存のネットワークに IPv6 を配備するには、大規模な計画を立案する必要があります。この章では、IPv6 を自分のサイトに構成する前に行う必要がある計画作業について説明します。既存のネットワークへの IPv6 の配備は、ゆっくりと着実に行う必要があります。この章では、IPv4 専用ネットワークに IPv6 を段階的に導入する方法を説明します。

この章の内容は次のとおりです。

IPv6 の概念については、第 3 章IPv6 の紹介(概要)を参照してください。IPv6 の詳細については、第 11 章IPv6 の詳細 (リファレンス)を参照してください。

IPv6 の計画 (作業マップ)

次の作業マップに、IPv6 の配備に必要な計画作業を達成するための作業を順番に示します。

次の表に、IPv6 ネットワークを構成するための各種作業の一覧を示します。表では、各作業で実行する内容について説明し、作業の具体的な実行手順が詳しく説明されている現在のマニュアル内の節を示しています。

作業 

説明 

説明 

1. IPv6 をサポートするようにハードウェアを準備します。 

IPv6 をサポートできるようにハードウェアをアップグレードします。 

「IPv6 をサポートするためのネットワークトポロジの準備」

2. IPv6 をサポートする ISP を取得します。 

現在利用している ISP が IPv6 をサポートしていることを確認します。サポートしていない場合は、IPv6 をサポートできる ISP を探してください。IPv6 での通信用に 1 つ、IPv4 通信用に 1 つと、2 つの ISP を利用してもかまいません。 

 

3. アプリケーションが IPv6 をサポートすることを確認します。 

使用するアプリケーションが IPv6 環境で動作できることを確認します。 

「IPv6 をサポートするためにネットワークサービスを準備する方法」

4. サイト接頭辞を取得します。 

ISP または最も近い RIR から、当該サイト用の 48 ビットのサイト接頭辞を取得します。 

「サイト接頭辞の取得」

5. サブネットのアドレス指定を計画します。 

IPv6 をネットワーク上のさまざまなノードに構成する前に、全体的な IPv6 ネットワークトポロジとアドレス指定スキームを計画する必要があります。 

「サブネット用の番号付けスキームの作成」

6. トンネルの使用について計画します。 

ほかのサブネットまたは外部ネットワークへのトンネルを実行するルーターを判断します。 

「ネットワークトポロジにおけるトンネルの計画」

7. ネットワーク上のエンティティーへのアドレス指定を計画します。 

IPv6 を構成する前に、サーバー、ルーター、およびホストへのアドレス指定スキームを計画する必要があります。 

「ノードの IPv6 アドレス指定計画の立案」

8. IPv6 セキュリティーポリシーを開発します。 

IPv6 セキュリティーポリシーを開発すると同時に、IP Filter、IP セキュリティーアーキテクチャー (IPsec)、Internet Key Exchange (IKE) などの Oracle Solaris セキュリティー機能を調査します。 

パート IV「IP セキュリティー」

9. (任意) DMZ を設定します。 

IPv6 を構成する前に、セキュリティーのため、DMZ およびそのエンティティーへのアドレス指定を計画する必要があります。 

「IPv6 実装のセキュリティーについて」

10. IPv6 をサポートするようにノードを有効にします。 

すべてのルーターおよびホスト上で IPv6 を構成します。 

「IPv6 ルーターの構成 (作業マップ)」

11. ネットワークサービスを起動します。 

既存のサーバーが IPv6 をサポートできることを確認します。 

「主な TCP/IP 管理作業 (作業マップ)」

12. IPv6 をサポートするようにネームサーバーを更新します。 

新しい IPv6 アドレスをサポートするように、DNS、NIS、および LDAP サーバーが更新されていることを確認します。 

「ネームサービスの IPv6 サポート用の構成」

IPv6 ネットワークトポロジのシナリオ

この章では、典型的な企業ネットワークで IPv6 サービスを計画する方法について説明します。次の図に、この章の説明で使用するネットワークを示します。実際に計画しようとしている IPv6 ネットワークには、この図で示されるネットワークリンクのすべてが含まれるとは限りません。

図 4–1 IPv6 ネットワークトポロジのシナリオ

この図は、IPv6 ネットワークを示します。次のテキストはこの図の内容を記述します。

この企業ネットワークシナリオでは、既存の IPv4 アドレスを持つサブネットが 5 つあります。ネットワークのリンクは管理サブネットに直接対応します。4 つの内部ネットワークは、RFC 1918 スタイルの IPv4 専用アドレスで表されています。このアドレスは、IPv4 アドレスの不足に対応するための一般的な解決方法です。このような内部ネットワークのアドレス指定スキームは次のとおりです。

外部の公開ネットワーク 172.16.85 は、企業の DMZ として機能します。このネットワークには、Web サーバーや匿名 FTP サーバーなど、企業が外部に提供するリソースが含まれます。Router 2 はファイアウォールを実行して、公開ネットワーク 172.16.85 を内部バックボーンから分離します。DMZ のもう一方の終端では、Router 1 がファイアウォールを実行して、企業の境界サーバーとして機能します。

図 4–1 では、公開 DMZ は RFC 1918 専用アドレス 172.16.85 を持っています。実際には、公開 DMZ は登録済み IPv4 アドレスを持っている必要があります。ほとんどの IPv4 サイトは、公開アドレスと RFC 1918 専用アドレスの組み合わせを使用します。しかし、IPv6 を導入すると、公開アドレスと専用アドレスの概念が変わります。 IPv6 は巨大なアドレス空間を持つため、専用ネットワークにも、公開ネットワークにも、IPv6 公開アドレスを使用します。

IPv6 をサポートするための既存のネットワークの準備


注 –

Oracle Solaris デュアルプロトコルスタックは、IPv4 と IPv6 の並行動作をサポートします。IPv6 をネットワークに配備している間も、そのあとでも、IPv4 関連の操作は正常に実行できます。


IPv6 は、既存のネットワークに新しい機能を追加します。したがって、IPv6 を初めて配備するときには、IPv4 関連の操作が中断されないことを確認する必要があります。この節では、IPv6 を着実に既存のネットワークに導入する方法について説明します。

IPv6 をサポートするためのネットワークトポロジの準備

IPv6 配備の最初の手順では、ネットワーク上の既存のエンティティーが IPv6 をサポートできるかどうかを判断することです。ほとんどの場合、ネットワークトポロジ、つまり、ワイヤー、ルーター、およびホストは、IPv6 の実装時に変更する必要はありません。ただし、既存のハードウェアおよびアプリケーションについては、実際に IPv6 アドレスをネットワークインタフェースに構成する前に、IPv6 をサポートするための準備を行う必要がある場合があります。

ネットワーク上のどのハードウェアを IPv6 向けにアップグレードできるかを確認します。たとえば、次のクラスのハードウェアについては、メーカーのマニュアルで IPv6 対応状況を調べてください。


注 –

このパートで説明するすべての手順では、すべての装置 (特に、ルーター) が IPv6 向けにアップグレードできると仮定します。


IPv6 向けにアップグレードできないルーターモデルもあります。詳細と回避方法については、「IPv4 ルーターを IPv6 用にアップグレードできない」を参照してください。

IPv6 をサポートするためのネットワークサービスの準備

現在の Oracle Solaris リリースにおいて、次の典型的な IPv4 ネットワークサービスは IPv6 をサポートできます。

IMAP メールサービスは IPv4 専用です。

IPv6 向けに構成されたノードでも IPv4 サービスは実行できます。IPv6 を有効にしても、必ずしもすべてのサービスが IPv6 接続を受け入れるわけではありません。IPv6 向けに移植されたサービスだけが IPv6 接続を受け入れます。IPv6 向けに移植されていないサービスは、プロトコルスタックの IPv4 部分を使用して機能し続けることができます。

IPv6 向けにアップグレードしたあとで、いくつかの問題が発生する可能性があります。詳細については、「サービスを IPv6 用にアップグレードしたあとの問題」を参照してください。

IPv6 をサポートするためのサーバーの準備

サーバーは IPv6 ホストであると考えられるため、デフォルトでは、IPv6 アドレスは自動的に近傍検索プロトコルによって構成されます。しかし、多くのサーバーは複数の NIC (Network Interface Card) を持っており、保守のために、そのいくつかを交換したい場合もあります。ある NIC を交換すると、近傍検索プロトコルは自動的に、その NIC に新しいインタフェース ID を生成します。サーバーによっては、この動作を受け入れることができない場合があります。

このような場合は、サーバーのインタフェースごとに、IPv6 アドレスのインタフェース ID 部分を手動で構成する方法を考えてください。手順については、「ユーザー指定の IPv6 トークンを構成する方法」を参照してください。そのあとで既存の NIC を交換する必要がある場合、その NIC には以前構成した IPv6 アドレスが適用されます。

ProcedureIPv6 をサポートするためにネットワークサービスを準備する方法

  1. IPv6 をサポートするには、次のネットワークサービスを更新します。

    • メールサーバー

    • NIS サーバー

    • NFS


      注 –

      LDAP は IPv6 をサポートします。IPv6 固有な構成作業は必要ありません。


  2. ファイアウォールハードウェアが IPv6 をサポートできるかどうかを確認します。

    この手順については、ファイアウォール関連の適切なマニュアルを参照してください。

  3. ネットワーク上のほかのサービスが IPv6 向けに移植されているかどうかを確認します。

    詳細については、ソフトウェアに付属するマニュアルや関連するマニュアルを参照してください。

  4. 次のサービスを配備しているサイトでは、これらのサービスを適切に評価しているかどうかを確認します。

  5. ノードを IPv6 向けに変更する前に、そのノードが提供するネットワークサービスを評価します。

ProcedureIPv6 をサポートするために DNS を準備する方法

現在の Oracle Solaris のリリースは、クライアント側とサーバー側の両方において、DNS による名前解決をサポートします。IPv6 をサポートするために DNS サービスを準備するには、次の手順を行います。

IPv6 のDNS サポートに関連する詳細については、『Solaris のシステム管理 (ネーミングとディレクトリサービス : DNS、NIS、LDAP 編)』を参照してください。

  1. 再帰的な名前解決を実行する DNS サーバーがデュアルスタックであるか (つまり、IPv4 と IPv6 両用であるか)、あるいは、IPv4 専用であるかを判断します。

  2. DNS サーバーでは、関連する IPv6 データベース AAAA レコードを前進ゾーンで使用して、DNS データベースを作成します。


    注 –

    複数の基幹系のサービスを実行しているサーバーには、特に注意する必要があります。ネットワークが適切に機能していることを確認します。また、すべての基幹系のサービスが IPv6 向けに移植されていることを確認します。次に、そのサーバーの IPv6 アドレスを DNS データベースに追加します。


  3. AAAA レコードの関連する PTR レコードを逆進ゾーンに追加します。

  4. IPv4 専用データまたは IPv6 と IPv4 両用データを、ゾーンを記述する NS レコードに追加します。

ネットワークトポロジにおけるトンネルの計画

IPv6 実装は、IPv4 と IPv6 が混在するネットワークへの移行機構として、多数のトンネル構成をサポートします。トンネルを使用すると、孤立した IPv6 ネットワークどうしが通信できるようになります。ほとんどのインターネットは IPv4 で動作しているため、自分のサイト (IPv6 ネットワーク) から宛先のサイト (IPv6 ネットワーク) に IPv6 パケットを送信するためには、インターネットにトンネルを開けて、そこを通す必要があります。

次に、IPv6 ネットワークトポロジにおいてトンネルを使用するいくつかのシナリオを示します。

トンネルを構成する手順については、「IPv6 サポート用にトンネルを構成するための作業 (作業マップ)」を参照してください。トンネルに関する概念の情報については、「IPv6 トンネル」を参照してください。

IPv6 実装のセキュリティーについて

IPv6 を既存のネットワークに導入するとき、サイトのセキュリティーを損なわないように注意する必要があります。IPv6 を導入するときには、次のセキュリティーの問題点に注意してください。

このマニュアルでは、IPv6 実装で使用できるセキュリティーについても説明しています。

IPv6 アドレス指定計画の準備

IPv4 から IPv6 への移行の大部分は、アドレス指定計画の立案です。この作業には、次の前準備が必要です。

サイト接頭辞の取得

IPv6 を構成する前に、サイト接頭辞を取得する必要があります。サイト接頭辞は、自分の IPv6 実装におけるすべてのノードの IPv6 アドレスを抽出するときに使用します。サイト接頭辞の概要については、「IPv6 の接頭辞」を参照してください。

IPv6 をサポートする ISP は、48 ビットの IPv6 サイト接頭辞を提供できます。現在の ISP が IPv4 しかサポートしない場合、現在の ISP を IPv4 サポート用に残したまま、別の ISP を IPv6 サポート用に使用できます。このような場合の回避方法は複数あります。詳細については、「現在の ISP が IPv6 をサポートしない」を参照してください。

企業自身が ISP である場合、顧客のサイト接頭辞は適切なインターネットレジストリから取得します。詳細については、Internet Assigned Numbers Authority (IANA) を参照してください。

IPv6 番号付けスキームの作成

IPv6 ネットワークがまったく新しいものでない限り、既存の IPv4 トポロジを IPv6 番号付けスキームとして使用します。

サブネット用の番号付けスキームの作成

番号付けスキームを開始するには、まず、既存の IPv4 サブネットを等価な IPv6 サブネットにマッピングします。たとえば、図 4–1 で示したサブネットを考えてください。サブネット 1 からサブネット 4 までは、RFC 1918 の IPv4 専用アドレス指定を使用して、アドレスの最初の 16 ビットを指定し、さらに、1 から 4 までの数字を使用して、サブネットを指定しています。この例では、IPv6 接頭辞 2001:db8:3c4d/48 がサイトに割り当てられていると仮定します。

次の表に、専用アドレスの IPv4 接頭辞から IPv6 接頭辞にマッピングする方法を示します。

IPv4 サブネット接頭辞 

等価な IPv6 サブネット接頭辞  

192.168.1.0/24

2001:db8:3c4d:1::/64

192.168.2.0/24

2001:db8:3c4d:2::/64

192.168.3.0/24

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

192.168.4.0/24

2001:db8:3c4d:4::/64

ノードの IPv6 アドレス指定計画の立案

ほとんどのホストにおいて、インタフェースに IPv6 アドレスを構成するのに適切で時間がかからない戦略は、ステートレス自動構成です。ホストが最も近いルーターからサイト接頭辞を受信したとき、近傍検索プロトコルは自動的に、ホストの各インタフェースに IPv6 アドレスを生成します。

サーバーは安定した IPv6 アドレスを持つ必要があります。サーバーの IPv6 アドレスを手動で構成しない場合、サーバーの NIC カードを交換したときには、新しい IPv6 アドレスが自動構成されます。サーバーのアドレスを作成するときには、次のことを覚えておいてください。

IPv4 アドレスの数には制限があるため、ネットワーク設計者は、既に登録済みのグローバルアドレスや RFC 1918 専用アドレスをどのように使用するかを考える必要がありました。しかし、IPv4 のグローバルアドレスや専用アドレスの表記は IPv6 アドレスには適用されません。サイト接頭辞を含むグローバルユニキャストは、ネットワークのすべてのリンクで使用できます (公開 DMZ を含む)。

第 5 章 TCP/IP ネットワークサービスと IPv4 アドレス指定の構成 (作業)

TCP/IP ネットワークの管理は、2 つの段階で行います。最初の段階ではハードウェアを組み立てます。次に、TCP/IP プロトコルを実装するデーモンや、ファイル、サービスを構成します。

この章では、IPv4 アドレス指定とサービスを実装する TCP/IP をネットワークで構成する方法について説明します。


注 –

この章の作業の多くは、IPv4 のみをサポートするネットワークにも、IPv6 が有効なネットワークにも適用されます。構成作業が 2 つのアドレス指定形式の間で異なる場合、この章には IPv4 の構成手順が記載されています。この章の作業では、同等の IPv6 作業 (第 7 章IPv6 ネットワークの構成 (手順)) を相互参照します。


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

この章で説明する新機能

Solaris 10 8/07 には、次の変更が加えられています。

IPv4 ネットワークを構成する前に (作業マップ)

TCP/IP を構成する前に、次の表に示す作業を完了してください。表では、各作業で実行する内容について説明し、作業の具体的な実行手順が詳しく説明されている現在のマニュアル内の節を示しています。

作業 

説明 

説明 

1. ネットワーク設計者の場合は、ネットワークトポロジを設計します。 

ネットワークの物理レイアウトを決めます。 

「ネットワークトポロジの概要」および 「IPv4 自律システムのトポロジ」

2. ISP または Regional Internet Registry (RIR) からネットワーク番号を入手します。 

このサイトのシステムが外部と通信できるようにするために、登録されているネットワーク番号を入手します。 

「IPv4 アドレス指定スキーマの設計」

3. ネットワークに対する IPv4 アドレス指定スキーマの計画を立てます。必要に応じて、サブネットアドレス指定の計画も含めます。 

ネットワーク番号をアドレス指定計画のベースとして使用します。 

「IPv4 アドレス指定スキーマの設計」

4. ネットワークトポロジに従ってネットワークハードウェアを組み立てます。ハードウェアが正しく動作することを確認します。 

ネットワークトポロジの設計に従ってシステムやネットワークメディア、ルーター、スイッチ、ハブ、ブリッジをセットアップします。 

ハードウェアマニュアルと 「ネットワークトポロジの概要」

5. ネットワークのすべてのシステムに IPv4 アドレスとホスト名を割り当てます。 

Oracle Solaris のインストール時かインストール後に IPv4 アドレスを適切なファイルで指定します。 

「IPv4 アドレス指定スキーマの設計」および 「IPv4 アドレスおよびその他のネットワーク構成パラメータを変更する方法」

6. ネットワークインタフェースとルーターが必要とする構成ソフトウェアがあれば、それを実行します。 

ルーターとマルチホームホストを構成します。 

ルーターについては、「ネットワーク上でのルーターの計画」「IPv4 ルーターの構成」を参照してください。

7. ネットワークでどのネームサービスまたはディレクトリサービスを使用するのかを指定します。 (NIS、LDAP、DNS、またはローカルファイル)。 

選択したネームサービスまたはディレクトリサービス (またはその両方) を構成します。 

『Solaris のシステム管理 (ネーミングとディレクトリサービス : DNS、NIS、LDAP 編)』

8. 必要なら、ネットワークで使用するドメイン名を選択します。 

ネットワークのドメイン名を選択し、InterNIC に登録します。 

『Solaris のシステム管理 (ネーミングとディレクトリサービス : DNS、NIS、LDAP 編)』

ホスト構成モードの決定

ネットワーク管理者として、ホストやルーター (該当する場合) で TCP/IP が動作するように構成します。これらのシステムは、ローカルシステム上のファイルまたはネットワーク上のほかのシステムにあるファイルから構成情報を入手するように構成できます。必要な構成情報を次に示します。

TCP/IP 構成情報をローカルファイルから入手するシステムは「ローカルファイルモード」で動作します。TCP/IP 構成情報をリモートネットワークサーバーから入手するシステムは「ネットワーククライアントモード」で動作します。

ローカルファイルモードで実行するシステム

システムがローカルファイルモードで動作するには、TCP/IP 構成ファイルのローカルコピーを持っている必要があります。これらの構成ファイルについては、「TCP/IP 構成ファイル」を参照してください。このシステムが専用のディスクを持っていることが望ましいですが、不可欠というわけではありません。

ほとんどのサーバーはローカルファイルモードで実行します。このようなサーバーの一部を次に示します。

また、ルーターはローカルファイルモードで実行する必要があります。

システムがプリントサーバー専用の場合は、ローカルファイルモードで実行する必要はありません。個々のホストをローカルファイルモードで実行する方がよいかどうかは、ネットワークの規模によって異なります。

ネットワークがきわめて小さい場合は、個々のホストのファイルを管理する作業は比較的簡単です。しかし、数百のホストから成るネットワークの場合は、そのネットワークがいくつかの管理サブドメインに分割されていたとしても、この作業は困難なものとなります。したがって、規模の大きいネットワークの場合は、ローカルファイルモードを使用しても一般に効率は上がりません。ただし、ルーターとサーバーはそれぞれ自身で構成されるものなので、ローカルファイルモードで構成する必要があります。

ネットワーク構成サーバー

「ネットワーク構成サーバー」とは、ネットワーククライアントモードで構成されているホストに TCP/IP 構成情報を提供するサーバーのことです。この種のサーバーは、次の 3 つのブートプロトコルをサポートしています。

ネットワーク構成サーバーは、NFS ファイルサーバーとしても使用できます。

いずれかのホストをネットワーククライアントとして構成する場合は、さらに、ネットワーク上の少なくとも 1 つのシステムをネットワーク構成サーバーとして構成する必要があります。ネットワークをサブネット化する場合は、ネットワーククライアントを持つ各サブネットについて、ネットワーク構成サーバーが少なくとも 1 つは必要です。

ネットワーククライアントとしてのシステム

構成情報をネットワーク構成サーバーから入手するホストは、いずれもネットワーククライアントモードで動作します。ネットワーククライアントとして構成されているシステムには、TCP/IP 構成ファイルのローカルコピーは必要ありません。

ネットワーククライアントモード」を使用すると、大規模ネットワークの管理が大幅に簡素化されます。さらに、個々のホストで行う構成作業が最小限の量で済み、ネットワーク上のすべてのシステムが同じ構成標準に従っていることが保証されます。

ネットワーククライアントモードは、あらゆるタイプのコンピュータに構成できます。たとえば、スタンドアロンシステムでネットワーククライアントモードを構成できます。

混合構成

構成をローカルファイルモードだけに限ったり、ネットワーククライアントモードだけに限ったりする必要はありません。ルーターとサーバーは常にローカルモードで構成する必要があります。ホストについては、ローカルファイルモードとネットワーククライアントモードを任意に組み合わせて使用できます。

IPv4 ネットワークトポロジのシナリオ

図 5–1 は、ネットワーク番号が 192.9.200 である架空のネットワークで動作するホストを示しています。このネットワークには、sahara というネットワーク構成サーバーが 1 つあります。tenerenubian の 2 つのホストはそれぞれ独自にディスクを持っており、ローカルファイルモードで動作します。ホスト faiyum もディスクを持っていますが、このシステムはネットワーククライアントモードで動作します。

最後に、システム timbuktu はルーターとして構成されています。このシステムには 2 つのネットワークインタフェースが組み込まれています。最初のインタフェースは timbuktu という名前です。このインタフェースはネットワーク 192.9.200 に属しています。残りの 1 つは timbuktu-201 という名前です。このインタフェースはネットワーク 192.9.201 に属しています。どちらのネットワークも、組織ドメイン deserts.worldwide.com に含まれています。このドメインは、ローカルファイルをネームサービスとして使用します。

図 5–1 IPv4 ネットワークトポロジに属するホストのシナリオ

この図では、1 台のネットワークサーバーが 4 台のホストにサービスを提供する、サンプルネットワークを示しています。

ネットワークにサブネットを追加する (作業マップ)

サブネットを使用しないネットワークを、サブネットを使用するネットワークに変更する場合は、次の作業マップに示す作業を行います。


注 –

この節の情報は IPv4 サブネットだけに適用されます。IPv6 サブネットの計画については、「IPv6 をサポートするためのネットワークトポロジの準備」「サブネット用の番号付けスキームの作成」を参照してください。


次の表は、サブネットを現在のネットワークに追加するための各種作業の一覧です。表では、各作業で実行する内容について説明し、作業の具体的な実行手順が詳しく説明されている現在のマニュアル内の節を示しています。

作業 

説明 

説明 

1. そのネットワークトポロジでサブネットが必要かどうかを決めます。 

ルーターやホストをそれぞれのサブネットのどこに置くかなど、新しいサブネットトポロジを決めます。 

「ネットワーク上でのルーターの計画」「サブネット化とは」、および 「ネットワーククラス」

2. 新しいサブネット番号を持つ一連の IP アドレスをシステムに割り当ててサブネットのメンバーになります。 

Oracle Solaris のインストール時かそのあとに、新しいサブネット番号を使用する IP アドレスを /etc/hostname.interface ファイルに構成します。

「ネットワークの IP アドレス指定形式の決定」

3. サブネットで使用する可能性があるすべてのシステムに対してサブネットのネットワークマスクを構成します。 

ネットワーククライアントを手動で構成する場合は、/etc/inet/netmasks ファイルを変更します。あるいは、Oracle Solaris インストールプログラムにネットマスクを渡します。

netmasks データベース」「IPv4 アドレス用のネットワークマスクの作成」

4. サブネットに属するすべてのシステムの新しい IP アドレスをデータベースに追加します。 

新しいホストアドレスを反映させるために、すべてのホスト上で /etc/inet/hosts ファイルおよび /etc/inet/ipnodes ファイル (Solaris 10 11/06 以前のリリースの場合) を変更します。

hosts データベース」

5. すべてのシステムをリブートします。 

   

ネットワークを構成する (作業マップ)

次の表は、サブネットなしのネットワーク構成からサブネットを使用するネットワークに変更したあとに実行する追加作業の一覧です。表では、各作業で実行する内容について説明し、作業の具体的な実行手順が詳しく説明されている現在のマニュアル内の節を示しています。

作業 

説明 

説明 

ホストをローカルファイルモード用に構成します 

nodenamehostnamehostsdefaultdomaindefaultrouter、および netmasks ファイルを編集します

「ローカルファイルモードの場合のホストの構成方法」

ネットワーク構成サーバーをセットアップします 

in.tftp デーモンをオンに設定し、 hostsethers、および bootparams ファイルを編集します

「ネットワーク構成サーバーの設定方法」

ホストをネットワーククライアントモード用に構成します 

hostname ファイルを作成し、hosts ファイルを編集します。また、nodename ファイルと defaultdomain ファイルがある場合はこれらを削除します

「ネットワーククライアントモードの場合のホストの構成方法」

ネットワーククライアントの経路制御戦略を指定します 

ホストで静的経路制御を使用するか動的経路制御を使用するかを決めます。 

「単一インタフェースホストで静的経路制御を有効にする方法」および 「単一インタフェースホストで動的経路制御を有効にする方法」

既存のネットワーク構成を変更します  

インストール時に設定された、またはそれ以降に構成されたホスト名、IP アドレス、およびその他のパラメータを変更します。 

「IPv4 アドレスおよびその他のネットワーク構成パラメータを変更する方法」

ローカルネットワーク上でのシステム構成

オペレーティングシステムのソフトウェアをインストールするときに、同時にネットワークのソフトウェアもインストールされます。そのときに、いくつかの IP 構成パラメータを対応するファイルに格納して、ブート時に読み取れるようにしておく必要があります。

ネットワークの構成処理では、ネットワーク構成ファイルを作成または編集する必要があります。システムのカーネルが構成情報をどのように入手するかは、設定によって異なります。これらのファイルがローカルに格納されているか (ローカルファイルモード) ネットワーク構成サーバーから入手するか (ネットワーククライアントモード) によって提供方法が変わります。

ネットワーク構成時に提供されるパラメータは次のとおりです。

システムで Oracle Solaris インストールプログラムが複数のインタフェースを検出した場合は、追加のインタフェースをインストール時に構成することもできます。詳しい説明は、『Oracle Solaris 10 9/10 インストールガイド (基本編)』を参照してください。

ここでは、ローカル構成ファイルを作成および編集する手順を説明しています。ネームサービスデータベースを使用した動作については、『Solaris のシステム管理 (ネーミングとディレクトリサービス : DNS、NIS、LDAP 編)』を参照してください。

Procedureローカルファイルモードの場合のホストの構成方法

ローカルファイルモードで動作するホスト上の TCP/IP を構成するための手順は、次のとおりです。

  1. Primary Administrator の役割を引き受けるか、スーパーユーザーになります。

    Primary Administrator 役割には、Primary Administrator プロファイルが含まれます。役割を作成してユーザーに役割を割り当てるには、『Solaris のシステム管理 (基本編)』の第 2 章「Solaris 管理コンソールの操作 (手順)」を参照してください。

  2. /etc ディレクトリに移動します。

  3. /etc/nodename ファイルに正しいホスト名が設定されていることを確認します。

    Oracle Solaris のインストール時にシステムのホスト名を指定したときは、そのホスト名は /etc/nodename ファイルに入ります。そのノード名エントリがシステムの正しいホスト名であることを確認します。

  4. /etc/hostname.interface ファイルがシステムのネットワークインタフェースごとに存在することを確認します。

    /etc/hostname. interface ファイルのファイル構文および基本情報については、「物理インタフェースの管理の基礎」を参照してください。

    Oracle Solaris インストールプログラムでは、インストール時に少なくとも 1 つのインタフェースを構成する必要があります。最初に構成するインタフェースが、自動的に「一次ネットワークインタフェース」になります。インストールプログラムは、一次ネットワークインタフェースと、インストール時に任意で構成するその他のインタフェースの /etc/hostname.interface ファイルを作成します。

    インストール時に追加のインタフェースを構成した場合は、各インタフェースに対応する /etc/hostname.interface ファイルがあることを確認してください。Oracle Solaris のインストール時に複数のインタフェースを構成する必要はありません。ただし、あとでインタフェースをシステムに追加する場合は、それらを手動で構成する必要があります。

    インタフェースを手動で構成する手順については、「Solaris 10 3/05 の管理インタフェース」または 「システムインストール後に物理インタフェースを構成する方法」(Solaris 10 1/06 以降のリリースの場合) を参照してください。

  5. Solaris 10 11/06 以前のリリースの場合は、/etc/inet/ipnodes ファイルのエントリが最新であることを確認します。

    Oracle Solaris 10 インストールプログラムは、/etc/inet/ipnodes ファイルを作成します。このファイルには、インストール時に構成されたすべてのインタフェースのノード名と IPv4 アドレス、および IPv6 アドレス (使用される場合) が含まれます。

    /etc/inet/ipnodes ファイルのエントリには、次の書式を使用します。


    IP-address node-name nicknames...
    

    nicknames は、インタフェースを識別するための追加の名前です。

  6. /etc/inet/hosts ファイルのエントリが最新であることを確認します。

    Oracle Solaris インストールプログラムは、一次ネットワークインタフェース、ループバックアドレス、およびインストール時に構成された追加インタフェース (該当する場合) に対する各エントリを作成します。

    1. /etc/inet/hosts ファイルにすでに存在するエントリが最新であることを確認します。

    2. (省略可能) インストール後にローカルホストに追加されたネットワークインタフェースの IP アドレスとそれに対応する名前を追加します。

    3. (省略可能) /usr ファイルシステムを NFS マウントする場合は、ファイルサーバーの IP アドレス (1 つまたは複数) を追加します。

  7. ホストの完全修飾ドメイン名を /etc/defaultdomain ファイルに入力します。

    たとえば、ホスト tenere がドメイン deserts.worldwide.com に所属していたとします。その場合は、/etc/defaultdomaindeserts.worldwide.com を入力します。詳細は、/etc/defaultdomain ファイル」を参照してください。

  8. ルーターの名前を /etc/defaultrouter ファイルに入力します。

    このファイルについては、/etc/defaultrouter ファイル」を参照してください。

  9. デフォルトのルーターの名前とその IP アドレスを /etc/inet/hosts ファイルに入力します。

    追加の経路制御オプションについては、「ネットワーククライアントモードの場合のホストの構成方法」を参照してください。これらのオプションは、ローカルファイルモード構成にも適用できます。

  10. 該当する場合は、ネットワークのネットワークマスクを追加します。

    • ホストがその IP アドレスを DHCP サーバーから入手する場合は、ネットワークマスクを指定する必要はありません。

    • このクライアントと同じネットワークに NIS サーバーをすでに設定している場合は、そのサーバーの適切なデータベースに netmask 情報を追加できます。

    • それ以外の場合は、次のことを行います。

    1. ネットワーク番号とネットマスクを /etc/inet/netmasks ファイルに入力します。

      次の書式で入力します。


      network-number netmask

      たとえば、Class C ネットワーク番号 192.168.83 の場合は、次のように入力します。


      192.168.83.0    255.255.255.0
      

      CIDR アドレスの場合は、ネットワークの接頭辞をそれと同等の 10 進ドット表記に変換します。ネットワーク接頭辞とその 10 進ドット表記については、表 2–3 を参照してください。たとえば、192.168.3.0/22 という CIDR ネットワーク接頭辞を表現するには、次のような表記を使用します。


      192.168.3.0 255.255.252.0
    2. ローカルファイルが最初に検索されるように、/etc/nsswitch.conf でのネットマスクの検索順序を変更します。


      netmasks:   files nis
  11. システムをリブートします。

Procedureネットワーク構成サーバーの設定方法

インストールサーバーやブートサーバーの設定方法については、『Oracle Solaris 10 9/10 インストールガイド (基本編)』を参照してください。

  1. Primary Administrator 役割を引き受けるか、スーパーユーザーになります。

    Primary Administrator 役割には、Primary Administrator プロファイルが含まれます。役割を作成してユーザーに役割を割り当てるには、『Solaris のシステム管理 (基本編)』の第 2 章「Solaris 管理コンソールの操作 (手順)」を参照してください。

  2. ネットワーク構成サーバーとなるサーバーの root (/) ディレクトリに移ります。

  3. /tftpboot ディレクトリを作成することによって、in.tftpd デーモンをオンに設定します。


    # mkdir /tftpboot
    

    このコマンドにより、システムは、TFTP、bootparams、RARP のサーバーに構成されます。

  4. 手順 2 で作成したディレクトリに対するシンボリックリンクを作成します。


    # ln -s /tftpboot/. /tftpboot/tftpboot
    
  5. /etc/inetd.conf ファイルの tftp 行を有効にします。

    エントリが次のようになっているか確認します。


    tftp dgram udp6 wait root /usr/sbin/in.tftpd in.tftpd -s /tftpboot

    これによって、in.tftpd は、/tftpboot にあるファイルだけから読み取られます。

  6. hosts データベースを編集します。

    ネットワーク上のすべてのクライアントのホスト名と IP アドレスを追加します。

  7. ethers データベースを編集します。

    ネットワーククライアントモードで実行するネットワーク上のすべてのホストについてエントリを作成します。

  8. bootparams データベースを編集します。

    詳細は、bootparams データベース」を参照してください。ワイルドカードエントリを作成するか、またはネットワーククライアントモードで実行するすべてのホストについてエントリを作成します。

  9. /etc/inetd.conf エントリをサービス管理機能 (SMF) のサービスマニフェストに変換し、それによって得られるサービスを使用可能にします。


    # /usr/sbin/inetconv
    
  10. in.tftpd が正しく動作しているか確認します。


    # svcs network/tftp/udp6
    

    次のような出力が表示されます。


    STATE          STIME    FMRI
    online         18:22:21 svc:/network/tftp/udp6:default
in.tftpdデーモンの管理

in.tftpd デーモンはサービス管理機能によって管理されます。in.tftpd に対する管理アクション (有効化、無効化、再起動など) を実行するには、svcadm コマンドを使用します。このサービスを起動したり、再起動したりする責任は inetd に委譲されています。in.tftpd の構成を変更したり、構成情報を表示したりするには、inetadm コマンドを使用します。このサービスのステータスを照会するには、svcs コマンドを使用します。サービス管理機能の概要については、『Solaris のシステム管理 (基本編)』の第 18 章「サービスの管理 (概要)」を参照してください。

ネットワーククライアントの構成

ネットワーククライアントは、その構成情報をネットワーク構成サーバーから受け取ります。したがって、あるホストをネットワーククライアントとして構成するときは、このネットワーク用として、ネットワーク構成サーバーが少なくとも 1 つは設定されていることを確認してください。

Procedureネットワーククライアントモードの場合のホストの構成方法

ネットワーククライアントモードで構成する必要のある各ホストについて、次の手順を行います。

  1. Primary Administrator 役割を引き受けるか、スーパーユーザーになります。

    Primary Administrator 役割には、Primary Administrator プロファイルが含まれます。役割を作成してユーザーに役割を割り当てるには、『Solaris のシステム管理 (基本編)』の第 2 章「Solaris 管理コンソールの操作 (手順)」を参照してください。

  2. /etc ディレクトリで nodename ファイルを検索します。

    ある場合は、このファイルを削除してください。

    /etc/nodename を削除すると、システムは hostconfig プログラムを使用して、ネットワーク構成サーバーから、ホスト名、ドメイン名、ルーターアドレスを入手するようになります。「ローカルネットワーク上でのシステム構成」を参照してください。

  3. /etc/hostname.interface ファイルが存在しない場合は、このファイルを作成します。

    そのファイルが空であることを確認してください。/etc/hostname.interface ファイルが空であれば、システムは IPv4 アドレスをネットワーク構成サーバーから入手します。

  4. /etc/inet/hosts ファイルにループバックネットワークインタフェースの localhost 名と IP アドレスだけが含まれていることを確認します。


    # cat /etc/inet/hosts
    # Internet host table
    #
    127.0.0.1       localhost

    この IPv4 ループバックインタフェースの IP アドレスは 127.0.0.1 です。

    詳細は、「ループバックアドレス」を参照してください。このファイルには、ローカルホスト (一次ネットワークインタフェース) の IP アドレスとホスト名が含まれていてはいけません。

  5. /etc/defaultdomain ファイルが存在するかどうかを確認します。

    ある場合は、このファイルを削除してください。

    hostconfig プログラムはドメイン名を自動的に設定します。hostconfig プログラムが設定したドメイン名を無効にするには、代わりのドメイン名を /etc/defaultdomain ファイルに入力します。

  6. クライアントの /etc/nsswitch.conf ファイルに指定されている検索パスがネットワークのネームサービス要件を満たしていることを確認します。

ProcedureIPv4 アドレスおよびその他のネットワーク構成パラメータを変更する方法

この手順では、すでにインストールされているシステムの IPv4 アドレス、ホスト名、およびその他のネットワークパラメータを変更する方法について説明します。サーバーまたはネットワーク接続されたスタンドアロンシステムの IP アドレスを変更する場合は、この手順を使用します。この手順は、ネットワーククライアントやネットワーク機器には適用されません。この手順で作成する構成は、リブート後も保持されます。


注 –

ここで説明する手順は、一次ネットワークインタフェースの IPv4 アドレスを変更する場合にのみ適用されます。別のインタフェースをシステムに追加する場合は、「システムインストール後に物理インタフェースを構成する方法」を参照してください。


次の手順では、IPv4 アドレスとサブネットマスクを指定するときに、ほとんどの場合は IPv4 で一般的な 10 進ドット表記を使用しています。この手順で使用されるすべてのファイルでは、CIDR 表記を使用して IPv4 アドレスを指定することもできます。CIDR 表記の概要については、「CIDR 書式の IPv4 アドレス」を参照してください。

  1. Primary Administrator 役割を引き受けるか、スーパーユーザーになります。

    Primary Administrator 役割には、Primary Administrator プロファイルが含まれます。役割を作成してユーザーに役割を割り当てるには、『Solaris のシステム管理 (基本編)』の第 2 章「Solaris 管理コンソールの操作 (手順)」を参照してください。

  2. Solaris 10 11/06 以前のリリースの場合のみ、/etc/inet/ipnodes ファイルまたは同等の ipnodes データベースで、IP アドレスを変更します。

    システムに追加するすべての IP アドレスに、次の構文を使用します。


    IP-address host-name, nicknames
    IP-address interface-name, nicknames
    

    最初のエントリには、一次ネットワークインタフェースの IP アドレスとシステムのホスト名を含めるようにしてください。ホスト名のニックネームを追加することもできます。物理インタフェースをシステムに追加するときは、/etc/inet/ipnodes にそれらのインタフェースの IP アドレスとそれらに関連付ける名前のエントリを 作成してください。

  3. システムのホスト名を変更する必要がある場合は、/etc/nodename ファイルのホスト名エントリを変更します。

  4. /etc/inet/hosts ファイルまたは同等の hosts データベースで、IP アドレスとホスト名を必要に応じて変更します。

  5. 一次ネットワークインタフェースの /etc/hostname.interface ファイルで、IP アドレスを変更します。

    /etc/hostname.interface ファイルの一次ネットワークインタフェースエントリには、次のいずれかを使用できます。

    • 一般的な 10 進ドット形式の IPv4 アドレス

      構文は次のとおりです。


      IPv4 address subnet mask
      

      ネットマスクエントリは省略可能です。指定しなかった場合は、デフォルトのネットマスクが指定されていると見なされます。

      次に例を示します。


      # vi hostname.eri0
      10.0.2.5 netmask 255.0.0.0
      
    • CIDR 表記の IPv4 アドレス (ネットワーク構成で使用されている場合)。


      IPv4 address/network prefix
      

      次に例を示します。


      # vi hostname.eri0
      10.0.2.5/8
      

      CIDR 接頭辞には、その IPv4 アドレスに対応するネットマスクを指定します。たとえば、前述の /8255.0.0.0 というネットマスクになります。

    • ホスト名。

      /etc/hostname.interface ファイルでシステムのホスト名を使用する場合は、そのホスト名とそれに関連付けられている IPv4 アドレスが hosts データベースにも指定されていることを確認します。

  6. サブネットマスクが変更されている場合は、次のファイルにあるサブネットエントリを変更します。

    • /etc/netmasks

    • (省略可能) /etc/hostname.interface

  7. サブネットアドレスが変更されている場合は、/etc/defaultrouter ファイルに指定されているデフォルトルーターの IP アドレスを新しいサブネットのデフォルトルーターの IP アドレスに変更します。

  8. システムを再起動します。


    # reboot -- -r
    

例 5–1 リブート後も保持する方法で IPv4 アドレスとその他のネットワークパラメータを変更する

この例では、別のサブネットに移動されたシステムについて、次のネットワークパラメータをどのように変更するかを示しています。

システムの現在の状態を確認します。


# hostname
myhost
# ifconfig -a

lo0: flags=1000849 <UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000 
eri0: flags=1000843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
        inet 10.0.0.14 netmask ff000000 broadcast 10.255.255.255
        ether 8:0:20:c1:8b:c3 

次に、システムのホスト名と eri0 の IP アドレスを各ファイルで変更します。


# vi /etc/nodename
mynewhostname

In Solaris 10 11/06 and earlier Solaris 10 releases only, do the following:
# vi /etc/inet/ipnodes
192.168.55.14   mynewhostname      #moved system to 192.168.55 net

# vi /etc/inet/hosts
#
# Internet host table
#
127.0.0.1       localhost
192.168.55.14   mynewhostname        loghost
# vi /etc/hostname.eri0
192.168.55.14   netmask  255.255.255.0

最後に、ネットマスクおよびデフォルトルーターの IP アドレスを変更します。


# vi /etc/netmasks.
.
.
192.168.55.0    255.255.255.0
# vi /etc/defaultrouter
192.168.55.200        #moved system to 192.168.55 net
#

これらの変更が完了したら、システムをリブートします。


# reboot -- -r

設定したばかりの構成がリブート後も保持されていることを確認します。


# hostname
mynewhostname
# ifconfig -a

lo0: flags=1000849 <UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000 
eri0: flags=1000843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
        inet 192.168.55.14 netmask ffffff00 broadcast 10.255.255.255
        ether 8:0:20:c1:8b:c3 


例 5–2 現在のセッションの IP アドレスとホスト名を変更する

この例では、現在のセッションだけに適用するために、ホストの名前、一次ネットワークインタフェースの IP アドレス、およびサブネットマスクを変更する方法を示しています。システムをリブートすると、以前の IP アドレスとサブネットマスクに戻ります。一次ネットワークインタフェース eri0 の IP アドレスが 10.0.0.14 から 192.168.34.100 に変わります。


# ifconfig -a

lo0: flags=1000849 <UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000 
eri0: flags=1000843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
        inet 10.0.0.14 netmask ff000000 broadcast 10.255.255.255
        ether 8:0:20:c1:8b:c3 
# ifconfig eri0 192.168.34.100 netmask 255.255.255.0 broadcast + up
# vi /etc/nodename
mynewhostname

# ifconfig -a
lo0: flags=1000849 <UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000 
eri0: flags=1000843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
        inet 192.168.34.100 netmask ffffff00 broadcast 10.255.255.255
        ether 8:0:20:c1:8b:c3 
# hostname
mynewhostname


例 5–3 現在のセッションの IPv4 アドレスを変更する (CIDR 表記を使用)

この例では、現在のセッションだけに適用するために、CIDR 表記を使用してホスト名と IP アドレスを変更する方法を示しています。システムをリブートすると、以前の IP アドレスとサブネットマスクに戻ります。一次ネットワークインタフェース eri0 の IP アドレスが 10.0.0.14 から 192.168.6.25/27 に変わります。


# ifconfig -a

lo0: flags=1000849 <UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000 
eri0: flags=1000843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
        inet 10.0.0.14 netmask ff000000 broadcast 10.255.255.255
        ether 8:0:20:c1:8b:c3 
# ifconfig eri0 192.168.6.25/27 broadcast + up
# vi /etc/nodename
mynewhostname
# ifconfig -a

lo0: flags=1000849 <UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000 
eri0: flags=1000843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
        inet 192.168.06.25 netmask ffffffe0 broadcast 10.255.255.255
        ether 8:0:20:c1:8b:c3 
# hostname
mynewhostname

IPv4 アドレスに CIDR 表記を使用するときは、ネットマスクを指定する必要はありません。ifconfig は、指定されたネットワーク接頭辞を使用して、ネットマスクを決定します。たとえば、ifconfig は、192.168.6.0/27 ネットワークに対して ffffffe0 というネットマスクを設定します。より一般的な /24 接頭辞指定を使用した場合は、ffffff00 というネットマスクが設定されます。新しい IP アドレスを構成するときに、ifconfig/24 接頭辞指定を使用することとネットマスク 255.255.255.0 を指定することは同等です。


参照

一次ネットワークインタフェース以外のインタフェースの IP アドレスを変更する場合は、『Solaris のシステム管理 (基本編)』「システムインストール後に物理インタフェースを構成する方法」を参照してください。

IPv4 ネットワーク上でのパケット転送と経路制御

この節では、IPv4 ネットワーク上のルーターとホストに対して転送と経路制御を設定する手順および例を示します。

パケット転送」は、ネットワーク上のシステム間で情報を共有するための基本的な方法です。転送元インタフェースと転送先インタフェース間で、パケットが転送されます。通常、2 つのインタフェースのシステムは異なります。ローカルでないインタフェースにコマンドを発行するかメッセージを送信すると、システムによりこれらのパケットがローカルネットワーク上に転送されます。その後、パケットヘッダー内に指定された宛先 IP アドレスを持つインタフェースが、ローカルネットワークからパケットを取得します。着信先アドレスがローカルネットワーク上に存在しない場合、パケットは隣接するネットワークに転送 (ホップ) されます。デフォルトでは、パケット転送は Oracle Solaris のインストール時に自動的に設定されます。

「経路制御」は、システムがパケットの送信先を決定する処理のことです。システム上の経路制御プロトコルは、ローカルネットワーク上のほかのシステムを「検出」します。送信元システムと送信先システムが同じローカルネットワーク上にある場合、これらのシステム間でパケットが通過する経路は「直接ルート」と呼ばれます。パケットが送信元システムのあとに少なくとも 1 つのホップを通過しなければならない場合、送信元システムと送信先システムの間の経路は「間接ルート」と呼ばれます。経路制御プロトコルは、転送先インタフェースへのパスを取得して、既知の送信ルートに関するデータをシステムの「経路制御テーブル」内に保持します。

ルーター」は、複数の物理インタフェースを備える、特別に構成されたシステムです。ルーターは、この物理インタフェースを介して複数のローカルネットワークに接続されます。このため、ルーターは、経路制御プロトコルを実行するかどうかに関係なく、ホームの LAN を越えてパケットを転送できます。ルーターによるパケット転送方法の詳細は、「ネットワーク上でのルーターの計画」を参照してください。

「経路制御プロトコル」は、システムでの経路制御活動を処理し、経路制御情報をほかのホストと交換することで、リモートネットワークへの既知のルートを維持管理します。経路制御プロトコルはルーターとホストの両方で実行できます。ホストの経路制御プロトコルは、ほかのルーターやホストの経路制御デーモンと通信します。ホストはこれらのプロトコルを利用して、パケットの転送先を決定します。ネットワークインタフェースが使用可能な場合、システムは経路制御デーモンとの通信を自動的に行います。これらのデーモンは、ネットワーク上のルーターの状態を監視し、ローカルネットワーク上のホストにルーターのアドレスを通知します。すべてではありませんが、一部の経路制御プロトコルは統計情報も保持します。この統計を使って、経路制御パフォーマンスを計測できます。パケット転送とは異なり、Oracle Solaris システム上で経路制御を明示的に設定する必要があります。

この節では、パケット転送の管理および IPv4 ルーターとホスト上での経路制御のタスクについて説明します。IPv6 が有効なネットワークでの経路制御については、「IPv6 ルーターの構成」を参照してください。

Oracle Solaris でサポートされている経路制御プロトコル

経路制御プロトコルは、内部ゲートウェイプロトコル (IGP)、外部ゲートウェイプロトコル (EGP)、またはそれらの組み合わせに分類されます。「内部ゲートウェイプロトコル」は、一般的な管理制御下で、ネットワーク上のルーター間で経路制御情報を交換します。図 5–3 は、ルーターが経路制御情報を交換するために IGP を実行するネットワークトポロジを示します。「外部ゲートウェイプロトコル」を使用すると、ローカルのインターネットワークを外部ネットワークに接続するルーターは、外部ネットワーク上の別のルーターと情報を交換できます。たとえば、企業ネットワークを ISP に接続するルーターは、EGP を実行して、ISP の対応するルーターと経路制御情報を交換します。BGP (Border Gateway Protocol) は、さまざまな組織や IGP 間での経路制御情報送信に使用される、一般的な EGP です。

次の表に、Oracle Solaris 経路制御プロトコルおよび各プロトコルに関連するマニュアルの場所についての情報を示します。

表 5–1 Oracle Solaris 経路制御プロトコル

プロトコル 

関連するデーモン 

説明 

説明 

経路制御情報プロトコル (RIP) 

in.routed

IPv4 パケットの経路制御および経路制御テーブルの維持を行う IGP 

「IPv4 ルーターの構成方法」

ICMP (Internet Control Message Protocol) ルーター発見 

in.routed

ホストがネットワーク上のルーターの存在を検索するために使用します 

「単一インタフェースホストで静的経路制御を有効にする方法」および 「単一インタフェースホストで動的経路制御を有効にする方法」

RIPng (Routing Information Protocol, next generation) プロトコル 

in.ripngd

IPv6 パケットの経路制御および経路制御テーブルの維持を行う IGP 

「IPv6 対応のルーターを構成する方法」

ND (Neighbor Discovery) プロトコル 

in.ndpd

IPv6 ルーターの存在を通知し、ネットワーク上の IPv6 ホストの存在を検索します 

「IPv6 インタフェースの構成」

Oracle Solaris 10 では、オープンソースの Quagga 経路制御プロトコル群もサポートされます。これらのプロトコルは、SFW 統合ディスクから入手できますが、メインの Oracle Solaris ディストリビューションには含まれていません。次の表に、Quagga プロトコルを示します。

表 5–2 OpenSolaris Quagga プロトコル

プロトコル 

デーモン  

説明 

RIP プロトコル 

ripd

IPv4 距離ベクトル型 IGP。IPv4 パケットの経路制御および近傍への経路制御テーブルの通知を行います。 

RIPng 

ripngd

IPv6 距離ベクトル型 IGP。IPv6 パケットの経路制御および経路制御テーブルの維持を行います。 

OSPF (Open Shortest Path First) プロトコル 

ospfd

パケットの経路制御および高可用性ネットワークのための IPv4 リンク状態型 IGP。 

BGP (Border Gateway Protocol) 

bgpd

管理ドメインを越える経路制御のための IPv4 および IPv6 EGP。 

次の図に、Quagga 経路制御プロトコルを使用する自律システムを示します。

図 5–2 Quagga プロトコルを実行する企業ネットワーク

この図は、Quagga 経路制御プロトコルを実行する企業ネットワークを示しています。この図については本文中で説明しています。

この図は、2 つの経路制御ドメイン A と B に分割された企業ネットワークの自律システムを示しています。「経路制御ドメイン」とは、管理上の目的で、あるいはドメインで単一の経路制御プロトコルが使用されているという理由から、密接した経路制御ポリシーを持っているインターネットワークのことです。この図のドメインはどちらも、Quagga プロトコル群の経路制御プロトコルを実行します。

経路制御ドメイン A は OSPF ドメインであり、単一の OSPF ドメイン ID で管理されます。このドメイン内のシステムはすべて、内部ゲートウェイプロトコルとして OSPF を実行します。内部のホストおよびルーターに加え、ドメイン A には 2 つのボーダールーターがあります。

ボーダールーター R1 は、企業ネットワークを ISP に接続し、最終的にはインターネットに接続します。企業ネットワークと外部の間の通信を容易にするために、R1 はその外部に面したネットワークインタフェース上で BGP を実行します。ボーダールーター R5 は、ドメイン A とドメイン B を接続します。ドメイン B のシステムはすべて、内部ゲートウェイプロトコルとして RIP を使用して管理されます。したがって、ボーダールーター R5 は、ドメイン A に面したインタフェース上では OSPF を実行し、ドメイン B に面したインタフェース上では RIP を実行する必要があります。

Quagga プロトコルの詳細は、Open Solaris Quagga を参照してください。これらのプロトコルの構成手順については、Quagga のマニュアル を参照してください。

IPv4 自律システムのトポロジ

複数のルーターとネットワークを持つサイトでは、通常そのネットワークトポロジは単一の経路制御ドメイン、つまり「自律システム (AS: Autonomous System)」として管理されます。次の図に、小規模な AS と見なすことのできる典型的なネットワークトポロジを示します。この節では、すべての例にこのトポロジを使用します。

図 5–3 複数の IPv4 ルーターを備えた自律システム

この自律システムのトポロジ図については、次の本文中で説明しています。

この図は、3 つのローカルネットワーク 10.0.5.0172.20.1.0、および 192.168.5 に分割された AS を示しています。4 台のルーターが、パケット転送と経路制御の役目を分担しています。この AS には、次の種類のシステムが含まれています。

IPv4 ルーターの構成

この節では、IPv4 ルーターを構成する手順と例を説明します。IPv6 対応のルーターを構成する方法については、「IPv6 対応のルーターを構成する方法」を参照してください。

ルーターは複数のネットワーク間のインタフェースを提供するため、ルーターの物理ネットワークインタフェースごとに一意の名前および IP アドレスを割り当てる必要があります。これで、各ルーターは、その一次ネットワークインタフェースのホスト名と IP アドレスに加えて、増設した各ネットワークインタフェースについて少なくとも 1 つずつ、一意な名前と IP アドレスを持つことになります。

次の手順を使えば、物理インタフェースが 1 つだけのシステム (デフォルトではホスト) をルーターとして構成することもできます。システムを PPP リンクの 1 つのエンドポイントとして使用するような場合、単一インタフェースのシステムをルーターとして構成する場合があります (『Solaris のシステム管理 (ネットワークサービス)』「ダイアルアップ PPP リンクの計画」を参照)。


注 –

Oracle Solaris システムのインストール時にルーターのすべてのインタフェースを構成できます。手順については、『Oracle Solaris 10 9/10 インストールガイド (基本編)』を参照してください。


ProcedureIPv4 ルーターの構成方法

次の手順では、システムのインストール後にルーターのインタフェースを構成していることを想定しています。

始める前に

ルーターをネットワークに物理的に設置してから、ローカルファイルモードで動作するようにルーターを構成します。詳細は、「ローカルファイルモードの場合のホストの構成方法」を参照してください。これで、ネットワーク構成サーバーがダウンしても、ルーターが確実にブートされるようになります。

  1. ルーターとして構成されるシステムで、Primary Administrator の役割を引き受けるか、スーパーユーザーになります。

    Primary Administrator 役割には、Primary Administrator プロファイルが含まれます。役割を作成してユーザーに役割を割り当てるには、『Solaris のシステム管理 (基本編)』の第 2 章「Solaris 管理コンソールの操作 (手順)」を参照してください。

  2. Solaris 10 1/06 リリース以降では、dladm show-link コマンドを使って、ルーターに物理的に取り付けられているインタフェースを判定します。


    # dladm show-link
    

    次の dladm show-link コマンドの出力例は、4 つのインタフェースを持つ qfe NIC と 2 つの bge インタフェースがシステム上で物理的に使用可能であることを示しています。


    qfe0             type: legacy    mtu: 1500       device: qfe0
    qfe1             type: legacy    mtu: 1500       device: qfe1
    qfe2             type: legacy    mtu: 1500       device: qfe0
    qfe3             type: legacy    mtu: 1500       device: qfe1
    bge0             type: non-vlan  mtu: 1500       device: bge0
    bge1             type: non-vlan  mtu: 1500       device: bge1
  3. インストール時に、ルーター上のどのインタフェースが構成され、plumb されたのかを確認します。


    # ifconfig -a
    

    次の ifconfig -a コマンドの出力例は、インストール時にインタフェース qfe0 が構成されたことを示しています。このインタフェースは 172.16.0.0 ネットワークにあります。qfe NIC の残りのインタフェースである qfe1 - qfe3、および bge インタフェースは構成されていません。


    lo0: flags=1000849 <UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1
            inet 127.0.0.1 netmask ff000000 
    qfe0: flags=1000843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
            inet 172.16.26.232 netmask ffff0000 broadcast 172.16.26.255
            ether 0:3:ba:11:b1:15 
             
  4. 別のインタフェースを構成して plumb します。


    # ifconfig interface plumb up
    

    たとえば、qfe1 の場合は、次のように入力します。


    # ifconfig qfe1 plumb up
    

    注 –

    ifconfig コマンドを使用して明示的に構成されたインタフェースは、リブート後には保持されません。


  5. インタフェースに IPv4 アドレスとネットマスクを割り当てます。


    注意 – 注意 –

    IPv4 ルーターがその IP アドレスを DHCP 経由で受け取るように構成することもできますが、これは十分に経験を積んだ DHCP システム管理者だけが行うようにしてください。



    # ifconfig interface IPv4-address netmask+netmask
    

    たとえば、IP アドレス 192.168.84.3qfe1 に割り当てるには、次のいずれかを実行します。

    • 従来の IPv4 の表記法を使用して、次のように入力します。


      # ifconfig qfe1 192.168.84.3 netmask + 255.255.255.0
      
    • CIDR の表記法を使用して、次のように入力します。


      # ifconfig qfe1 192.168.84.3/24
      

      接頭辞 /24 により、自動的にネットマスク 255.255.255.0qfe1 に割り当てられます。CIDR の接頭辞と、それと同等の 10 進ドット表記のネットマスクの表については、図 2–2 を参照してください。

  6. (省略可能) リブート後もインタフェースの構成が保持されるようにするには、追加の物理インタフェースごとに /etc/hostname.interface ファイルを作成します。

    たとえば、/etc/hostname.qfe1 ファイルと /etc/hostname.qfe2 ファイルを作成します。次に、ホスト名 timbuktu/etc/hostname.qfe1 ファイルに入力し、ホスト名 timbuktu-201/etc/hostname.qfe1 ファイルに入力します。個々のインタフェースを構成する方法の詳細については、「システムインストール後に物理インタフェースを構成する方法」を参照してください。

    このファイルを作成したあとは、必ず構成リブートを実行してください。


    # reboot -- -r
    
  7. 各インタフェースのホスト名と IP アドレスを /etc/inet/hosts ファイルに追加します。

    次に例を示します。


    172.16.26.232      deadsea        #interface for network 172.16.0.0
    192.168.200.20     timbuktu       #interface for network 192.168.200
    192.168.201.20     timbuktu-201   #interface for network 192.168.201
    192.168.200.9      gobi
    192.168.200.10     mojave
    192.168.200.110    saltlake
    192.168.200.12     chilean

    インタフェース timbuktutimbuktu-201 は、同じシステムにあります。timbuktu-201 のネットワークアドレスが、timbuktu のネットワークインタフェースとは異なる点に注意してください。この違いは、ネットワーク 192.168.201 の物理ネットワークメディアが timbuktu-201 ネットワークインタフェースに接続されているのに対し、ネットワーク 192.168.200 のメディアは timbuktu インタフェースに接続されているためです。

  8. Solaris 10 11/06 以前の Solaris 10 リリースの場合のみ、新しいインタフェースのそれぞれの IP アドレスとホスト名を、/etc/inet/ipnodes ファイルまたは同等の ipnodes データベースに追加します。

    次に例を示します。


    vi /etc/inet/ipnodes
    172.16.26.232      deadsea        #interface for network 172.16.0.0
    192.168.200.20     timbuktu       #interface for network 192.168.200
    192.168.201.20     timbuktu-201   #interface for network 192.168.201
    
  9. このルーターがサブネット化されたいずれかのネットワークに接続されている場合は、ネットワーク番号とネットマスクを /etc/inet/netmasks ファイルに追加します。

    • 192.168.83.0 など、従来の IPv4 アドレス表記法の場合は、次のように入力します。


      192.168.83.0    255.255.255.0
    • CIDR アドレスの場合は、/etc/inet/netmask ファイルのエントリに接頭辞の 10 進ドット表記のバージョンを使用します。ネットワークの接頭辞とそれと同等の 10 進ドット表記については、図 2–2 を参照してください。たとえば、192.168.3.0/22 という CIDR ネットワーク接頭辞を表現するには、/etc/netmasks ファイルで次のエントリを使用します。


      192.168.3.0 255.255.252.0
  10. ルーターで IPv4 パケット転送を使用可能にします。

    次のいずれかのコマンドを使用して、パケット転送を有効にします。

    • routeadm コマンドを次のように使用します。


      # routeadm -e ipv4-forwarding -u
      
    • 次のサービス管理機能 (SMF) コマンドを使用します。


      # svcadm enable ipv4-forwarding
      

    これで、ルーターは、ローカルネットワークの外にもパケットを転送できます。さらにルーターは、ルートを手動で経路制御テーブルに追加できる機能である、「静的経路制御」もサポートします。このシステムで静的経路制御を使用する場合は、 ルーターの構成はこれで終わりです。ただし、システム経路制御テーブルで、ルートを維持管理する必要があります。ルートの追加方法については、「ルートの設定」および route(1M) のマニュアルページを参照してください。

  11. (任意) 経路制御プロトコルを起動する。

    経路制御デーモン /usr/sbin/in.routed は自動的に経路制御テーブルを更新します。このプロセスのことを「動的経路制御」と呼びます。次のいずれかの方法で、デフォルトの IPv4 経路制御プロトコルをオンに設定します。

    • routeadm コマンドを次のように使用します。


      # routeadm -e ipv4-routing -u
      
    • 次の SMF コマンドを使用して、RIP などの経路制御プロトコルを起動します。


      # svcadm enable route:default
      

      in.routed デーモンに関連付けられている SMF FMRI は svc:/network/routing/route です。

    routeadm コマンドの詳細については、routeadm(1M) のマニュアルページを参照してください。


例 5–4 ネットワークのデフォルトルーターを構成する

この例では、複数のインタフェースを持つシステムを、デフォルトルーターにアップグレードする方法を示します。目標は、図 5–3 に示されたルーター 2 を、ネットワーク 172.20.1.0 のデフォルトルーターにすることです。ルーター 2 には有線ネットワーク接続が 2 つあり、1 つはネットワーク 172.20.1.0、もう 1 つはネットワーク 10.0.5.0 に接続されています。この例では、ルーターはローカルファイルモードで動作するものとします。このモードについては、「ローカルファイルモードの場合のホストの構成方法」を参照してください。

スーパーユーザーになるか、同等の役割になったあと、システムのインタフェースの状態を調べます。Solaris 10 1/06 以降では、dladm コマンドを次のように使用できます。


# dladm show-link
ce0             type: legacy    mtu: 1500       device: ce0 
bge0            type: non-vlan  mtu: 1500       device: bge0 
bge1            type: non-vlan  mtu: 1500       device: bge1

# ifconfig -a
lo0: flags=1000849 <UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000 
ce0: flags=1000843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
        inet 172.20.1.10 netmask ffff0000 broadcast 172.20.10.100
        ether 8:0:20:c1:1b:c6 

dladm show-link の出力は、システムで 3 つのリンクが使用可能であることを示しています。ce0 インタフェースだけが plumb されています。デフォルトルーターの構成を始めるために、まず bge0 インタフェースを 10.0.5.0 ネットワークに物理的に接続します。次に、このインタフェースを plumb し、リブート後も保持されるようにします。


# ifconfig bge0 plumb up
# ifconfig bge0 10.0.5.10
# ifconfig -a
lo0: flags=1000849 <UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000 
ce0: flags=1000843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
        inet 172.20.1.10 netmask ffff0000 broadcast 172.255.255.255
        ether 8:0:20:c1:1b:c6 
bge0: flags=1000843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
        inet 10.0.5.10 netmask ff000000 broadcast 10.255.255.255
        ether 8:0:20:e5:95:c4
 # vi /etc/hostname.bge0
10.0.5.10
255.0.0.0

再構成用ブートコマンドを使用して、システムをリブートします。


# reboot -- -r

続いて、新たに plumb したこのインタフェースの情報とその接続先ネットワークの情報を使用して、次のネットワークデータベースを設定します。


# vi /etc/inet/hosts
127.0.0.1       localhost
172.20.1.10        router2        #interface for network 172.20.1
10.0.5.10          router2-out    #interface for network 10.0.5
# vi /etc/inet/netmasks
172.20.1.0    255.255.0.0
10.0.5.0      255.0.0.0

最後に、SMF を使用してパケット転送を有効にしてから、in.routed 経路制御デーモンを有効にします。


# svcadm enable ipv4-forwarding
# svcadm enable route:default

これで、IPv4 パケット転送と RIP による動的経路制御がルーター 2 で有効になりました。ただし、ネットワーク 172.20.1.0 のデフォルトルーターの構成はまだ完了していません。次の作業を行う必要があります。


経路制御テーブルと経路制御の種類

ルーターとホストの両方で「経路制御テーブル」が管理されます。各システムの経路制御デーモンは、すべての既知のルートを使用してテーブルを更新します。システムのカーネルは、パケットをローカルネットワークに転送する前に、経路制御テーブルを読み取ります。経路制御テーブルには、システムのデフォルトのローカルネットワークも含め、システムで知られているネットワークの IP アドレスがリストされています。このテーブルには、既知の各ネットワークに対するゲートウェイシステムの IP アドレスもリストされています。「ゲートウェイ」とは、発信されるパケットを受け取り、ローカルネットワークより 1 つ外側のホップに転送するシステムのことです。次に、IPv4 専用ネットワーク上にあるシステムの単純な経路制御テーブルを示します。


Routing Table: IPv4
  Destination           Gateway           Flags  Ref   Use   Interface
-------------------- -------------------- ----- ----- ------ ---------
default              172.20.1.10          UG       1    532   ce0
224.0.0.0            10.0.5.100           U        1      0   bge0
10.0.0.0             10.0.5.100           U        1      0   bge0
127.0.0.1            127.0.0.1            UH       1     57   lo0

Oracle Solaris システムでは、2 種類の経路制御を設定できます。静的なものと動的なものです。1 つのシステムに、これらの経路制御のどちらか一方を設定することも、両方を設定することもできます。「動的経路制御」を実装するシステムは、IPv4 ネットワークの場合は RIP、IPv6 ネットワークの場合は RIPng などの経路制御プロトコルを利用して、経路制御テーブルを管理します。「静的経路制御」だけを実行するシステムは、経路制御情報の取得や経路制御テーブルの更新を経路制御プロトコルに依存しません。その代わり、システムの既知のルートを、route コマンドを使って手動で管理する必要があります。詳細は、route(1M) のマニュアルページを参照してください。

ローカルネットワークまたは自律システムの経路制御を設定するときは、特定のルーターやホストでどの種類の経路制御をサポートするかを検討してください。

次の表に、経路制御の種類と、それぞれの種類の経路制御を適用するのに最も適したネットワークの条件を示します。

経路制御の種類 

最適な使用対象 

静的 

小規模なネットワーク、デフォルトルーターから経路を取得するホスト、および、隣接する数ホップの範囲にある 1 つか 2 つのルーターに関する情報のみを必要とするデフォルトルーター。

動的 

より規模の大きいインターネットワーク、多数のホストを含むローカルネットワーク上のルーター、および、大規模な自律システム上のホスト。動的経路制御は、ほとんどのネットワークのシステムに最適です。

静的経路制御と動的経路制御の組み合わせ 

静的に経路制御されるネットワークと動的に経路制御されるネットワークを接続するルーター、および、内部の自律システムと外部のネットワークを接続するボーダールーター。1 つのシステムで静的経路制御と動的経路制御の両方を組み合わせることは、一般的に行われています。 

図 5–3 に示された AS は、静的経路制御と動的経路制御の両方を組み合わせて使用しています。

ルートの設定

IPv4 ネットワークに動的経路制御を実装するには、routeadm コマンドまたは svcadm コマンドを使用して in.routed 経路制御デーモンを起動します。手順については、「IPv4 ルーターの構成方法」を参照してください。動的経路制御は、ほとんどのネットワークおよび自律システムに最適な方法です。ただし、使用しているネットワークトポロジやネットワーク上の特定のシステムで、静的経路制御が必要になる場合もあります。その場合は、システムの経路制御テーブルを手動で編集して、ゲートウェイへの既知のルートを反映させる必要があります。次の手順は、静的ルートを追加する方法を示しています。


注 –

同じ宛先へのルートが 2 つあっても、システムで負荷分散やフェイルオーバーが自動的に行われるわけではありません。これらの機能が必要な場合は、第 30 章IPMP の紹介 (概要)に説明されている IPMP を使用します。


Procedure経路制御テーブルに静的ルートを追加する方法

  1. 経路制御テーブルの現在の状態を表示します。

    通常のユーザーアカウントを使用して、次の形式の netstat コマンドを実行します。


    % netstat -rn
    

    次のような出力が表示されます。


    Routing Table: IPv4
      Destination           Gateway           Flags  Ref   Use   Interface
    -------------------- -------------------- ----- ----- ------ ---------
    192.168.5.125        192.168.5.10          U      1   5879   ipge0
    224.0.0.0            198.168.5.10          U      1  0       ipge0
    default              192.168.5.10          UG     1  91908
    127.0.0.1            127.0.0.1             UH     1  811302   lo0
  2. Primary Administrator の役割を引き受けるか、スーパーユーザーになります。

    Primary Administrator 役割には、Primary Administrator プロファイルが含まれます。役割を作成してユーザーに役割を割り当てるには、『Solaris のシステム管理 (基本編)』の第 2 章「Solaris 管理コンソールの操作 (手順)」を参照してください。

  3. (省略可能) 経路制御テーブル内の既存のエントリを消去します。


    # route flush
    
  4. リブート後も保持されるルートを追加します。


    # route -p add -net network-address -gateway gateway-address
    
    -p

    リブート後も保持される必要のあるルートを作成します。現在のセッションだけに有効なルートを作成する場合は、-p オプションを使用しないでください。

    add

    そのあとに指定されているルートを追加することを示します。

    -net network-address

    network-address で指定されたアドレスを持つネットワークへのルートであることを示します。

    -gateway gateway-address

    指定されたルートのゲートウェイシステムの IP アドレスが gateway-address であることを示します。


例 5–5 経路制御テーブルに静的ルートを追加する

次の例は、システムに静的ルートを追加する方法を示しています。このシステムは、図 5–3 で示されている、172.20.1.0 ネットワークのデフォルトルーターであるルーター 2 です。例 5–4 では、ルーター 2 は動的経路制御用に構成されています。ネットワーク 172.20.1.0 上のホストのデフォルトルーターとしてルーター 2 の機能を向上させるには、AS のボーダールーター 10.0.5.150 への静的ルートを追加する必要があります。

ルーター 2 の経路制御テーブルを表示するために、次の手順を実行します。


# netstat -rn
Routing Table: IPv4
  Destination           Gateway           Flags  Ref   Use   Interface
-------------------- -------------------- ----- ----- ------ ---------
default              172.20.1.10          UG        1    249 ce0
224.0.0.0            172.20.1.10          U         1      0 ce0
10.0.5.0             10.0.5.20            U         1     78 bge0
127.0.0.1            127.0.0.1            UH        1     57 lo0

この経路制御テーブルは、ルーター 2 に既知のルートが 2 つあることを示しています。デフォルトのルートは、ルーター 2 の 172.20.1.10 インタフェースをゲートウェイとして使用します。2 番目のルート 10.0.5.0 は、ルーター 2 で実行中の in.routed デーモンによって検出されました。このルートのゲートウェイはルーター 1 で、その IP アドレスは 10.0.5.20 です。

ネットワーク 10.0.5.0 にはボーダールーターとして機能するゲートウェイがあります。このネットワークへのルートをもう 1 つ追加するには、次の手順を実行します。


# route -p add -net 10.0.5.0/24 -gateway 10.0.5.150/24
add net 10.0.5.0: gateway 10.0.5.150

これで、IP アドレス 10.0.5.150/24 を持つボーダールーターへのルートが、経路制御テーブルに追加されました。


# netstat -rn
Routing Table: IPv4
  Destination           Gateway           Flags  Ref   Use   Interface
-------------------- -------------------- ----- ----- ------ ---------
default              172.20.1.10          UG        1    249 ce0
224.0.0.0            172.20.1.10          U         1      0 ce0
10.0.5.0             10.0.5.20            U         1     78 bge0
10.0.5.0             10.0.5.150           U         1    375 bge0
127.0.0.1            127.0.0.1            UH        1     57 lo0

マルチホームホストの構成

Oracle Solaris では、複数のインタフェースを持つシステムは「マルチホームホスト」であると見なされます。マルチホームホストは IP パケットを転送しません。ただし、経路制御プロトコルを実行するようにマルチホームホストを構成することはできます。一般に、次のような種類のシステムをマルチホームホストとして構成します。

Procedureマルチホームホストの作成方法

  1. 予定するマルチホームホストで、Primary Administrator の役割を引き受けるか、スーパーユーザーになります。

    Primary Administrator 役割には、Primary Administrator プロファイルが含まれます。役割を作成してユーザーに役割を割り当てるには、『Solaris のシステム管理 (基本編)』の第 2 章「Solaris 管理コンソールの操作 (手順)」を参照してください。

  2. Oracle Solaris インストールの一部として構成されなかった追加の各ネットワークインタフェースを、構成して plumb します。

    詳細は、「システムインストール後に物理インタフェースを構成する方法」を参照してください。

  3. マルチホームホストで IP 転送が使用可能になっていないことを確認します。


    # routeadm
     
    

    オプションを指定せずに routeadm コマンドを実行すると、経路制御デーモンの状態が報告されます。次の routeadm の出力は、IPv4 転送が有効になっていることを示しています。


       Configuration   Current              Current
                         Option   Configuration        System State
    ---------------------------------------------------------------
                   IPv4 routing   disabled             disabled
                   IPv6 routing   disabled             disabled
                IPv4 forwarding   enabled              disabled
                IPv6 forwarding   disabled             disabled
    
                Routing services   "route:default ripng:default"
  4. システムでパケット転送が有効になっている場合は、パケット転送をオフに設定します。

    次のコマンドのいずれかを使用します。

    • routeadm コマンドの場合は、次のように入力します。


      # routeadm -d ipv4-forwarding -u
      
    • SMF を使用する場合は、次のように入力します。


      # svcadm disable ipv4-forwarding
      
  5. (省略可能) マルチホームホストの動的経路制御をオンに設定します。

    次のいずれかのコマンドを使用して、in.routed デーモンを有効にします。

    • routeadm コマンドの場合は、次のように入力します。


      # routeadm -e ipv4-routing -u
      
    • SMF を使用する場合は、次のように入力します。


      # svcadm enable route:default
      

例 5–6 マルチホームホストの構成

次の例は、図 5–3 に示されているマルチホームホストを構成する方法を示しています。この例で、システムのホスト名は hostc です。このホストには 2 つのインタフェースがあり、両方ともネットワーク 192.168.5.0 に接続されています。

まず、システムのインタフェースの状態を表示します。


# dladm show-link
hme0           type: legacy    mtu: 1500       device: hme0 
qfe0           type: legacy    mtu: 1500       device: qfe0 
qfe1           type: legacy    mtu: 1500       device: qfe1 
qfe2           type: legacy    mtu: 1500       device: qfe2 
qfe3           type: legacy    mtu: 1500       device: qfe3
# ifconfig -a
lo0: flags=1000849 <UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000 
hme0: flags=1000843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
      inet 192.168.5.82 netmask ff000000 broadcast 192.255.255.255
      ether 8:0:20:c1:1b:c6 
 

dladm show-link コマンドの報告は、hostc にはインタフェースが 2 つあり、可能なリンクが合計 5 つあることを示しています。ただし、hme0 だけが plumb されています。hostc をマルチホームホストとして構成するには、qfe NIC の qfe0 または別のリンクを追加する必要があります。まず、qfe0 インタフェースを 192.168.5.0 ネットワークに物理的に接続します。次に、qfe0 インタフェースを plumb し、リブート後も保持されるようにします。


# ifconfig qf0 plumb up
# ifconfig qfe0 192.168.5.85
# ifconfig -a
lo0: flags=1000849 <UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000 
hme0: flags=1000843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
        inet 192.168.5.82 netmask ff0000 broadcast 192.255.255.255
        ether 8:0:20:c1:1b:c6 
qfe0: flags=1000843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
        inet 192.168.5.85 netmask ff000000 broadcast 192.255.255.255
        ether 8:0:20:e1:3b:c4
 # vi /etc/hostname.qfe0
192.168.5.85
255.0.0.0

再構成用ブートコマンドを使用して、システムをリブートします。


# reboot -- -r

次に、qfe0 インタフェースを hosts データベースに追加します。


# vi /etc/inet/hosts
127.0.0.1           localhost
192.168.5.82        host3    #primary network interface for host3
192.168.5.85        host3-2  #second interface

その後、host3 でのパケット転送と経路制御の状態を確認します。


# routeadm
              Configuration   Current              Current
                     Option   Configuration        System State
---------------------------------------------------------------
               IPv4 routing   enabled              enabled
               IPv6 routing   disabled             disabled
            IPv4 forwarding   enabled              enabled
            IPv6 forwarding   disabled             disabled

           Routing services   "route:default ripng:default"

routeadm コマンドの報告は、in.routed デーモンによる動的経路制御とパケット転送が現在有効になっていることを示しています。ただし、パケット転送を無効にする必要があります。


# svcadm disable ipv4-forwarding

「マルチホームホストの作成方法」で説明されているように、routeadm コマンドを使用してパケット転送をオフに設定することもできます。パケット転送を無効にすると、host3 はマルチホームホストになります。


単一インタフェースシステムの経路制御の設定

単一インタフェースホストは、何らかの形式の経路制御を実装する必要があります。ホストがそのルートを 1 つ以上のローカルデフォルトルーターから取得する場合は、静的経路制御を使用するようにホストを構成する必要があります。それ以外の場合は、ホストで動的経路制御を使用することをお勧めします。次の手順では、両方の種類の経路制御を有効にする方法を示します。

Procedure単一インタフェースホストで静的経路制御を有効にする方法

この手順は、単一インタフェースホストで静的経路制御を有効にします。静的経路制御を使用するホストは、RIP などの動的経路制御プロトコルをいっさい実行しません。代わりに、ホストはデフォルトルーターのサービスを利用して経路制御情報を取得する必要があります。「IPv4 自律システムのトポロジ」の図には、いくつかのデフォルトルーターとそのクライアントホストが示されています。特定のホストをインストールするときにデフォルトルーターの名前を指定した場合、そのホストはすでに、静的経路制御を使用するように構成されています。


注 –

次の手順を使用して、マルチホームホストで静的経路制御を設定することもできます。


/etc/defaultrouter ファイルの詳細については、/etc/defaultrouter ファイル」を参照してください。静的経路制御と経路制御テーブルの詳細については、「経路制御テーブルと経路制御の種類」を参照してください。

  1. 単一インタフェースのホスト上で、Primary Administrator の役割を引き受けるか、スーパーユーザーになります。

    Primary Administrator 役割には、Primary Administrator プロファイルが含まれます。役割を作成してユーザーに役割を割り当てるには、『Solaris のシステム管理 (基本編)』の第 2 章「Solaris 管理コンソールの操作 (手順)」を参照してください。

  2. ホストに /etc/defaultrouter ファイルが存在するかどうかを確認します。


    # cd /etc
    # ls | grep defaultrouter
    
  3. テキストエディタを開き、/etc/defaultrouter ファイルを作成または変更します。

  4. デフォルトルーターのエントリを追加します。


    # vi  /etc/defaultrouter
    router-IP
           
    

    ここで、router-IP は、ホストが使用するデフォルトルーターの IP アドレスを示しています。

  5. 経路制御とパケット転送がホストで実行されていないことを確認します。


    # routeadm
       Configuration   Current              Current
                         Option   Configuration        System State
    ---------------------------------------------------------------
                   IPv4 routing   disabled             disabled
                   IPv6 routing   disabled             disabled
                IPv4 forwarding   disabled            disabled
                IPv6 forwarding   disabled             disabled
    
               Routing services   "route:default ripng:default"
  6. デフォルトルーターのエントリをローカルの /etc/inet/hosts ファイルに追加します。

    /etc/inet/hosts の構成については、「IPv4 アドレスおよびその他のネットワーク構成パラメータを変更する方法」を参照してください。


例 5–7 単一インタフェースホストのデフォルトルーターと静的経路制御を設定する

次の例は、単一インタフェースホスト hostb に静的経路制御を設定する方法を示しています。このホストは、図 5–3 に示されているネットワーク 172.20.1.0 上にあります。hostb は、そのデフォルトルーターとしてルーター 2 を使用する必要があります。

まず、スーパーユーザーまたは同等の役割として hostb にログインします。次に、ホストに /etc/defaultrouter ファイルが存在するかどうかを調べます。


# cd /etc
# ls | grep defaultrouter

grep で検出されなかったので、/etc/defaultrouter ファイルを作成する必要があります。


# vi /etc/defaultrouter
172.20.1.10

/etc/defaultrouter ファイルのエントリは、172.20.1.0 ネットワークに接続されているルーター 2 のインタフェースの IP アドレスです。次に、ホストでパケット転送や経路制御が現在有効になっているかどうかを確認します。


# routeadm
   Configuration   Current              Current
                     Option   Configuration        System State
---------------------------------------------------------------
               IPv4 routing   disabled             disabled
               IPv6 routing   disabled             disabled
            IPv4 forwarding   enabled              enabled
            IPv6 forwarding   disabled             disabled

           Routing services   "route:default ripng:default"

この特定のホストでは、パケット転送が有効になっています。次のように、これをオフに設定します。


# svcadm disable ipv4-forwarding

最後に、ホストの /etc/inet/hosts ファイルにこの新しいデフォルトルーターのエントリが存在することを確認します。


# vi /etc/inet/hosts
127.0.0.1           localhost
172.20.1.18         host2    #primary network interface for host2
172.20.1.10         router2  #default router for host2

Procedure単一インタフェースホストで動的経路制御を有効にする方法

動的経路制御は、ホストで経路制御を管理するためのもっとも簡単な方法です。動的経路制御を使用するホストは、IPv4 の場合は in.routed デーモンで提供される経路制御プロトコルを実行し、IPv6 の場合は in.ripngd デーモンで提供される経路制御プロトコルを実行します。単一インタフェースホストで IPv4 動的経路制御を有効にするには、次の手順を使用します。動的経路制御の詳細は、「IPv4 ネットワーク上でのパケット転送と経路制御」を参照してください。

  1. ホスト上で、Primary Administrator の役割を引き受けるか、スーパーユーザーになります。

    Primary Administrator 役割には、Primary Administrator プロファイルが含まれます。役割を作成してユーザーに役割を割り当てるには、『Solaris のシステム管理 (基本編)』の第 2 章「Solaris 管理コンソールの操作 (手順)」を参照してください。

  2. /etc/defaultrouter ファイルがあることを確認します。


    # cd /etc
    # ls | grep defaultrouter
    
  3. /etc/defaultrouter が存在する場合は、その中のエントリをすべて削除します。

    /etc/defaultrouter ファイルが空の場合、ホストは自動的に動的経路制御を使用します。

  4. ホストでパケット転送と経路制御が有効になっているかどうかを確認します。


    # routeadm
       Configuration   Current              Current
                         Option   Configuration        System State
    ---------------------------------------------------------------
                   IPv4 routing   disabled             disabled
                   IPv6 routing   disabled             disabled
                IPv4 forwarding   enabled              enabled
                IPv6 forwarding   disabled             disabled
    
               Routing services   "route:default ripng:default"
  5. パケット転送が有効になっている場合は、パケット転送をオフに設定します。

    次のコマンドのいずれかを使用します。

    • routeadm コマンドの場合は、次のように入力します。


      # routeadm -d ipv4-forwarding -u
      
    • SMF を使用する場合は、次のように入力します。


      # svcadm disable ipv4-forwarding
      
  6. ホストで経路制御プロトコルを有効にします。

    次のコマンドのいずれかを使用します。

    • routeadm コマンドの場合は、次のように入力します。


      # routeadm -e ipv4-routing -u
      
    • SMF を使用する場合は、次のように入力します。


      # svcadm enable route:default
      

    これで、IPv4 動的経路制御が有効になりました。ホストの経路制御テーブルは、in.routed デーモンによって動的に管理されます。


例 5–8 単一インタフェースホストで動的経路制御を実行する

次の例は、単一インタフェースホスト hosta に動的経路制御を設定する方法を示しています。このホストは、図 5–3 に示されているネットワーク 192.168.5.0 上にあります。hosta は、そのデフォルトルーターとしてルーター 1 を現在使用しています。ただし、これからは hosta で動的経路制御を実行する必要があります。

まず、スーパーユーザーまたは同等の役割として hosta にログインします。次に、ホストに /etc/defaultrouter ファイルが存在するかどうかを調べます。


# cd /etc
# ls | grep defaultrouter
defaultrouter

grep で検出されたので、hosta には /etc/defaultrouter ファイルが存在します。


# vi /etc/defaultrouter
192.168.5.10

このファイルには 192.168.5.10 というエントリがあります。これはルーター 1 の IP アドレスです。静的経路制御を有効にするには、このエントリを削除します。次に、ホストでパケット転送と経路制御がすでに有効になっているかどうかを確認する必要があります。


# routeadm   Configuration   Current              Current
                     Option   Configuration        System State
---------------------------------------------------------------
               IPv4 routing   disabled             disabled
               IPv6 routing   disabled             disabled
            IPv4 forwarding   disabled             disabled
            IPv6 forwarding   disabled             disabled

           Routing services   "route:default ripng:default"

hosta では、経路制御とパケット転送の両方がオフに設定されています。次のように経路制御をオンに設定して、hosta の動的経路制御の設定を完了します。


# svcadm enable route:default

トランスポート層サービスの監視と変更

トランスポート層プロトコル TCP、SCTP、および UDP は、Oracle Solaris の標準パッケージの一部です。 通常、これらのプロトコルは、ユーザーの介入なしで正常に動作します。ただし、サイトの条件によっては、トランスポート層プロトコルの上で動作するサービスをログまたは変更しなければならない場合があります。次に、サービス管理機能 (SMF) を使ってこれらのサービスのプロファイルを変更する必要があります。SMF については、『Solaris のシステム管理 (基本編)』の第 18 章「サービスの管理 (概要)」を参照してください。

inetd デーモンは、システムが起動されると、標準的なインターネットサービスを起動します。これらのサービスは、TCP や SCTP、UDP をそのトランスポート層プロトコルとして使用するアプリケーションなどです。SMF コマンドを使えば、既存のインターネットサービスの組み合わせを変更したり、新しいサービスを追加したりできます。inetd についての詳細は、inetd インターネットサービスデーモン」を参照してください。

トランスポート層プロトコルが関係する操作には、次の操作があります。

inetd デーモンの詳細は、inetd(1M) のマニュアルページを参照してください。

Procedureすべての着信 TCP 接続の IP アドレスを記録する方法

  1. ローカルシステムで「ネットワーク管理者」役割になるか、スーパーユーザーになります。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. inetd で管理されるすべてのサービスに対して TCP トレースを使用可能にします。


    # inetadm -M tcp_trace=TRUE
    

ProcedureSCTP プロトコルを使用するサービスを追加する方法

SCTP トランスポートプロトコルは、TCP に類似した方法でアプリケーション層プロトコルにサービスを提供します。ただし、SCTP では 2 つのシステム間での通信が可能です。これらのシステムは、片方または両方がマルチホームであってもかまいません。SCTP 接続は「アソシエーション」と呼ばれます。アソシエーションでは、アプリケーションがデータを分割し、1 つまたは複数のメッセージストリームとして伝送します (マルチストリーム化)。SCTP 接続は、複数の IP アドレスを持つエンドポイントに到達できます。これは、テレフォニーアプリケーションにとって特に重要です。IP Filter や IPsec を使用する場合、SCTP のマルチホーム機能はセキュリティーの点で考慮を要します。考慮点については、sctp(7P) のマニュアルページを参照してください。

デフォルトで SCTP は Oracle Solaris に組み込まれています。したがって、構成を別に行う必要はありません。ただし、SCTP を使用するためには、一定のアプリケーション層サービスを明示的に構成しなければならない場合があります。このようなアプリケーションの例としては、echodiscard があります。次の手順は、ワンツーワンスタイルの SCTP ソケットを使用する echo サービスの追加方法を示しています。


注 –

さらに、次の手順を使えば、TCP や UDP のトランスポート層プロトコル用のサービスを追加できます。


次の作業では、inetd デーモンによって管理される SCTP inet サービスを SMF リポジトリに追加します。さらに、作業の後半では、サービス管理機能 (SMF) コマンドを使ってこのサービスを追加します。

始める前に

次の手順を実行する前に、サービスのマニフェストファイルを作成してください。この手順では、例として、echo サービス用のマニフェスト echo.sctp.xml を使用します。

  1. システムファイルに対する書き込みアクセス権を持つユーザーアカウントでローカルシステムにログインします。

  2. /etc/services ファイルを編集し、新しいサービスの定義を追加します。

    サービスを定義する構文は次のとおりです。


    service-name |port/protocol | aliases
    
  3. 新しいサービスを追加します。

    サービスマニフェストが格納されているディレクトリに移り、次のように入力します。


    # cd dir-name
    # svccfg import service-manifest-name
    

    svccfg の詳しい構文については、svccfg(1M) のマニュアルページを参照してください。

    現在 service.dir ディレクトリにあるマニフェスト echo.sctp.xml を使用して、SCTP の新しい echo サービスを追加するとします。その場合、次のように入力します。


    # cd service.dir
    # svccfg import echo.sctp.xml
    
  4. サービスマニフェストが追加されているか確認します。


    # svcs FMRI
    

    FMRI 引数には、サービスマニフェストの Fault Managed Resource Identifier (FMRI) を使用します。たとえば、SCTP の echo サービスの場合は、次のコマンドを使用します。


    # svcs svc:/network/echo:sctp_stream
    

    次のような出力が表示されます。


    	STATE          STIME    FMRI
    disabled       16:17:00 svc:/network/echo:sctp_stream

    svcs コマンドの詳細は、svcs(1) のマニュアルページを参照してください。

    出力は、新しいサービスマニフェストが使用不可になっていることを示しています。

  5. サービスの属性をリストして、変更を加える必要があるかどうかを決めます。


    # inetadm -l FMRI
    

    inetadm コマンドの詳細は、inetadm(1m) のマニュアルページを参照してください。

    たとえば、SCTP echo サービスの場合は、次のように入力します。


    # inetadm -l svc:/network/echo:sctp_stream
    SCOPE    NAME=VALUE
    	         name="echo"
    	         endpoint_type="stream"
    	         proto="sctp"
    	         isrpc=FALSE
    	         wait=FALSE
    	         exec="/usr/lib/inet/in.echod -s"
             .
             .
             default  tcp_trace=FALSE
           	default  tcp_wrappers=FALSE
  6. 新しいサービスを使用可能にします。


    # inetadm -e FMRI
    
  7. サービスが使用可能になっていることを確認します。

    たとえば、新しい echo サービスの場合、次のように入力します。


    # inetadm | grep sctp_stream
    .
    .
    	enabled   online         svc:/network/echo:sctp_stream

例 5–9 SCTP トランスポートプロトコルを使用するサービスの追加

次の例では、使用するコマンドと、echo サービスで SCTP トランスポート層プロトコルを使用するために必要なファイルエントリを示します。


$ cat /etc/services
.
.
echo            7/tcp
echo            7/udp
echo            7/sctp

# cd service.dir

	# svccfg import echo.sctp.xml

# svcs network/echo*
	STATE          STIME    FMRI
	disabled       15:46:44 svc:/network/echo:dgram
	disabled       15:46:44 svc:/network/echo:stream
	disabled       16:17:00 svc:/network/echo:sctp_stream

# inetadm -l svc:/network/echo:sctp_stream
	SCOPE    NAME=VALUE
	         name="echo"
	         endpoint_type="stream"
	         proto="sctp"
	         isrpc=FALSE
	         wait=FALSE
	         exec="/usr/lib/inet/in.echod -s"
	         user="root"
	default  bind_addr=""
	default  bind_fail_max=-1
	default  bind_fail_interval=-1
	default  max_con_rate=-1
	default  max_copies=-1
	default  con_rate_offline=-1
	default  failrate_cnt=40
	default  failrate_interval=60
	default  inherit_env=TRUE
	default  tcp_trace=FALSE
	default  tcp_wrappers=FALSE

# inetadm -e svc:/network/echo:sctp_stream

# inetadm | grep echo
	disabled  disabled       svc:/network/echo:stream
	disabled  disabled       svc:/network/echo:dgram
	enabled   online         svc:/network/echo:sctp_stream

ProcedureTCP ラッパーを使って TCP サービスのアクセスを制御する方法

TCP ラッパー」は tcpd プログラムによって実装されます。TCP ラッパーは、送られてくるサービス要求とサービスデーモンの間で動作することによって、ftpd などのサービスデーモンにセキュリティー対策を追加します。TCP ラッパーは、正常および異常な接続の試みを記録します。さらに、TCP ラッパーはアクセス制御の機能を備えています。したがって、要求の発行元がどこかによって接続を許可することも拒否することもできます。TCP ラッパーを使えば、SSH、Telnet、FTP などのデーモンを保護できます。さらに、sendmail アプリケーションでも TCP ラッパーを使用できます。詳細は、『Solaris のシステム管理 (ネットワークサービス)』「sendmail の version 8.12 からの TCP ラッパーのサポート」を参照してください。

  1. ローカルシステムで、Primary Administrator の役割を引き受けるか、スーパーユーザーになります。

    Primary Administrator 役割には、Primary Administrator プロファイルが含まれます。役割を作成してユーザーに役割を割り当てるには、『Solaris のシステム管理 (基本編)』の第 2 章「Solaris 管理コンソールの操作 (手順)」を参照してください。

  2. TCP ラッパーを使用可能にします。


    # inetadm -M tcp_wrappers=TRUE
    
  3. TCP ラッパーのアクセス制御ポリシーを構成します (hosts_access(3) のマニュアルページを参照)。

    このマニュアルページは、Oracle Solaris CD-ROM と一緒にパッケージ化されている SFW CD-ROM の /usr/sfw/man ディレクトリにあります。

Solaris 10 3/05 の管理インタフェース

この節では、物理インタフェースの管理に必要な次の作業について説明します。

この節で説明する新機能

この節では、Solaris 10 3/05 OS ユーザーのみを対象として、インタフェースの構成情報について説明します。Oracle Solaris 10 の更新を使用している場合は、Chapter 6, ネットワークインタフェースの管理 (作業)を参照してください。Oracle Solaris の新機能すべての一覧や Oracle Solaris リリースの説明については、『Oracle Solaris 10 9/10 の新機能』を参照してください。

Solaris 10 3/05 での物理インタフェースの構成

Oracle Solaris ベースのシステムには通常、物理インタフェースと論理インタフェースの 2 つのタイプのインタフェースがあります。「物理インタフェース」はドライバとコネクタからなり、コネクタには、Ethernet ケーブルなどのネットワークメディアを接続します。「論理インタフェース」は、既存の物理インタフェースの上に論理的に構成されます。既存の物理インタフェースとは、トンネル用に構成されたインタフェースや IPv6 アドレスを使用するように構成されたインタフェースなどです。この節では、インストールされた物理インタフェースの構成方法について説明します。論理インタフェースの構成方法の説明は、論理インタフェースを必要とする機能のための作業に含まれています。たとえば、「IPv6 over IPv4 トンネルを手動で構成する方法」を参照してください。

物理インタフェースのタイプには、システムに組み込まれているインタフェースも、別個に購入したインタフェースも含まれます。それぞれのインタフェースは「ネットワークインタフェースカード」(NIC) の上で動作します。

組み込み NIC」は、システムの購入時にすでにシステムに組み込まれています。組み込み NIC で動作するインタフェースの例としては、eri0hme0 などの「一次ネットワークインタフェース」があります。システムの一次ネットワークインタフェースは、インストール時に構成する必要があります。

erihme などの NIC にはインタフェースが 1 つしかありません。ただし、多くの種類の NIC には複数のインタフェースがあります。qfe カードなどの複数インタフェース NIC には、qfe0 から qfe3 まで 4 つのインタフェースがあります。Oracle Solaris インストールプログラムは、インストール時に存在するすべてのインタフェースを検出し、それらを構成するかどうか確認します。これらのインタフェースの構成は、ブート時に行うことも、後日に行うこともできます。


注 –

NIC は「ネットワークアダプタ」とも呼ばれます。


システムには、組み込み NIC のほかに、別個に購入した NIC を追加できます。別個に購入した NIC は、製造元のマニュアルに従って物理的に取り付けてください。次に、NIC で動作するインタフェースを構成し、それらのインタフェースをデータトラフィックの受け渡しに使用できるようにします。

次に、インストール後に追加インタフェースをシステム上に構成する理由を示します。

Procedureインストール後に物理インタフェースを追加する方法 (Solaris 10 3/05 のみ)

始める前に

追加インタフェース用に使用する IPv4 アドレスを決めます。

構成する物理インタフェースはシステム上に存在していなければなりません。別個に購入した NIC ハードウェアのインストールについては、NIC に添付されている製造元のマニュアルを参照してください。

次の手順では、新しいインタフェースを物理的に取り付けたあと、すでに再起動 (boot-r) を実行してあるとします。


注 –

次の手順は Solaris 10 3/05 OS のユーザーにのみ該当します。Oracle Solaris 10 の更新を使用している場合は、「システムインストール後に物理インタフェースを構成する方法」を参照してください。


  1. インタフェースがあるシステムで、Primary Administrator の役割を引き受けるか、スーパーユーザーになります。

    Primary Administrator 役割には、Primary Administrator プロファイルが含まれます。役割を作成してユーザーに役割を割り当てるには、『Solaris のシステム管理 (基本編)』の第 2 章「Solaris 管理コンソールの操作 (手順)」を参照してください。

  2. 別のインタフェースを構成して plumb します。


    # ifconfig interface plumb up
    

    たとえば、qfe0 の場合は、次のように入力します。


    # ifconfig qfe0 plumb up
    

    注 –

    ifconfig コマンドを使用して明示的に構成されたインタフェースは、リブート後には保持されません。


  3. インタフェースに IPv4 アドレスとネットマスクを割り当てます。


    # ifconfig interface IPv4-address netmask+netmask
    

    たとえば、qfe0 の場合は、次のように入力します。


    # ifconfig qfe0 10.0.0.32 netmask + 255.255.255.0
    
  4. 新しく構成したインタフェースが plumb されて構成済みの状態 (「UP」) であることを確認します。


    # ifconfig -a
    

    表示される各インタフェースの状態行を確認します。たとえば次のように出力の状態行に UP フラグが含まれていることを確認します。


    qfe0: flags=1000843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
  5. (省略可能) リブート後もインタフェースの構成が保持されるようにするには、次の手順を実行します。

    1. 構成するインタフェースごとに、/etc/hostname.interface ファイルを作成します。

      たとえば、qfe0 インタフェースを追加する場合には、次のファイルを作成します。


      # vi /etc/hostname.qfe0
      
    2. /etc/hostname.interface ファイルを編集します。

      少なくとも、インタフェースの IPv4 アドレスをファイルに追加します。ネットマスクやほかの構成情報もファイルに追加できます。


      注 –

      インタフェースに IPv6 アドレスを追加するには、「ホストとサーバーの IPv6 インタフェース構成の変更」を参照してください。


    3. 新しいインタフェース用のエントリを /etc/inet/hosts ファイルに追加します。

    4. 再構成用ブートを実行します。


      # reboot -- -r
      
    5. /etc/hostname.interface ファイルで作成したインタフェースが構成されていることを確認します。


      # ifconfig -a
      

例 5–10 システムのインストール後にインタフェースを構成

次の例では、2 つのインタフェース qfe0qfe1 を追加します。これらのインタフェースは、一次ネットワークインタフェース hme0 と同じネットワークに接続されます。これらのインタフェース構成は、システムの次回リブート時まで保持されます。リブート後も保持されるインタフェースを構成する方法の例は、例 6–2 を参照してください。ただし、その例で使用されている dladm コマンドは Solaris 10 1/06 OS 以降でのみ使用できます。


# ifconfig qfe0 plumb up
# ifconfig qfe1 plumb up
# ifconfig qfe0 10.0.0.32 netmask 255.0.0.0
# ifconfig qfe1 10.0.0.33 netmask 255.0.0.0

# ifconfig -a
lo0: flags=1000849 <UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000 
hme0: flags=1000843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
        inet 10.0.0.14 netmask ff000000 broadcast 10.255.255.255
        ether 8:0:20:c1:8b:c3 
qfe0: flags=1000843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 3
        inet 10.0.0.32 netmask ff000000 broadcast 10.255.255.255
        ether 8:0:20:c8:f4:1d 
qfe1: flags=1000843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 4
        inet 10.0.0.33 netmask ff000000 broadcast 10.255.255.255
        ether 8:0:20:c8:f4:1e 

参照

Procedure物理インタフェースを削除する方法 (Solaris 10 3/05 のみ)


注 –

次の手順は Solaris 10 3/05 OS のユーザーにのみ該当します。Oracle Solaris 10 の更新を使用している場合は、「物理インタフェースを削除する方法」を参照してください。


  1. 削除するインタフェースがあるシステムで、Primary Administrator の役割を引き受けるか、スーパーユーザーになります。

    Primary Administrator 役割には、Primary Administrator プロファイルが含まれます。役割を作成してユーザーに役割を割り当てるには、『Solaris のシステム管理 (基本編)』の第 2 章「Solaris 管理コンソールの操作 (手順)」を参照してください。

  2. 物理インタフェースを削除します。

    次の形式の ifconfig コマンドを使用します。


    # ifconfig interfacedown unplumb
    

    たとえば、eri1 を削除する場合には、次のように入力します。


    # ifconfig eri1 down unplumb
    

VLAN の構成 (Solaris 10 3/05 のみ)


注 –

この節では、Solaris 10 3/05 OS ユーザーのみを対象として、VLAN の構成情報について説明します。Oracle Solaris 10 の更新を使用している場合は、「仮想ローカルエリアネットワークの管理」を参照してください。


仮想ローカルエリアネットワーク (VLAN) は通常、一連のネットワークユーザーグループを管理可能なブロードキャストドメインに分割し、作業グループからなる一連の論理セグメントを作成し、各論理セグメントにセキュリティーポリシーを適用するために使用されます。アダプタに複数の VLAN を定義すれば、1 つのアダプタを持つサーバーが複数の IP サブネットに論理的に存在できます。デフォルトでは、サーバーにある VLAN 対応の各アダプタに 512 の VLAN を定義できます。

ネットワークに複数の VLAN が必要ない場合は、デフォルト構成を使用できます。その場合には、それ以上の構成は必要ありません。

VLAN の概要については、「VLAN トポロジの概要」を参照してください。

VLAN はさまざまな基準に従って作成できますが、各 VLAN には VLAN タグ、つまり VLAN ID (VID) を割り当てる必要があります。VID は、固有の VLAN を識別する 1 から 4094 までの 12 ビット識別子です。ネットワークインタフェース (たとえば、ce0ce1ce2 など) ごとに、最大で 512 個の VLAN を作成できます。一般には IP サブネットが広く使用されているため、VLAN ネットワークインタフェースを設定する際には IP サブネットを使用します。したがって、物理ネットワークインタフェースの VLAN インタフェースに割り当てられた各 VID は異なるサブネットに属します。

Ethernet フレームにタグを付けるためには、フレームにタグヘッダーを追加する必要があります。ヘッダーは、宛先 MAC アドレスとソース MAC アドレスのすぐあとに挿入されます。タグヘッダーは、2 バイトの Ethernet Tag Protocol Identifier (TPID, 0x8100) と 2 バイトの Tag Control Information (TCI) からなります。次の図は Ethernet Tag Header の形式を示しています。

図 5–4 Ethernet Tag Header の形式

図には、その直前に説明されている Ethernet タグヘッダーのレイアウトが表示されています。

Procedure静的 VLAN を構成する方法 (Solaris 10 3/05 のみ)


注 –

この節では、Solaris 10 3/05 OS ユーザーのみを対象として、VLAN の構成情報について説明します。Oracle Solaris 10 の更新を使用している場合は、「VLAN を構成する方法」を参照してください。


  1. Primary Administrator 役割を引き受けるか、スーパーユーザーになります。

    Primary Administrator 役割には、Primary Administrator プロファイルが含まれます。役割を作成してユーザーに役割を割り当てるには、『Solaris のシステム管理 (基本編)』の第 2 章「Solaris 管理コンソールの操作 (手順)」を参照してください。

  2. システムでどのようなタイプのインタフェースが使用されているか判別します。

    システムによっては、VLAN に必要な ce という文字がネットワークアダプタに使用されていない場合があります。


    # ifconfig -a
    lo0: flags=1000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4>
    mtu 8232 index 1
            inet 127.0.0.1 netmask ff000000 
    hme0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4>
    mtu 1500 index 2
            inet 129.156.200.77 netmask ffffff00 broadcast
    129.156.200.255
  3. サーバーの各アダプタに構成する VLAN ごとに 1 つの hostname.cenum ファイル (IPv6 の場合、hostname6.cenum ファイル) を作成します。

    名前には、VID と物理接続点 (PPA) の両方を含む、次のような命名形式を使用します。

    VLAN logical PPA = 1000 * VID + Device PPA ce123000 = 1000*123 + 0

    次の例を参照してください。 hostname.ce123000

    VLAN logical PPA = 1000 * VID + Device PPA ce11000 = 1000*11 + 0

    次の例を参照してください。 hostname.ce11000

    この形式で構成できる PPA の最大数 (インスタンス数) は /etc/path_to_inst で 1000 に限定されます。

    たとえば、あるサーバーが Sun Gigabit Ethernet/P 3.0 アダプタ (インスタンスは 0) を持ち、2 つの VLAN (VID は 123 と 224) に属している場合、2 つの VLAN の PPA としてそれぞれ、ce123000ce224000 を使用します。

  4. VLAN 仮想デバイスを構成します。

    たとえば、次の ifconfig の例を使用できます。


    # ifconfig ce123000 plumb up
    # ifconfig ce224000 plumb up
    

    VLAN デバイス ce123000ce224000 を持つシステム上で ifconfig -a を実行した場合、次のようなメッセージが表示されます。


    # ifconfig -a
    lo0: flags=1000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1
            inet 127.0.0.1 netmask ff000000 
    hme0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
            inet 129.144.131.91 netmask ffffff00 broadcast 129.144.131.255
            ether 8:0:20:a4:4f:b8 
    ce123000: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 3
            inet 199.199.123.3 netmask ffffff00 broadcast 199.199.123.255
            ether 8:0:20:a4:4f:b8 
    ce224000: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 4
            inet 199.199.224.3 netmask ffffff00 broadcast 199.199.224.255
            ether 8:0:20:a4:4f:b8 
  5. スイッチで、VLAN のタグ付けと VLAN ポートを、サーバーに設定した VLAN と一致するように設定します。

    手順 4 の例では、スイッチに VLAN ポート 123 と 224 または VLAN ポート 10 と 11 を設定します。

    VLAN タグとポートの具体的な設定方法については、スイッチに添付されているマニュアルを参照してください。

第 6 章 ネットワークインタフェースの管理 (作業)

この章には、ネットワークインタフェースに関する作業と関連情報を記載します。

ネットワークインタフェースの管理の新機能

この章では、Solaris 10 1/06 リリース以降のインタフェースの構成について説明します。Solaris 10 のオリジナルリリース (10 3/05) を使用している場合は、「Solaris 10 3/05 の管理インタフェース」を参照してください。Oracle Solaris の新機能すべての一覧や Oracle Solaris リリースの説明については、『Oracle Solaris 10 9/10 の新機能』を参照してください。

Solaris 10 1/06 では、次の新機能が導入されました。

Solaris 10 7/07 では、/etc/inet/ipnodes ファイルは廃止されました。個々の手順で説明されているとおり、/etc/inet/ipnodes は以前の Solaris 10 リリースにのみ使用してください。

インタフェースの管理 (作業マップ)

次の表に、ネットワークインタフェースを構成するための各種作業の一覧を示します。VLAN やリンク集積などの特殊な構成のための作業も含まれます。表では、各作業で実行する内容について説明し、作業の具体的な実行手順が詳しく説明されている現在のマニュアル内の節を示しています。

作業 

説明 

説明 

システムのインタフェースの状態を確認します。 

システムのすべてのインタフェースを一覧表示し、すでに plumb されているインタフェースを確認します。 

「インタフェースの状態を取得する方法」

システムをインストールしたあとで、1 つのインタフェースを追加します。 

別のインタフェースを構成することによってシステムをマルチホームホストまたはルーターに変更します。 

「システムインストール後に物理インタフェースを構成する方法」

SPARC: インタフェースの MAC アドレスが一意であることを確認します。 

インタフェースが、システムの MAC アドレスではなく、出荷時に設定された MAC アドレスを使用して構成されていることを確認します (SPARC のみ)。 

「SPARC: インタフェースの MAC アドレスが一意であることを確認する方法」

仮想ローカルエリアネットワーク (VLAN) を計画します。 

VLAN を作成する前に必要な計画作業を実行します。 

「VLAN 構成を計画する方法」

VLAN を構成します。 

ネットワーク上で VLAN を作成および変更します。 

「VLAN を構成する方法」

集積を計画します。 

集積を構成する前に、集積を設計し、必要な計画作業を実行します。 

「リンク集積の概要」

集積を構成します。 

リンク集積に関連するさまざまな作業を実行します。 

「リンク集積を作成する方法」

IPMP グループを計画および構成します。 

IPMP グループのメンバーになっているインタフェースのフェイルオーバーおよびフェイルバックを構成します。 

「IPMP グループの計画を立てる方法」

「複数のインタフェースを持つ IPMP グループを構成する方法」

個々のネットワークインタフェースの管理

Oracle Solaris のインストール後に、次の目的でシステム上のインタフェースを構成、管理する場合があります。

この節では、Solaris 10 1/06 リリース以降での個々のネットワークインタフェースの構成について説明します。次のいずれかのグループに含めるインタフェースを構成する方法については、次の節を参照してください。

Procedureインタフェースの状態を取得する方法

Solaris 10 1/06 以降、この手順では、システム上で現在使用可能なインタフェースとそれらの状態を調べる方法について説明します。この手順では、現在 plumb されているインタフェースを表示する方法も示します。以前の Solaris 10 3/05 リリースを使用している場合は、「特定のインタフェースに関する情報を入手する方法」を参照してください。

  1. インタフェースがあるシステムで、Primary Administrator の役割を引き受けるか、スーパーユーザーになります。

    Primary Administrator 役割には、Primary Administrator プロファイルが含まれます。役割を作成してユーザーに役割を割り当てるには、『Solaris のシステム管理 (基本編)』の第 2 章「Solaris 管理コンソールの操作 (手順)」を参照してください。

  2. 現在システムにインストールされているインタフェースを調べます。


    # dladm show-link
    

    この手順で使用する dladm コマンドの詳細は、dladm(1M) のマニュアルページを参照してください。このコマンドは、それらのインタフェースが現在構成されているかどうかに関係なく、検出したすべてのインタフェースドライバについて報告します。

  3. システム上で現在 plumb されているインタフェースを調べます。


    # ifconfig -a
    

    ifconfig コマンドには、インタフェースを plumb する機能など数多くの追加の機能があります。詳細については、ifconfig(1m) のマニュアルページを参照してください。


例 6–1 dladm コマンドを使用したインタフェースの状態の取得

次の例は、 dladm コマンドによる状態の表示を示しています。


# dladm show-link
ce0             type: legacy    mtu: 1500       device: ce0
ce1             type: legacy    mtu: 1500       device: ce1
bge0            type: non-vlan  mtu: 1500       device: bge0
bge1            type: non-vlan  mtu: 1500       device: bge1
bge2            type: non-vlan  mtu: 1500       device: bge2
 

dladm show-link の出力は、ローカルホストで 4 つのインタフェースドライバが使用可能であることを示しています。ce インタフェースと bge インタフェースは、どちらも VLAN 用に構成できます。ただし、リンク集積で使用できるのは、非 VLAN タイプの GLDV3 インタフェースのみです。

次の例は、ifconfig -a コマンドによる状態の表示を示しています。


# ifconfig -a
 lo0: flags=2001000849 <UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu
8232 index 1
         inet 127.0.0.1 netmask ff000000  
ce0: flags=1000843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4>mtu 1500 index 3
         inet 192.168.84.253 netmask ffffff00 broadcast 192.168.84.255
        ether 0:3:ba:7:84:5e  
bge0: flags=1004843 <UP,BROADCAST,RUNNING,MULTICAST,DHCP,IPv4>mtu 1500 index 2
         inet 10.8.57.39 netmask ffffff00 broadcast 10.8.57.255
        ether 0:3:ba:29:fc:cc 

ifconfig -a コマンドの出力には、ce0bge0 という 2 つのインタフェースの統計のみが表示されます。この出力は、ce0bge0 のみが plumb され、ネットワークトラフィックで使用可能なことを示しています。これらのインタフェースは VLAN で使用できます。bge0 は plumb されているので、このインタフェースを集積で使用することはできません。


Procedureシステムインストール後に物理インタフェースを構成する方法

インタフェースを構成するには、次の手順に従います。Solaris 10 3/05 リリースを使用している場合は、「インストール後に物理インタフェースを追加する方法 (Solaris 10 3/05 のみ)」に記載された手順を使用してください。

始める前に
  1. インタフェースがあるシステムで、Primary Administrator の役割を引き受けるか、スーパーユーザーになります。

    Primary Administrator 役割には、Primary Administrator プロファイルが含まれます。役割を作成してユーザーに役割を割り当てるには、『Solaris のシステム管理 (基本編)』の第 2 章「Solaris 管理コンソールの操作 (手順)」を参照してください。

  2. 現在システムにインストールされているインタフェースを調べます。


    # dladm show-link
    
  3. 別のインタフェースを構成して plumb します。


    # ifconfig interface plumb up
    

    たとえば、qfe0 の場合は、次のように入力します。


    # ifconfig qfe0 plumb up
    

    注 –

    ifconfig コマンドを使用して明示的に構成されたインタフェースは、リブート後には保持されません。


  4. インタフェースに IPv4 アドレスとネットマスクを割り当てます。


    # ifconfig interface IPv4-address netmask+netmask
    

    たとえば、qfe0 の場合は、次のように入力します。


    # ifconfig
    qfe0 192.168.84.3 netmask + 255.255.255.0
    

    注 –

    IPv4 アドレスは、一般的な IPv4 表記または CIDR 表記で指定できます。


  5. 新しく構成したインタフェースが plumb されて構成済みの状態 (「UP」) であることを確認します。


    # ifconfig
    -a
    

    表示される各インタフェースの状態行を確認します。たとえば次のように出力の状態行に UP フラグが含まれていることを確認します。


    qfe0: flags=1000843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4>
    mtu 1500 index 2
  6. (省略可能) リブート後もインタフェースの構成が保持されるようにするには、次の手順を実行します。

    1. 構成するインタフェースごとに、/etc/hostname.interface ファイルを作成します。

      たとえば、qfe0 インタフェースを追加する場合には、次のファイルを作成します。


      # vi /etc/hostname.qfe0
      

      注 –

      同じインタフェース用に別のホスト名ファイルを作成する場合、そのホスト名ファイルの名前も hostname.[0–9]* の形式 (hostname.qfe0.a123など) にする必要があります。hostname.qfe0.bak hostname.qfe0.old のような名前は無効であり、システムの起動中にスクリプトに無視されます。

      また、特定のインタフェースに対応するホスト名ファイルは 1 つだけにする必要があります。/etc/hostname.qfe/etc/hostname.qfe.a123 のように、インタフェースの代替ホスト名ファイルを有効なファイル名で作成した場合、ブートスクリプトは両方のホスト名ファイルの内容を参照することによって構成を試みるため、エラーが発生します。これらのエラーを回避するには、特定の構成で使用したくないホスト名ファイルに無効なファイル名を付けます。


    2. /etc/hostname.interface ファイルを編集します。

      少なくとも、インタフェースの IPv4 アドレスをファイルに追加します。インタフェースの IP アドレスを指定するときには、一般的な IPv4 表記または CIDR 表記を使用できます。ネットマスクやほかの構成情報もファイルに追加できます。


      注 –

      インタフェースに IPv6 アドレスを追加するには、「ホストとサーバーの IPv6 インタフェース構成の変更」を参照してください。


    3. Solaris 10 11/06 以前の Oracle Solaris 10 リリースの場合は、新しいインタフェース用のエントリを /etc/inet/ipnodes ファイルに追加します。

    4. 新しいインタフェース用のエントリを /etc/inet/hosts ファイルに追加します。

    5. 再構成用ブートを実行します。


      # reboot -- -r
      
    6. /etc/hostname.interface ファイルで作成したインタフェースが構成されていることを確認します。


      # ifconfig -a
      

      例については、例 6–2 を参照してください。


例 6–2 持続的なインタフェース構成の追加

この例は、qfe0 インタフェースと qfe1 インタフェースをホストに対して構成する方法を示しています。これらのインタフェースは、リブート後も保持されます。


# dladm show-link
eri0    type: legacy    mtu: 1500       device: eri0 
qfe0    type: legacy    mtu: 1500       device: qfe0 
qfe1    type: legacy    mtu: 1500       device: qfe1 
qfe2    type: legacy    mtu: 1500       device: qfe2 
qfe3    type: legacy    mtu: 1500       device: qfe3 
bge0    type: non-vlan  mtu: 1500       device: bge0
# vi /etc/hostname.qfe0
192.168.84.3 netmask 255.255.255.0
# vi /etc/hostname.qfe1 
192.168.84.72 netmask 255.255.255.0
# vi /etc/inet/hosts
# Internet host table 
# 
127.0.0.1       localhost 
10.0.0.14       myhost
192.168.84.3       interface-2 
192.168.84.72       interface-3
For Solaris 10 11/06 and earlier releases:# vi /etc/inet/ipnodes
10.0.0.14 myhost
192.168.84.3       interface-2 
192.168.84.72       interface-3

この時点でシステムをリブートします。


# reboot -- -r

システムが起動されたら、インタフェースの構成を確認します。


ifconfig -a
# ifconfig -a lo0: flags=1000849 <UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu
8232 index 1
         inet 127.0.0.1 netmask ff000000  
eri0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
         inet 10.0.0.14netmask ff000000 broadcast 10.255.255.255
         ether 8:0:20:c1:8b:c3  
qfe0:flags=1000843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 3  
      inet 192.168.84.3 netmask ffffff00 broadcast 192.255.255.255
      ether 8:0:20:c8:f4:1d  
qfe1: flags=1000843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4>mtu 1500 index 4
         inet 192.168.84.72 netmask ffffff00 broadcast 10.255.255.255
        ether 8:0:20:c8:f4:1e 

参照

Procedure物理インタフェースを削除する方法

物理インタフェースを削除するには、次の手順に従います。以前の Solaris 10 3/05 リリースを使用している場合は、「物理インタフェースを削除する方法 (Solaris 10 3/05 のみ)」を参照してください。

  1. 削除するインタフェースがあるシステムで、Primary Administrator の役割を引き受けるか、スーパーユーザーになります。

    Primary Administrator 役割には、Primary Administrator プロファイルが含まれます。役割を作成してユーザーに役割を割り当てるには、『Solaris のシステム管理 (基本編)』の第 2 章「Solaris 管理コンソールの操作 (手順)」を参照してください。

  2. 物理インタフェースを削除します。


    # ifconfig interface down unplumb 
    

    たとえば、qfe1 インタフェースを削除するには、次のように入力します。


    # ifconfig qfe1 down unplumb
    

ProcedureSPARC: インタフェースの MAC アドレスが一意であることを確認する方法

MAC アドレスを構成するには、次の手順に従います。

アプリケーションによっては、ホスト上のすべてのインタフェースでそれぞれ一意の MAC アドレスが使用されている必要があります。ただし、すべての SPARC ベースの システムは、システム共通 MAC アドレスを持っており、デフォルトではすべてのインタフェースがこのアドレスを使用します。次の 2 つの状況では、SPARC システム上のインタフェースに出荷時に設定された MAC アドレスを構成する場合があります。

EEPROM パラメータ local-mac-address? によって、SPARC システム上のすべてのインタフェースがシステム共通 MAC アドレスまたは一意の MAC アドレスのどちらを使用しているかを判別します。次の手順では、eeprom コマンドを使用して、local-mac-address? の現在値をチェックし、必要に応じて変更する方法を示します。

  1. インタフェースがあるシステムで、Primary Administrator の役割を引き受けるか、スーパーユーザーになります。

    Primary Administrator 役割には、Primary Administrator プロファイルが含まれます。役割を作成してユーザーに役割を割り当てるには、『Solaris のシステム管理 (基本編)』の第 2 章「Solaris 管理コンソールの操作 (手順)」を参照してください。

  2. システム上のすべてのインタフェースがシステム共通 MAC アドレスを現在使用しているかどうかを判断します。


    # eeprom local-mac-address?
    local-mac-address?=false

    この例では、eeprom コマンドの応答の local-mac-address?=false によって、 すべてのインタフェースがシステム共通 MAC アドレスを使用していることが示されています。local-mac-address?=false の値は、インタフェースを IPMP グループのメンバーにする前に、local-mac-address?=true に変更する必要があります。集積の場合にも、local-mac-address?=falselocal-mac-address?=true に変更してください。

  3. 必要に応じて、local-mac-address? の値を次のように変更します。


    # eeprom local-mac-address?=true
    

    システムをリブートすると、出荷時に設定された MAC アドレスを持つインタフェースは、システム共通 MAC アドレスの代わりに、その出荷時の設定を使用します。出荷時に設定された MAC アドレスを持たないインタフェースは、システム共通 MAC アドレスを引き続き使用します。

  4. システム上のすべてのインタフェースの MAC アドレスをチェックします。

    複数のインタフェースが 同じ MAC アドレスを持つ場合がないかどうかを調べてください。この例では、すべてのインタフェースがシステム共通 MAC アドレス 8:0:20:0:0:1 を使用しています。


    ifconfig -a
    lo0: flags=1000849 <UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1
          inet 127.0.0.1 netmask ff000000  
    hme0: flags=1004843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
          inet 10.0.0.112 netmask ffffff80 broadcast 10.0.0.127
          ether 8:0:20:0:0:1 
    ce0: flags=1004843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
          inet 10.0.0.114 netmask ffffff80 broadcast 10.0.0.127
          ether 8:0:20:0:0:1 
    ce1: flags=1004843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
          inet 10.0.0.118 netmask ffffff80 broadcast 10.0.0.127
          ether 8:0:20:0:0:1

    注 –

    同じ MAC アドレスを持つ複数のネットワークインタフェースがまだ残っている場合だけ、次の手順を続けます。それ以外の場合は、最後の手順に進んでください。


  5. すべてのインタフェースが一意の MAC アドレスを持つように、必要に応じて、残りのインタフェースを手動で構成します。

    /etc/hostname.interface ファイル内で、特定のインタフェースに対して一意の MAC アドレスを指定します。

    手順 4 の例では、ce0ce1 をローカルで管理されている MAC アドレスで構成する必要があります。たとえば、ローカルで管理されている MAC アドレス 06:05:04:03:02ce1 を再構成するには、次の行を /etc/hostname.ce1 に追加します。


    ether 06:05:04:03:02 
    

    注 –

    手動で構成した MAC アドレスがネットワークのほかの MAC アドレスと衝突する危険を避けるために、「ローカルで管理される」MAC アドレスは、必ず IEEE 802.3 標準の定義に従って構成してください。


    ifconfig ether コマンドを使用して、現在のセッションに対してインタフェースの MAC アドレスを構成することもできます。ただし、リブート後は ifconfig で直接行われた変更の内容は失われます。詳細は ifconfig(1m) のマニュアルページを参照してください。

  6. システムを再起動します。

物理インタフェースの管理の基礎

ネットワークインタフェース」は、システムとネットワークの間の通信を提供します。Oracle Solaris ベースのシステムには、物理インタフェースと論理インタフェースという 2 つのタイプのインタフェースがあります。「物理インタフェース」はソフトウェアドライバとコネクタから成り、コネクタには、Ethernet ケーブルなどのネットワークメディアを接続します。物理インタフェースは、管理効率と可用性を高めるためにグループ化できます。「論理インタフェース」は、既存の物理インタフェースの上に論理的に構成され、通常、物理インタフェース上のアドレスの追加やトンネルの終端の作成に使用されます。


注 –

論理ネットワークインタフェースについては、論理ネットワークインタフェースを使用する作業で説明します。 たとえば、IPv6、IPMP、DHCP などに関する作業に含まれています。


ほとんどのコンピュータシステムでは、製造元によってメインシステムボードに少なくとも 1 つの物理インタフェースが組み込まれています。複数のインタフェースが組み込まれたシステムもあります。

システムには、組み込みインタフェースのほかに別個に購入したインタフェースを追加できます。別個に購入したインタフェースは、「ネットワークインタフェースカード」(NIC) と呼ばれます。NIC は製造元の指示に従って物理的に取り付けてください。


注 –

NIC は「ネットワークアダプタ」とも呼ばれます。


システムのインストール中に、Oracle Solaris インストールプログラムは、物理的に取り付けられたすべてのインタフェースを検出し、各インタフェースの名前を表示します。インタフェースのリストから少なくとも 1 つのインタフェースを構成する必要があります。インストール中に最初に構成されるインタフェースが、「一次ネットワークインタフェース」になります。一次ネットワークインタフェースの IP アドレスは、/etc/nodename ファイルに保存されているシステムの構成済みのホスト名に関連付けられます。ただし、インストール中またはインストール後に、追加のインタフェースを構成できます。

ネットワークインタフェース名

各物理インタフェースは、一意のデバイス名によって識別されます。デバイス名の構文は、次のとおりです。


<driver-name><instance-number>

Oracle Solaris システム上のドライバ名には、ce hmebgee1000g などの数多くのドライバ名があります。instance-number 変数には、システムにインストールされているドライバタイプのインタフェースの数に応じて、0 から n までの値を指定できます。

たとえば、ホストシステムとサーバーシステムの両方で一次ネットワークインタフェースとして使用されることが多い 100BASE-TX Fast Ethernet インタフェースについて考えてみます。このインタフェースの一般的なドライバ名として、eriqfehme などがあります。Fast Ethernet インタフェースを一次ネットワークインタフェースとして使用する場合、eri0qfe0 などのデバイス名が使用されます。

erihme などの NIC にはインタフェースが 1 つしかありません。ただし、多くの種類の NIC には複数のインタフェースがあります。たとえば、Quad Fast Ethernet (qfe) カードには qfe0 から qfe3 まで 4 つのインタフェースがあります。

インタフェースを plumb する

インタフェースがシステムとネットワーク間のトラフィックを受け渡しできるようにするには、その前にインタフェースを「plumb する」必要があります。plumb するときには、インタフェースにデバイス名を関連付けます。次に、IP プロトコルでインタフェースを使用できるようにストリームをセットアップします。物理インタフェースと論理インタフェースの両方を plumb する必要があります。インタフェースは、起動手順の一部として plumb されるか、ifconfig コマンドの適切な構文を使用して明示的に plumb されます。

インストール中にインタフェースを構成する場合、インタフェースは自動的に plumb されます。インストール中にシステムで追加のインタフェースを構成しない場合、それらのインタフェースは plumb されません。

Oracle Solaris インタフェースタイプ

Solaris 10 1/06 リリース以降、Oracle Solaris では次の 2 つのタイプのインタフェースがサポートされています。

仮想ローカルエリアネットワークの管理


注 –

Solaris 3/05 より前のリリースを使用している場合は、「VLAN の構成 (Solaris 10 3/05 のみ)」を参照してください。


仮想ローカルエリアネットワーク (VLAN)」は、ローカルエリアネットワークを TCP/IP プロトコルスタックのデータリンク層で分割したものです。スイッチテクノロジを使用するローカルエリアネットワークの VLAN を作成できます。ユーザーのグループを VLAN に割り当てることで、ローカルネットワーク全体のネットワーク管理とセキュリティーを改善できます。さらに、同じシステム上のインタフェースを異なる VLAN に割り当てることもできます。

次の作業を行う必要がある場合は、ローカルネットワークを VLAN に分割することを検討してください。

VLAN トポロジの概要

スイッチ LAN テクノロジを使用すると、ローカルネットワーク上のシステムを VLAN に編成できます。ローカルネットワークを VLAN に分割する前に、VLAN テクノロジをサポートするスイッチを入手する必要があります。VLAN トポロジの設計に応じて、スイッチ上のすべてのポートで単一の VLAN を処理するか、複数の VLAN を処理するように構成できます。スイッチのポートを構成する手順はスイッチの製造元によって異なります。

次の図は、サブネットアドレス 192.168.84.0 を使用するローカルエリアネットワークを示しています。この LAN は、RED、YELLOW、および BLUE という 3 つの VLAN に分割されています。

図 6–1 3 つの VLAN を含むローカルエリアネットワーク

この図については前後の本文中で説明しています。

LAN 192.168.84.0 の接続は、スイッチ 1 とスイッチ 2 によって処理されます。財務作業グループのシステムは RED VLAN に含まれています。人事作業グループのシステムは YELLOW VLAN 上にあります。情報技術作業グループのシステムは BLUE VLAN に割り当てられています。

VLAN タグと物理接続点

ローカルエリアネットワーク内の各 VLAN は、VLAN タグ、つまり「VID (VLAN ID)」によって識別されます。VID は、VLAN の構成時に割り当てられます。VID は、1 から 4094 までの 12 ビットの識別子で、各 VLAN を一意に識別します。図 6–1 では、BLUE VLAN が VID 123、YELLOW VLAN が VID 456、RED VLAN が VID 789 をそれぞれ持ちます。

VLAN をサポートするスイッチを構成する場合は、各ポートに VID を割り当てる必要があります。次の図に示すように、ポートに割り当てる VID は、ポートに接続されるインタフェースに割り当てる VID と同じにする必要があります。

図 6–2 VLAN を使用するネットワークのスイッチの構成

この図については前後の本文中で説明しています。

図 6–2 は、異なる VLAN に接続された複数のホストを示しています。同じ VLAN に 2 つのホストが属しています。この図では、3 つのホストの一次ネットワークインタフェースがスイッチ 1 に接続されています。ホスト A は BLUE VLAN のメンバーです。そのため、ホスト A のインタフェースは VID 123 で構成されています。このインタフェースはスイッチ 1 のポート 1 に接続され、このポートは VID 123 で構成されています。ホストB は YELLOW VLAN のメンバーで、VID 456 で構成されています。ホストB のインタフェースはスイッチ 5 のポート 1 に接続され、このポートは VID 456 で構成されています。最後に、ホスト C のインタフェースはスイッチ 1 のポート 9 に接続されています。BLUE VLAN は VID 123 で構成されています。

また、この図で示されているとおり、1 つのホストが複数の VLAN に属すこともできます。たとえば、ホスト A にはホストのインタフェースを通じて 2 つの VLAN が構成されています。2 番目の VLAN は VID 456 で構成され、ポート 3 に接続されています。このポートも VID 456 で構成されています。したがって、ホスト A は Blue VLAN と Yellow VLAN の両方のメンバーになっています。

VLAN の構成時に、VLAN の「物理接続点 (PPA、physical point of attachment)」を指定する必要があります。PPA 値を取得するには、次の数式を使用します。


driver-name + VID * 1000 + device-instance

device-instance の数値は 1000 未満である必要があります。

たとえば、次のような VLAN 456 の一部として構成される ce1 インタフェースの PPA を作成します。


ce + 456 * 1000 + 1= ce456001

ネットワーク上の VLAN の計画

ネットワーク上の VLAN を計画するには、次の手順に従います。

ProcedureVLAN 構成を計画する方法

  1. ローカル ネットワークのトポロジを調べて、VLAN への分割が適切かどうかを判断します。

    このようなトポロジの基本的な例については、図 6–1 を参照してください。

  2. VID の番号指定スキーマを作成し、各 VLAN に VID を割り当てます。


    注 –

    VLAN の番号指定スキーマは、ネットワーク上にすでに存在している場合があります。その場合は、既存の VLAN 番号指定スキーマに従って VID を作成する必要があります。


  3. 各システム上で、特定の VLAN のメンバーにするインタフェースを決定します。

    1. システム上で構成されているインタフェースを調べます。


      # dladm show-link
      
    2. システム上の各データリンクに関連付ける VID を判別します。

    3. VLAN で構成する各インタフェースの PPA を作成します。

    システムのすべてのインタフェースを同じ VLAN 上で構成する必要はありません。

  4. インタフェースとネットワークのスイッチの接続を確認します。

    各インタフェースと各インタフェースが接続されているスイッチポートの VID を書き留めます。

  5. スイッチの各ポートの VID をポートが接続されるインタフェースと同じ VID に構成します。

    構成手順については、スイッチの製造元のマニュアルを参照してください。

VLAN の構成


注 –

以前の Solaris 10 3/05 リリースを使用している場合は、「VLAN の構成 (Solaris 10 3/05 のみ)」を参照してください。


Oracle Solaris は現在、次のタイプのインタフェース上で VLAN をサポートします。

旧式インタフェースタイプのうち、ce インタフェースのみが VLAN のメンバーになることができます。同じ VLAN 内に異なるタイプのインタフェースを構成できます。


注 –

1 つの IPMP グループ内に複数の VLAN を構成できます。IPMP グループについての詳細は、「IPMP インタフェースの構成」を参照してください。


ProcedureVLAN を構成する方法

Solaris 10 3/05 リリースを使用している場合は、「静的 VLAN を構成する方法 (Solaris 10 3/05 のみ)」に記載されている手順を使用してください。

  1. Primary Administrator 役割を引き受けるか、スーパーユーザーになります。

    Primary Administrator 役割には、Primary Administrator プロファイルが含まれます。役割を作成してユーザーに役割を割り当てるには、『Solaris のシステム管理 (基本編)』の第 2 章「Solaris 管理コンソールの操作 (手順)」を参照してください。

  2. システムでどのようなタイプのインタフェースが使用されているか判別します。


    # dladm show-link
    

    使用可能なインタフェースのタイプが出力されます。


    ce0             type: legacy    mtu: 1500       device: ce0
     ce1             type: legacy    mtu: 1500       device: ce1
     bge0            type: non-vlan  mtu: 1500       device: bge0
     bge1            type: non-vlan  mtu: 1500       device: bge1
     bge2            type: non-vlan  mtu: 1500       device: bge2
  3. VLAN の一部としてインタフェースを構成します。


    # ifconfig interface-PPA plumb IP-address up
    

    たとえば次のコマンドを使用して、新しい IP アドレス 10.0.0.2 のインタフェース ce1 を、VID 123 の VLAN 内に構成します。


    # ifconfig ce123001 plumb 10.0.0.2
    up
    

    注 –

    ほかのインタフェースの場合と同様に、VLAN には IPv4 アドレスと IPv6 アドレスを割り当てることができます。


  4. (省略可能) VLAN の設定がリブート後も保持されるようにするには、VLAN の一部として構成される各インタフェース用に hostname.interface-PPA ファイルを作成します。


    # cat hostname.interface-PPA
    IPv4-address
    
  5. スイッチで、VLAN のタグ付けと VLAN ポートを、システムに設定した VLAN と一致するように設定します。


例 6–3 VLAN の構成

この例は、デバイス bge1 bge2 を VID 123 で VLAN 内に構成する方法を示しています。


# dladm show-link
ce0            type: legacy    mtu: 1500       device: ce0
ce1            type: legacy    mtu: 1500       device: ce1
bge0           type: non-vlan  mtu: 1500       device: bge0 
bge1           type: non-vlan  mtu: 1500       device: bge1 
bge2           type: non-vlan  mtu: 1500       device: bge2
# ifconfig bge123001 plumb 10.0.0.1 up
# ifconfig bge123002 plumb 10.0.0.2 up  
# cat hostname.bge123001   10.0.0.1
# cat hostname.bge123002   10.0.0.2
# ifconfig -a
 lo0: flags=2001000849 <UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1
         inet 127.0.0.1 netmask ff000000  
 bge123001: flags=201000803<UP,BROADCAST,MULTICAST,IPv4,CoS> mtu 1500 index 2
         inet 10.0.0.1 netmask ff000000 broadcast 10.255.255.255
         ether 0:3:ba:7:84:5e  
bge123002:flags=201000803 <UP,BROADCAST,MULTICAST,IPv4,CoS> mtu 1500 index 3
         inet 10.0.0.2 netmask ff000000 broadcast 10.255.255.255
         ether 0:3:ba:7:84:5e  
ce0: flags=1000843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4>mtu 1500 index 4
         inet 192.168.84.253 netmask ffffff00 broadcast 192.168.84.255
         ether 0:3:ba:7:84:5e
# dladm show-link
ce0             type: legacy    mtu: 1500       device: ce0
ce1             type: legacy    mtu: 1500       device: ce1
bge0            type: non-vlan  mtu: 1500       device: bge0 
bge1            type: non-vlan  mtu: 1500       device: bge1 
bge2            type: non-vlan  mtu: 1500       device: bge2
bge123001       type: vlan 123  mtu: 1500       device: bge1 
bge123002       type: vlan 123  mtu: 1500       device: bge2

リンク集積の概要


注 –

オリジナルの Oracle Solaris 10 リリースと以前のバージョンの Oracle Solaris はリンク集積をサポートしていません。これらの以前の Oracle Solaris リリースでリンク集積を作成するには、『Sun Trunking 1.3 Installation and Users Guide』で説明されているように、Sun Trunking を使用します。


Oracle Solaris では、ネットワークインタフェースをリンク集積に編成できます。「リンク集積」は、単一の論理的なユニットとして構成されるシステム上の複数のインタフェースで構成されます。リンク集積は「Trunking」とも呼ばれ、IEEE 802.3ad Link Aggregation Standard で定義されています。

IEEE 802.3ad Link Aggregation Standard には、複数の全二重 Ethernet リンクの伝送容量を単一の論理リンクに統合する方法が記載されています。このリンク集積グループは、事実上単一のリンクであるかのように扱われます。

次にリンク集積の機能を示します。

リンク集積の基本

基本的なリンク集積のトポロジには、一連の物理インタフェースで構成された単一の集積が含まれます。基本的なリンク集積は、次のような状況で使用します。

図 6–3 に、有名な Web サイトをホストするサーバーの集積を示します。このサイトでは、インターネット顧客とサイトのデータベースサーバーの間の照会トラフィックのために帯域幅を増やす必要があります。セキュリティー上の理由で、サーバー上の各インタフェースの存在を外部アプリケーションから隠す必要があります。解決策として、 IP アドレス 192.168.50.32 で集積 aggr1 を使用します。この集積は、bge0 - bge2 の 3 つのインタフェースで構成されます。これらのインタフェースは、顧客の照会に答えるためのトラフィックの送信専用で使用されます。すべてのインタフェースからのパケットトラフィック上の送信アドレスは、aggr1 の IP アドレスである 192.168.50.32 です。

図 6–3 基本的なリンク集積トポロジ

図は、リンク aggr1 のブロックを示します。このリンクブロックに 3 つの物理インタフェース bge0 - bge2 が接続されています。

図 6–4 は、それぞれに集積が構成された 2 つのシステムを含むローカルネットワークを示しています。2 つのシステムはスイッチによって接続されています。スイッチ経由で集積を実行する必要がある場合は、そのスイッチが集積テクノロジをサポートしている必要があります。このタイプの構成は、高可用性と冗長性を持つシステムを実現するために特に有効です。

図では、システム A が bge0bge1 という 2 つのインタフェースで構成される集積を使用しています。これらのインタフェースは、集積に入れられたポートを介してスイッチに接続されています。システム B は、e1000g0 - e1000g3 という 4 つのインタフェースの集積を使用しています。これらのインタフェースもスイッチの集積に入れられたポートに接続されています。

図 6–4 スイッチを使用したリンク集積のトポロジ

この図については、前の本文中で説明しています。

バックツーバックリンク集積

バックツーバックリンク集積のトポロジには、次の図に示すように、相互に直接ケーブル接続された 2 台の別個のシステムが含まれます。これらのシステムでは並列集積が実行されます。

図 6–5 基本的なバックツーバック集積のトポロジ

この図については、次の本文中で説明しています。

この図では、システム A 上のデバイス bge0 が、システム B 上の bge0 に直接リンクされ、ほかのデバイスも同様にリンクされています。この方法では、システム A とシステム B は、冗長性と高可用性を提供し、さらに両方のシステム間での高速通信をサポートできます。各システムではさらに、ローカルネットワーク内のトラフィックフロー用の ce0 インタフェースも構成されています。

バックツーバックリンク集積のもっとも一般的なアプリケーションはミラー化されたデータベースサーバーです。両方のサーバーを同時に更新する必要があるため、大きな帯域幅、高速のトラフィックフロー、および信頼性が必要になります。バックツーバックリンク集積のもっとも一般的な使用場所としてデータセンターがあります。

ポリシーと負荷分散

リンク集積を使用する予定の場合は、送信トラフィック用のポリシーを定義することを検討してください。このポリシーでは、使用可能な集積のリンク全体にパケットを分散する方法を指定し、負荷分散を確立することができます。次に、使用可能な層指定子と集積ポリシーに対するそれらの意味について説明します。

これらのポリシーを任意に組み合わせて使用することもできます。デフォルトのポリシーは L4 です。詳細は、dladm(1M) のマニュアルページを参照してください。

集積モードとスイッチ

集積トポロジにスイッチ経由の接続が含まれている場合は、スイッチが「LACP (Link Aggregation Control Protocol)」をサポートするかどうかに注意する必要があります。スイッチが LACP をサポートしている場合は、スイッチと集積の LACP を構成する必要があります。ただし、次のいずれかの LACP の動作「モード」を定義できます。

構文については、dladm(1M) のマニュアルページとスイッチの製造元のマニュアルを参照してください。

リンク集積の要件

リンク集積の構成には次のような要件があります。

Procedureリンク集積を作成する方法

始める前に

注 –

リンク集積は、同一の速度で稼働する全二重のポイントツーポイントリンク上でのみ機能します。集積内のインタフェースがこの要件を満たしていることを確認してください。


集積トポロジ内でスイッチを使用している場合は、スイッチ上で次の操作を行なったことを確認してください。

  1. Primary Administrator 役割を引き受けるか、スーパーユーザーになります。

    Primary Administrator 役割には、Primary Administrator プロファイルが含まれます。役割を作成してユーザーに役割を割り当てるには、『Solaris のシステム管理 (基本編)』の第 2 章「Solaris 管理コンソールの操作 (手順)」を参照してください。

  2. 現在システムにインストールされているインタフェースを調べます。


    # dladm show-link
    
  3. plumb されているインタフェースを判別します。


    # ifconfig -a
    
  4. 集積を作成します。


    # dladm create-aggr -d interface -d interface [...]key
    
    interface

    集積の一部になるインタフェースのデバイス名を表します。

    key

    集積を識別する番号です。最小のキー番号は1 です。0 はキーには使用できません。

    次に例を示します。


    # dladm create-aggr -d bge0 -d bge1 1
    
  5. 新しく作成した集積を構成して plumb します。


    # ifconfig aggrkey plumb IP-address up
    

    次に例を示します。


    # ifconfig aggr1  plumb 192.168.84.14 up
    
  6. 作成した集積の状態を確認します。


    # dladm show-aggr
    

    画面に次のような出力が表示されます。


    key: 1 (0x0001) policy: L4      address: 0:3:ba:7:84:5e (auto)
    device   address           speed         duplex  link    state
    bge0     0:3:ba:7:b5:a7    1000  Mbps    full    up      attached
    bge1     0:3:ba:8:22:3b    0     Mbps    unknown down    standby

    この出力は、キーが 1 でポリシーが L4 の集積が作成されたことを示しています。

  7. (省略可能) リンク集積の IP 構成は、リブート後も保持されるようにします。

    1. IPv4 アドレスベースのリンク集積の場合は、/etc/hostname.aggr.key ファイルを作成します。IPv6 ベースのリンク集積の場合は、/etc/hostname6.aggr.key ファイルを作成します。

    2. リンク集積の IPv4 または IPv6 アドレスをファイルに入力します。

      たとえば、この処理で作成される集積の場合、次のファイルを作成します。


      # vi /etc/hostname.aggr1
      192.168.84.14
      
    3. 再構成用ブートを実行します。


      # reboot -- -r
      
    4. /etc/hostname.aggrkey ファイルに入力したリンク集積構成が構成済みであることを確認します。


      # ifconfig -a
      .
      .
      aggr1: flags=1000843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 3
              inet 192.168.84.14 netmask ff000000 broadcast 192.255.255.

例 6–4 リンク集積の作成

この例は、bge0bge1 という 2 つのデバイスを含むリンク集積を作成するために使用するコマンドと、その出力結果を示しています。


# dladm show-link
ce0             type: legacy    mtu: 1500       device: ce0
ce1             type: legacy    mtu: 1500       device: ce1
bge0            type: non-vlan  mtu: 1500       device: bge0
bge1            type: non-vlan  mtu: 1500       device: bge1
bge2            type: non-vlan  mtu: 1500       device: bge2
# ifconfig -a
lo0: flags=2001000849 <UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000 
ce0: flags=1000843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
        inet 192.168.84.253 netmask ffffff00 broadcast 192.168.84.255
        ether 0:3:ba:7:84:5e 
# dladm create-aggr -d bge0 -d bge1 1
# ifconfig aggr1 plumb 192.168.84.14 up
# dladm show-aggr
key: 1 (0x0001) policy: L4      address: 0:3:ba:7:84:5e (auto)
device   address           speed         duplex  link    state
bge0     0:3:ba:7:b5:a7    1000  Mbps    full    up      attached
bge1     0:3:ba:8:22:3b    0     Mbps    unknown down    standby

# ifconfig -a
lo0: flags=2001000849 <UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000 
ce0: flags=1000843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
        inet 192.168.84.253 netmask ffffff00 broadcast 192.168.84.255
        ether 0:3:ba:7:84:5e 
aggr1: flags=1000843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 3
        inet 192.168.84.14 netmask ff000000 broadcast 192.255.255.255
        ether 0:3:ba:7:84:5e 

集積に使用された 2 つのインタフェースは、 ifconfig によって事前に plumb されていません。


Procedure集積を変更する方法

この手順では、集積の定義に次の変更を加える方法を示します。

  1. Primary Administrator 役割を引き受けるか、スーパーユーザーになります。

    Primary Administrator 役割には、Primary Administrator プロファイルが含まれます。役割を作成してユーザーに役割を割り当てるには、『Solaris のシステム管理 (基本編)』の第 2 章「Solaris 管理コンソールの操作 (手順)」を参照してください。

  2. 集積のポリシーを変更します。


    # dladm modify-aggr -Ppolicy key   
    
    policy

    「ポリシーと負荷分散」で説明されているように 1 つ以上のポリシー L2、L3、および L4 を表します。

    key

    集積を識別する番号です。最小のキー番号は 1 です。0 はキーには使用できません。

  3. 集積内のデバイスが接続されているスイッチ上で LACP が実行されている場合は、LACP をサポートするように集積を変更します。

    スイッチ上で受動モードで LACP が実行されている場合は、集積用にアクティブモードに構成したことを確認してください。


    # dladm modify-aggr -l LACP mode -t timer-value key
    
    -l LACP mode

    集積が実行される LACP モードを示します。値は、activepassive、および off です。

    -t timer-value

    LACP タイマー値を示します。値は、short または long です。

    key

    集積を識別する番号です。最小のキー番号は 1 です。0 はキーには使用できません。


例 6–5 リンク集積の変更

この例は、集積 aggr1 のポリシーを L2 に変更し、LACP モードをアクティブにする方法を示しています。


# dladm modify-aggr -P L2 1
# dladm modify-aggr -l active -t short 1
# dladm show-aggr
key: 1 (0x0001) policy: L2      address: 0:3:ba:7:84:5e (auto)
device   address           speed         duplex  link    state
bge0     0:3:ba:7:b5:a7    1000  Mbps    full    up      attached
bge1     0:3:ba:8:22:3b    0     Mbps    unknown down    standby

Procedure集積からインタフェースを削除する方法

  1. Primary Administrator 役割を引き受けるか、スーパーユーザーになります。

    Primary Administrator 役割には、Primary Administrator プロファイルが含まれます。役割を作成してユーザーに役割を割り当てるには、『Solaris のシステム管理 (基本編)』の第 2 章「Solaris 管理コンソールの操作 (手順)」を参照してください。

  2. 集積からインタフェースを削除します。


    # dladm remove-aggr -d interface
    

例 6–6 集積からのインタフェースの削除

この例は、集積 aggr1 からインタフェースを削除する方法を示しています。


# dladm show-aggr
key: 1 (0x0001) policy: L2      address: 0:3:ba:7:84:5e (auto)
device   address           speed         duplex  link    state
bge0     0:3:ba:7:b5:a7    1000  Mbps    full    up      attached
bge1     0:3:ba:8:22:3b    0     Mbps    unknown down    standby
# dladm remove-aggr -d bge1 1
# dladm show-aggr
key: 1 (0x0001) policy: L2      address: 0:3:ba:7:84:5e (auto)
device   address           speed         duplex  link    state
bge0     0:3:ba:7:b5:a7    1000  Mbps    full    up      attached
          

Procedure集積を削除する方法

  1. Primary Administrator 役割を引き受けるか、スーパーユーザーになります。

    Primary Administrator 役割には、Primary Administrator プロファイルが含まれます。役割を作成してユーザーに役割を割り当てるには、『Solaris のシステム管理 (基本編)』の第 2 章「Solaris 管理コンソールの操作 (手順)」を参照してください。

  2. 集積を削除します。


    # dladm delete-aggr key
    
    key

    集積を識別する番号です。最小のキー番号は 1 です。0 はキーには使用できません。


例 6–7 集積を削除する方法

この例は、集積 aggr1 を削除する方法を示しています。


# dladm show-aggr
key: 1 (0x0001) policy: L2      address: 0:3:ba:7:84:5e (auto)
     device   address           speed     duplex  link    state
# dladm delete-aggr -d 1

Procedureリンク集積上に VLAN を構成する方法

インタフェース上に VLAN を構成する場合と同じ方法で、リンク集積上に VLAN を作成することもできます。VLAN については、「仮想ローカルエリアネットワークの管理」を参照してください。ここでは、VLAN とリンク集積の構成について説明します。

始める前に

まず、有効な IP アドレスを使用してリンク集積を構成します。集積の key の値を書き留めます。この値は、集積上に VLAN を作成する際に必要になります。リンク集積を作成する場合は、「リンク集積を作成する方法」を参照してください。

  1. リンク集積がすでに作成されている場合は、その集積の鍵を取得します。


    # dladm show-aggr
    
  2. リンク集積上に VLAN を作成します。


    # ifconfig aggrVIDkey plumb
    

    次に、各引数について説明します。

    VID

    VLAN の ID

    key

    VLAN を作成するリンク集積の鍵。鍵は 3 桁の形式でなければいけません。たとえば、集積の鍵が 1 の場合、VLAN の名前に含まれる鍵の番号は 001 となります。

  3. 手順 2 を繰り返して、集積上にほかの VLAN も作成します。

  4. 有効な IP アドレスを使用して VLAN を構成します。

  5. 持続的な VLAN 構成を作成するには、対応する /etc/hostname.VLAN 構成ファイルに IP アドレス情報を追加します。


例 6–8 リンク集積上に複数の VLAN を構成する

この例では、リンク集積上に 2 つの VLAN を構成します。dladm show-aggr コマンドの出力で、リンク集積の鍵は 1 であることが示されています。VLAN には VID 193194 がそれぞれ割り当てられます。


# dladm show-aggr
key: 1 (0x0001) policy: L4      address: 0:3:ba:7:84:5e (auto)
device   address           speed         duplex  link    state
bge0     0:3:ba:7:b5:a7    1000  Mbps    full    up      attached
bge1     0:3:ba:8:22:3b    0     Mbps    unknown down    standby

# ifconfig aggr193001 plumb
# ifconfig aggr193001 192.168.10.5/24 up

# ifconfig aggr194001 plumb
# ifconfig aggr194001 192.168.10.25/24 up

# vi /etc/hostname.aggr193001
192.168.10.5/24

# vi /etc/hostname.aggr194001
192.168.10.25/24

第 7 章 IPv6 ネットワークの構成 (手順)

この章では、IPv6 をネットワークに構成する作業について説明します。この章で説明する内容は次のとおりです。

IPv6 の概念については、第 3 章IPv6 の紹介(概要)を参照してください。IPv6 の計画作業については、第 4 章IPv6 ネットワークの計画 (手順)を参照してください。この章の作業の参照情報を見つけるには、第 11 章IPv6 の詳細 (リファレンス)を参照してください。

IPv6 インタフェースの構成

IPv6 を構成するときには、最初にインタフェース上で IPv6 を有効にします。IPv6 のサポートは、Oracle Solaris 10 のインストール中に有効にするか、またはインストール済みのシステムのインタフェース上で IPv6 を構成することで有効にします。

Oracle Solaris 10 をインストールするときに、その 1 つまたは複数のインタフェース上で IPv6 を有効にすることができます。インストールが完了すると、IPv6 に関連する次のファイルとテーブルが設定されます。

この節では、インストール済みシステムのインタフェース上で IPv6 を有効にする方法について説明します。

IPv6 をインタフェース上で有効にする方法 (作業マップ)

次の表に、IPv6 インタフェースを構成するための各種作業の一覧を示します。表では、各作業で実行する内容について説明し、作業の具体的な実行手順が詳しく説明されている現在のマニュアル内の節を示しています。

作業 

説明 

参照先 

Oracle Solaris 10 にすでにインストールされているシステムインタフェースで IPv6 を有効にします。 

この作業では、Oracle Solaris 10 をインストールしたあとに、インタフェースの IPv6 を有効にします。 

「現在のセッションの IPv6 インタフェースを有効にする方法」

IPv6 が有効なインタフェースがリブート後も保持されるようにします。 

この作業では、インタフェースの IPv6 アドレスを持続する設定にします。 

「持続する IPv6 インタフェースを有効にする方法」

IPv6 アドレスの自動構成を無効にします。 

この作業は、IPv6 アドレスのインタフェース ID 部分を手動で構成する必要がある場合に使用します。 

「IPv6 アドレスの自動構成を無効にする方法」

Procedure現在のセッションの IPv6 インタフェースを有効にする方法

IPv6 を構成する手順は、IPv6 ノードになるすべてのシステムインタフェースで IPv6 を有効にすることから始まります。それらのインタフェースは最初に、自動構成プロセスによって IPv6 アドレスを取得します (「IPv6 アドレスの自動構成」を参照)。それらのノードの構成は、IPv6 ネットワーク上の機能 (ホスト、サーバー、またはルーター) に基づいて調整できます。


注 –

インタフェースと同じリンク上に IPv6 接頭辞を現在通知しているルーターが存在する場合、そのインタフェースは自動構成アドレスの一部としてそのサイトの接頭辞を取得します。詳細については、「IPv6 対応のルーターを構成する方法」を参照してください。


次の手順では、Oracle Solaris 10 のインストール後に追加されたインタフェースの IPv6 を有効にする方法について説明します。

始める前に

IPv6 ネットワークの計画作業を完了します。たとえば、ハードウェアとソフトウェアのアップグレードや、アドレス指定計画の準備などです。詳細は、「IPv6 の計画 (作業マップ)」を参照してください。

  1. IPv6 ノードになるノードに Primary Administrator またはスーバーユーザーとしてログインします。

    Primary Administrator 役割には、Primary Administrator プロファイルが含まれます。役割を作成してユーザーに役割を割り当てるには、『Solaris のシステム管理 (基本編)』の第 2 章「Solaris 管理コンソールの操作 (手順)」を参照してください。

  2. インタフェースの IPv6 を有効にします。


    # ifconfig inet6 interface plumb up
    
  3. IPv6 デーモン in.ndpd を起動します。


    # /usr/lib/inet/in.ndpd
    

    注 –

    特定のノード上で、IPv6 が有効なインタフェースの状態は、ifconfig -a6 コマンドを使用して表示できます。



例 7–1 インストール後に IPv6 インタフェースを有効にする方法

この例では、 qfe0 インタフェースの IPv6 を有効にする方法を示します。作業を始める前に、システムに構成されているすべてのインタフェースの状態を確認します。


# ifconfig -a
lo0: flags=1000849 <UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000 
qfe0: flags=1000863 <UP,BROADCAST,NOTRAILERS,RUNNING,MULTICAST,IPv4> mtu 1500 
           index 2
        inet 172.16.27.74 netmask ffffff00 broadcast 172.16.27.255
        ether 0:3:ba:13:14:e1 

このシステムに現在構成されているインタフェースは、qfe0 だけです。このインタフェースの IPv6 を次のように有効にします。


# ifconfig inet6 qfe0 plumb up
# /usr/lib/inet/in.ndpd
# ifconfig -a6
lo0: flags=2000849 <UP,LOOPBACK,RUNNING,MULTICAST,IPv6> mtu 8252 index 1
        inet6 ::1/128 
qfe0: flags=2000841 <UP,RUNNING,MULTICAST,IPv6> mtu 1500 index 2
        ether 0:3:ba:13:14:e1 
        inet6 fe80::203:baff:fe13:14e1/10

この例では、qfe0 が、IPv6 が有効になる前後のシステムインタフェースの状態を表示しています。ifconfig-a6 オプションを指定すると、qfe0 とループバックインタフェースの IPv6 情報だけが表示されます。出力は、リンクのローカルアドレス (fe80::203:baff:fe13:14e1/10) だけが qfe0 に構成されたことを示しています。このアドレスは、ノードのローカルリンク上のルーターが現時点ではまだサイト接頭辞を通知していないことを示しています。

IPv6 を有効にしたあとに ifconfig -a コマンドを使用して、システム上のすべてのインタフェースの IPv4 アドレスと IPv6 アドレスを表示することができます。


次の手順

Procedure持続する IPv6 インタフェースを有効にする方法

この手順では、IPv6 インタフェースを有効にするときに自動的に構成した IPv6 アドレスが、リブート後も保持されるように 設定する方法について説明します。


注 –

インタフェースと同じリンク上に IPv6 接頭辞を現在通知しているルーターが存在する場合、そのインタフェースは自動構成アドレスの一部としてそのサイトの接頭辞を取得します。詳細については、「IPv6 対応のルーターを構成する方法」を参照してください。


  1. IPv6 ノードに Primary Administrator またはスーバーユーザーとしてログインします。

    Primary Administrator 役割には、Primary Administrator プロファイルが含まれます。役割を作成してユーザーに役割を割り当てるには、『Solaris のシステム管理 (基本編)』の第 2 章「Solaris 管理コンソールの操作 (手順)」を参照してください。

  2. インストール後に追加されたインタフェースの IPv6 アドレスを作成します。

    1. 構成ファイルを作成します。


      # touch /etc/hostname6.interface
      
    2. アドレスを構成ファイルに追加します。


      inet6 ipv6-address up
      addif inet6 ipv6-address up
      ...
  3. 静的 IPv6 デフォルトルートを作成します。


    # /usr/sbin/route -p add -inet6 default ipv6-address
    
  4. (省略可能) ノード上でインタフェース変数のパラメータを定義する/etc/inet/ndpd.conf ファイルを作成します。

    ホストのインタフェースに一時アドレスを作成する必要がある場合は、「インタフェースに対する一時アドレスの使用」を参照してください。/etc/inet/ndpd.conf の詳細については、ndpd.conf(4) のマニュアルページおよび ndpd.conf 設定ファイル」を参照してください。

  5. ノードをリブートします。


    # reboot -- -r
    

    リブートすると、ルーター発見パケットが送信されます。ルーターがサイト接頭辞を返す場合は、ノードに対応する /etc/hostname6.interface ファイルに、グローバル IPv6 アドレスを持つ任意のインタフェースを構成できます。そうでない場合は、IPv6 が有効なインタフェースにリンクのローカルアドレスだけが構成されます。リブートすると、in.ndpd およびその他のネットワークデーモンも IPv6 モードで再起動します。


例 7–2 リブート後も IPv6 インタフェースが持続するように設定する

この例では、リブート後も qfe0 インタフェースの IPv6 構成が持続するように設定する方法を示します。この例では、ローカルリンク上のルーターから、サイト接頭辞とサブネット ID 2001:db8:3c4d:15/64 が通知されます。

最初に、システムのインタフェースの状態を確認します。


# ifconfig -a
lo0: flags=1000849 <UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000 
qfe0: flags=1000863 <UP,BROADCAST,NOTRAILERS,RUNNING,MULTICAST,IPv4> mtu 1500 
           index 2
        inet 172.16.27.74 netmask ffffff00 broadcast 172.16.27.255
        ether 0:3:ba:13:14:e1 

# touch /etc/hostname6.qfe0
# vi /etc/hostname6.qfe0
inet6 fe80::203:baff:fe13:1431/10 up
addif inet6 2001:db8:3c4d:15:203:baff:fe13:14e1/64 up

# route -p add -inet6 default fe80::203:baff:fe13:1431
# reboot -- -r

構成した IPv6 アドレスがまだ qfe0 インタフェースに適用されていることを確認します。


# ifconfig -a6
qfe0: flags=2000841 <UP,RUNNING,MULTICAST,IPv6> mtu 1500 index 2
       ether 0:3:ba:13:14:e1 
       inet6 fe80::203:baff:fe13:14e1/10 
 qfe0:1: flags=2180841 <UP,RUNNING,MULTICAST,ADDRCONF,IPv6> mtu 1500 
          index 2
        inet6 2001:db8:3c4d:15:203:baff:fe13:14e1/64

ifconfig -a6 の出力には、qfe0 の 2 つのエントリが表示されています。標準の qfe0 エントリには、MAC アドレスとリンクのローカルアドレスが含まれています。2 番目のエントリ qfe0:1 は、qfe0 インタフェースに追加された IPv6 アドレスに、擬似インタフェースが作成されたことを示しています。新しいグローバル IPv6 アドレス 2001:db8:3c4d:15:203:baff:fe13:14e1/64 には、ローカルルーターから通知されたサイト接頭辞とサブネット ID が含まれています。


次の手順

ProcedureIPv6 アドレスの自動構成を無効にする方法

ホストやサーバーのインタフェースに IPv6 アドレスを生成するときには、通常はアドレスの自動構成を使用するようにしてください。ただし、アドレスの自動構成を無効にしなければならない場合があります。特に、「IPv6 トークンの構成」 で説明するようにトークンを手動で構成する場合には、この操作が必要になります。

  1. IPv6 ノードに Primary Administrator またはスーバーユーザーとしてログインします。

    Primary Administrator 役割には、Primary Administrator プロファイルが含まれます。役割を作成してユーザーに役割を割り当てるには、『Solaris のシステム管理 (基本編)』の第 2 章「Solaris 管理コンソールの操作 (手順)」を参照してください。

  2. このノードの /etc/inet/ndpd.conf ファイルを作成します。

    /etc/inet/ndpd.conf は、特定のノードのインタフェース変数を定義するファイルです。サーバーのすべてのインタフェースに対してアドレスの自動構成を無効にするためには、このファイルの内容が次のとおりである必要があります。


    if-variable-name StatelessAddrConf false

    /etc/inet/ndpd.conf の詳細については、ndpd.conf(4) のマニュアルページおよび ndpd.conf 設定ファイル」を参照してください。

  3. 変更に合わせて、IPv6 デーモンを更新します。


    # pkill -HUP in.ndpd
    

IPv6 ルーターの構成

ネットワークで IPv6 を構成するための最初の手順は、ルーターで IPv6 を構成することです。この節では、ルーターを構成するために必要な複数の作業について説明します。これらの作業は必ずしもすべてを実行する必要はなく、サイトの要件によって異なります。

IPv6 ルーターの構成 (作業マップ)

次の表に示された順序で後続の作業を実行し、IPv6 ネットワークを構成します。表では、各作業で実行する内容について説明し、作業の具体的な実行手順が詳しく説明されている現在のマニュアル内の節を示しています。

作業 

説明  

説明 

1. IPv6 の構成を始める前に、必要な前提条件をすべて満たしていることを確認します。 

IPv6 が有効なルーターを構成する前に、計画作業を完了し、IPv6 が有効なインタフェースを持つ Oracle Solaris をインストールしておく必要があります。 

第 4 章IPv6 ネットワークの計画 (手順)および 「IPv6 インタフェースの構成」

2. ルーターを構成します。 

ネットワークのサイト接頭辞を定義します。  

「IPv6 対応のルーターを構成する方法」

3. ルーター上でトンネルインタフェースを構成します。 

ルーター上で手動トンネルまたは 6to4 トンネルインタフェースを設定します。ローカルの IPv6 ネットワークがほかの隔離された IPv6 ネットワークと通信するためには、トンネルが必要になります。 

4. ネットワーク上のスイッチを構成します。 

ネットワーク構成にスイッチが含まれる場合、この時点で IPv6 用に構成します。 

詳細については、スイッチに付属するマニュアルを参照してください。 

5. ネットワーク上のハブを構成します。 

ネットワーク構成にハブが含まれる場合、この時点で IPv6 用に構成します。 

詳細については、ハブに付属するマニュアルを参照してください。 

6. ネットワークネームサービスを IPv6 用に構成します。  

ルーターを IPv6 用に構成したあと、IPv6 アドレスを認識するようにプライマリネームサービス (DNS、NIS、または LDAP) を構成します。 

「DNS に対する IPv6 アドレスを追加する方法」

7. (省略可能) ホストおよびサーバー上で、IPv6 が有効なインタフェースのアドレスを変更します。 

IPv6 ルーターを構成してから、IPv6 が有効なホストおよびサーバーに変更を加えます。 

「ホストとサーバーの IPv6 インタフェース構成の変更」

IPv6 をサポートするようにアプリケーションを構成します。 

IPv6 をサポートする方法は、アプリケーションによって異なります。 

アプリケーションに付属するマニュアルを参照してください。 

ProcedureIPv6 対応のルーターを構成する方法

この手順では、Oracle Solaris のインストール中、ルーターのすべてのインタフェースが IPv6 用に構成されていると仮定します。

  1. IPv6 ルーターになるシステムにおいて、Primary Administrator の役割を引き受けるか、スーパーユーザーになります。

    Primary Administrator 役割には、Primary Administrator プロファイルが含まれます。役割を作成してユーザーに役割を割り当てるには、『Solaris のシステム管理 (基本編)』の第 2 章「Solaris 管理コンソールの操作 (手順)」を参照してください。

  2. ルーター上で、インストール中に IPv6 用に構成したインタフェースを調査します。


    # ifconfig -a
    

    この出力を調べて、IPv6 用に構成したいインタフェースがリンクローカルアドレスで plumb されていることを確認します。次の ifconfig -a コマンドの出力例に、ルーターのインタフェースに構成されている IPv4 アドレスと IPv6 アドレスを示します。


    lo0: flags=1000849 <UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1
            inet 127.0.0.1 netmask ff000000 
    dmfe0: flags=1000843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
            inet 172.16.26.232 netmask ffffff00 broadcast 172.16.26.255
            ether 0:3:ba:11:b1:15 
    dmfe1: flags=1000843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4 mtu 1500 index 3
            inet 172.16.26.220 netmask ffffff00 broadcast 172.16.26.255
            ether 0:3:ba:11:b1:16 
    lo0: flags=2000849 <UP,LOOPBACK,RUNNING,MULTICAST,IPv6> mtu 8252 index 1
            inet6 ::1/128 
    dmfe0: flags=2000841 <UP,RUNNING,MULTICAST,IPv6> mtu 1500 index 2
            ether 0:3:ba:11:b1:15 
            inet6 fe80::203:baff:fe11:b115/10 
    dmfe1: flags=2000841 <UP,RUNNING,MULTICAST,IPv6> mtu 1500 index 3
            ether 0:3:ba:11:b1:16 
            inet6 fe80::203:baff:fe11:b116/10 

    この出力を見ると、インストール中、プライマリネットワークインタフェース dmfe0 と追加のネットワークインタフェース dmfe1 が IPv6 リンクローカルアドレス fe80::203:baff:fe11:b115/10fe80::203:baff:fe11:b116/10 で構成されていることが分かります。

  3. ルーターのすべてのインタフェース上で、IPv6 パケット転送を構成します。

    Solaris 10 11/03 以前のリリースの場合は、次のコマンドを使用します。


    # routeadm -e ipv6-forwarding -u
    

    次のいずれかを使用して、パケット転送を有効にします。

    • routeadm コマンドを次のように使用します。


      # routeadm -e ipv6-forwarding -u
      
    • サービス管理機能 (SMF) コマンドを次のように使用します。


      # svcadm enable ipv6-forwarding
  4. 経路制御デーモンを起動します。

    in.ripngd デーモンは IPv6 経路制御を処理します。

    Solaris 10 11/06 以前のリリースの場合は、次のコマンドを入力して in.ripngd を起動します。


    # routeadm -e ipv6-routing
    # routeadm -u
    

    次のいずれかの方法で、IPv6 経路制御をオンに設定します。

    • routeadm コマンドを次のように使用します。


      # routeadm -e ipv6-routing -u
      
    • SMF を使用して IPv6 経路制御を有効にします。


      # svcadm enable ripng:default
      

    routeadm コマンドの構文については、routeadm(1M) のマニュアルページを参照してください。

  5. /etc/inet/ndpd.conf ファイルを作成します。

    /etc/inet/ndpd.conf には、ルーターが通知するサイト接頭辞などの構成情報を指定します。このファイルを in.ndpd デーモンが読み取って、IPv6 近傍検察プロトコルを実装します。

    変数と指定できる値のリストについては、ndpd.conf 設定ファイル」ndpd.conf(4) のマニュアルページを参照してください。

  6. 次のテキストを /etc/inet/ndpd.conf ファイルに入力します。


    ifdefault AdvSendAdvertisements true
    prefixdefault AdvOnLinkFlag on AdvAutonomousFlag on
    

    このテキストは、ルーターの IPv6 用に構成されたすべてのインタフェース経由で、ルーター広告を送信することを in.ndpd デーモンに指示します。

  7. ルーターのほかのインタフェースでサイト接頭辞を構成するには、/etc/inet/ndpd.conf ファイルに別のテキストを追加します。

    このテキストの書式は次のとおりである必要があります。


    prefix global-routing-prefix:subnet ID/64 interface
    

    次の /etc/inet/ndpd.conf ファイルの例は、サイト接頭辞 2001:0db8:3c4d::/48 をインタフェース dmfe0 および dmfe1 経由で通知するようにルーターを構成します。


    ifdefault AdvSendAdvertisements true
    prefixdefault AdvOnLinkFlag on AdvAutonomousFlag on
    
    if dmfe0 AdvSendAdvertisements 1
    prefix 2001:0db8:3c4d:15::0/64 dmfe0
    
    if dmfe1 AdvSendAdvertisements 1
    prefix 2001:0db8:3c4d:16::0/64 dmfe1
    
  8. システムを再起動します。

    IPv6 ルーターは、ndpd.conf ファイルにあるサイト接頭辞をローカルリンクに通知し始めます。


例 7–3 IPv6 インタフェースを示す ifconfig コマンドの出力

次の例に、 「IPv6 ルーターの構成」の手順を行なったあとに受信するような ifconfig -a コマンドの出力を示します。


lo0: flags=1000849 <UP LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000 
dmfe0: flags=1000843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
        inet 172.16.15.232 netmask ffffff00 broadcast 172.16.26.255
        ether 0:3:ba:11:b1:15 
dmfe1: flags=1000843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4 mtu 1500 index 3
        inet 172.16.16.220 netmask ffffff00 broadcast 172.16.26.255
        ether 0:3:ba:11:b1:16 
lo0: flags=2000849 <UP,LOOPBACK,RUNNING,MULTICAST,IPv6> mtu 8252 index 1
        inet6 ::1/128 
dmfe0: flags=2100841 <UP,RUNNING,MULTICAST,ROUTER,IPv6> mtu 1500 index 2
        ether 0:3:ba:11:b1:15 
        inet6 fe80::203:baff:fe11:b115/10 
dmfe0:1: flags=2180841 <UP,RUNNING,MULTICAST,ADDRCONF,ROUTER,IPv6> mtu 1500
          index 2
        inet6 2001:db8:3c4d:15:203:baff:fe11:b115/64
dmfe1: flags=2100841 <UP,RUNNING,MULTICAST,ROUTER,IPv6> mtu 1500 index 3
        ether 0:3:ba:11:b1:16 
        inet6 fe80::203:baff:fe11:b116/10 
dmfe1:1: flags=2180841 <UP,RUNNING,MULTICAST,ADDRCONF,ROUTER,IPv6> mtu 1500
           index 3
        inet6 2001:db8:3c4d:16:203:baff:fe11:b116/64

この例では、IPv6 用に構成されている各インタフェースは、この時点で 2 つのアドレスを持っています。dmfe0 のようなインタフェース名を持つエントリは、そのインタフェースのリンクローカルアドレスを示します。dmfe0:1 のような interface:n 形式のエントリは、グローバル IPv6 アドレスを示します。このアドレスには、インタフェース ID に加えて、/etc/ndpd.conf ファイルに構成されているサイト接頭辞が含まれます。


参照

ホストとサーバーの IPv6 インタフェース構成の変更

この節では、ノードがホストまたはサーバーのときに、そのノードで IPv6 が有効なインタフェースの構成を変更する方法について説明します。ほとんどの場合、IPv6 が有効なインタフェースでは、「ステートレス自動構成の概要」で説明しているようにアドレスの自動構成を使用するようにしてください。ただし、インタフェースの IPv6 アドレスの変更が必要な場合は、この節の作業の説明に従って変更できます。

IPv6 インタフェース構成の変更 (作業マップ)

次の表に、既存の IPv6 ネットワークに変更を加えるための各種作業の一覧を示します。表では、各作業で実行する内容について説明し、作業の具体的な実行手順が詳しく説明されている現在のマニュアル内の節を示しています。

作業 

説明 

説明 

IPv6 アドレスの自動構成を無効にします。 

この作業は、IPv6 アドレスのインタフェース ID 部分を手動で構成する必要がある場合に使用します。 

「IPv6 アドレスの自動構成を無効にする方法」

ホストの一時アドレスを作成します。 

ランダムに作成される一時アドレスを構成し、それをアドレスの下位 64 ビットとして使用することで、ホストのインタフェース ID を隠します。 

「一時アドレスを構成する方法」

システムのインタフェース ID のトークンを構成します。 

IPv6 アドレスのインタフェース ID として使用される 64 ビットのトークンを作成します。 

「ユーザー指定の IPv6 トークンを構成する方法」

インタフェースに対する一時アドレスの使用

IPv6 「一時アドレス」には、インタフェースの MAC アドレスの代わりに、インタフェース ID としてランダムに生成された 64 ビットの数字が含まれます。匿名にしておきたい IPv6 ノード上の任意のインタフェースに対しては、一時アドレスを使用します。たとえば、公開 Web サーバーにアクセスする必要があるホストのインタフェースに対しては、一時アドレスを使用したい場合もあります。一時アドレスには、IPv6 プライバシー拡張が実装されます。これらの拡張機能については、RFC 3041“Privacy Extensions for Stateless Address Autoconfiguration in IPv6” を参照してください。

1 つまたは複数のインタフェースに対して一時アドレスを有効にする必要がある場合は、/etc/inet/ndpd.conf ファイルを使用します。しかし、標準の自動構成された IPv6 アドレスとは異なり、一時アドレスは、64 ビットのサブネット接頭辞とランダムに生成された 64 ビット数から構成されます。このランダムな数は、IPv6 アドレスのインタフェース ID 部分になります。リンクローカルアドレスでは、一時アドレスはインタフェース ID としては生成されません。

一時アドレスの preferred lifetime のデフォルトは、1 日です。一時アドレスの生成を有効にした場合、/etc/inet/ndpd.conf ファイルでは次の変数も構成できます。

valid lifetime TmpValidLifetime

一時アドレスが存在できる寿命。この寿命を過ぎると、そのアドレスはホストから削除されます。

preferred lifetime TmpPreferredLifetime

一時アドレスが無効にされるまでの時間。この時間は、valid lifetime よりも短くします。

address regeneration

preferred lifetime が満了するまでの時間。この時間内に、ホストは新しい一時アドレスを生成します。

一時アドレスの時間を表現するには、次の書式を使用します。

n

n 秒数 (デフォルト)

n h

n 時間数 (h)

n d

n 日数 (d )

Procedure一時アドレスを構成する方法

  1. IPv6 ホストに Primary Administrator またはスーパーユーザーとしてログインします。

    Primary Administrator 役割には、Primary Administrator プロファイルが含まれます。役割を作成してユーザーに役割を割り当てるには、『Solaris のシステム管理 (基本編)』の第 2 章「Solaris 管理コンソールの操作 (手順)」を参照してください。

  2. 必要に応じて、ホストのインタフェースの IPv6 を有効にします。

    「現在のセッションの IPv6 インタフェースを有効にする方法」を参照してください。

  3. /etc/inet/ndpd.conf ファイルを編集して、一時アドレスの生成を有効にします。

    • ホストのすべてのインタフェースに対して一時アドレスを構成するには、次の行を /etc/inet/ndpd.conf ファイルに追加します。


      ifdefault TmpAddrsEnabled true
      
    • 特定のインタフェースに対して一時アドレスを構成するには、次の行を /etc/inet/ndpd.conf ファイルに追加します。


      if interface TmpAddrsEnabled true 
      
  4. (省略可能) 一時アドレスの valid lifetime を指定します。


    ifdefault TmpValidLifetime duration
    

    この構文は、ホストのすべてのインタフェースに対して valid lifetime を指定します。duration の値は、秒、時間、または日です。valid lifetime のデフォルトは 7 日です。TmpValidLifetimeif interface キーワードを使用すると、特定のインタフェースに対して一時アドレスの valid lifetime を指定できます。

  5. (省略可能) 一時アドレスの preferred lifetime を指定します。この寿命を過ぎると、一時アドレスは無効になります。


    if interface TmpPreferredLifetime duration
    

    この構文は、特定のインタフェースに対して一時アドレスの preferred lifetime を指定します。preferred lifetime のデフォルトは 1 日です。TmpPreferredLifetimeifdefault キーワードを使用すると、ホストのすべてのインタフェースに対して preferred lifetime を指定できます。


    注 –

    デフォルトアドレス選択では、無効にされた IPv6 アドレスには低い優先順位が与えられます。IPv6 一時アドレスが無効にされると、デフォルトアドレス選択によって、パケットのソースアドレスとして無効でないアドレスが選択されます。無効でないアドレスは、自動的に生成された IPv6 アドレス、またはインタフェースの IPv4 アドレス (使用できる場合) になります。デフォルトアドレス選択の詳細については、「デフォルトアドレス選択の管理」を参照してください。


  6. (省略可能) アドレスを無効にするまでの時間を指定します。この間に、ホストは新しい一時アドレスを生成する必要があります。


    ifdefault TmpRegenAdvance duration
    

    この構文は、ホストのすべてのインタフェースに対して、一時アドレスを無効にするまでの時間を指定します。デフォルトは 5 秒です。

  7. in.ndpd デーモンの構成を変更します。


    # pkill -HUP in.ndpd
    # /usr/lib/inet/in.ndpd
    
  8. 例 7–5 に示すように、ifconfig -a6 コマンドを実行することによって、一時アドレスが作成されていることを確認します。

    ifconfig コマンドの出力において、インタフェース定義と同じ行に TEMPORARY というキーワードが存在するはずです。


例 7–4 /etc/inet/ndpd.conf ファイルの一時アドレス変数

次に、一次ネットワークインタフェースに対して一時アドレスを有効にした /etc/inet/ndpd.conf ファイルの例 (一部) を示します。


ifdefault TmpAddrsEnabled true

ifdefault TmpValidLifetime 14d

ifdefault TmpPreferredLifetime 7d

ifdefault TmpRegenAdvance 6s


例 7–5 一時アドレスを有効にした ifconfig -a6 コマンドの出力

次に、一時アドレスを作成したあとにおける ifconfig コマンドの出力の例を示します。


# ifconfig -a6
lo0: flags=2000849 <UP,LOOPBACK,RUNNING,MULTICAST,IPv6> mtu 8252 index 1 
     inet6 ::1/128
hme0: flags=2000841 <UP,RUNNING,MULTICAST,IPv6> mtu 1500 index 2 
     ether 8:0:20:b9:4c:54
     inet6 fe80::a00:20ff:feb9:4c54/10
hme0:1: flags=2080841 <UP,RUNNING,MULTICAST,ADDRCONF,IPv6> mtu 1500 index 2 
     inet6 2001:db8:3c4d:15:a00:20ff:feb9:4c54/64
hme0:2: flags=802080841<UP,RUNNING,MULTICAST,ADDRCONF,IPv6,TEMPORARY> mtu 1500 index 2 
      inet6 2001:db8:3c4d:15:7c37:e7d1:fc9c:d2cb/64

インタフェース hme0:2 に続く行に TEMPORARY というキーワードが含まれていることに注目してください。この行は、2001:db8:3c4d:15:7c37:e7d1:fc9c:d2cb/64 が一時インタフェース ID を持っていることを示します。


参照

IPv6 トークンの構成

IPv6 アドレスの 64 ビットインタフェース ID は、IPv6 Addressing Overviewで説明したように、「「IPv6 アドレス指定の概要」」とも呼ばれます。トークンは、アドレスが自動構成されるときに、インタフェースの MAC アドレスに関連付けられます。ほとんどの場合、経路制御を行わないノード (IPv6 ホストと IPv6 サーバー) では、自動構成されたトークンを使用するようにしてください。

ただし、システムが保守されるときにインタフェースが定期的に交換されるサーバーでは、自動構成されたトークンを使用すると問題が発生することがあります。インタフェースカードが変更されると、MAC アドレスも変更されます。その結果、IP アドレスが変わらないことを前提とするサーバーでは、問題が発生することがあります。ネットワークインフラストラクチャーの各ノード (DNS、NIS など) に、サーバーのインタフェースに固有の IPv6 アドレスが保存されている場合があります。

アドレスが変わることで発生する問題を回避するために、IPv6 アドレスのインタフェース ID として使用されるトークンを手動で構成できます。トークンを作成するには、IPv6 アドレスのインタフェース ID 部分に相当する 64 ビット以下の 16 進数を指定します。それ以降は、アドレスが自動構成されるときに近傍検索によって作成されるインタフェース ID は、インタフェースの MAC アドレスからは作成されません。代わりに、手動で作成したトークンがインタフェースID になります。このトークンは、カードを交換しても、インタフェースに割り当てられたままになります。


注 –

ユーザー指定のトークンと一時アドレスとの違いは、一時アドレスがランダムに生成されるのに対し、ユーザー指定のトークンはユーザーが明示的に作成する点です。


Procedureユーザー指定の IPv6 トークンを構成する方法

次の手順は、インタフェースが定期的に置き換えられるサーバーで特に役立ちます。また、任意の IPv6 ノード上でユーザー指定のトークンを構成する場合にも有効です。

  1. トークンを構成するインタフェースが plumb されていることを確認します。

    IPv6 アドレスのトークンを構成するときは、そのインタフェースが plumb されている必要があります。


    # ifconfig -a6
    

    qfe0: flags=2000841 <UP,RUNNING,MULTICAST,IPv6> mtu 1500 index 2
            ether 0:3:ba:13:14:e1 
            inet6 fe80::203:baff:fe13:14e1/10

    この出力から、ネットワークインタフェース qfe0 が plumb されていて、リンクのローカルアドレス fe80::203:baff:fe13:14e1/10 が割り当てられていることがわかります。このアドレスは、インストール中に自動的に構成されています。

  2. ノードのインタフェースのトークンとして使用する、1 つまたは複数の 64 ビットの 16 進数を作成します。トークンの例については、「リンクローカルユニキャストアドレス」を参照してください。

  3. 各インタフェースをトークンで構成します。

    次の形式の ifconfig コマンドを使用して、ユーザー指定のインタフェース ID (トークン) を各インタフェースに割り当てます。


    ifconfig interface inet6  token address/64
    

    たとえば、インタフェース qfe0 をトークンで構成するには、次のコマンドを使用します。


    # ifconfig qfe0 inet6 token ::1a:2b:3c:4d/64
    

    ユーザー指定のトークンを割り当てるインタフェースごとに、この手順を繰り返します。

  4. (省略可能) 新しい IPv6 アドレスがリブート後も保持されるように設定します。

    1. トークンを構成したインタフェースごとに、/etc/hostname6.interface ファイルを編集または作成します。

    2. /etc/hostname6.interface ファイルの末尾に次のテキストを追加します。


      token ::token-name/64

      たとえば、/etc/hostname6.interface ファイルの末尾に次のテキストを追加します。


      token ::1a:2b:3c:4d/64

    システムをリブートしたあとに、/etc/hostname6.interface ファイルに構成したトークンがそのインタフェースの IPv6 アドレスに適用されます。この IPv6 アドレスは、それ以降何度リブートしても保持されます。

  5. 変更に合わせて、IPv6 デーモンを更新します。


    # pkill -HUP -in.ndpd
    

例 7–6 ユーザー指定のトークンを IPv6 インタフェースに構成する

次の例のインタフェース bge0:1 には、自動構成された IPv6 アドレスが割り当てられています。サブネット接頭辞 2001:db8:3c4d:152:/64 は、ノードのローカルリンク上のルーターから通知されます。インタフェース ID 2c0:9fff:fe56:8255 は、bge0:1 の MAC アドレスから生成されます。


# ifconfig -a6
lo0: flags=2002000849 <UP,LOOPBACK,RUNNING,MULTICAST,IPv6,VIRTUAL> mtu 8252 index 1
        inet6 ::1/128
bge0: flags=2100801 <UP,MULTICAST,IPv6> mtu 1500 index 5
        inet6 fe80::2c0:9fff:fe56:8255/10
        ether 0:c0:9f:56:82:55
bge0:1: flags=2180801 <UP, MULTICAST,ADDRCONF,IPv6>mtu 1500 index 5
        inet6 2001:db8:3c4d:152:c0:9fff:fe56:8255/64
# ifconfig bge0 inet6 token ::1a:2b:3c:4d/64
# vi /etc/hostname6.bge0
token ::1a:2b:3c:4d/64
# pkill -HUP -in.ndpd
# ifconfig -a6
lo0: flags=2002000849 <UP,LOOPBACK,RUNNING,MULTICAST,IPv6,VIRTUAL> mtu 8252 index 1
        inet6 ::1/128
bge0: flags=2100801 <UP,MULTICAST,IPv6> mtu 1500 index 5
        inet6 fe80::2c0:9fff:fe56:8255/10
        ether 0:c0:9f:56:82:55
bge0:1: flags=2180801 <UP, MULTICAST,ADDRCONF,IPv6>mtu 1500 index 5
        inet6 2001:db8:3c4d:152:1a:2b:3c:4d/64

トークンの構成が終了すると、bge0:1 の 2 番目の状態行のグローバルアドレスは、そのインタフェース ID に構成された 1a:2b:3c:4d になります。


参照

サーバー上での IPv6 が有効なインタフェースの管理

サーバーで IPv6 を使用することを計画するときは、サーバーのインタフェースの IPv6 を有効にするために、いくつかのことを決定する必要があります。それらの決定は、インタフェースの IPv6 アドレスのインタフェース ID (「トークン」とも呼ばれる) を構成するときに、どのような方法を採用するかに影響します。

Procedureサーバーのインタフェースの IPv6 を有効にする方法

始める前に

この手順では、次のことを前提としています。

これらに該当する場合は、IPv6 がサポートされるようにアプリケーションソフトウェアをアップグレードします。IPv4 プロトコルスタックで動作するアプリケーションの多くは、IPv6 でも正常に動作します。詳細は、「IPv6 をサポートするためにネットワークサービスを準備する方法」を参照してください。

  1. サーバー上で、Primary Administrator の役割を引き受けるか、スーパーユーザーになります。

    Primary Administrator 役割には、Primary Administrator プロファイルが含まれます。役割を作成してユーザーに役割を割り当てるには、『Solaris のシステム管理 (基本編)』の第 2 章「Solaris 管理コンソールの操作 (手順)」を参照してください。

  2. サーバーと同じリンク上のルーターに IPv6 サブネット接頭辞が構成されていることを確認します。

    詳細は、「IPv6 ルーターの構成」を参照してください。

  3. サーバーの IPv6 が有効なインタフェースのインタフェース ID に適した方法を使用します。

    デフォルトでは、IPv6 アドレスの自動構成によって IPv6 アドレスのインタフェース ID 部分が作成されるときに、インタフェースの MAC アドレスが使用されます。インタフェースの IPv6 アドレスが既知の場合には、インタフェースが切り替わると、問題が発生することがあります。新しいインタフェースの MAC アドレスは、別のアドレスになります。アドレスが自動構成されると、新しいインタフェース ID が生成されます。

    • IPv6 が有効なインタフェースを置き換えないで使用する場合は、自動構成された IPv6 アドレスを使用します (「IPv6 アドレスの自動構成」を参照)。

    • IPv6 が有効なインタフェースをローカルネットワークの外部には匿名で表示する必要がある場合は、ランダムに生成されたトークンをインタフェース ID に使用することを検討します。手順および例については、「一時アドレスを構成する方法」を参照してください。

    • IPv6 が有効なインタフェースを定期的に切り替えて使用する場合は、インタフェース ID のトークンを作成します。手順および例については、「ユーザー指定の IPv6 トークンを構成する方法」を参照してください。

IPv6 サポート用にトンネルを構成するための作業 (作業マップ)

次の表に、さまざまな種類の IPv6 トンネルを構成するための各種作業の一覧を示します。表では、各作業で実行する内容について説明し、作業の具体的な実行手順が詳しく説明されている現在のマニュアル内の節を示しています。

作業 

説明 

説明 

IPv6 over IPv4 トンネルを手動で構成します。 

IPv4 ネットワークを経由する IPv6 トンネルを手動で構成します。より大きく、大部分が IPv4 である企業ネットワーク内にあるリモートの IPv6 ネットワークに到達するための解決方法です。 

「IPv6 over IPv4 トンネルを手動で構成する方法」

IPv6 over IPv6 トンネルを手動で構成します。 

IPv6 ネットワークを経由する IPv6 トンネルを手動で構成します。通常、巨大な企業ネットワークで使用される解決方法です。 

「IPv6 over IPv6 トンネルを手動で構成する方法」

IPv4 over IPv6 トンネルを手動で構成します。 

IPv6 ネットワークを経由する IPv4 トンネルを手動で構成します。IPv4 と IPv6 の両方のネットワークを持つ巨大なネットワークで使用される解決方法です。 

「IPv4 over IPv6 トンネルを構成する方法」

IPV6 over IPv4 トンネル (6to4 トンネル) を自動で構成します。 

自動 6to4 トンネルを作成します。外部の IPv6 サイトにインターネット経由で到達するための解決方法です。 

「6to4 トンネルを設定する方法」

6to4 ルーターと 6to4 リレールーター間にトンネルを構成します。 

6to4relay コマンドを使用して、6to4 リレールーターとの間のトンネルを有効にする解決方法です。

「6to4 リレールーターとの間の 6to4 トンネルを設定する方法」

IPv6 サポート用のトンネルの構成

IPv6 ネットワークは、ほとんどの場合、巨大な IPv4 ネットワーク内で孤立しています。IPv6 ネットワーク上のノードは、企業 (内部) またはリモート (外部) の孤立した IPv6 ネットワーク上のノードと通信する必要もあります。このような場合、IPv6 ホストはトンネルのエンドポイントとしても機能しますが、通常は、IPv6 ルーター間にトンネルを構成します。トンネルの計画については、「ネットワークトポロジにおけるトンネルの計画」を参照してください。

IPv6 ネットワーク用に自動的または手動で構成されたトンネルを設定できます。Oracle Solaris IPv6 実装がサポートするトンネルカプセル化の種類は、次のとおりです。

トンネルの概念については、「IPv6 トンネル」を参照してください。

ProcedureIPv6 over IPv4 トンネルを手動で構成する方法

この手順では、IPv6 ノードから IPv4 ネットワーク経由でリモートの IPv6 ノードに到達するトンネルを設定する方法について説明します。

  1. トンネルのローカル側のエンドポイントに Primary Administrator またはスーパーユーザーとしてログインします。

    Primary Administrator 役割には、Primary Administrator プロファイルが含まれます。役割を作成してユーザーに役割を割り当てるには、『Solaris のシステム管理 (基本編)』の第 2 章「Solaris 管理コンソールの操作 (手順)」を参照してください。

  2. /etc/hostname6.ip.tun n ファイルを作成します。

    ここで、n はトンネル番号です (最初のトンネルがゼロ)。次に、次の手順に従って、エントリを追加します。

    1. トンネルソースアドレスとトンネル宛先アドレスを追加します。


      tsrc IPv4-source-address tdst IPv4-destination-address up
    2. (省略可能) ソース IPv6 アドレスと宛先 IPv6 アドレスの論理インタフェースを追加します。


      addif IPv6-source-address  IPv6-destination-address 
      

      このインタフェースに対してアドレスを自動設定したい場合は、この手順を省きます。各トンネルに対するリンクローカルアドレスを設定する必要はありません。

  3. システムを再起動します。

  4. トンネルの反対側のエンドポイントでも、この作業を繰り返します。


例 7–7 /etc/hostname6.ip.tun ファイルにおける手動 IPv6 over IPv4 トンネル用のエントリ

次の /etc/hostname6.ip.tun ファイルの例に、グローバルソースアドレスとグローバル宛先アドレスを手動で構成したトンネルを示します。


tsrc 192.168.8.20 tdst 192.168.7.19 up
addif 2001:db8:3c4d:8::fe12:528 2001:db8:3c4d:7:a00:20ff:fe12:1234 up

ProcedureIPv6 over IPv6 トンネルを手動で構成する方法

この手順では、IPv6 ノードから IPv6 ネットワーク経由でリモートの IPv6 ノードに到達するトンネルを設定する方法について説明します。

  1. トンネルのローカル側のエンドポイントに Primary Administrator またはスーパーユーザーとしてログインします。

    Primary Administrator 役割には、Primary Administrator プロファイルが含まれます。役割を作成してユーザーに役割を割り当てるには、『Solaris のシステム管理 (基本編)』の第 2 章「Solaris 管理コンソールの操作 (手順)」を参照してください。

  2. /etc/hostname6.ip6.tun n ファイルを作成します。

    n には 0、1、2 などの値を使用します。次に、次の手順に従って、エントリを追加します。

    1. トンネルソースアドレスとトンネル宛先アドレスを追加します。


      tsrc IPv6-source-address tdst IPv6-destination-address
      IPv6-packet-source-address IPv6-packet-destination-address up
    2. (省略可能) ソース IPv6 アドレスと宛先 IPv6 アドレスの論理インタフェースを追加します。


      addif IPv6-source-address  IPv6-destination-address up

      このインタフェースに対してアドレスを自動設定したい場合は、この手順を省きます。各トンネルに対するリンクローカルアドレスを設定する必要はありません。

  3. システムを再起動します。

  4. トンネルの反対側のエンドポイントでも、この作業を繰り返します。


例 7–8 /etc/hostname6.ip6.tun ファイルにおける IPv6 over IPv6 トンネル用のエントリ

次に、IPv6 over IPv6 トンネル用のエントリの例を示します。


tsrc 2001:db8:3c4d:22:20ff:0:fe72:668c tdst 2001:db8:3c4d:103:a00:20ff:fe9b:a1c3
fe80::4 fe80::61 up

ProcedureIPv4 over IPv6 トンネルを構成する方法

この手順では、IPv6 ネットワークを経由して、2 つの IPv4 ホスト間をつなげるトンネルを構成する方法について説明します。この手順を使用するのは、企業のネットワークが異機種混在の環境であり、IPv6 サブネットが IPv4 サブネットを分離している場合です。

  1. トンネルのローカル (IPv4 ) 側のエンドポイントに Primary Administrator またはスーパーユーザーとしてログインします。

    Primary Administrator 役割には、Primary Administrator プロファイルが含まれます。役割を作成してユーザーに役割を割り当てるには、『Solaris のシステム管理 (基本編)』の第 2 章「Solaris 管理コンソールの操作 (手順)」を参照してください。

  2. /etc/hostname.ip6.tun n ファイルを作成します。

    n には 0、1、2 などの値を使用します。次に、次の手順に従って、エントリを追加します。

    1. トンネルソースアドレスとトンネル宛先アドレスを追加します。


      tsrc IPv6-source-address tdst IPv6-destination-address
      
    2. (省略可能) ソース IPv6 アドレスと宛先 IPv6 アドレスの論理インタフェースを追加します。


      addif IPv6-source-address  IPv6-destination-address up
  3. ローカルホストをリブートします。

  4. トンネルの反対側のエンドポイントでも、この作業を繰り返します。


例 7–9 /etc/hostname6.ip6.tun ファイルにおける IPv4 over IPv6 トンネル用のエントリ

次に、IPv6 トンネル経由の IPv4 のエントリの例を示します。


tsrc 2001:db8:3c4d:114:a00:20ff:fe72:668c tdst 2001:db8:3c4d:103:a00:20ff:fe9b:a1c3
10.0.0.4 10.0.0.61 up

Procedure6to4 トンネルを設定する方法

企業の IPv6 ネットワークがリモートの IPv6 ネットワークと通信する必要がある場合、自動 6to4 トンネルを使用することを考えてください。6to4 トンネルを構成するプロセスには、境界ルーターを「6to4」ルーターとして構成する手順が含まれます。6to4 ルーターは、ローカルのネットワークとリモートの IPv6 ネットワークにあるエンドポイントルーター間における 6to4 トンネルのエンドポイントとして機能します。

始める前に

IPv6 ネットワーク上で 6to4 経路制御を構成する前に、次のことを行う必要があります。

  1. 予想されている 6to4 ルーターに Primary Administrator またはスーパーユーザーとしてログインします。

    Primary Administrator 役割には、Primary Administrator プロファイルが含まれます。役割を作成してユーザーに役割を割り当てるには、『Solaris のシステム管理 (基本編)』の第 2 章「Solaris 管理コンソールの操作 (手順)」を参照してください。

  2. ルーター上に 6to4 疑似インタフェースを構成します。つまり、/etc/hostname6.ip.6to4tun0 ファイルを作成します。

    • サブネット ID が 0 でホスト ID が 1 の推奨されている規則を使用する場合は、 /etc/hostname6.ip.6to4tun0 では次に示す短い形式を使用してください。


      tsrc IPv4-address up
    • サブネット ID とホスト ID にほかの規則を使用する場合は、/etc/hostname6.ip.6to4tun0 では次に示す長い形式を使用してください。


      tsrc IPv4-address 2002:IPv4-address:subnet-ID:interface-ID:/64 up

    /etc/hostname6.ip.6to4tun0 の必須パラメータは次のとおりです。

    tsrc

    このインタフェースがトンネルソースとして使用されることを示します。

    IPv4-address

    6to4 擬似インタフェースとなる物理インタフェース上で設定される IPv4 アドレスをドット付きの 10 進数形式で指定します。

    残りのパラメータは省略可能です。しかし、省略可能なパラメータを 1 つでも指定した場合、ほかのすべての省略可能なパラメータも指定する必要があります。

    2002

    6to4 接頭辞を指定します。

    IPv4–address

    疑似インタフェースの IPv4 アドレスを 16 進数表記で指定します。

    subnet-ID

    0 以外のサブネット ID を16 進表記で指定します。

    interface-ID

    1 以外のインタフェース ID を指定します。

    /64

    5to4 接頭辞の長さが 64 ビットであることを示します。

    up

    6to4 インタフェースを「up」として構成します。


    注 –

    ネットワーク上の 2 つの IPv6 トンネルは、同じソースアドレスと同じ宛先アドレスを持つことはできません。同じアドレスを指定するとパケットは削除されます。このような状況は、6to4 ルーターが atun コマンドを通してトンネリングを実施する場合にも発生する可能性があります。atun については、tun(7M) のマニュアルページを参照してください。


  3. (省略可能) ルーター上でさらに 6to4 擬似インタフェースを作成します。

    予定されている各 6to4 擬似インタフェースには、すでに設定された一意の (全世界に 1 つしかない) IPv4 アドレスが必要です。

  4. 6to4 ルーターをリブートします。

  5. インタフェースの状態を確認します。


    # ifconfig ip.6to4tun0 inet6
            
    

    インタフェースが正しく設定されている場合は、次のようなメッセージが表示されます。


    ip.6to4tun0: flags=2200041<UP,RUNNING,NONUD,IPv6>mtu 1480 index 11
            inet tunnel src 111.222.33.44 
            tunnel hop limit 60 
            inet6 2002:6fde:212c:10:/64 
  6. 6to4 経路制御を通知するために /etc/inet/ndpd.conf ファイルを編集します。

    詳細については、ndpd.conf(4) のマニュアルページを参照してください。

    1. 最初の行で、通知を受け取るサブネットを指定します。

      if エントリを次の書式で作成してください。


      if subnet-interface AdvSendAdvertisements 1

      たとえば、インタフェース hme0 に接続しているサブネットに対して 6to4 経路制御を通知するには、subnet-interfacehme0 に置き換えます。


      if hme0 AdvSendAdvertisements 1
    2. 通知の 2 行目として 6to4 接頭辞を追加します。

      prefix エントリを次の書式で作成してください。


      prefix 2002:IPv4-address:subnet-ID::/64 subnet-interface
      
  7. ルーターをリブートします。

    あるいは、sighup/etc/inet/in.ndpd デーモンに発行しても、ルーター広告の送信を開始できます。これによって、各サブネット上の 6to4 接頭辞を受信する IPv6 ノードは、新しい 6to4 派生アドレスを自動構成します。

  8. ノードに使用される 6to4 派生の新しいアドレスを 6to4 サイトで使用されるネームサービスに追加します。

    手順については、「ネームサービスの IPv6 サポート用の構成」を参照してください。


例 7–10 6to4 ルーターの構成 (短い形式)

次に、/etc/hostname6.ip.6to4tun0 の短い形式の例を示します。


# cat /etc/hostname6.ip.6to4tun0
tsrc 111.222.33.44 up


例 7–11 6to4 ルーターの構成 (長い形式)

次に、/etc/hostname6.ip.6to4tun0 の長い形式の例を示します。


# cat /etc/hostname6.ip.6to4tun0
tsrc 111.222.33.44 2002:6fde:212c:20:1/64 up


例 7–12 6to4 疑似インタフェースを示す ifconfig の出力

次に、6to4 擬似インタフェースの ifconfig コマンドの出力例を示します。


# ifconfig ip.6to4tun0 inet6
ip.6to4tun0: flags=2200041<UP,RUNNING,NONUD,IPv6> mtu 1480 index 11
        inet tunnel src 192.168.87.188
        tunnel hop limit 60 
        inet6 2002:c0a8:57bc::1/64 


例 7–13 /etc/inet/ndpd.conf における 6to4 通知

次の /etc/inet/ndpd.conf ファイル例は、2 つのサブネット上の 6to4 経路制御を通知します。


if qfe0 AdvSendAdvertisements 1
prefix  2002:c0a8:57bc:10::/64 qfe0 

if qfe1 AdvSendAdvertisements 1
prefix  2002:c0a8:57bc:2::/64 qfe1

6to4 サイトにおける複数のルーターの設定

複数のルーターが存在するサイトの場合、6to4 ルーターの後ろに位置するルーターも 6to4 をサポートするように構成する必要がある場合があります。サイトに RIP が使用されている場合、6to4 以外のルーターそれぞれに、6to4 ルーターまでの静的ルートを指定する必要があります。市販の経路制御プロトコルを使用する場合は、6to4 ルーターとの間の静的なルートを構築する必要はありません。

Procedure6to4 リレールーターとの間の 6to4 トンネルを設定する方法


注意 – 注意 –

セキュリティー上の大きな問題のため、Oracle Solaris では、6to4 リレールーターのサポートはデフォルトでは無効になっています。「6to4 リレールーターへのトンネルを作成するときのセキュリティー問題」を参照してください。


始める前に

6to4 リレールーターとの間のトンネルを有効にする前に、次の作業を完了しておく必要があります。

  1. 6to4 ルーターに Primary Administrator またはスーパーユーザーとしてログインします。

    Primary Administrator 役割には、Primary Administrator プロファイルが含まれます。役割を作成してユーザーに役割を割り当てるには、『Solaris のシステム管理 (基本編)』の第 2 章「Solaris 管理コンソールの操作 (手順)」を参照してください。

  2. 次のどちらか一方を使用し、6to4 リレールーターとの間のトンネルを有効にします。

    • エニーキャスト 6to4 リレールーターとの間のトンネルを有効にします。


      # /usr/sbin/6to4relay -e
      

      -e オプションは、6to4 ルーターとエニーキャスト 6to4 リレールーターの間にトンネルを設定します。エニーキャスト 6to4 リレールーターは既知の IPv4 アドレス 192.88.99.1 を持っています。サイトに物理的にもっとも近いエニーキャストリレールーターが、6to4 トンネルのエンドポイントになります。このリレールーターは、6to4 サイトとネイティブ IPv6 サイト間のパケット転送を処理します。

      エニーキャスト 6to4 リレールーターの詳細については、RFC 3068, "An Anycast Prefix for 6to4 Relay Routers" を参照してください。

    • 特定の 6to4 リレールーターとの間のトンネルを有効にします。


      # /usr/sbin/6to4relay -e -a relay-router-address
      

      -a オプションは、特定のルーターアドレスが続くことを示します。relay-router-address には、トンネルを有効にするために使用する特定の 6to4 リレールーターの IPv4 アドレスを指定してください。

    6to4 リレールーターとの間のトンネルは、6to4 トンネル擬似インタフェースが削除されるまでアクティブな状態を維持します。

  3. 6to4 リレールーターとの間のトンネルが必要なくなったときには、このトンネルを削除します。


    # /usr/sbin/6to4relay -d
    
  4. (省略可能) リブートを行なっても 6to4 リレールーターとの間のトンネルが持続するように設定します。

    サイトによっては、6to4 ルーターがリブートするたびに 6to4 リレールーターとの間のトンネルを元に戻さざるをえない場合があるでしょう。このような状況に対応するためには、次の作業を行う必要があります。

    1. /etc/default/inetinit ファイルを編集します。

      変更が必要な行は、ファイルの最後にあります。

    2. ACCEPT6TO4RELAY=NO という行の値 “NO” を “YES” に変更します。

    3. (省略可能) 特定の 6to4 リレールーターとの間で、リブートを行なっても持続するトンネルを構築します。

      パラメータ RELAY6TO4ADDR のために、アドレス 192.88.99.1 を、使用したい 6to4 リレールーターの IPv4 アドレスに変更してください。


例 7–14 6to4 リレールーターサポートの状態情報の取得

/usr/bin/6to4relay コマンドを使用し、6to4 リレールーターのサポートが有効になっているかどうかを確認できます。次の例は、6to4 リレールーターのサポートを無効にした場合 (これが Oracle Solaris のデフォルト) の出力です。


# /usr/sbin/6to4relay
6to4relay: 6to4 Relay Router communication support is disabled.

6to4 リレールーターのサポートを有効にすると、次のメッセージが表示されます。


# /usr/sbin/6to4relay
6to4relay: 6to4 Relay Router communication support is enabled.
IPv4 remote address of Relay Router=192.88.99.1

ネームサービスの IPv6 サポート用の構成

この節では、IPv6 サービスをサポートするように DNS ネームサービスと NIS ネームサービスを構成する方法について説明します。


注 –

LDAP は IPv6 をサポートします。IPv6 固有な構成作業は必要ありません。


DNS、NIS、および LDAP の管理の詳細については、『Solaris のシステム管理 (ネーミングとディレクトリサービス : DNS、NIS、LDAP 編)』を参照してください。

ProcedureDNS に対する IPv6 アドレスを追加する方法

  1. プライマリまたはセカンダリの DNS サーバーに Primary Administrator またはスーパーユーザーとしてログインします。

    Primary Administrator 役割には、Primary Administrator プロファイルが含まれます。役割を作成してユーザーに役割を割り当てるには、『Solaris のシステム管理 (基本編)』の第 2 章「Solaris 管理コンソールの操作 (手順)」を参照してください。

  2. 適切な DNS ゾーンファイルを編集して、IPv6 が有効なノードごとに AAAA レコードを追加します。


    host-name  IN   AAAA 	host-address
    
  3. DNS 逆ゾーンファイルを編集して、PTR レコードを追加します。


    host-address IN   PTR   hostname
    

    DNS の管理の詳細については、『Solaris のシステム管理 (ネーミングとディレクトリサービス : DNS、NIS、LDAP 編)』を参照してください。


例 7–15 DNS 逆ゾーンファイル

次に、逆ゾーンファイルにおける IPv6 アドレスの例を示します。


$ORIGIN	ip6.int.	
8.2.5.0.2.1.e.f.f.f.9.2.0.0.a.0.6.5.2.9.0.0.0.0.0.0.0.0.2.0.0.0 \
	IN		PTR		vallejo.Eng.apex.COM.

IPv6 アドレスの NIS への追加

Solaris 10 11/06 以前のリリースでは、NIS 用に 2 つのマップが追加されていました。 ipnodes.bynameipnodes.byaddr です。これらのマップは、いずれも IPv4 と IPv6 のホスト名とアドレスの関連付けを含んでいました。IPv6 に対応するツールは、ipnodes NIS マップを使用していました。hosts.byname マップと hosts.byaddr マップは、IPv4 ホスト名とアドレスの関係しか含んでいませんでした。これらのマップは既存のアプリケーションのために変更されていません。ipnodes マップの管理は、hosts.byname マップと hosts.byaddr マップの管理方法と同様です。Solaris 10 11/06 の場合は、hosts マップを ipnode アドレスで更新すると、ipnode マップも同じ情報で更新されることに注意してください。


注 –

Oracle Solaris 10 の後続のリリースでは、ipnodes マップは使用されません。ipnodes マップの IPv6 機能は、hosts マップで管理されるようになりました。


NIS マップを管理する手順については、『Solaris のシステム管理 (ネーミングとディレクトリサービス : DNS、NIS、LDAP 編)』の第 5 章「NIS サービスの設定と構成」を参照してください。

ProcedureIPv6 ネームサービス情報を表示する方法

nslookup コマンドを使用すると、 IPv6 ネームサービス情報を表示できます。

  1. 自分のユーザーアカウントで、nslookup コマンドを実行します。


    % /usr/sbin/nslookup
    

    デフォルトサーバー名とアドレスが表示され、nslookup コマンドの山括弧プロンプトが表示されます。

  2. 特定のホストの情報を表示するには、山括弧プロンプトに次のコマンドを入力します。


    >set q=any
    >host-name
    
  3. 次のコマンドを入力すると、AAAA レコードだけが表示されます。


    >set q=AAAA
    hostname
    
  4. exit を入力して、nslookup コマンドを終了します。


例 7–16 nslookup による IPv6 情報の表示

次に、IPv6 ネットワーク環境における nslookup コマンドの結果の例を示します。


%  /usr/sbin/nslookup
Default Server:  dnsserve.local.com
Address:  10.10.50.85
> set q=AAAA
> host85
Server:  dnsserve.local.com
Address:  10.10.50.85

host85.local.com      IPv6 address = 2::9256:a00:fe12:528
> exit

ProcedureDNS IPv6 PTR レコードの正確な更新を確認する方法

nslookup コマンドを使用して DNS IPv6 PTR レコードを表示します。

  1. 自分のユーザーアカウントで、nslookup コマンドを実行します。


    % /usr/sbin/nslookup
    

    デフォルトサーバー名とアドレスが表示され、 nslookup コマンドの山括弧プロンプトが表示されます。

  2. PTR レコードを表示するには、山括弧プロンプトに次のコマンドを入力します。


    >set q=PTR
    
  3. exit を入力して、コマンドを終了します。


例 7–17 nslookup コマンドによる PTR レコードの表示

次に、nslookup コマンドを使用して、PTR レコードを表示する例を示します。


%  /usr/sbin/nslookup
Default Server:  space1999.Eng.apex.COM
Address:  192.168.15.78
> set q=PTR
> 8.2.5.0.2.1.e.f.f.f.0.2.0.0.a.0.6.5.2.9.0.0.0.0.0.0.0.0.2.0.0.0.ip6.int

8.2.5.0.2.1.e.f.f.f.0.2.0.0.a.0.6.5.2.9.0.0.0.0.0.0.0.0.2.0.0.0.ip6.int name = 
vallejo.ipv6.Eng.apex.COM
ip6.int nameserver = space1999.Eng.apex.COM
> exit

ProcedureNIS による IPv6 情報を表示する方法

ypmatch コマンドを実行して NIS で IPv6 情報を表示するには、次のように操作します。

  1. 自分のアカウントで次のコマンドを入力すると、NIS 内の IPv6 アドレスが表示されます。


    % ypmatch hostname hosts ipnodes.byname
    

    指定した hostname についての情報が表示されます。


    注 –

    Solaris 10 11/06 よりあとの Oracle Solaris リリースには、ipnodes マップは含まれなくなりました。ipnodes マップの IPv6 機能は、hosts マップで管理されるようになりました。



例 7–18 ypmatch コマンドによる IPv6 アドレスの出力

Solaris 10 11/06 以前のリリースの場合、ipnodes.byname データベースに対して ypmatch 操作を実行すると、結果は次の例のようになります。


% ypmatch farhost hosts ipnodes.byname
2001:0db8:3c4d:15:a00:20ff:fe12:5286       farhost

Procedureネームサービスに依存しない IPv6 情報を表示する方法

この手順は、Solaris 10 11/06 以前のリリースでのみ使用できます。後続のリリースでは、同じ操作を hosts データベースに対して実行できます。

  1. 自分のユーザーアカウントで、次のコマンドを入力します。


    % getent ipnodes hostname
    

    指定した hostname についての情報が表示されます。


例 7–19 ipnodes データベース内の IPv6 情報の表示

次に、getent コマンドからの出力の例を示します。


% getent ipnodes vallejo

2001:0db8:8512:2:56:a00:fe87:9aba    myhost myhost
fe80::56:a00:fe87:9aba     myhost myhost

第 8 章 TCP/IP ネットワークの管理 (手順)

この章では、TCP/IP ネットワークを管理するための作業について説明します。次の項目について説明します。

これらのタスクでは、サイトで TCP/IP ネットワークが IPv4 専用またはデュアルスタック IPv4/IPv6 で動作していると仮定します。IPv6 をサイトに実装する予定でいるが、まだ実装していない場合は、次の章を参照してください。

主な TCP/IP 管理作業 (作業マップ)

次の表に、ネットワーク情報の表示など、初期構成後に行うその他のネットワーク管理作業の一覧を示します。表では、各作業で実行する内容について説明し、作業の具体的な実行手順が詳しく説明されている現在のマニュアル内の節を示しています。

作業 

説明 

参照先 

インタフェースについての構成情報を表示します。 

システム上にある各インタフェースの現在の構成を判断します。 

「特定のインタフェースに関する情報を入手する方法」

インタフェースアドレス割り当てを表示します。 

ローカルシステム上にあるすべてのインタフェースのアドレス割り当てを判断します。 

「インタフェースアドレスの割り当てを表示する方法」

プロトコル別の統計を表示します。 

特定のシステム上におけるネットワークプロトコルの性能を監視します。 

「プロトコル別の統計情報を表示する方法」

ネットワークの状態を表示します。 

すべてのソケットおよび経路制御テーブルのエントリを表示して、システムを管理します。IPv4 の inet アドレスファミリと IPv6 の inet6 アドレスファミリも表示されます。  

「ソケットの状態を表示する方法」

ネットワークインタフェースの状態を表示します。 

ネットワークインタフェースの性能を監視します。転送の問題を解決するときに役立ちます。 

「ネットワークインタフェースの状態を表示する方法」

パケット転送の状態を表示します。 

ネットワークで送信されるパケットの状態を監視します。 

「特定のアドレスタイプのパケット転送に関する状態を表示する方法」

IPv6 関連コマンドの出力表示を制御します。 

ping コマンド、netstat コマンド、 ifconfig コマンド、traceroute コマンドの出力を制御します。inet_type という名前のファイルを作成します。そのファイル内の DEFAULT_IP 変数を設定します。

「IP 関連コマンドの表示出力を制御する方法」

ネットワークトラフィックを監視します。 

snoop コマンドを使用して、すべての IP パケットを表示します。

「IPv6 ネットワークトラフィックを監視する方法」

ネットワークのルーターが知っているすべてのルートをトレースします。 

traceroute コマンドを使用して、すべてのルートを表示します。

「すべてのルートをトレースする方法」

ifconfig コマンドによるインタフェース構成の監視

ifconfig コマンドを使用して、IP アドレスを手動でインタフェースに割り当て、インタフェースのパラメータを手動で構成します。さらに、Oracle Solaris 起動スクリプトは ifconfig コマンドを実行して、6to4 トンネルエンドポイントなどの疑似インタフェースを構成します。

このマニュアルでは、ifconfig コマンドのさまざまなオプションを使用する作業が数多く含まれています。ifconfig コマンド、そのオプション、およびその変数の詳細については、ifconfig(1m) のマニュアルページを参照してください。ifconfig の基本構文は次のとおりです。

ifconfig interface [protocol-family]

Procedure特定のインタフェースに関する情報を入手する方法

ifconfig コマンドを使用して、特定のシステムのインタフェースについての基本情報を判断します。たとえば、ifconfig コマンドを実行すると、次のような情報が表示されます。

次の手順に、ifconfig コマンドを使用して、システムのインタフェースについての基本構成情報を取得する方法を示します。

  1. ローカルホスト上で、Primary Administrator の役割を引き受けるか、スーパーユーザーになります。

    Primary Administrator 役割には、Primary Administrator プロファイルが含まれます。役割を作成してユーザーに役割を割り当てるには、『Solaris のシステム管理 (基本編)』の第 2 章「Solaris 管理コンソールの操作 (手順)」を参照してください。

  2. 特定のインタフェースについての情報を取得します。


    # ifconfig interface
    

    ifconfig コマンドからの出力の書式は次のとおりです。

    • 状態行

      ifconfig コマンド出力の 1 行目には、そのインタフェースに現在関連付けられているインタフェース名と状態フラグが表示されます。状態行には、特定のインタフェースとインデックス番号に構成されている最大転送単位 (MTU) も表示されます。状態行を使用すると、インタフェースの現在の状態を判断できます。

    • IP アドレス情報行

      ifconfig 出力の 2 行目には、インタフェースに構成されている IPv4 アドレスまたは IPv6 アドレスが表示されます。IPv4 アドレスの場合、構成されているネットマスクとブロードキャストアドレスも表示されます。

    • MAC アドレス行

      ifconfig コマンドをスーパーユーザーまたはそれと同等な役割で実行した場合、ifconfig 出力には 3 行目が表示されます。IPv4 アドレスの場合、3 行目には、インタフェースに割り当てられている MAC アドレス (Ethernet 層アドレス) が表示されます。IPv6 アドレスの場合、3 行目には、IPv6 の in.ndpd デーモンが MAC アドレスから生成したリンクローカルアドレスが表示されます。


例 8–1 ifconfig コマンドからのインタフェース基本情報

次の例に、ifconfig コマンドを使用して、特定のホスト上にある eri インタフェースについての情報を取得する方法を示します。


# ifconfig eri
eri0: flags=863<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 1
      inet 10.0.0.112 netmask ffffff80 broadcast 10.8.48.127
      ether 8:0:20:b9:4c:54 
	

次の表では、ifconfig による照会での変数情報、画面上での変数の表示形式、および、提供される情報の種類について説明しています。前述の出力を例として使用します。

変数 

画面出力 

説明 

インタフェース名 

eri0

ifconfig コマンドで状態が要求されたインタフェースのデバイス名を示します。

インタフェースの状態 

flags=863<UP

インタフェースの状態を表示します。そのインタフェースに現在関連するフラグがすべて表示されます。ここで、インタフェースが現在起動されているか (UP) または起動されていないか (DOWN) を判断できます。

ブロードキャストの状態 

BROADCAST

インタフェースが IPv4 ブロードキャストをサポートすることを示します。 

転送の状態 

RUNNING

システムがパケットをインタフェース経由で転送していることを示します。 

マルチキャストの状態 

MULTICAST, IPv4

インタフェースがマルチキャスト転送をサポートすることを示します。この例のインタフェースは IPv4 マルチキャスト転送をサポートします。 

最大転送単位 

mtu 1500

当該インタフェースの最大転送サイズが 1500 オクテットであることを示します。 

IP アドレス 

inet 10.0.0.112

インタフェースに割り当てられている IPv4 アドレスまたは IPv6 アドレスを表示します。この例のインタフェース eri0 は IPv4 アドレス 10.0.0.112 を持っています。

ネットマスク 

netmask ffffff80

特定のインタフェースの IPv4 ネットマスクを表示します。IPv6 アドレスはネットマスクを使用しません。 

MAC アドレス 

ether 8:0:20:b9:4c:54

インタフェースの Ethernet 層アドレスを表示します。 


Procedureインタフェースアドレスの割り当てを表示する方法

ルーターとマルチホームホストは複数のインタフェースを持っており、多くの場合、各インタフェースには複数の IP アドレスが割り当てられています。ifconfig コマンドを使用すると、システムの特定のインタフェースに割り当てられているすべてのアドレスを表示できます。また、ifconfig コマンドを使用すると、IPv4 アドレスまたは IPv6 アドレスのどちらか一方の割り当てだけを表示できます。さらに、インタフェースの MAC アドレスを表示するには、まず、スーパーユーザーでログインするか、適切な役割になる必要があります。

ifconfig コマンドの詳細については、ifconfig(1m) のマニュアルページを参照してください。

  1. ローカルシステムで「ネットワーク管理者」役割になるか、スーパーユーザーになります。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. すべてのインタフェースについての情報を取得します。

    ifconfig -a コマンドのバリエーションを使用すると、次のことができます。

    • システム上にあるすべてのインタフェースのすべてのアドレスを表示します。


      # ifconfig -a
      
    • システム上にあるすべてのインタフェースに割り当てられているすべての IPv4 アドレスを表示します。


      # ifconfig -a4
      
    • ローカルシステムが、IPv6 が有効である場合、システム上にあるすべてのインタフェースに割り当てられているすべての IPv6 アドレスを表示します。


      ifconfig -a6
      

例 8–2 すべてのインタフェースについてのアドレス指定情報の表示

次の例に、一次ネットワークインタフェース qfe0 だけを持つホスト用のエントリを示します。それにもかかわらず、ifconfig 出力を見ると、インタフェース qfe0 には現在、次の 3 つの書式のアドレスが割り当てられています。 つまり、ループバック ( lo0)、IPv4 (inet)、および IPv6 (inet6) です。この出力では、IPv6 セクションのインタフェース qfe0 の行に IPv6 リンクローカルアドレスが表示されています。qfe0 の 2 番目のアドレスは qfe0:1 行に表示されます。


% ifconfig -a
lo0: flags=1000849 <UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000 
qfe0: flags=1004843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2 
        inet 10.0.0.112 netmask ffffff80 broadcast 10.0.0.127
        ether 8:0:20:b9:4c:54 
lo0: flags=2000849 <UP,RUNNING,MULTICAST,IPv6> mtu 8252 index 1
        inet6 ::1/128 
qfe0: flags=2000841 <UP,RUNNING,MULTICAST,IPv6> mtu 1500 index 2
        ether 8:0:20:b9:4c:54 
        inet6 fe80::a00:20ff:feb9:4c54/10 
qfe0:1: flags=2080841 <UP,RUNNING,MULTICAST,ADDRCONF,IPv6> mtu 1500 index 2
        inet6 2001:db8:3c4d:48:a00:20ff:feb9:4c54/64 


例 8–3 すべての IPv4 インタフェースについてのアドレス指定情報の表示

次の例に、マルチホームホストに構成されている IPv4 アドレスを示します。この書式の ifconfig コマンドを実行するために、スーパーユーザーとしてログインする必要はありません。


% ifconfig -a4
lo0: flags=1000849 <UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000
qfe0: flags=1004843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
        inet 10.0.0.112 netmask ffffff80 broadcast 10.0.0.127
        ether 8:0:20:b9:4c:54 
qfe1: flags=1004843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
        inet 10.0.0.118 netmask ffffff80 broadcast 10.0.0.127
        ether 8:0:20:6f:5e:17


例 8–4 すべての IPv6 インタフェースについてのアドレス指定情報の表示

次の例に、特定のホストに構成されている IPv6 アドレスだけを示します。この書式の ifconfig コマンドを実行するために、スーパーユーザーとしてログインする必要はありません。


% ifconfig -a6
lo0: flags=2000849 <UP,LOOPBACK,RUNNING,MULTICAST,IPv6> mtu 8252 index 1
        inet6 ::1/128 
qfe0: flags=2000841 <UP,RUNNING,MULTICAST,IPv6> mtu 1500 index 2
        ether 8:0:20:b9:4c:54 
        inet6 fe80::a00:20ff:feb9:4c54/10
qfe0:1: flags=2080841 <UP,RUNNING,MULTICAST,ADDRCONF,IPv6> mtu 1500 index 2
        inet6 2001:db8:3c4d:48:a00:20ff:feb9:4c54/64 

この ifconfig コマンドの出力を見ると、ホスト上にある単一のインタフェースには、次の 3 つの書式の IPv6 アドレスが割り当てられていることがわかります。

lo0

IPv6 ループバックアドレス。

inet6 fe80::a00:20ff:feb9:4c54/10

一次ネットワークインタフェースに割り当てられているリンクローカルアドレス。

inet6 2001:db8:3c4d:48:a00:20ff:feb9:4c54/64

IPv6 アドレス (サブネット接頭辞を含む)。出力にある ADDRCONF というキーワードは、このアドレスがホストによって自動構成されたことを示します。


netstat コマンドによるネットワークの状態の監視

netstat コマンドは、ネットワークの状態とプロトコル統計を表示します。TCP、SCTP、および UDP の各エンドポイントの状態は表形式で表示できます。経路制御テーブル情報やインタフェース情報も表示できます。

netstat コマンドは、さまざまな種類のネットワークデータを表示します。表示するデータはコマンド行オプションで選択できます。この表示は、特にシステム管理に役立ちます。次に、netstat コマンドの基本構文を示します。

netstat [-m] [-n] [-s] [-i | -r] [-f address-family]

この節では、netstat コマンドで最も一般的に使用されるオプションについて説明します。netstat のすべてのオプションの詳細については、netstat(1M) のマニュアルページを参照してください。

Procedureプロトコル別の統計情報を表示する方法

netstat-s オプションは、UDP、TCP、SCTP、ICMP、および IP のプロトコルについて、プロトコル別の統計情報を表示します。


注 –

netstat コマンドからの出力は、Oracle Solaris ユーザーアカウントで取得できます。


  1. プロトコルの状態を表示します。


    $ netstat -s
    

例 8–5 ネットワークプロトコルの統計

次の例に、netstat -s コマンドの出力を示します。出力の一部は省略されています。この出力は、プロトコルが問題を持っている場所を示すことがあります。たとえば、ICMPv4 と ICMPv6 からの統計情報は、このプロトコルがどこにエラーを検出したかを示します。


RAWIP
        rawipInDatagrams    =  4701     rawipInErrors       =     0
        rawipInCksumErrs    =     0     rawipOutDatagrams   =     4
        rawipOutErrors      =     0

UDP
        udpInDatagrams      = 10091     udpInErrors         =     0
        udpOutDatagrams     = 15772     udpOutErrors        =     0

TCP     tcpRtoAlgorithm     =     4     tcpRtoMin           =   400
        tcpRtoMax           = 60000     tcpMaxConn          =    -1
        .
        .
        tcpListenDrop       =     0     tcpListenDropQ0     =     0
        tcpHalfOpenDrop     =     0     tcpOutSackRetrans   =     0

IPv4    ipForwarding        =     2     ipDefaultTTL        =   255
        ipInReceives        =300182     ipInHdrErrors       =     0
        ipInAddrErrors      =     0     ipInCksumErrs       =     0
        .
        .
        ipsecInFailed       =     0     ipInIPv6            =     0
        ipOutIPv6           =     3     ipOutSwitchIPv6     =     0

IPv6    ipv6Forwarding      =     2     ipv6DefaultHopLimit =   255
        ipv6InReceives      = 13986     ipv6InHdrErrors     =     0
        ipv6InTooBigErrors  =     0     ipv6InNoRoutes      =     0
        .
        .
        rawipInOverflows    =     0     ipv6InIPv4          =     0
 
       ipv6OutIPv4         =     0     ipv6OutSwitchIPv4   =     0

ICMPv4  icmpInMsgs          = 43593     icmpInErrors        =     0
        icmpInCksumErrs     =     0     icmpInUnknowns      =     0
        .
        .
        icmpInOverflows     =     0

ICMPv6  icmp6InMsgs         = 13612     icmp6InErrors       =     0
        icmp6InDestUnreachs =     0     icmp6InAdminProhibs =     0
        .
        .
        icmp6OutGroupQueries=     0     icmp6OutGroupResps  =     2
        icmp6OutGroupReds   =     0

IGMP:
      12287 messages received
          0 messages received with too few bytes
          0 messages received with bad checksum
      12287 membership queries received
SCTP  sctpRtoAlgorithm     =  vanj    
      sctpRtoMin           =  1000 
      sctpRtoMax           = 60000
      sctpRtoInitial       =  3000
      sctpTimHearBeatProbe =     2
      sctpTimHearBeatDrop  =     0
      sctpListenDrop       =     0
      sctpInClosed         =     0 

Procedure転送プロトコルの状態を表示する方法

netstat コマンドを使用すると、転送プロトコルの状態を表示できます。詳細については、netstat(1M) のマニュアルページを参照してください。

  1. システム上の TCP 転送プロトコルと SCTP 転送プロトコルの状態を表示します。


    $ netstat
    
  2. システム上の特定の転送プロトコルの状態を表示します。


    $ netstat -P transport-protocol
    

    transport-protocol 変数の値は、 tcpsctp、または udp です。


例 8–6 TCP 転送プロトコルと SCTP 転送プロトコルの状態の表示

次の例に、基本的な netstat コマンドの出力を示します。IPv4 専用の情報が表示されています。


$ netstat

TCP: IPv4
   Local Address     Remote Address    Swind Send-Q  Rwind Recv-Q      State
----------------- -------------------- ----- ------  ----- ------     -------
lhost-1.login      abc.def.local.Sun.COM.980 49640      0     49640    0 ESTABLISHED
lhost-1.login      ghi.jkl.local.Sun.COM.1020 49640     1     49640    0 ESTABLISHED
remhost-1.1014     mno.pqr.remote.Sun.COM.nfsd 49640    0     49640    0 TIME_WAIT
SCTP:                  
Local Address    Remote Address  Swind  Send-Q  Rwind  Recv-Q StrsI/O  State 
---------------- --------------  -----  ------ ------ ------  ------   -------
 *.echo            0.0.0.0            0       0 102400      0   128/1   LISTEN
 *.discard         0.0.0.0            0       0 102400      0   128/1   LISTEN
 *.9001            0.0.0.0            0       0 102400      0   128/1   LISTEN


例 8–7 特定の転送プロトコルの状態の表示

次の例に、netstat コマンドに -P オプションを指定したときの結果を示します。


$ netstat -P tcp
   
TCP: IPv4
   Local Address     Remote Address    Swind Send-Q  Rwind Recv-Q      State
----------------- -------------------- ----- ------  ----- ------     -------
lhost-1.login      abc.def.local.Sun.COM.980 49640      0     49640    0 ESTABLISHED
lhost.login        ghi.jkl.local.Sun.COM.1020 49640     1     49640    0 ESTABLISHED
remhost.1014       mno.pqr.remote.Sun.COM.nfsd 49640    0     49640    0 TIME_WAIT

TCP: IPv6
 Local Address    Remote Address        Swind Send-Q Rwind Recv-Q   State If 
---------------- ---------------------- ------ ----- ------ ----------- -----
localhost.38983   localhost.32777       49152      0 49152      0 ESTABLISHED      
localhost.32777   localhost.38983       49152      0 49152      0 ESTABLISHED      
localhost.38986   localhost.38980       49152      0 49152      0 ESTABLISHED      

Procedureネットワークインタフェースの状態を表示する方法

netstat コマンドの i オプションは、ローカルシステムに構成されているネットワークインタフェースの状態を表示します。このオプションを使用すると、各ネットワーク上で送受信しているパケット数がわかります。

  1. ネットワーク上にあるインタフェースの状態を表示します。


    $ netstat -i
    

例 8–8 ネットワークインタフェースの状態の表示

次の例に、ホストのインタフェースを通る IPv4 と IPv6 のパケットフローの状態を示します。

たとえば、サーバーについて表示される入力パケットカウント (Ipkts) はクライアントがブートを試みるたびに増加しているのに、出力パケットカウント (Opkts) が変化しないことがあります。これは、サーバーがクライアントからのブート要求パケットを見ていることを意味します。しかし、サーバーはそれらのパケットに応答する方法を知りません。この混乱は、hosts データベース、ipnodes データベース、または ethers データベース内に誤ったアドレスがあることが原因であると考えられます。

しかし、入力パケットカウントが長時間にわたり変化しない場合は、マシンがパケットをまったく見ていません。この場合は、上記と違って、ハードウェアの問題の可能性が高くなります。


Name  Mtu  Net/Dest      Address        Ipkts  Ierrs Opkts  Oerrs Collis Queue 
lo0   8232 loopback      localhost      142    0     142    0     0      0     
hme0  1500 host58        host58        1106302 0     52419  0     0      0     

Name  Mtu  Net/Dest      Address                    Ipkts  Ierrs Opkts  Oerrs Collis
lo0   8252 localhost     localhost                   142    0     142    0     0     
hme0  1500 fe80::a00:20ff:feb9:4c54/10 fe80::a00:20ff:feb9:4c54 1106305 0 52422 0  0

Procedureソケットの状態を表示する方法

netstat コマンドの -a オプションを使用すると、ローカルホスト上にあるソケットの状態を表示できます。

  1. 次のコマンドを入力すると、ソケットの状態と経路制御テーブルエントリの状態を表示できます。

    この netstat コマンドのオプションは、ユーザーアカウントで使用できます。


    % netstat -a  
    

例 8–9 すべてのソケットと経路制御テーブルエントリの表示

netstat -a コマンドの出力には、膨大な統計が含まれます。次の例に、典型的な netstat -a コマンドの出力の一部を示します。


UDP: IPv4
   Local Address         Remote Address     State
-------------------- -------------------- -------
      *.bootpc                              Idle
host85.bootpc                               Idle
      *.*                                   Unbound
      *.*                                   Unbound
      *.sunrpc                              Idle
      *.*                                   Unbound
      *.32771                               Idle
      *.sunrpc                              Idle
      *.*                                   Unbound
      *.32775                               Idle
      *.time                                Idle
       .
       .
      *.daytime                             Idle
      *.echo                                Idle
      *.discard                             Idle
      
UDP: IPv6
   Local Address                     Remote Address                   State      If  
--------------------------------- --------------------------------- ---------- -----
      *.*                                                           Unbound   
      *.*                                                           Unbound   
      *.sunrpc                                                      Idle      
      *.*                                                           Unbound   
      *.32771                                                       Idle      
      *.32778                                                       Idle      
      *.syslog                                                      Idle      
      .
      .
TCP: IPv4
   Local Address        Remote Address    Swind Send-Q Rwind Recv-Q  State
-------------------- -------------------- ----- ------ ----- ------ -------
      *.*                  *.*                0      0 49152      0 IDLE
localhost.4999             *.*                0      0 49152      0 LISTEN
      *.sunrpc             *.*                0      0 49152      0 LISTEN
      *.*                  *.*                0      0 49152      0 IDLE
      *.sunrpc             *.*                0      0 49152      0 LISTEN
      .
      .
      *.printer            *.*                0      0 49152      0 LISTEN
      *.time               *.*                0      0 49152      0 LISTEN
      *.daytime            *.*                0      0 49152      0 LISTEN
      *.echo               *.*                0      0 49152      0 LISTEN
      *.discard            *.*                0      0 49152      0 LISTEN
      *.chargen            *.*                0      0 49152      0 LISTEN
      *.shell              *.*                0      0 49152      0 LISTEN
      *.shell              *.*                0      0 49152      0 LISTEN
      *.kshell             *.*                0      0 49152      0 LISTEN
      *.login  
       .
       .
            *.*                0      0 49152      0 LISTEN
   *TCP: IPv6
 Local Address            Remote Address        Swind Send-Q Rwind Recv-Q   State If
----------------------- ----------------------- ----- ------ ----- ------    ----
   *.*                         *.*                0      0 49152      0      IDLE
   *.sunrpc                    *.*                0      0 49152      0      LISTEN
   *.*                         *.*                0      0 49152      0      IDLE
   *.32774                     *.*                0      0 49152

Procedure特定のアドレスタイプのパケット転送に関する状態を表示する方法

netstat コマンドの -f オプションを使用すると、特定のアドレスファミリのパケット転送に関する統計を表示できます。

  1. IPv4 パケットまたは IPv6 パケットの転送に関する統計を表示します。


    $ netstat -f inet  |  inet6
    

    IPv4 パケット転送に関する情報を表示するには、netstat -f の引数として inet を指定します。IPv6 パケット転送に関する情報を表示するには、netstat -f の引数として inet6 を指定します。


例 8–10 IPv4 パケット転送の状態

次に、netstat - f inet コマンドの出力例を示します。


TCP: IPv4
   Local Address        Remote Address    Swind Send-Q Rwind Recv-Q  State
-------------------- -------------------- ----- ------ ----- ------ -------
host58.734         host19.nfsd       49640      0 49640      0 ESTABLISHED
host58.38063       host19.32782      49640      0 49640      0 CLOSE_WAIT
host58.38146       host41.43601      49640      0 49640      0 ESTABLISHED
host58.996         remote-host.login 49640      0 49206      0 ESTABLISHED


例 8–11 IPv6 パケット転送の状態

次に、netstat - f inet6 コマンドの出力例を示します。


TCP: IPv6
 Local Address          Remote Address        Swind Send-Q Rwind Recv-Q   State    If
------------------ ------------------------- ----- ------ ----- ------ --------- -----
localhost.38065         localhost.32792       49152   0 49152      0    ESTABLISHED  
localhost.32792         localhost.38065       49152   0 49152      0    ESTABLISHED 
localhost.38089         localhost.38057       49152   0 49152      0    ESTABLISHED 

Procedure既知のルートの状態を表示する方法

netstat コマンドの -r オプションは、ローカルホストの経路制御テーブルを表示します。このテーブルには、ホストが知っているすべてのルートの状態が表示されます。netstat の r オプションは、ユーザーアカウントで実行できます。

  1. IP 経路制御テーブルを表示します。


    $ netstat -r
    

例 8–12 netstat コマンドによる経路制御テーブルの出力

次に、netstat - r コマンドの出力例を示します。


Routing Table: IPv4
  Destination           Gateway           Flags  Ref   Use   Interface
-------------------- -------------------- ----- ----- ------ ---------
host15               myhost               U         1  31059  hme0
10.0.0.14            myhost               U         1      0  hme0
default              distantrouter        UG        1      2  hme0
localhost            localhost            UH        42019361  lo0

Routing Table: IPv6
  Destination/Mask            Gateway                   Flags Ref   Use   If  
--------------------------- --------------------------- ----- --- ------ -----
2002:0a00:3010:2::/64    2002:0a00:3010:2:1b2b:3c4c:5e6e:abcd U  1      0 hme0:1
fe80::/10                fe80::1a2b:3c4d:5e6f:12a2    U       1     23 hme0 
ff00::/8                 fe80::1a2b:3c4d:5e6f:12a2    U       1      0 hme0 
default                  fe80::1a2b:3c4d:5e6f:12a2    UG      1      0 hme0 
localhost                localhost                   UH      9  21832 lo0 

次の表では、netstat —r コマンドの画面出力の各種パラメータの意味について説明します。

パラメータ 

説明 

送信先

Destination/Mask

ルートの宛先エンドポイントであるホストを指定します。IPv6 経路制御テーブルには、6to4 トンネルのエンドポイントの接頭辞 (2002:0a00:3010:2::/64 ) がルートの宛先エンドポイントとして示されていることに注目してください。

Gateway

パケットの転送に使用するゲートウェイを指定します。 

Flags

ルートの現在の状態を示します。U フラグはルートが up 状態であること、G フラグはルートがゲートウェイへのものであることを示します。

Use

送信したパケットの数を示します。 

Interface

転送元のエンドポイントである、ローカルホスト上の特定のインタフェースを示します。 


ping コマンドによるリモートホストの検証

ping コマンドを使用すると、リモートホストの状態を判断できます。ping を実行すると、ICMP プロトコルは、指定されたホストにデータグラムを送って、応答を求めます。ICMP は、TCP/IP ネットワーク上のエラー処理を担当するプロトコルです。ping を使用すると、指定したリモートホストに IP 接続が存在するかどうかを判断できます。

次に、ping の基本構文を示します。

/usr/sbin/ping host [timeout]

この構文において、host はリモートホストの名前です。省略可能な timeout 引数は、ping コマンドがリモートホストに到達しようと試行する秒数を示します。デフォルトは 20 秒です。構文とオプションの詳細については、ping(1M) のマニュアルページを参照してください。

Procedureリモートホストが動作しているかを確認する方法

  1. 次の書式の ping コマンドを使用します。


    $ ping hostname
    

    ホスト hostname が ICMP 転送を受け入れる場合、次のメッセージが表示されます。


    hostname is alive

    このメッセージは、hostname が ICMP の要求に応答したことを示します。hostname がダウン状態にあるかまたは ICMP パケットを受け取れなかった場合は、ping コマンドから次の応答が返されます。


    no answer from hostname
    

Procedureホストでパケットが失われていないかを確認する方法

-ping コマンドの s オプションを使用すると、リモートホストは動作しているが、パケットが失われているかどうかを判断できます。

  1. 次の書式の ping コマンドを使用します。


    $ ping -s hostname
    

例 8–13 パケットの消失を検出するための ping 出力

ping -s hostname コマンドは、割り込み文字が送信されるまで、あるいは、タイムアウトが発生するまで、指定されたホストにパケットを送信し続けます。 画面上には次のように出力されます。


& ping -s host1.domain8
PING host1.domain8 : 56 data bytes
64 bytes from host1.domain8.COM (172.16.83.64): icmp_seq=0. time=1.67 ms
64 bytes from host1.domain8.COM (172.16.83.64): icmp_seq=1. time=1.02 ms
64 bytes from host1.domain8.COM (172.16.83.64): icmp_seq=2. time=0.986 ms
64 bytes from host1.domain8.COM (172.16.83.64): icmp_seq=3. time=0.921 ms
64 bytes from host1.domain8.COM (172.16.83.64): icmp_seq=4. time=1.16 ms
64 bytes from host1.domain8.COM (172.16.83.64): icmp_seq=5. time=1.00 ms
64 bytes from host1.domain8.COM (172.16.83.64): icmp_seq=5. time=1.980 ms

^C

----host1.domain8  PING Statistics----
7 packets transmitted, 7 packets received, 0% packet loss
round-trip (ms)  min/avg/max/stddev = 0.921/1.11/1.67/0.26

パケットの消失という統計は、ホストがパケットを失っているかどうかを示します。ping が失敗する場合、ifconfig コマンドと netstat コマンドからの報告を使用して、ネットワークの状態をチェックします。詳細については、ifconfig コマンドによるインタフェース構成の監視」netstat コマンドによるネットワークの状態の監視」を参照してください。


ネットワーク状態表示の管理と記録

次の作業に、一般的なネットワークコマンドを使用して、ネットワークの状態をチェックする方法を示します。

ProcedureIP 関連コマンドの表示出力を制御する方法

netstat コマンドと ifconfig コマンドの出力を制御すると、IPv4 情報だけを表示したり、IPv4 と IPv6 の両方の情報を表示したりできます。

  1. /etc/default/inet_type ファイルを作成します。

  2. ネットワークの要求に基づいて、次のエントリのうちの 1 つを/etc/default/inet_type ファイルに追加します。

    • IPv4 情報だけを表示するには、次のように入力します。


      DEFAULT_IP=IP_VERSION4
    • IPv4 情報と IPv6 情報を表示するには、次のいずれかを入力します。


      DEFAULT_IP=BOTH

      または


      DEFAULT_IP=IP_VERSION6

      inet_type ファイルの詳細については、inet_type(4) のマニュアルページを参照してください。


    注 –

    ifconfig コマンドの -4 フラグと -6 フラグの設定は、inet_type ファイルに設定された値より優先します。また、netstat コマンドの -f フラグの設定も、inet_type ファイルに設定された値より優先します。



例 8–14 IPv4 情報と IPv6 情報を選択する出力の制御


ProcedureIPv4 経路制御デーモンの活動を記録する方法

IPv4 経路制御デーモン routed の動作が疑わしい場合、このデーモンの活動をトレースするログを開始できます。routed デーモンを起動すると、このログにはすべてのパケット転送が記録されます。

  1. ローカルホスト上で、Primary Administrator の役割を引き受けるか、スーパーユーザーになります。

    Primary Administrator 役割には、Primary Administrator プロファイルが含まれます。役割を作成してユーザーに役割を割り当てるには、『Solaris のシステム管理 (基本編)』の第 2 章「Solaris 管理コンソールの操作 (手順)」を参照してください。

  2. 経路制御デーモンの活動のログファイルを作成します。


    # /usr/sbin/in.routed /var/log-file-name
    

    注意 – 注意 –

    ビジー状態のネットワークでは、このコマンドによりほとんど絶え間なく出力が生じることがあります。



例 8–15 in.routed デーモンのネットワークログ

次の例に、「IPv4 経路制御デーモンの活動を記録する方法」の手順で作成したログの開始部分を示します。


-- 2003/11/18 16:47:00.000000 --
Tracing actions started
RCVBUF=61440
Add interface lo0  #1   127.0.0.1      -->127.0.0.1/32   
   <UP|LOOPBACK|RUNNING|MULTICAST|IPv4> <PASSIVE> 
Add interface hme0 #2   10.10.48.112    -->10.10.48.0/25   
    <UP|BROADCAST|RUNNING|MULTICAST|IPv4> 
turn on RIP
Add    10.0.0.0        -->10.10.48.112      metric=0  hme0  <NET_SYN>
Add    10.10.48.85/25  -->10.10.48.112      metric=0  hme0  <IF|NOPROP>

ProcedureIPv6 近傍検索デーモンの活動をトレースする方法

IPv6 の in.ndpd デーモンの動作が疑わしい場合、このデーモンの活動をトレースするログを開始できます。中断されるまで、トレースの結果は標準出力に表示されます。in.ndpd デーモンを起動すると、このトレースにはすべてのパケット転送が記録されます。

  1. IPv6 のローカルノード上で、Primary Administrator の役割を引き受けるか、スーパーユーザーになります。

    Primary Administrator 役割には、Primary Administrator プロファイルが含まれます。役割を作成してユーザーに役割を割り当てるには、『Solaris のシステム管理 (基本編)』の第 2 章「Solaris 管理コンソールの操作 (手順)」を参照してください。

  2. in.ndpd デーモンのトレースを起動します。


    # /usr/lib/inet/in.ndpd -t
    
  3. トレースを終了するには、Ctrl-C を押します。


例 8–16 in.ndpd デーモンのトレース

次の例に、in.ndpd のトレースの開始部分を示します。


# /usr/lib/inet/in.ndpd -t
Nov 18 17:27:28 Sending solicitation to  ff02::2 (16 bytes) on hme0
Nov 18 17:27:28         Source LLA: len 6 <08:00:20:b9:4c:54>
Nov 18 17:27:28 Received valid advert from fe80::a00:20ff:fee9:2d27 (88 bytes) on hme0
Nov 18 17:27:28         Max hop limit: 0
Nov 18 17:27:28         Managed address configuration: Not set
Nov 18 17:27:28         Other configuration flag: Not set
Nov 18 17:27:28         Router lifetime: 1800
Nov 18 17:27:28         Reachable timer: 0
Nov 18 17:27:28         Reachable retrans timer: 0
Nov 18 17:27:28         Source LLA: len 6 <08:00:20:e9:2d:27>
Nov 18 17:27:28         Prefix: 2001:08db:3c4d:1::/64
Nov 18 17:27:28                 On link flag:Set
Nov 18 17:27:28                 Auto addrconf flag:Set
Nov 18 17:27:28                 Valid time: 2592000
Nov 18 17:27:28                 Preferred time: 604800
Nov 18 17:27:28         Prefix: 2002:0a00:3010:2::/64
Nov 18 17:27:28                 On link flag:Set
Nov 18 17:27:28                 Auto addrconf flag:Set
Nov 18 17:27:28                 Valid time: 2592000
Nov 18 17:27:28                 Preferred time: 604800

traceroute コマンドによる経路制御情報の表示

traceroute コマンドは、IP パケットが通るリモートシステムまでのルートをトレースします。traceroute の技術的な詳細については、traceroute(1M) のマニュアルページを参照してください。

traceroute コマンドを使用すると、経路制御の誤構成や経路制御パスの異常を発見できます。特定のホストが到達不可能な場合には、traceroute を使用して、パケットがどの経路をたどってリモートホストに到達し、どこで障害が起きている可能性があるかを調べることができます。

また、traceroute コマンドは、経路に沿った各ゲートウェイのターゲットホストとの間の往復時間も表示します。この情報は、2 つのホスト間のどこでトラフィックが遅くなっているかを分析する際に利用できます。

Procedureリモートホストまでのルートを発見する方法

  1. 次のコマンドを入力すると、リモートホストまでのルートを発見できます。


    % traceroute destination-hostname
    

    この書式の traceroute コマンドは、ユーザーアカウントで使用できます。


例 8–17 traceroute コマンドによるリモートホストまでのルートの表示

次の traceroute コマンドからの出力に、パケットがローカルシステム nearhost からリモートシステム farhost まで通る 7 ホップパスを示します。また、パケットが各ホップを通過する時間も示します。


istanbul% traceroute farhost.faraway.com
	traceroute to farhost.faraway.com (172.16.64.39), 30 hops max, 40 byte packets
	 1  frbldg7c-86 (172.16.86.1)  1.516 ms  1.283 ms  1.362 ms
	 2  bldg1a-001 (172.16.1.211)  2.277 ms  1.773 ms  2.186 ms
	 3  bldg4-bldg1 (172.16.4.42)  1.978 ms  1.986 ms  13.996 ms
	 4  bldg6-bldg4 (172.16.4.49)  2.655 ms  3.042 ms  2.344 ms
	 5  ferbldg11a-001 (172.16.1.236)  2.636 ms  3.432 ms  3.830 ms
	 6  frbldg12b-153 (172.16.153.72)  3.452 ms  3.146 ms  2.962 ms
	 7  sanfrancisco (172.16.64.39)  3.430 ms  3.312 ms  3.451 ms

Procedureすべてのルートをトレースする方法

この手順では、traceroute コマンドの -a オプションを使用して、すべてのルートをトレースします。

  1. ローカルシステムで次のコマンドを入力します。


    % traceroute -ahost-name
    

    この書式の traceroute コマンドは、ユーザーアカウントで使用できます。


例 8–18 デュアルスタックホストまでのすべてのルートのトレース

次の例に、デュアルスタックホストまでの考えられるルートをすべて示します。


% traceroute -a v6host.remote.com
traceroute: Warning: Multiple interfaces found; using 2::56:a0:a8 @ eri0:2
traceroute to v6host (2001:db8:4a3b::102:a00:fe79:19b0),30 hops max, 60 byte packets
 1  v6-rout86 (2001:db8:4a3b:56:a00:fe1f:59a1)  35.534 ms  56.998 ms * 
 2  2001:db8::255:0:c0a8:717  32.659 ms  39.444 ms *
 3  farhost.faraway.COM (2001:db8:4a3b::103:a00:fe9a:ce7b)  401.518 ms  7.143 ms *
 4  distant.remote.com (2001:db8:4a3b::100:a00:fe7c:cf35)  113.034 ms  7.949 ms *
 5  v6host (2001:db8:4a3b::102:a00:fe79:19b0)  66.111 ms *  36.965 ms

traceroute to v6host.remote.com  (192.168.10.75),30 hops max,40 byte packets
 1  v6-rout86 (172.16.86.1)  4.360 ms  3.452 ms  3.479 ms
 2  flrmpj17u.here.COM (172.16.17.131)  4.062 ms  3.848 ms  3.505 ms
 3  farhost.farway.com (10.0.0.23)  4.773 ms *  4.294 ms
 4  distant.remote.com (192.168.10.104)  5.128 ms  5.362 ms *
 5  v6host  (192.168.15.85)  7.298 ms  5.444 ms *
 

snoop コマンドによるパケット転送の監視

snoop コマンドを使用すると、データ転送の状態を監視できます。snoop コマンドは、ネットワークパケットを取り込んで、その内容を指定された書式で表示します。取得したパケットについては、そのまま表示することも、ファイルに保存することも可能です。snoop が中間ファイルに書き込む場合、トレースのビジー状態でパケットロスはほとんど発生しません。そのあと、snoop 自体はファイルの解釈に使用されます。

デフォルトのインタフェースにおいて、パケットをプロミスキュアスモードで取り込むには、ネットワーク管理者役割になるか、スーパーユーザーになる必要があります。要約形式では、snoop は最高レベルのプロトコルに関連するデータだけを表示します。たとえば NFS パケットでは、NFS 情報のみが表示されます。RPC、UDP、IP、および Ethernet のフレーム情報は抑止されますが、verbose (詳細表示) オプションのいずれかを選択してあれば表示できます。

頻繁かつ定期的に snoop を使用して、システムが正常に動作している場合の状態を把握してください。最近の白書や RFC を参照したり、NFS や NIS といった特定分野の専門家からアドバイスを受けたりするのも、パケットの分析に役立ちます。snoop とそのオプションの使用法については、snoop(1m) のマニュアルページを参照してください。

Procedureすべてのインタフェースからのパケットをチェックする方法

  1. ローカルホスト上で、ネットワーク管理者役割になるか、スーパーユーザーになります。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. システムに接続されているインタフェースについての情報を出力します。


    # ifconfig -a
    

    snoop コマンドは通常、最初の非ループバックデバイス (通常は一次ネットワークインタフェース) を使用します。

  3. 例 8–19 に示すように、snoop コマンドを引数なしで入力して、パケットの取り込みを開始します。

  4. Ctrl-C キーを押してプロセスを停止します。


例 8–19 snoop コマンドの出力

基本の snoop コマンドは、デュアルスタックホストに対して、次のような出力を返します。


% snoop
Using device /dev/hme (promiscuous mode)
farhost.remote.com -> myhost       RLOGIN C port=993 
    myhost -> farhost.remote.com   RLOGIN R port=993 Using device /dev/hme
router5.local.com -> router5.local.com ARP R 10.0.0.13, router5.local.com is
    0:10:7b:31:37:80
router5.local.com -> BROADCAST     TFTP Read "network-confg" (octet)
farhost.remote.com -> myhost       RLOGIN C port=993 
    myhost ->   nisserve2          NIS C MATCH 10.0.0.64 in ipnodes.byaddr
nisserve2 ->    myhost             NIS R MATCH No such key
    blue-112 -> slave-253-2        NIS C MATCH 10.0.0.112 in ipnodes.byaddr
myhost -> DNSserver.local.com      DNS C 192.168.10.10.in-addr.arpa. Internet PTR ?
DNSserver.local.com  myhost        DNS R 192.168.10.10.in-addr.arpa. Internet PTR 
   niserve2.
.
.
farhost.remote.com-> myhost        RLOGIN C port=993 
    myhost -> farhost.remote.com   RLOGIN R port=993 fe80::a00:20ff:febb:
.
fe80::a00:20ff:febb:e09 -> ff02::9 RIPng R (5 destinations)

この出力に取り込まれたパケットはリモートログインの様子を示しています。この中には、アドレス解決のための NIS サーバーと DNS サーバーへの問い合わせが含まれます。また、ローカルルーターからの定期的な ARP パケットや、IPv6 リンクローカルアドレスから in.ripngd への通知も含まれます。


Proceduresnoop の出力をファイルに取り込む方法

  1. ローカルホスト上で、ネットワーク管理者役割になるか、スーパーユーザーになります。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. snoop セッションをファイルに取り込みます。


    # snoop -o filename
    

    次に例を示します。


    # snoop -o /tmp/cap
    Using device /dev/eri (promiscuous mode)
    30 snoop: 30 packets captured

    この例では、30 個のパケットが /tmp/cap というファイルに取り込まれています。ディスク容量が十分にあれば、ファイルはどのディレクトリにでも格納できます。取り込んだパケットの数はコマンド行に表示され、Ctrl-C を押せばいつでも終了できます。

    snoop 自体によってホストマシン上にネットワーク負荷がかかるので、結果に誤差が生じる場合があります。実際の結果を表示するには、第 3 のシステムから snoop を実行します。

  3. snoop 出力取り込みファイルを検査します。


    # snoop -i filename
    

例 8–20 snoop 出力取り込みファイルの内容

次に、snoop -i コマンドから返される出力など、さまざまな取り込みの例を示します。


# snoop -i /tmp/cap
1   0.00000 fe80::a00:20ff:fee9:2d27 -> fe80::a00:20ff:fecd:4375 
    ICMPv6 Neighbor advertisement
2   0.16198 farhost.com   -> myhost     RLOGIN C port=985 
3   0.00008 myhost -> farhost.com       RLOGIN R port=985 
10  0.91493    10.0.0.40 -> (broadcast)  ARP C Who is 10.0.0.40, 10.0.0.40 ?
34  0.43690 nearserver.here.com  -> 224.0.1.1  IP  D=224.0.1.1 S=10.0.0.40 LEN=28, 
      ID=47453, TO =0x0, TTL=1
35  0.00034  10.0.0.40 -> 224.0.1.1    IP  D=224.0.1.1 S=10.0.0.40 LEN=28, ID=57376, 
     TOS=0x0, TTL=47  

ProcedureIPv4 サーバー/クライアント間のパケットを確認する方法

  1. snoop を実行するシステムから、クライアントまたはサーバーのいずれかに接続されたハブを外します。

    この第 3 のシステム (snoop システム) はサーバーとクライアント間のすべてのトラフィックを監視するので、snoop のトレースには実際のネットワーク上の状態が反映されます。

  2. snoop システム上で、ネットワーク管理者役割になるか、スーパーユーザーになります。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  3. snoop をオプションなしで入力して、その出力をファイルに保存します。

  4. 出力を検査および解釈します。

    snoop 取り込みファイルの詳細については、「RFC 1761, Snoop Version 2 Packet Capture File Format」を参照してください。

ProcedureIPv6 ネットワークトラフィックを監視する方法

snoop コマンドを使用すると、IPv6 パケットだけを表示できます。

  1. ローカルノード上で、ネットワーク管理者役割になるか、スーパーユーザーになります。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. IPv6 パケットを取り込みます。


    # snoop ip6
    

    snoop コマンドの詳細については、snoop(1m) のマニュアルページを参照してください。


例 8–21 IPv6 ネットワークトラフィックだけの表示

次に、あるノード上で snoop ip6 コマンドを実行したときに返される典型的な出力の例を示します。


# snoop ip6
fe80::a00:20ff:fecd:4374 -> ff02::1:ffe9:2d27 ICMPv6 Neighbor solicitation
fe80::a00:20ff:fee9:2d27 -> fe80::a00:20ff:fecd:4375 ICMPv6 Neighbor 
      solicitation
fe80::a00:20ff:fee9:2d27 -> fe80::a00:20ff:fecd:4375 ICMPv6 Neighbor 
      solicitation
fe80::a00:20ff:febb:e09 -> ff02::9      RIPng R (11 destinations)
fe80::a00:20ff:fee9:2d27 -> ff02::1:ffcd:4375 ICMPv6 Neighbor solicitation

デフォルトアドレス選択の管理

Oracle Solaris では、単一のインタフェースに複数の IP アドレスを付与することができます。たとえば、ネットワーク多重パス (IPMP) のような技術を使用すると、複数のネットワークインタフェースカード (NIC) が同じ IP リンク層に接続できます。このようなリンクは 1 つまたは複数の IP アドレスを持つことができます。さらに、IPv6 が有効なシステム上のインタフェースは、1 つの IPv6 リンクローカルアドレス、少なくとも 1 つの IPv6 経路制御アドレス、および (少なくとも 1 つのインタフェースに) 1 つの IPv4 アドレスを持ちます。

システムがトランザクションを起動すると、アプリケーションは getaddrinfo ソケットへの呼び出しを作成します。getaddrinfo は、宛先システム上で使用されている可能なアドレスを発見します。そのあと、カーネルはこのリストに優先度を付けて、パケットに使用するのに最適な宛先を見つけます。このプロセスのことを「宛先アドレス順番付け」と呼びます。そのあと、Oracle Solaris カーネルは、パケットに最適な宛先アドレスに対して、適切なソースアドレスの書式を選択します。このプロセスのことを「アドレス選択」と呼びます。宛先アドレス順番付けの詳細については、getaddrinfo(3SOCKET) のマニュアルページを参照してください。

IPv4 専用システムとデュアルスタック IPv4/IPv6 システムは両方とも、デフォルトアドレス選択を実行する必要があります。ほとんどの状況では、デフォルトアドレス選択機構を変更する必要はありません。しかし、IPMP をサポートしたり、6to4 アドレス書式を選択したりする場合は、アドレス書式の優先度を変更する必要があります。

ProcedureIPv6 アドレス選択ポリシーテーブルを管理する方法

次の手順では、アドレス選択ポリシーテーブルを変更する方法について説明します。IPv6 デフォルトアドレス選択の概念については、ipaddrsel コマンド」を参照してください。


注意 – 注意 –

次の手順に示す理由がない場合は、IPv6 アドレス選択ポリシーテーブルを変更しないでください。このポリシーテーブルを間違って変更すると、ネットワーク上で問題が発生する可能性があります。次の手順に示すように、このポリシーテーブルは必ずバックアップを保存してください。


  1. Primary Administrator 役割を引き受けるか、スーパーユーザーになります。

    Primary Administrator 役割には、Primary Administrator プロファイルが含まれます。役割を作成してユーザーに役割を割り当てるには、『Solaris のシステム管理 (基本編)』の第 2 章「Solaris 管理コンソールの操作 (手順)」を参照してください。

  2. 現在の IPv6 アドレス選択ポリシーテーブルを調査します。


    # ipaddrsel
    # Prefix                  Precedence Label
    ::1/128                           50 Loopback
    ::/0                              40 Default
    2002::/16                         30 6to4
    ::/96                             20 IPv4_Compatible
    ::ffff:0.0.0.0/96                 10 IPv4
  3. デフォルトアドレス選択ポリシーテーブルのバックアップを作成します。


    # cp /etc/inet/ipaddrsel.conf /etc/inet/ipaddrsel.conf.orig
    
  4. テキストエディタを使用して、/etc/inet/ipaddrsel.conf を自分用にカスタマイズします。

    /etc/inet/ipaddrsel のエントリには、次の構文を使用します。


    prefix/prefix-length precedence label [# comment ] 
    

    次に、デフォルトアドレス選択ポリシーテーブルに一般的に行われる変更の例を示します。

    • 6to4 アドレスに最高の優先度を付ける場合。


      2002::/16                         50 6to4
      ::1/128                           45 Loopback

      6to4 アドレス書式の優先度は現在、最高の50 です。Loopback の優先度は、以前は 50 でしたが、現在は 45 です。ほかのアドレス書式の優先度は変わりません。

    • 特定の宛先アドレスとの通信において、特定のソースアドレスを使用するように指示する場合。


      ::1/128                           50 Loopback
      2001:1111:1111::1/128             40 ClientNet
      2001:2222:2222::/48               40 ClientNet
      ::/0                              40 Default

      このエントリは、物理インタフェースが 1 つしかないホストの場合に役立ちます。ここで、2001:1111:1111::1/128 は、ネットワーク 2001:2222:2222::/48 内にある宛先に向けられたすべてのパケットのソースアドレスとして優先されます。優先度 40 は、このインタフェースに構成されたほかのアドレス書式よりも、ソースアドレス 2001:1111:1111::1/128 を優先することを指示します。

    • IPv6 アドレスよりも IPv4 アドレスを優先する場合。


      ::ffff:0.0.0.0/96                 60 IPv4
      ::1/128                           50 Loopback
      .
      .

      このテーブルでは、IPv4 書式 ::ffff:0.0.0.0/96 の優先度をデフォルトの 10 からテーブル内で最高の 60 に変更しています。

  5. 変更したポリシーテーブルをカーネルにロードします。


    ipaddrsel -f /etc/inet/ipaddrsel.conf
    
  6. 変更したポリシーテーブルに問題がある場合は、IPv6 デフォルトアドレス選択ポリシーテーブルを復元します。


    # ipaddrsel -d
    

Procedure現在のセッションだけの IP6 アドレス選択テーブルを変更する方法

/etc/inet/ipaddrsel.conf ファイルを編集すると、その変更はリブート後も適用されます。変更したポリシーテーブルを現在のセッションだけに適用したい場合、次の手順に従います。

  1. Primary Administrator 役割を引き受けるか、スーパーユーザーになります。

    Primary Administrator 役割には、Primary Administrator プロファイルが含まれます。役割を作成してユーザーに役割を割り当てるには、『Solaris のシステム管理 (基本編)』の第 2 章「Solaris 管理コンソールの操作 (手順)」を参照してください。

  2. /etc/inet/ipaddrsel の内容を filename にコピーします (filename は自分が選択した名前)。


    # cp /etc/inet/ipaddrsel filename
    
  3. 必要に応じて、filename 内のポリシーテーブルを編集します。

  4. 変更したポリシーテーブルをカーネルにロードします。


    # ipaddrsel -f filename
    

    システムをリブートするまで、カーネルは新しいポリシーテーブルを使用します。

第 9 章 ネットワークの問題の障害追跡 (手順)

この章では、ネットワークで発生する一般的な問題の解決方法について説明します。次の項目について説明します。

ネットワークの問題の障害追跡における新機能

Solaris 10 7/07 では、/etc/inet/ipnodes ファイルは廃止されました。個々の手順で説明されているとおり、/etc/inet/ipnodes は以前の Oracle Solaris 10 リリースにのみ使用してください。

一般的なネットワーク障害追跡について

ネットワークに問題が発生すると、まず、1 つまたは複数のホストで通信の損失が発生するという兆候が見られるようになります。あるホストを初めてネットワークに追加したときに、そのホストがまったく動作しない場合は、構成ファイルのどれかに問題があることが考えられます。また、ネットワークインタフェースカードに問題がある可能性もあります。1 つのホストに突然問題が生じた場合は、ネットワークインタフェースに原因があると考えられます。ネットワーク上のホストが互いに通信できるが、ほかのネットワークとは通信できない場合は、ルーターに原因があると考えられます。 あるいは、ほかのネットワークに原因があるかもしれません。

ifconfig コマンドを使用すると、ネットワークインタフェースについての情報を取得できます。netstat コマンドを使用すると、経路制御テーブルやプロトコルの統計を表示できます。サードパーティーのネットワーク診断プログラムから、さまざまな障害追跡ユーティリティーが提供されています。詳細は、サードパーティーのマニュアルを参照してください。

ネットワークの性能を低下させる問題の原因は、明確にはわかりません。しかし、たとえば、ping のようなツールを使用することで、ホストでのパケットの消失など、問題の原因を突き止めることはできます。

基本的な診断チェックの実行

ネットワークに問題がある場合、一連のソフトウェアチェックを実行すると、基本的なソフトウェア関連の問題は診断および修正できます。

Procedure基本的なネットワークソフトウェアチェックの実行方法

  1. ローカルシステムで「ネットワーク管理者」役割になるか、スーパーユーザーになります。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. netstat コマンドを使用すると、ネットワーク情報を表示できます。

    netstat コマンドの構文と詳細については、 netstat コマンドによるネットワークの状態の監視」netstat(1M) のマニュアルページを参照してください。

  3. hosts データベース (および、Solaris 10 11/06 以前のリリースで IPv6 を使用している場合は ipnodes データベース) をチェックして、エントリが正しくて最新であることを確認します。

    /etc/inet/hosts データベースについては、hosts データベース」hosts(4) のマニュアルページを参照してください。/etc/inet/ipnodes データベースについては、ipnodes データベース」ipnodes(4) のマニュアルページを参照してください。

  4. 逆アドレス解決プロトコル (RARP) を実行している場合、ethers データベースの Ethernet アドレスをチェックして、エントリが正しくて最新であることを確認します。

  5. telnet コマンドを使用して、ローカルホストに接続してみます。

    telnet コマンドの構文と詳細については、telnet(1) のマニュアルページを参照してください。

  6. ネットワークデーモン inetd が動作していることを確認します。

    # ps -ef | grep inetd

    次の出力で、inetd デーモンが動作していることを確認します。


    root 57 1 0 Apr 04 ? 3:19 /usr/sbin/inetd -s
  7. IPv6 がネットワーク上で有効な場合、IPv6 デーモン in.ndpd が動作していることを確認します。


    # ps -ef | grep in.ndpd
    

    次の出力で、in.ndpd デーモンが動作していることを確認します。


    root 123  1 0  Oct 27 ?  0:03 /usr/lib/inet/in.ndpd

IPv6 を配備するときの一般的な問題

この節では、サイトに IPv6 を計画および配備しているときに遭遇する可能性のある一般的な問題について説明します。実際の計画作業については、第 4 章IPv6 ネットワークの計画 (手順)を参照してください。

IPv4 ルーターを IPv6 用にアップグレードできない

既存の装置をアップグレードできない場合、IPv6 に対応した装置を購入するしかない場合もあります。装置に付属するマニュアルを参照して、IPv6 をサポートするために行う必要がある、装置固有の手順があるかどうかを調べてください。

IPv6 サポート用にアップグレードできない IPv4 ルーターもあります。この状況が自分のトポロジに適応する場合、IPv6 ルーターが IPv4 ルーターの隣にくるように物理的に配線します。このようにすれば、IPv6 ルーターから IPv4 ルーター経由でトンネルできます。トンネルを構成する手順については、「IPv6 サポート用にトンネルを構成するための作業 (作業マップ)」を参照してください。

サービスを IPv6 用にアップグレードしたあとの問題

サービスを IPv6 サポート用に準備しているとき、次のような状況に遭遇する場合があります。

現在の ISP が IPv6 をサポートしない

IPv6 を配備したいが、現在の ISP が IPv6 アドレス指定を提供しない場合、ISP を変更するのではなく、次の代替方法を考えてみてください。

6to4 リレールーターへのトンネルを作成するときのセキュリティー問題

本来、6to4 ルーターと 6to4 リレールーター間のトンネルは安全ではありません。これらのルーター間のトンネルには、次のようなセキュリティー問題が内在しています。

これらの問題を始めとする 6to4 リレールーターのセキュリティー問題については、Internet Draft『Security Considerations for 6to4』で説明されています。一般には、6to4 リレールーターのサポートは次のような場合だけ検討してください。

6to4 ルーターの既知の問題

6to4 構成には、次の問題が影響することが判明しています。

6to4 サイトにおける静的なルートの実装 (バグ ID 4709338)

6to4 境界ルーターが設置された 6to4 サイトでは、次の問題が発生します。6to4 擬似インタフェースを設定する場合に 6to4 ルーターの経路制御テーブルに静的ルート 2002::/16 が自動的に追加されます。バグ 4709338 は、この静的ルートが 6to4 サイトに通知されることを防ぐ Oracle Solaris RIPng 経路制御プロトコルにおける制限について説明しています。

バグ 4709338 に対しては、次に示す回避策のどちらかを適用できます。

同じ発信元アドレスによるトンネルの設定 (バグ ID 4152864)

バグ ID 4152864 は、同じトンネル発信元アドレスを使用して 2 つのトンネルが設定される場合に発生する問題について説明しています。これは、6to4 トンネルの重大な問題です。


注意 – 注意 –

同じトンネル発信元アドレスを使用して 6to4 トンネルと自動トンネル ( atun) を設定することは避けてください。自動トンネルと atun コマンドについては、tun(7M) のマニュアルページを参照してください。


第 10 章 TCP/IP と IPv4 の詳細 (リファレンス)

この章では、ネットワーク構成ファイルの種類、目的、ファイルエントリのフォーマットなど、TCP/IP ネットワークの参照情報を提供します。また、既存のネットワークデータベースについても詳しく説明します。さらにこの章では、定義されているネットワーククラスとサブネット番号に基づいて、IPv4 アドレスが構成される仕組みについても説明します。

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

TCP/IP と IPv4 の新機能の詳細

Solaris 10 7/07 では、/etc/inet/ipnodes ファイルは廃止されました。個々の手順で説明されているとおり、/etc/inet/ipnodes は以前の Oracle Solaris 10 リリースにのみ使用してください。

TCP/IP 構成ファイル

ネットワーク上の各システムは、次の TCP/IP 構成ファイルとネットワークデータベースから TCP/IP 構成情報を取得します。

Oracle Solaris インストールプログラムは、インストール処理の一環として上記のファイルを作成します。これらのファイルは、この「TCP/IP 構成ファイル」の節の説明に従って手作業で編集することもできます。hosts データベースと netmasks データベースは、Oracle Solaris ネットワークで使用できるネームサービスによって読み取られるネットワークデータベースのうちの 2 つです。ネットワークデータベースの概念についての詳細は、「ネットワークデータベースと nsswitch.conf ファイル」を参照してください。Solaris 10 11/06 以前のリリースの ipnodes ファイルについては、ipnodes データベース」を参照してください。

/etc/hostname.interface ファイル

このファイルは、ローカルホストの物理ネットワークインタフェースを定義します。ローカルシステムには、少なくとも 1 つの /etc/hostname.interface ファイルが存在する必要があります。Oracle Solaris インストールプログラムは、インストールプロセス中に検出された最初のインタフェースに対して /etc/hostname.interface ファイルを作成します。このインタフェースは通常、一番小さなデバイス番号 (たとえば、eri0) を持っており、「一次ネットワークインタフェース」と呼ばれます。インストールプログラムが追加インタフェースを検出した場合は、インストールプロセスの一環としてそれらも任意で構成できます。


注 –

同じインタフェース用に別のホスト名ファイルを作成する場合、そのホスト名ファイルの名前も hostname.[0–9]* の形式 (hostname.qfe0.a123など) にする必要があります。hostname.qfe0.bak hostname.qfe0.old のような名前は無効であり、システムの起動中にスクリプトに無視されます。

また、特定のインタフェースに対応するホスト名ファイルは 1 つだけにする必要があります。/etc/hostname.qfe/etc/hostname.qfe.a123 のように、インタフェースの代替ホスト名ファイルを有効なファイル名で作成した場合、ブートスクリプトは両方のホスト名ファイルの内容を参照することによって構成を試みるため、エラーが発生します。これらのエラーを回避するには、特定の構成で使用したくないホスト名ファイルに無効なファイル名を付けます。


インストール後、新しいネットワークインタフェースをシステムに追加した場合は、そのインタフェースに対して、/etc/hostname.interface ファイルを作成する必要があります (「システムインストール後に物理インタフェースを構成する方法」を参照)。また、Oracle Solaris ソフトウェアが新しいネットワークインタフェースを認識し、使用できるようにするには、インタフェースのデバイスドライバが適切なディレクトリに読み込まれるようにする必要があります。新しいネットワークインタフェースに付属しているマニュアルを参照し、正しいインタフェース名とデバイスドライバの使用方法を確認してください。

基本的な /etc/hostname.interface ファイルにはエントリが 1 つだけ含まれます。 それは、ネットワークインタフェースに関連付けられた、ホスト名または IPv4 アドレスのどちらかです。IPv4 アドレスは、一般的な 10 進ドット表記または CIDR 表記で表現できます。/etc/hostname.interface ファイルのエントリとしてホスト名を使用する場合は、そのホスト名が /etc/inet/hosts ファイルにも存在している必要があります。

たとえば、tenere というシステムの一次ネットワークインタフェースが smc0 であるとします。この場合、/etc/hostname.smc0 ファイルのエントリとして、10 進ドット表記または CIDR 表記の IPv4 アドレス、あるいはホスト名 tenere を使用できます。


注 –

IPv6 は /etc/hostname6.interface ファイルを使用して、ネットワークインタフェースを定義します。詳細は、「IPv6 インタフェース設定ファイル」を参照してください。


/etc/nodename ファイル

このファイルにはエントリが 1 つ含まれます。 つまり、ローカルシステムのホスト名です。たとえば、timbuktu というシステムでは、/etc/nodename ファイルに timbuktu というエントリが入ります。

/etc/defaultdomain ファイル

このファイルにはエントリが 1 つ含まれます。 このエントリは、ローカルホストのネットワークが属する管理ドメインの完全に修飾されたドメイン名です。ネットワーク管理者は、この名前を Oracle Solaris インストールプログラムに指示したり、また後日、このファイルを編集できます。ネットワークドメインについての詳細は、『Solaris のシステム管理 (ネーミングとディレクトリサービス : DNS、NIS、LDAP 編)』を参照してください。

/etc/defaultrouter ファイル

このファイルには、ネットワークに直接接続されている各ルーターのエントリを含めることができます。このエントリは、ネットワーク間のルーターとして機能するネットワークインタフェースの名前です。/etc/defaultrouter ファイルがあるということは、システムが静的経路選択をサポートする構成であることを示します。

hosts データベース

hosts データベースには、ネットワーク上のシステムの IPv4 アドレスとホスト名が含まれています。NIS、DNS、または LDAP ネームサービスを使用している場合、hosts データベースは、ホスト情報用として指定されているデータベースに格納されます。たとえば、NIS を実行するネットワークでは、hosts データベースは hostsbyname ファイルに格納されます。

ネームサービス用にローカルファイルを使用する場合、hosts データベースは /etc/inet/hosts ファイルに格納されます。このファイルには、一次ネットワークインタフェースのホスト名と IPv4 アドレス、システムに備わっているほかのネットワークインタフェース、このシステムが検査する必要があるほかのネットワークアドレスが含まれています。


注 –

BSD ベースのオペレーティングシステムとの互換性を保つため、/etc/hosts ファイルは /etc/inet/hosts へのシンボリックリンクとなっています。


/etc/inet/hosts ファイルの形式

/etc/inet/hosts ファイルは、次のような基本的な構文を使用します。構文についての詳細は、hosts(4) のマニュアルページを参照してください。

IPv4-address hostname [nicknames] [#comment]

IPv4-address

ローカルホストが認識する必要のある各インタフェースの IPv4 アドレスが含まれます。

hostname

設定時にシステムに割り当てたホスト名と、ローカルホストが認識しなければならない増設ネットワークインタフェースに割り当てたホスト名が含まれます。

[nickname]

ホストのニックネームが含まれます (省略可能)。

[#comment]

コメント用のフィールドです (省略可能)。

初期 /etc/inet/hosts ファイル

Oracle Solaris インストールプログラムをシステムで実行すると、このプログラムは初期 /etc/inet/hosts ファイルを構成します。このファイルには、ローカルホストにとって必要最小限のエントリが含まれています。エントリには、ループバックアドレス、ホストの IPv4 アドレス、ホスト名が入っています。

たとえば、図 5–1 のシステム tenere に対して、Oracle Solaris インストールプログラムは次のような /etc/inet/hosts ファイルを作成します。


例 10–1 システム tenere 用の /etc/inet/hosts ファイル


127.0.0.1     localhost         loghost    #loopback address
192.168.200.3   tenere                      #host name

ループバックアドレス

例 10–1では、IPv4 アドレス 127.0.0.1 は「ループバックアドレス」です。ループバックアドレスは、ローカルシステムがプロセス間通信するために使用する予約済みネットワークインタフェースです。このアドレスを使用して、ホストは自分自身にパケットを送信できます。ifconfig コマンドは、ループバックアドレスを使用して、構成と検査を行います (ifconfig コマンドによるインタフェース構成の監視」を参照)。TCP/IP ネットワークのシステムはすべて、ローカルホスト上での IPv4 ループバックに IP アドレス 127.0.0.1 を使用する必要があります。

ホスト名

IPv4 アドレス 192.168.200.1 と名前 tenere は、ローカルシステムのアドレスとホスト名です。これらは、システムの一次ネットワークインタフェースに割り当てられます。

複数のネットワークインタフェース

システムには複数のネットワークインタフェースを持つものがあり、これらはルーターまたはマルチホームホストとなります。システムに接続されるネットワークインタフェースごとに、専用の IP アドレスとそれに割り当てる名前が必要です。インストール時には、一次ネットワークインタフェースを構成する必要があります。特定のシステムがインストール時に複数のインタフェースを持っている場合は、Oracle Solaris インストールプログラムも増設インタフェースに関するプロンプトを表示します。1 つ以上の増設インタフェースをこの時点で構成したり、あとで手動構成を行うことができます。

Oracle Solaris のインストール後、インタフェース情報をシステムの /etc/inet/hosts ファイルに追加することで、ルーターまたはマルチホームホストの増設インタフェースを構成できます。ルーターとマルチホームホストを構成する方法については、「IPv4 ルーターの構成」「マルチホームホストの構成」を参照してください。

例 10–2 は、図 5–1 のシステム timbuktu 用の /etc/inet/hosts ファイルを示しています。


例 10–2 システム timbuktu 用の /etc/inet/hosts ファイル


127.0.0.1        localhost     loghost
192.168.200.70   timbuktu      #This is the local host name
192.168.201.10   timbuktu-201  #Interface to network 192.9.201

これらの 2 つのインタフェースを使用して、timbuktu はルーターとしてネットワーク 192.168.200192.168.201 に接続します。

ネームサービスの hosts データベースに対する影響

NIS と DNS ネームサービス、および LDAP ディレクトリサービスは、ホスト名とアドレスを 1 つまたは複数のサーバーに格納します。これらのサーバーは、各サーバーのネットワーク上のすべてのホストとルーター (もしあれば) に関する情報を含む hosts データベースを保持しています。これらのサービスの詳細については、『Solaris のシステム管理 (ネーミングとディレクトリサービス : DNS、NIS、LDAP 編)』を参照してください。

ローカルファイルがネームサービスを提供する場合

ローカルファイルをネームサービスに使用するネットワークでは、ローカルファイルモードで実行されるシステムは、そのネットワークのほかのシステムの IPv4 アドレスとホスト名を調べるときに、それぞれの /etc/inet/hosts ファイルを参照します。したがって、これらのシステムの /etc/inet/hosts ファイルには、次の情報が含まれている必要があります。

図 10–1 は、システム tenere/etc/inet/hosts ファイルを示しています。このシステムはローカルファイルモードで実行されます。このファイルには、192.9.200 ネットワーク上のすべてのシステムの IPv4 アドレスとホスト名が含まれています。また、このファイルにはインタフェース名 timbuktu-201 とその IPv4 アドレスが含まれています。このインタフェースは 192.9.200 ネットワークを 192.9.201 ネットワークに接続しています。

ネットワーククライアントとして構成されたシステムは、そのループバックアドレスと IPv4 アドレス用にローカルの /etc/inet/hosts ファイルを使用します。

図 10–1 ローカルファイルモードで実行されるシステム用の /etc/inet/hosts ファイル

この図では、ローカルファイルモードで実行されるシステム用のホストファイルの内容を示しています。

ipnodes データベース


注 –

Solaris 10 11/06 よりあとのリリースには、ipnodes データベースは含まれなくなりました。これらの後続のリリースでは、ipnodes の IPv6 機能は hosts データベースに移行されます。


/etc/inet/ipnodes ファイルは IPv4 アドレスと IPv6 アドレスの両方を格納します。また、IPv4 アドレスは、一般的な 10 進ドット表記または CIDR 表記として保存できます。このファイルはローカルデータベースとして、ホスト名を IPv4 アドレスや IPv6 アドレスに関連付けます。ホスト名やそのアドレスは、/etc/inet/ipnodes などの静的ファイルには保存しないでください。ただし、テスト目的の場合は IPv4 アドレスを /etc/inet/hosts に保存するのと同じ方法で IPv6 アドレスを保存します。ipnodes ファイルでは、hosts ファイルと同じフォーマット変換を使用します。/etc/inet/hosts の詳細については、hosts データベース」を参照してください。ipnodes ファイルについては、ipnodes(4) のマニュアルページを参照してください。

IPv6 が有効なアプリケーションは /etc/inet/ipnodes データベースを使用します。既存の /etc/hosts データベースには、IPv4 アドレスだけが含まれていますが、既存のアプリケーションの便宜上、このデータベースは変更されません。ipnodes データベースが存在しない場合、IPv6 が有効なアプリケーションは既存の hosts データベースを使用します。


注 –

アドレスを追加する必要がある場合、IPv4 アドレスは hosts ファイルと ipnodes ファイルの両方に追加しなければなりません。IPv6 アドレスは ipnodes ファイルにだけ追加します。



例 10–3 /etc/inet/ipnodes ファイル

次の例のように、ホスト名アドレスは、ホスト名でグループにまとめる必要があります。


#
# Internet IPv6 host table
# with both IPv4 and IPv6 addresses
#
::1     localhost
2001:db8:3b4c:114:a00:20ff:fe78:f37c   farsite.com farsite farsite-v6
fe80::a00:20ff:fe78:f37c     farsite-11.com farsitell
192.168.85.87   				 farsite.com farsite farsite-v4
2001:db8:86c0:32:a00:20ff:fe87:9aba   nearsite.com nearsite nearsite-v6
fe80::a00:20ff:fe87:9aba     nearsite-11.com nearsitell
10.0.0.177  				 nearsite.com nearsite nearsite-v4 loghost

netmasks データベース

ネットワーク構成の一部として netmasks データベースを編集する必要があるのは、ネットワークのサブネット化を設定している場合だけです。 netmasks データベースは、各ネットワークとそれに対応するサブネットマスクのリストで構成されています。


注 –

サブネットを作成するときは、新規の各ネットワークはそれぞれ独立した物理ネットワークであることが必要です。単一の物理ネットワークにサブネット化を適用することはできません。


サブネット化とは

サブネット化」は、大規模なインターネットワークにおいて、限られた 32 ビットの IPv4 アドレス空間を最大限活用し、経路制御テーブルの大きさを縮小する方法です。どのようなアドレスクラスの場合も、サブネット化によってホストアドレス空間の一部をネットワークアドレスに割り当て、ネットワーク数を増やすことができます。新規のネットワークアドレスに割り当てられるホストアドレス空間の部分を、「サブネット番号」と言います。

IPv4 アドレス空間を有効活用できることのほかに、サブネット化には管理上の利点もいくつかあります。ネットワークの数が増えるに伴って、経路制御はきわめて複雑になってきます。たとえば、小規模の組織なら、個々のローカルネットワークにクラス C の番号を割り当てることができます。しかし、組織が成長するにつれて、多数の異なるネットワーク番号を管理することは、非常に複雑な作業になってきます。このような場合の改善策の 1 つとして、組織内の主要部門に対してそれぞれクラス B のネットワーク番号を割り当てる方法が考えられます。たとえば、エンジニアリング部門に 1 つのクラス B ネットワーク、運営部門に別のクラス B を割り当てるということが可能です。その上で、サブネット化によって得られたネットワーク番号を使用して、個々のクラス B ネットワークをさらに多くのネットワークに分割できます。これによって、ルーター間でやりとりしなければならない経路制御情報の量も減少します。

IPv4 アドレス用のネットワークマスクの作成

サブネット化プロセスの一環として、ネットワーク全体の「ネットマスク」を選択する必要があります。ネットマスクは、ホストアドレス空間の中で、どの位置の何個のビットがサブネット番号を表し、どの位置の何個のビットがホスト番号を表すかを決定します。完全な IPv4 アドレスは 32 ビットで構成されることを思い出してください。ホストアドレス空間を表すために使用できるビット数は、アドレスクラスによって異なりますが、最大 24 ビット、最小 8 ビットです。ネットマスクは netmasks データベース内に指定します。

サブネットの使用を予定している場合は、TCP/IP を構成する前にネットマスクを決定する必要があります。ネットワーク構成の一環としてオペレーティングシステムをインストールすることを予定している場合は、Oracle Solaris インストールプログラムは、ネットワークのネットマスクを指定するよう求めます。

「IPv4 アドレス指定スキーマの設計」 に説明されているとおり、32 ビットの IP アドレスは、ネットワーク部とホスト部で構成されています。32 ビットは 4 個のバイトに分かれます。各バイトは、ネットワーククラスに応じて、ネットワーク番号かホスト番号のどちらかに割り当てられます。

たとえば、クラス B の IPv4 アドレスでは、左側の 2 バイトがネットワーク番号に割り当てられ、右側の 2 バイトがホスト番号に割り当てられます。クラス B の IPv4 アドレス 172.16.10 では、右側の 2 バイトをホストに割り当てることができます。

サブネット化を行う場合は、ホスト番号に割り当てるバイトの中の一部のビットを、サブネットアドレスとして使用する必要があります。たとえば、ホストアドレス空間が 16 ビットであれば、65,534 個のホストのアドレス指定が可能です。3 番目のバイトをサブネットアドレス用に使用して、4 番目のバイトをホストアドレス用に使用するとすれば、最大 254 のネットワークのアドレスと、それぞれについて最大 254 ずつのホストのアドレスを指定できます。

ホストアドレスのバイトのどのビットがサブネットアドレスに使用され、どのビットがホストアドレスに使用されるかは、「サブネットマスク」によって決まります。サブネットマスクは、バイト中のどのビットをサブネットアドレス用とするかを選択するために使用します。ネットマスクのビットは連続していなければなりませんが、バイトの境界に整列している必要はありません。

ネットマスクは、ビット単位の論理 AND 演算子を使用することによって、IPv4 アドレスに適用できます。この演算によって、アドレスのネットワーク番号とサブネット番号の位置が選択されます。

ネットマスクは、2 進数で表現できます。2 進数と 10 進数は計算機を使用して換算できます。次の例では、ネットマスクの 10 進数形式と 2 進数形式の両方を示してあります。

ネットマスク 255.255.255.0 を IPv4 アドレス 172.16.41.101 に適用すると、結果の IPv4 アドレスは 172.16.41.0 になります。

172.16.41.101 & 255.255.255.0 = 172.16.41.0

2 進数形式では、この演算は次のようになります。

10000001.10010000.00101001.01100101 (IPv4 アドレス)

次の論理積 (AND) をとります。

11111111.11111111.11111111.00000000 (IPv4 ネットマスク)

これでシステムは、ネットワーク番号 172.16.41 をネットワーク番号 172.16 の代わりに検索します。ネットワークのネットワーク番号が 172.16.41 である場合、システムはこの番号をチェックし、検出します。IPv4 アドレス空間の 3 番目のバイトには最大 254 個の値を割り当てることができるので、サブネット化によって、254 個のネットワーク用のアドレス空間を作ることができます。サブネット化を使用しなければ、ネットワークは 1 つだけです。

ネットワークを 2 つだけ追加するためのアドレス空間を確保する場合は、次のようなサブネットマスクを使用します。

255.255.192.0

このネットマスクの結果は次のようになります。

11111111.11111111.1100000.00000000

この結果、まだ 14 ビットはホストアドレス用に使用できます。全桁 0 と全桁 1 は予約済みなので、少なくとも 2 ビットをホスト番号用として確保する必要があります。

/etc/inet/netmasks ファイル

ネットワークで NIS または LDAP を実行している場合、これらのネームサービスのサーバーに netmasks データベースが格納されます。ローカルファイルをネームサービスとして使用するネットワークの場合、この情報は /etc/inet/netmasks ファイル内に格納されます。


注 –

BSD ベースのオペレーティングシステムと互換性を確保するため、/etc/netmasks ファイルは /etc/inet/netmasks へのシンボリックリンクとなっています。


次のコード例に示すのは、クラス B ネットワーク用のサンプルの /etc/inet/netmasks ファイルです。


例 10–4 クラス B ネットワーク用の /etc/inet/netmasks ファイル


 # The netmasks file associates Internet Protocol (IPv4) address
 # masks with IPv4 network numbers.
 #
 # 	network-number	netmask
 #
 # Both the network-number and the netmasks are specified in
 # “decimal dot” notation, e.g:
 #
 #        128.32.0.0   255.255.255.0
 192.168.0.0  255.255.255.0

/etc/netmasks ファイルが存在しない場合は、テキストエディタで作成してください。構文は次のとおりです。

network-number	netmask-number

詳細は、netmasks(4) のマニュアルページを参照してください。

ネットマスク番号を作成するときは、ISP または Internet Registry から割り当てられたネットワーク番号 (サブネット番号ではない) とネットマスク番号を、/etc/inet/netmasks ファイルに入力します。各サブネットマスクはそれぞれ単独の行に入れてください。

次に例を示します。


128.78.0.0	    255.255.248.0

/etc/inet/hosts ファイルには、ネットワーク番号のシンボリック名も入力できます。こうすることによって、ネットワーク番号の代わりにこれらのネットワーク名をコマンドへのパラメータとして使用できます。

inetd インターネットサービスデーモン

inetd デーモンは、システムの起動時にインターネット標準サービスを起動したり、システムの実行中にサービスを再起動したりできます。SMF (サービス管理機能) は、標準インターネットサービスを変更したり、inetd デーモンに追加サービスを開始させるために使用します。

inetd が起動したサービスを管理するには、次の SMF コマンドを使用します。

svcadm

起動、停止、再開などのサービスの管理操作を行います。詳細は、svcadm(1M) のマニュアルページを参照してください。

svcs

サービスのステータスを照会します。詳細は、svcs(1) のマニュアルページを参照してください。

inetadm

サービスのプロパティーの表示と変更を行います。詳細は、inetadm(1m) のマニュアルページを参照してください。

特定のサービスの inetadm プロファイルの proto フィールドの値は、サービスが実行されるトランスポート層プロトコルを示します。サービスが IPv4 専用の場合、proto フィールドには tcpudp、または sctp を指定します。

ネットワークデータベースと nsswitch.conf ファイル

ネットワークデータベースは、ネットワークの構成に必要な情報を提供するファイルです。ネットワークデータベースには次のものがあります。

構成工程の一環として、ネットワークをサブネット化する場合は、hosts データベースと netmasks データベースを編集します。システムをネットワーククライアントとして構成するには、bootparamsethers の 2 つのネットワークデータベースを使用します。残りのデータベースはオペレーティングシステムが使用するもので、編集が必要になることはほとんどありません。

nsswitch.conf ファイルはネットワークデータベースではありませんが、このファイルは関連するネットワークデータベースと共に構成する必要があります。nsswitch.conf は、特定のシステムに、 ローカルファイル、NIS、DNS、または LDAP のどのネームサービスを使用するかを指定します。

ネットワークデータベースへのネームサービスの影響

ネットワークデータベースの形式は、ネットワークで選択したネームサービスの種類によって異なります。たとえば、hosts データベースには、少なくとも、ローカルシステムとそのシステムに直接接続されているネットワークインタフェースのホスト名と IPv4 アドレスだけは含まれています。しかし、ネットワークで使用するネームサービスの種類によっては、その他の IPv4 アドレスとホスト名も hosts データベースに含まれていることがあります。

ネットワークデータベースは、次のように使用されます。


注 –

DNS 起動ファイルとデータファイルは、ネットワークデータベースに直接は対応していません。


次の図に、これらのネームサービスで使用する hosts データベースの形式を示します。

図 10–2 ネームサービスが使用する hosts データベースの形式

この図は、さまざまな DNS、NIS、NIS+ ネームサービスとローカルファイルがホストデータベースをどのように保存するかを示しています。

次の表に、ネットワークデータベースと対応するローカルファイルおよび NIS マップを示します。


注 –

Solaris 10 11/06 よりあとの Oracle Solaris リリースでは、ipnodes データベースは削除されます。


表 10–1 ネットワークデータベースと対応ネームサービスファイル

ネットワークデータベース 

ローカルファイル 

NIS のマップ 

hosts

/etc/inet/hosts

hosts.byaddr hosts.byname

ipnodes

/etc/inet/ipnodes

ipnodes.byaddr ipnodes.byname

netmasks

/etc/inet/netmasks

netmasks.byaddr

ethers

/etc/ethers

ethers.byname ethers.byaddr

bootparams

/etc/bootparams

bootparams

protocols

/etc/inet/protocols

protocols.byname protocols.bynumber

services

/etc/inet/services

services.byname

networks

/etc/inet/networks

networks.byaddr networks.byname

このマニュアルでは、ネームサービス用にローカルファイルを使用するネットワークから見たネットワークデータベースについて説明します。

NIS、DNS、および LDAP でのネットワークデータベースの対応関係については、『Solaris のシステム管理 (ネーミングとディレクトリサービス : DNS、NIS、LDAP 編)』を参照してください。

nsswitch.conf ファイル

/etc/nsswitch.conf ファイルは、ネットワークデータベースの検索順序を定義します。Oracle Solaris インストールプログラムは、インストール中にネットワーク管理者が指定するネームサービスに基づいて、ローカルシステム用のデフォルトの /etc/nsswitch.conf ファイルを作成します。「None」オプションを指定して、ローカルファイルをネームサービスとして使用することを指示した場合は、nsswitch.conf ファイルは次の例のようになります。


例 10–5 ネームサービスにファイルを使用するネットワーク用の nsswitch.conf


# /etc/nsswitch.files:
#
# An example file that could be copied over to /etc/nsswitch.conf;
# it does not use any naming service.
#
# "hosts:" and "services:" in this file are used only if the
# /etc/netconfig file contains "switch.so" as a
# nametoaddr library for "inet" transports.

passwd:          files
group:           files
hosts:           files
networks:        files
protocols:       files
rpc:             files
ethers:          files
netmasks:        files
bootparams:      files
publickey:       files
# At present there isn't a 'files' backend for netgroup; the
# system will figure it out pretty quickly,
# and won't use netgroups at all.
netgroup:        files
automount:       files
aliases:         files
services:        files
sendmailvars:    files

このファイルについての詳細は、nsswitch.conf(4) のマニュアルページを参照してください。基本構文は、次のとおりです。

database name-service-to-search

database フィールドには、オペレーティングシステムが検索する多くの種類のデータベースの 1 つを指定できます。たとえば、passwdaliases などのようにユーザーに影響を与えるデータベースでも、またネットワークデータベースでも指定できます。ネットワークデータベースの場合、 name-service-to-search パラメータの値は、filesnisnis+ のどれかです。hosts データベースの場合は、検索するネームサービスとして dns も値に指定できます。nis+files のように、複数のネームサービスも指定できます。

例 10–5 において、示されている唯一の検索オプションは files です。したがって、ローカルシステムは、/etc ディレクトリと /etc/inet ディレクトリに入っているファイルから、ネットワークデータベース情報のほか、セキュリティーと自動マウントに関する情報を入手します。

nsswitch.conf の変更

/etc ディレクトリには、Oracle Solaris インストールプログラムが作成する nsswitch.conf ファイルが含まれています。そのほかに、次のネームサービス用のテンプレートファイルも含まれています。

あるネームサービスから別のネームサービスに変更したい場合は、対応するテンプレートを nsswitch.conf にコピーできます。また、nsswitch.conf ファイルを選択的に編集して、個々のデータベースを見つけるために検索するデフォルトのネームサービスを変更できます。

たとえば、NIS を実行するネットワークでは、ネットワーククライアントについての nsswitch.conf ファイルの変更が必要な場合があります。bootparams データベースと ethers データベースの検索順序では、最初のオプションとして files、次に nis が指定されている必要があります。次のコード例に、正しい検索順序を示します。


例 10–6 NIS を実行するネットワーク上のクライアントのための nsswitch.conf


# /etc/nsswitch.conf:#
.
.
passwd:        files nis
group:         files nis

# consult /etc "files" only if nis is down.
hosts:         nis    [NOTFOUND=return] files
networks:      nis    [NOTFOUND=return] files
protocols:     nis    [NOTFOUND=return] files
rpc:           nis    [NOTFOUND=return] files
ethers:        files  [NOTFOUND=return] nis
netmasks:      nis    [NOTFOUND=return] files	
bootparams:    files  [NOTFOUND=return] nis
publickey:     nis    
netgroup:      nis

automount:     files nis
aliases:       files nis

# for efficient getservbyname() avoid nis
services:      files nis
sendmailvars:  files

ネームサービススイッチの詳細は、『Solaris のシステム管理 (ネーミングとディレクトリサービス : DNS、NIS、LDAP 編)』を参照してください。

bootparams データベース

bootparams データベースには、ネットワーククライアントモードで起動されるように構成されたシステムが使用する情報が含まれています。ネットワーククライアントを持つネットワークの場合は、このデータベースの編集が必要になります。手順については、「ネットワーククライアントの構成」を参照してください。このデータベースは、/etc/bootparams ファイルに入力した情報をもとにして構築されます。

このデータベースの構文についての詳細は、bootparams(4) のマニュアルページに含まれています。基本構文は、次のとおりです。

system-name file-key-server-name:pathname

個々のディスクレスまたはネットワーククライアントシステムについて、エントリが 1 つずつ含まれています。 各エントリに入っている情報は、クライアント名、キーのリスト、サーバー名、パス名です。各エントリの最初の項目は、クライアントシステムの名前です。最初の項目以外は、すべてオプションです。次に例を示します。


例 10–7 bootparams データベース


myclient   root=myserver : /nfsroot/myclient  \
swap=myserver : /nfsswap//myclient \
dump=myserver : /nfsdump/myclient

この例の dump= はダンプファイルを探さないようクライアントホストに指示しています。

bootparams のワイルドカードエントリ

ほとんどの場合、ワイルドカードエントリを使用するのは、bootparams データベースを編集してクライアントをサポートするときです。次のようにしてワイルドカードエントリを使用します。

*  root=server:/path dump=:

アスタリスク (*) ワイルドカードは、このエントリが、bootparams データベース内で明示的に指定されていないすべてのクライアントに適用されることを示します。

ethers データベース

ethers データベースは、/etc/ethers ファイルに入力した情報から構築されます。このデータベースは、ホスト名を「メディアアクセス制御」(MAC) アドレスに関連付けます。ethers データベースの作成が必要になるのは、RARP デーモンを実行する場合だけです。つまり、ネットワーククライアントを構成する場合だけです。

RARP は、このファイルを使用して、MAC アドレスを IP アドレスにマッピングします。RARP デーモン in.rarpd を実行する場合は、ethers ファイルを設定し、このファイルをこのデーモンを実行するすべてのホストに格納して、ネットワークに対する変更が反映されるようにする必要があります。

このデータベースの構文についての詳細は、ethers(4) のマニュアルページに含まれています。基本構文は、次のとおりです。


MAC-address   hostname   #comment
MAC-address

ホストの MAC アドレス

hostname

ホストの公式名

#comment

ファイルのエントリに追加する注釈

MAC アドレスは装置の製造元から提供されます。システムの起動プロセス中に、システムが MAC アドレスを表示しない場合は、お使いのハードウェアのマニュアルを参照してください。

ethers データベースにエントリを追加するときは、ホスト名が、ニックネームではなく、hosts データベース内と ipnodes データベース内 (Solaris 10 11/06 以前のリリースの場合) の基本名に一致していることを確認してください (次のコード例を参照)。


例 10–8 ethers データベース内のエントリ


8:0:20:1:40:16  fayoum
8:0:20:1:40:15  nubian 
8:0:20:1:40:7   sahara    # This is a comment
8:0:20:1:40:14  tenere 

その他のネットワークデータベース

残りのネットワークデータベースについては、編集が必要になることはほとんどありません。

networks データベース

networks データベースは、ネットワーク名をネットワーク番号と関連付けて、いくつ かのアプリケーションが番号ではなく名前を使用または表示できるようにします。networks データベースは、/etc/inet/networks ファイルの中の情報に基づいています。このデータベースには、このネットワークがルーターを介して接続されるすべてのネットワークの名前が含まれています。

初期 networks データベースは、Oracle Solaris インストールプログラムが設定します。ただし、既存のネットワークトポロジに新たなネットワークを追加する場合は、このデータベースを更新する必要があります。

/etc/inet/networks の構文についての詳細は、networks(4) のマニュアルページに含まれています。基本形式は、次のとおりです。


network-name  network-number  nickname(s)  #comment
network-name

ネットワークの公式名

network-number

ISP またはインターネットレジストリが割り当てた番号

nickname

そのネットワークの別名

#comment

ファイルのエントリに追加する注釈

networks ファイルは必要に応じて更新する必要があります。netstat プログラムは、このデータベース内の情報を使用して状態テーブルを作成します。

次のコード例に、/etc/networks ファイルのサンプルを示します。


例 10–9 /etc/networks ファイル


#ident	"@(#)networks	1.4	92/07/14 SMI"	/* SVr4.0 1.1	*/
#
# The networks file associates Internet Protocol (IP) network
# numbers with network names. The format of this file is:
#
# 	network-name		 	 network-number		 	 nicnames . . .

# The loopback network is used only for intra-machine communication
loopback		 	 127

#
# Internet networks
#
arpanet     10	   arpa  # Historical
#
# local networks

eng   192.168.9 #engineering
acc   192.168.5 #accounting
prog  192.168.2 #programming

protocols データベース

protocols データベースには、システムにインストールされている TCP/IP プロトコルとプロトコル番号の一覧が含まれています。このデータベースは、Oracle Solaris インストールプログラムによって自動的に作成されます。このファイルの管理が必要になることは、ほとんどありません。

このデータベースの詳しい構文については、protocols(4) のマニュアルページを参照してください。次のコード例に、/etc/inet/protocols ファイルのサンプルを示します。


例 10–10 /etc/inet/protocols ファイル


#
# Internet (IP) protocols
#
ip    0   IP    # internet protocol, pseudo protocol number
icmp  1   ICMP  # internet control message protocol
tcp   6   TCP   # transmission control protocol
udp  17   UDP   # user datagram protocol

services データベース

services データベースは、TCP と UDP サービスの名前および既知のポート番号の一覧を含んでいます。このデータベースは、ネットワークサービスを呼び出すプログラムにより使用されます。Oracle Solaris インストールプログラムは、services データベースを自動的に作成します。通常は、このデータベースの管理作業を必要としません。

構文についての詳細は、services(4) のマニュアルページを参照してください。次に、典型的な /etc/inet/services ファイルからの抜粋を示します。


例 10–11 /etc/inet/サービス ファイル


#
# Network services
#
echo      7/udp
echo      7/tcp
echo      7/sctp6
discard   9/udp     sink null
discard   11/tcp
daytime   13/udp
daytime   13/tcp
netstat   15/tcp
ftp-data  20/tcp
ftp       21/tcp
telnet    23/tcp
time      37/tcp    timeserver
time      37/udp    timeserver
name      42/udp    nameserver
whois     43/tcp    nickname

Oracle Solaris の経路制御プロトコル

この節では、Oracle Solaris 10 でサポートされている 2 つの経路制御プロトコルについて説明します。それは、経路制御情報プロトコル (RIP) および ICMP ルーター発見 (RDISC) です。RIP と RDISC は、どちらも標準 TCP/IP プロトコルです。Oracle Solaris 10 で使用できる経路制御プロトコルの一覧については、表 5–1 および表 5–2 を参照してください。

経路制御情報プロトコル (RIP)

RIP は、システムのブート時に自動的に起動する経路制御デーモンである in.routed によって実行されます。s オプションを指定した in.routed をルーターで実行すると、in.routed は、到達可能なすべてのネットワークへのルートをカーネルルーティングテーブルに組み入れ、すべてのネットワークインタフェースを経由する「到達可能性」を通知します。

ホストで q オプションを指定して実行すると、in.routed は経路制御情報を引き出しますが、到達可能性の通知は行いません。ホストでは、経路制御情報は次の 2 つの方法で抽出できます。

ICMP ルーター発見 (RDISC) プロトコル

ホストは、ルーターから経路制御情報を取得するときに、RDISC を使用します。したがって、ホストが RDISC を実行しているとき、各ルーターは、経路制御情報の交換のために、RIP などのような別のプロトコルも実行している必要があります。

RDISC は、ルーターとホストの両方で実行される in.routed によって実装されます。ホストでは、in.routed は RDISC を使用して、RDISC によってホストに通知を行うルーターからデフォルトのルートを検出します。in.routed は、ルーターで RDISC を使用して、直接接続されているネットワーク上のホストにデフォルトのルートを通知します。in.routed(1M) のマニュアルページと gateways(4) のマニュアルページを参照してください。

ネットワーククラス


注 –

多くの旧式ネットワークは今もクラスをベースにしていますが、クラスベースのネットワーク番号は IANA から取得できなくなりました。


この節では、IPv4 ネットワーククラスについて詳しく説明します。32 ビットの IPv4 アドレス空間は、ネットワーク部のビット数が多かったり少なかったりするなど、クラスによって使い方が異なります。3 つのクラスとは、クラス A、クラス B、クラス C です。

クラス A ネットワーク番号

クラス A ネットワーク番号は、IPv4 アドレスの最初の 8 ビットを「ネットワーク部」として使用します。残りの 24 ビットは、次の図のように IPv4 アドレスのホスト部を含んでいます。

図 10–3 クラス A アドレスのバイト割り当て

この図では、 32 ビットの IPv4 クラス A アドレスでは、0〜7 ビットがネットワーク部で、残りの 24 ビットはホスト部であることを示しています。

クラス A ネットワーク番号の最初のバイトに割り当てられる値は 0 - 127 の範囲です。IPv4 アドレス 75.4.10.4 について考えてみます。最初のバイトの 75 という値は、このホストがクラス A ネットワーク内にあることを示しています。残りのバイトの 4.10.4 はホストアドレスを形成します。クラス A 番号の最初のバイトだけが IANA で登録されます。残りの 3 バイトをどのように使用するかは、そのネットワーク番号の所有者の自由です。クラス A のネットワークとして存在可能なのは 127 個だけです。この範囲内の各番号が、それぞれ最大 16,777,214 個のホストを収容できます。

クラス B ネットワーク番号

クラス B ネットワーク番号は、16 ビットをネットワーク番号に、16 ビットをホスト番号に使用します。クラスB ネットワーク番号の最初のバイトは、128 - 191 の範囲です。番号 172.16.50.56 では、最初の 2 バイト 172.16 が IANA で登録され、ネットワークアドレスを構成します。残りの 2 バイトの 50.56 にはホストアドレスが含まれ、これはネットワーク番号の所有者が任意に割り当てることができます。次の図に、クラス B のアドレスを示します。

図 10–4 クラス B アドレスのバイト割り当て

この図では、 32 ビットの IPv4 クラス B アドレスでは、0〜15 ビットがネットワーク部で、残りの 16 ビットはホスト部であることを示しています。

クラス B は、ネットワーク上に多数のホストを持つ組織で一般的に使用されます。

クラス C ネットワーク番号

クラス C ネットワーク番号は、24 ビットをネットワーク番号に、8 ビットをホスト番号に使用します。クラス C ネットワーク番号は、ホストが少ない (最大で 254 の) ネットワークで使用されます。クラス C ネットワーク番号は、IPv4 アドレスの最初の 3 バイトを占めます。ネットワーク番号の所有者が自由に割り当てることができるのは、4 番目のバイトだけです。次の図に、クラス C アドレスのバイトを示します。

図 10–5 クラス C アドレスのバイト割り当て

この図では、 32 ビットの IPv4 クラス C アドレスでは、0〜23 ビットがネットワーク部で、残りの 8 ビットはホスト部であることを示しています。

クラス C ネットワーク番号の最初のバイトは、192 - 223 の範囲です。2 番目と 3 番目のバイトは、それぞれ 1 - 255 の範囲です。クラス C アドレスは通常、192.168.2.5 のようになります。最初の 3 バイト 192.168.2 はネットワーク番号です。この例の最後のバイト、つまり 5 がホスト番号です。

第 11 章 IPv6 の詳細 (リファレンス)

この章では、次の Oracle Solaris の IPv6 実装の参照情報について説明します。

IPv6 の概念については、第 3 章IPv6 の紹介(概要)を参照してください。IPv6 が有効なネットワークを設定する作業については、第 7 章IPv6 ネットワークの構成 (手順)を参照してください。

IPv6 の新機能の詳細

Solaris 10 7/07 では、/etc/inet/ipnodes ファイルは廃止されました。個々の手順で説明されているとおり、/etc/inet/ipnodes は以前の Oracle Solaris 10 リリースにのみ使用してください。

IPv6 アドレス指定書式の詳細

第 3 章IPv6 の紹介(概要)では、IPv6 アドレス指定のもっとも一般的な書式について紹介しました。 つまり、ユニキャストサイトアドレスとリンクローカルアドレスです。この節では、第 3 章IPv6 の紹介(概要)で説明しなかった IPv6 アドレス指定の詳細な書式について説明します。

6to4 派生のアドレス指定

ルーターまたはホストエンドポイントから 6to4 トンネルを設定する計画がある場合は、エンドポイントシステム上の /etc/inet/ndpd.conf ファイルにある 6to4 サイト接頭辞を通知する必要があります。6to4 トンネルの設定に関する概要と作業については、「6to4 トンネルを設定する方法」を参照してください。

次の図に、6to4 サイト接頭辞の構成を示します。

図 11–1 6to4 サイト接頭辞の構成

この図は、6to4 サイト接頭辞の書式を示し、サイト接頭辞の例を示します。この引用付き表は、図中の情報を説明します。

次の図は、ndpd.conf ファイルに指定する 6to4 サイトのサブネット接頭辞の構成を示しています。

図 11–2 6to4 サブネット接頭辞の構成

この図は、6to4 接頭辞の書式を示し、接頭辞の例を示します。次の内容は、図中の情報を説明します。

この表では、6to4 サブネット接頭辞を構成する要素と、各要素の長さおよび定義について説明しています。

構成要素 

長さ 

定義 

接頭辞 

16 ビット 

6to4 接頭辞ラベル 2002 (0x2002)。 

IPv4 アドレス 

32 ビット 

6to4 インタフェースですでに設定されている一意の IPv4 アドレス。通知のために、ドット付きの 10 進表記ではなく 16 進表記の IPv4 アドレスを指定します。 

サブネット ID 

16 ビット 

サブネット ID。これは、6to4 サイトにおけるリンクで一意となる値でなければなりません。 

ホストにおける 6to4 派生のアドレス指定

ルーター広告によって 6to4 派生の接頭辞を受信する際、IPv6 ホストはインタフェース上の 6to4 派生アドレスを自動的に設定し直します。アドレスの書式は次のとおりです。


prefix:IPv4-address:subnet-ID:interface-ID/64

6to4 インタフェースを持つホスト上で ifconfig -a コマンドを実行すると、次のような出力が返されます。


qfe1:3: flags=2180841<UP,RUNNING,MULTICAST,ADDRCONF,ROUTER,IPv6>
 mtu 1500 index 7
        inet6 2002:8192:56bb:9258:a00:20ff:fea9:4521/64 

この出力では、inet6 に続く文字列が 6to4 派生アドレスです。

この表では、6to4 派生アドレスの構成要素、各要素の長さ、および各要素が提供する情報について説明しています。

アドレスの構成要素 

長さ 

定義 

prefix

16 ビット 

2002。これは 6to4 接頭辞です。

IPv4-address

32 ビット 

8192:56bb。これは、6to4 ルーターで設定されている 6to4 擬似インタフェースに対する 16 進表記による IPv4 アドレスです。

subnet-ID

16 ビット 

9258。これは、このホストの所属先であるサブネットのアドレスです。

interface-ID

64 ビット 

a00:20ff:fea9:4521。これは、6to4 に設定されているホストインタフェースのインタフェース ID です。

IPv6 マルチキャストアドレスの詳細

IPv6 マルチキャストアドレスは、同じ情報またはサービスを「マルチキャストグループ」という定義済みのインタフェースのグループに分配する方法を提供します。 通常、マルチキャストグループのインタフェースは異なるノード上にあります。1 つのインタフェースが所属できるマルチキャストグループは複数設定できます。マルチキャストアドレスに送信されたパケットは、このマルチキャストグループのすべてのメンバーに送信されます。マルチキャストアドレスの使用法の例としては、情報のブロードキャストがあります。これは、IPv4 ブロードキャストアドレスに似た機能です。

次の表に、マルチキャストアドレスの書式を示します。

表 11–1 IPv6 マルチキャストアドレス書式

8 ビット 

4 ビット 

4 ビット 

8 ビット 

8 ビット 

64 ビット 

32 ビット 

11111111

FLGS

SCOP

Reserved

Plen

Network prefix

Group ID

次に、各フィールドの内容を要約します。

マルチキャストアドレスの書式の詳細については、RFC 3306, "Unicast-Prefix-based IPv6 Multicast Addresses を参照してください。

いくつかの IPv6 マルチキャストアドレスは、Internet Assigned Numbers Authority (IANA) によって恒久的に割り当てられます。これらの例としては、IPv6 ノードと IPv6 ルーターに必要な All Nodes Multicast Addresses と All Routers Multicast Addresses などがあります。IPv6 マルチキャストアドレスは動的に割り当てることもできます。マルチキャストアドレスとマルチキャストグループの適切な使用方法の詳細については、RFC 3307, "Allocation Guidelines for IPv6 Multicast Addresses" を参照してください。

IPv6 パケットヘッダーの書式

IPv6 プロトコルは、基本 IPv6 ヘッダー、IPv6 拡張ヘッダーを含むヘッダーセットを定義します。次の図は、IPv6 ヘッダーに使用されるフィールドとその順序を示します。

図 11–3 IPv6 基本ヘッダーの書式

次の図は、ソースと宛先アドレスを含む 8 つのフィールドを構成する 128 ビットの IPv6 ヘッダーを示します。

次のリストは、各ヘッダーフィールドの機能について説明します。

IPv6 拡張ヘッダー

IPv6 オプションは、IPv6 ヘッダーとトランスポート層の間の独立した拡張ヘッダーにあります。パケットが最終的な宛先に到着するまで、その配送パスに存在するルーターは、ほとんどの場合 IPv6 拡張ヘッダーを確認または処理しません。そのため、オプションを含むパケットを処理するルーターの性能が大幅に改善されました。IPv4 では、オプションがある場合、ルーターですべてのオプションを調べる必要がありました。

IPv4 オプションとは異なり、IPv6 拡張ヘッダーの長さは任意です。またパケットに組み込むことのできるオプションの合計数が 40 バイト以内に限定されない点があります。この機能とその処理方法によって、IPv4 では非現実的であった機能を IPv6 オプションが使用できるようになりました。

後続のオプションヘッダー (およびそのあとのトランスポートプロトコル) を処理する際の性能を強化するため、IPv6 オプションは常に 8 オクテットの整数倍の長さです。この 8 オクテットの整数倍という長さにより、後続ヘッダーのバイト境界が維持されます。

次の IPv6 拡張ヘッダーが現在、定義されています。

デュアルスタックプロトコル

デュアルスタック」とは、アプリケーションからネットワーク層に至るプロトコルスタックのすべてのレベルの完全な複製をいいます。完全な複製の例として、OSI プロトコルとTCP/IP プロトコルを両方とも実行するシステムがあります。

Oracle Solaris は「デュアルスタック」です。これは、Oracle Solaris で IPv4 プロトコルと IPv6 プロトコルの両方が実装されていることを意味します。オペレーティングシステムをインストールするとき、IPv6 プロトコルを IP 層で有効にするか、デフォルトの IPv4 プロトコルだけを使用するかを選択できます。TCP/IP スタックの残りは同じです。結果として、同じ転送プロトコル、TCP、UDP、および SCTP を IPv4 と IPv6 の両方で実行できます。また、同じアプリケーションを IPv4 と IPv6 の両方で実行できます。図 11–4 は、インターネットプロトコル群のさまざまな層において、IPv4 プロトコルと IPv6 プロトコルがデュアルスタックとしてどのように機能するかを示しています。

図 11–4 デュアルスタックプロトコルアーキテクチャー

IPv4 プロトコルおよび IPv6 プロトコルがさまざまな OSI 層でデュアルスタックとして機能することを示しています。

デュアルスタックシナリオでは、ホストとルーターの両方のサブネットは、IPv4 に加えて、IPv6 をサポートするようにアップグレードされます。デュアルスタックアプローチによって、アップグレードしたノードは、IPv4 を使用して IPv4 専用ノードと常に相互運用できます。

Oracle Solaris 10 IPv6 実装

この節では、Oracle Solaris で IPv6 が有効なファイル、コマンド、およびデーモンについて説明します。

IPv6 設定ファイル

この節では、IPv6 実装の一部である設定ファイルについて説明します。

ndpd.conf 設定ファイル

/etc/inet/ndpd.conf ファイルは、 近傍検索デーモン in.ndpd が使用するオプションを設定するために使用されます。ルーターの場合、ndpd.conf は、主にサイト接頭辞をリンクに通知されるように設定するときに使用します。ホストの場合、ndpd.conf は、アドレスの自動設定を無効にしたり、一時アドレスを設定したりするときに使用します。

次の表に、ndpd.conf ファイルで使用されるキーワードを示します。

表 11–2 /etc/inet/ndpd.conf キーワード

変数 

説明 

ifdefault

すべてのインタフェースのルーターの動作を指定します。次の構文を使用してルーターパラメータと対応する値を設定します。 

ifdefault [variable-value]

prefixdefault

接頭辞通知のデフォルトの動作を指定します。次の構文を使用してルーターパラメータと対応する値を設定します。 

prefixdefault [variable-value]

if

インタフェース別パラメータを設定します。構文は次のとおりです。 

if interface [variable-value ]

prefix

インタフェース別接頭辞情報を通知します。構文は次のとおりです。 

prefix prefix/length interface [variable-value]

ndpd.conf ファイルでは、この表にあるキーワードといっしょに、いくつかのルーター設定変数を使用します。これらの変数の詳細については、RFC 2461, Neighbor Discovery for IP Version 6 (IPv6) を参照してください。

次の表に、インタフェースを設定するための変数と、その簡単な説明を示します。

表 11–3 /etc/inet/ndpd.conf インタフェース設定変数

変数 

デフォルト 

定義 

AdvRetransTimer

ルーターが送信する通知メッセージにおいて、Retrans Timer フィールドの値を指定します。 

AdvCurHopLimit

インターネットの現在の直径 

ルーターが送信する通知メッセージにおいて、現在のホップ制限に設定する値を指定します。 

AdvDefaultLifetime

3 + MaxRtrAdvInterval

ルーター広告のデフォルトの寿命を指定します。 

AdvLinkMTU

ルーターが送信する最大転送単位 (MTU) の値を指定します。ゼロは、ルーターが MTU オプションを指定しないことを意味します。 

AdvManaged Flag

False 

ルーター広告において、Manage Address Configuration フラグに設定する値を指定します。 

AdvOtherConfigFlag

False 

ルーター広告において、Other Stateful Configuration フラグに設定する値を指定します。 

AdvReachableTime

ルーターが送信する通知メッセージにおいて、Reachable Time フィールドの値を指定します。 

AdvSendAdvertisements

False 

ノードが通知を送信し、ルーター要請に応答するかどうかを指定します。ルーター広告機能を有効にするには、 ndpd.conf ファイルにおいて、この変数を明示的に「TRUE」に設定する必要があります。詳細については、「IPv6 対応のルーターを構成する方法」を参照してください。

DupAddrDetect

Transmits

近傍検索プロトコルがローカルノードのアドレスの複製アドレス検出中に送信する、連続近傍要請メッセージの数を定義します。 

MaxRtrAdvInterval

600 秒 

非要請マルチキャスト通知を送信する間隔の最大時間を指定します。 

MinRtrAdvInterval

200 秒 

非要請マルチキャスト通知を送信する間隔の最小時間を指定します。 

StatelessAddrConf

True 

ノードがその IPv6 アドレスを設定するときに、ステートレスアドレス自動設定を使用するかどうかを制御します。 ndpd.conf で False が宣言されている場合、そのアドレスは手動で設定する必要があります。詳細については、「ユーザー指定の IPv6 トークンを構成する方法」を参照してください。

TmpAddrsEnabled

False 

あるノードのすべてのインタフェースまたは特定のインタフェースに対して、一時アドレスを作成するかどうかを指定します。 詳細については、「一時アドレスを構成する方法」を参照してください。

TmpMaxDesyncFactor

600 秒 

in.ndpd を起動するときに、優先寿命変数 TmpPreferredLifetime から引くランダム数を指定します。TmpMaxDesyncFactor 変数の目的は、ネットワーク上のすべてのシステムが同時に一時アドレスを再生成することを防ぐことです。TmpMaxDesyncFactor を使用すると、このランダム数の上限値を変更できます。

TmpPreferredLifetime

False 

一時アドレスの優先寿命を設定します。詳細については、「一時アドレスを構成する方法」を参照してください。

TmpRegenAdvance

False 

一時アドレスのアドレス劣化までの先行時間を指定します。詳細については、「一時アドレスを構成する方法」を参照してください。

TmpValidLifetime

False 

一時アドレスの有効寿命を設定します。詳細については、「一時アドレスを構成する方法」を参照してください。

次の表に、IPv6 接頭辞を設定するときに使用する変数を示します。

表 11–4 /etc/inet/ndpd.conf 接頭辞設定変数

変数 

デフォルト 

定義 

AdvAutonomousFlag

True 

Prefix Information オプションの Autonomous Flag フィールドに格納される値を指定します。  

AdvOnLinkFlag

True 

 

Prefix Information オプションのオンリンクフラグ (“L-bit”) に格納される値を指定します。 

AdvPreferredExpiration

「設定なし」 

接頭辞の優先満了日を指定します。 

AdvPreferredLifetime

604800 秒 

Prefix Information オプションの優先寿命に格納される値を指定します。  

AdvValidExpiration

「設定なし」 

接頭辞の有効満了日を指定します。 

AdvValidLifetime

2592000 秒 

設定している接頭辞の有効寿命を指定します。 


例 11–1 /etc/inet/ndpd.conf ファイル

次に、ndpd.conf ファイルでキーワードや設定変数を使用する例を示します。変数を有効にするには、コメント (#) を削除します。


# ifdefault      [variable-value ]*
# prefixdefault [variable-value ]*
# if ifname   [variable-value ]*
# prefix prefix/length ifname
#
#  Per interface configuration variables
#
#DupAddrDetectTransmits
#AdvSendAdvertisements
#MaxRtrAdvInterval
#MinRtrAdvInterval
#AdvManagedFlag
#AdvOtherConfigFlag
#AdvLinkMTU
#AdvReachableTime
#AdvRetransTimer
#AdvCurHopLimit
#AdvDefaultLifetime
#
# Per Prefix:  AdvPrefixList configuration variables
#
#
#AdvValidLifetime
#AdvOnLinkFlag
#AdvPreferredLifetime
#AdvAutonomousFlag
#AdvValidExpiration
#AdvPreferredExpiration

ifdefault AdvReachableTime 30000 AdvRetransTimer 2000
prefixdefault AdvValidLifetime 240m AdvPreferredLifetime 120m

if qe0 AdvSendAdvertisements 1
prefix 2:0:0:56::/64 qe0
prefix fec0:0:0:56::/64 qe0

if qe1 AdvSendAdvertisements 1
prefix 2:0:0:55::/64 qe1
prefix fec0:0:0:56::/64 qe1

if hme1 AdvSendAdvertisements 1
prefix  2002:8192:56bb:1::/64 qfe0 

if hme1 AdvSendAdvertisements 1
prefix  2002:8192:56bb:2::/64 hme1

IPv6 インタフェース設定ファイル

起動時、IPv6 は /etc/hostname6.interface ファイルを使用して、IPv6 論理インタフェースを自動的に定義します。Oracle Solaris のインストール中に IPv6 Enabled オプションを選択した場合、インストールプログラムは、/etc/hostname.interface ファイルに加えて、一次ネットワークインタフェース用の /etc/hostname6.interface ファイルを作成します。

インストール中に複数の物理インタフェースが検出された場合、このようなインタフェースを設定するかどうかをたずねられます。インストールプログラムは、指定された追加のインタフェースごとに、IPv4 物理インタフェース設定ファイルと IPv6 論理インタフェース設定ファイルを作成します。

IPv4 インタフェースと同様に、IPv6 インタフェースも Oracle Solaris インストール後に手動で設定できます。新しいインタフェースには /etc/hostname6.interface ファイルを作成します。インタフェースを手動で構成する方法については、「Solaris 10 3/05 の管理インタフェース」または第 6 章ネットワークインタフェースの管理 (作業)を参照してください。

ネットワークインタフェース設定ファイル名の構文は次のとおりです。


hostname.interface
hostname6.interface

interface 変数の構文は次のとおりです。


dev[.module[.module ...]]PPA
dev

ネットワークインタフェースデバイスを示します。デバイスは eriqfe などの物理ネットワークインタフェースか、トンネルなどの論理インタフェースです。詳細については、「IPv6 インタフェース設定ファイル」を参照してください。

Module

plumb される際にデバイスにプッシュされる 1 つまたは複数の STREAMS モジュールのリスト。

PPA

物理的な接続ポイントを示します。

構文 [.[.]] も可能です。


例 11–2 IPv6 インタフェース設定ファイル

次に、有効な IPv6 設定ファイル名の例を示します。


hostname6.qfe0
hostname.ip.tun0
hostname.ip6.tun0
hostname6.ip6to4tun0
hostname6.ip.tun0
hostname6.ip6.tun0

/etc/inet/ipaddrsel.conf 設定ファイル

/etc/inet/ipaddrsel.conf ファイルには、IPv6 デフォルトアドレス選択ポリシーテーブルが含まれます。Oracle Solaris をインストールしたときに IPv6 を有効にした場合、このファイルには、表 11–5 に示す内容が含まれます。

/etc/inet/ipaddrsel.conf ファイルの内容は編集できます。しかし、このファイルを変更することは極力避けるべきです。どうしても変更が必要な場合、手順については、「IPv6 アドレス選択ポリシーテーブルを管理する方法」を参照してください。ippaddrsel.conf の詳細については、「IPv6 アドレス選択ポリシーテーブルを変更する理由」ipaddrsel.conf(4) のマニュアルページを参照してください。

IPv6 関連のコマンド

この節では、Oracle Solaris IPv6 実装で追加されたコマンドについて説明します。また、IPv6 をサポートするために行われた既存のコマンドへの変更についても説明します。

ipaddrsel コマンド

ipaddrsel コマンドを使用すると、IPv6 デフォルトアドレス選択ポリシーテーブルを変更できます。

Oracle Solaris カーネルは IPv6 デフォルトアドレス選択ポリシーテーブルを使用して、IPv6 パケットヘッダーに対して、宛先アドレス順序付けやソースアドレス選択を実行します。/etc/inet/ipaddrsel.conf ファイルには、このポリシーテーブルが含まれます。

次の表に、このポリシーテーブルのデフォルトアドレス書式とその優先度のリストを示します。IPv6 アドレス選択に関する技術的な詳細については、inet6(7P) のマニュアルページを参照してください。

表 11–5 IPv6 アドレス選択ポリシーテーブル

接頭辞 

優先度 

定義 

::1/128

50 

ループバック 

::/0

40 

デフォルト 

2002::/16

30 

6to4 

::/96

20 

IPv4 互換 

::ffff:0:0/96

10 

IPv4 

この表では、IPv6 接頭辞 (::1/128::/0) は 6to4 アドレス (2002::/16) と IPv4 アドレス (::/96::ffff:0:0/96) よりも優先されます。したがって、カーネルは、別の IPv6 宛先に向かうパケットに対して、インタフェースのグローバル IPv6 アドレスをデフォルトで選択します。インタフェースの IPv4 アドレスの優先度は、特に IPv6 宛先に向かうパケットに対しては低くなります。選択した IPv6 ソースアドレスを考えて、カーネルは宛先アドレスにも IPv6 書式を使用します。

IPv6 アドレス選択ポリシーテーブルを変更する理由

ほとんどの場合、IPv6 デフォルトアドレス選択ポリシーテーブルを変更する必要はありません。どうしてもポリシーテーブルを管理する必要がある場合は、 ipaddrsel コマンドを使用します。

次のような場合、ポリシーテーブルの変更をお勧めします。

ipaddrsel コマンドの詳細については、ipaddrsel(1M) のマニュアルページを参照してください。

6to4relay コマンド

6to4 トンネリング」を使用すると、孤立した 6to4 サイト間で通信できます。しかし、6to4 以外のネイティブ IPv6 サイトにパケットを転送する場合は、6to4 ルーターは 6to4 リレールーターとのトンネルを確立する必要があります。このトンネルが確立されると、「6to4 リレールーター」によって 6to4 パケットが IPv6 ネットワークに転送され、最終的にネイティブ IPv6 サイトに送信されます。6to4 有効化サイトがネイティブな IPv6 サイトとデータを交換する必要がある場合、6to4relay コマンドを使用して、適切なトンネルを有効にします。

リレールーターの使用は安全とは言えないため、Oracle Solaris のデフォルト設定ではリレールーターとの間のトンネリングは無効になっています。このシナリオを実践に移す場合は、6to4 リレールーターとの間のトンネル構築に伴って発生する問題点をあらかじめ慎重に検討してください。6to4 リレールーターの詳細については、「6to4 リレールーターとの間のトンネルについての考慮事項」を参照してください。6to4 リレールーターのサポートを有効にする場合、その関連手順については、「6to4 トンネルを設定する方法」を参照してください。

6to4relay の構文

6to4relay コマンドの構文は次のとおりです。


6to4relay -e [-a IPv4-address] -d -h
-e

6to4 ルーターとエニーキャスト 6to4 リレールーター間のトンネルサポートを有効にします。このオプションを指定すると、トンネルのエンドポイントアドレスが 192.88.99.1 (6to4 リレールーターのエニーキャストグループのデフォルトアドレス) に設定されます。

-a IPv4-address

6to4 ルーターと指定された IPv4-address の 6to4 リレールーター間にトンネルを確立します。

-d

6to4 リレールーターとの間のトンネリングのサポートを無効にします。これは、Oracle Solaris のデフォルトの設定です。

-h

6to4relay のヘルプを表示します。

詳細は、6to4relay(1M) のマニュアルページを参照してください。


例 11–3 6to4 リレールーターサポートのデフォルトの状態の表示

引数を指定せずに 6to4relay コマンドを実行すると、6to4 リレールーターサポートの現在の状態が表示されます。次の例に、Oracle Solaris における IPv6 実装のデフォルトを示します。


# /usr/sbin/6to4relay
6to4relay:6to4 Relay Router communication support is disabled


例 11–4 6to4 リレールーターサポートを有効にした状態の表示

リレールーターサポートが有効に設定されている場合には、6to4relay を実行すると次のように表示されます。


# /usr/sbin/6to4relay
6to4relay:6to4 Relay Router communication support is enabled
IPv4 destination address of Relay Router=192.88.99.1


例 11–5 6to4 リレールーターを指定した状態の表示

6to4relay コマンドに -a オプションと IPv4 アドレスを指定した場合、192.88.99.1 ではなく、- a オプションに指定した IPv4 アドレスが表示されます。

6to4relay は、-d-e、および -a IPv4 address オプションが成功したかどうかを報告しません。しかし、これらのオプションの実行時に発生した可能性のあるエラーは表示します。


IPv6 をサポートするための ifconfig コマンドの拡張

ifconfig コマンドにより、IPv6 インタフェースとトンネリングモジュールを plumb できるようになりました。ifconfig は、ioctl の拡張セットを使用して、IPv4 と IPv6 の両方のネットワークインタフェースを設定します。次に、IPv6 操作をサポートする ifconfig オプションについて説明します。ifconfig に関連する IPv4 と IPv6 の両方の作業については、ifconfig コマンドによるインタフェース構成の監視」を参照してください。

index

インタフェースインデックスを設定します。

tsrc/tdst

トンネルソース / 宛先を設定します。

addif

論理インタフェースの次の候補を作成します。

removeif

指定された IP アドレスの論理インタフェースを削除します。

destination

インタフェースにポイントツーポイント宛先アドレスを設定します。

set

インタフェースにアドレスとネットマスクのどちらか、または両方を設定します。

subnet

インタフェースのサブネットアドレスを設定します。

xmit/-xmit

インタフェースにおけるパケット伝送を使用可能または使用不能にします。

IPv6 を設定する手順については、第 7 章IPv6 ネットワークの構成 (手順)を参照してください。


例 11–6 ifconfig コマンドの -addif オプションによる IPv6 論理インタフェースの追加

次の形式の ifconfig コマンドは、 hme0:3 論理インタフェースを作成します。


# ifconfig hme0 inet6 addif up
Created new logical interface hme0:3

次の形式の ifconfig は、新しいインタフェースの作成を確認します。


# ifconfig hme0:3 inet6
hme0:3: flags=2000841<UP,RUNNING,MULTICAST,IPv6> mtu 1500 index 2
		inet6  inet6 fe80::203:baff:fe11:b321/10


例 11–7 ifconfig コマンドの -removeif オプションによる IPv6 論理インタフェースの削除

次の形式の ifconfig コマンドは、 hme0:3 論理インタフェースを削除します。


# ifconfig hme0:3 inet6 down

# ifconfig hme0 inet6 removeif 1234::5678


例 11–8 ifconfig コマンドによる IPv6 トンネルソースの設定


# ifconfig ip.tun0 inet6 plumb index 13

物理インタフェース名に関連するトンネルを開きます。


# ifconfig ip.tun0 inet6
ip.tun0: flags=2200850<POINTOPOINT,RUNNING,MULTICAST,NONUD,
#IPv6> mtu 1480 index 13
		inet tunnel src 0.0.0.0 
		inet6 fe80::/10 --> :: 

トンネルデバイスを使用して、そのデバイスの状態を報告するように、TCP/IP に必要なストリームを設定します。


# ifconfig ip.tun0 inet6 tsrc 120.46.86.158 tdst 120.46.86.122

トンネルのソースアドレスと宛先アドレスを設定します。


# ifconfig ip.tun0 inet6
ip.tun0: flags=2200850<POINTOPOINT,RUNNING,MULTICAST,NONUD,
IPv6> mtu 1480 index 13
		inet tunnel src 120.46.86.158  tunnel dst 120.46.86.122
		inet6 fe80::8192:569e/10 --> fe80::8192:567a

設定後のデバイスの新しい状態を報告します。



例 11–9 ifconfig による 6to4 トンネルの設定 (長形式)

この 6to4 擬似インタフェース設定例は、サブネット ID として 1 を使用し、ホスト ID を 16 進形式で指定しています。


# ifconfig ip.6to4tun0 inet6 plumb
# ifconfig ip.6to4tun0 inet tsrc 129.146.86.187 \
2002:8192:56bb:1::8192:56bb/64 up

# ifconfig ip.6to4tun0 inet6
ip.6to4tun0: flags=2200041<UP,RUNNING,NONUD,IPv6>mtu 1480 index 11
        inet tunnel src 129.146.86.187 
        tunnel hop limit 60 
        inet6 2002:8192:56bb:1::8192:56bb/64 


例 11–10 ifconfig による 6to4 トンネルの設定 (短形式)

この例では、6to4 トンネルを設定するための短い形式を示します。


# ifconfig ip.6to4tun0 inet6 plumb
# ifconfig ip.6to4tun0 inet tsrc 129.146.86.187 up

# ifconfig ip.6to4tun0 inet6
ip.6to4tun0: flags=2200041<UP,RUNNING,NONUD,IPv6>mtu 1480 index 11
        inet tunnel src 129.146.86.187 
        tunnel hop limit 60 
        inet6 2002:8192:56bb::1/64 

IPv6 をサポートするための netstat コマンドの変更

netstat コマンドは、IPv4 ネットワークと IPv6 ネットワークの両方の状態を表示します。 表示するプロトコル情報を選択するには、/etc/default/inet_type ファイルに DEFAULT_IP 値を設定するか、-f コマンド行オプションを使用します。DEFAULT_IP のパラメータ設定では、netstat に IPv4 情報だけが表示されていることを確認できます。この設定は、-f オプションで無効にできます。inet_type ファイルの詳細については、inet_type(4) のマニュアルページを参照してください。

netstat コマンドの -p オプションは、net-to-media テーブルを表示します。これは、 IPv4 の場合は ARP テーブルであり、IPv6 の場合は近傍キャッシュです。詳細は、netstat(1M) のマニュアルページを参照してください。このコマンドを使用する手順については、「ソケットの状態を表示する方法」を参照してください。

IPv6 をサポートするための snoop コマンドの変更

snoop コマンドは、IPv4 パケットと IPv6 パケットの両方を取り込むことができます。IPv6 ヘッダー、IPv6 拡張ヘッダー、ICMPv6 ヘッダー、近傍検索プロトコルデータを表示できます。デフォルトで、snoop コマンドは、IPv4 パケットと IPv6 パケットの両方を表示します。ip または ip6 のプロトコルキーワードを指定した場合、snoop コマンドは IPv4 パケットまたは IPv6 パケットだけを表示します。IPv6 フィルタオプションでは、すべてのパケットをフィルタの対象にでき (IPv4 と IPv6 の両方)、IPv6 パケットだけが表示されます。詳細は、snoop(1m) のマニュアルページを参照してください。snoop コマンドを使用する手順については、「IPv6 ネットワークトラフィックを監視する方法」を参照してください。

IPv6 をサポートするための route コマンドの変更

route コマンドは IPv4 ルートと IPv6 ルートの両方で動作します。デフォルトでは、IPv4 ルートで動作します。route コマンドのすぐあとに -inet6 コマンド行オプションを指定した場合、route コマンドは IPv6 ルート上で動作します。詳細は、route(1M) のマニュアルページを参照してください。

IPv6 をサポートするための ping コマンドの変更

ping コマンドは、ターゲットホストを検証するのに、IPv4 プロトコルと IPv6 プロトコルの両方で使用できます。プロトコル選択は、指定のターゲットホストのネームサーバーが戻すアドレスに依存します。デフォルトでネームサーバーによってターゲットホストの IPv6 アドレスが返されると、ping コマンドは IPv6 プロトコルを使用します。サーバーが IPv4 アドレスだけを戻すと、ping コマンドは IPv4 プロトコルを使用します。-A コマンド行オプションで使用するプロトコルを指定すれば、この動作を無効にできます。

詳細については、ping(1M) のマニュアルページを参照してください。ping を使用する手順については、ping コマンドによるリモートホストの検証」を参照してください。

IPv6 をサポートするための traceroute コマンドの変更

traceroute コマンドは、指定したホストへの IPv4 ルートと IPv6 ルートの両方で使用できます。使用するプロトコルの選択について、traceroute では、ping と同じアルゴリズムを使用します。選択を無効にするには、-A コマンド行オプションを使用します。マルチホームホストのすべてのアドレスまでの各ルートは -a コマンド行オプションでトレースできます。

詳細については、traceroute(1M) のマニュアルページを参照してください。traceroute を使用する手順については、traceroute コマンドによる経路制御情報の表示」を参照してください。

IPv6 関連のデーモン

この節では、IPv6 関連のデーモンについて説明します。

in.ndpd デーモン、近傍検索用

in.ndpd デーモンは、IPv6 近傍検索プロトコルとルーター発見を実装します。このデーモンは、IPv6 のアドレス自動設定も実装します。次に、in.ndpd でサポートされるオプションを示します。

-d

デバッグを有効にします。

-D

特定のイベントのデバッグを有効にします。

-f

デフォルトの /etc/inet/ndpd.conf ファイル以外で、設定データを読み取るファイルを指定します。

-I

インタフェースごとに関連情報を印刷します。

-n

ルーター広告をループバックしません。

-r

受信パケットを無視します。

-v

冗長モードを指定します (さまざまな種類の診断メッセージを報告する)。

-t

パケット追跡をオンに設定します。

in.ndpd デーモンは、/etc/inet/ndpd.conf 設定ファイルに設定されたパラメータと、/var/inet/ndpd_state.interface 起動ファイルの任意の適用可能なパラメータによって制御されます。

/etc/inet/ndpd.conf が存在すると構文解析され、ノードをルーターとして使用するための設定が行われます。表 11–2 に、このファイルに現れる可能性がある有効なキーワードのリストを示します。ホストを起動しても、ルーターがすぐには使用できない場合があります。ルーターによって通知されたパケットがドロップしたり、また、通知されたパケットがホストに届かない場合もあります。

/var/inet/ndpd_state.interface ファイルは状態ファイルです。このファイルはノードごとに定期的に更新されます。ノードに障害が発生し再起動した場合、ルーターがなくてもノードはインタフェースを設定できます。このファイルにはインタフェースアドレス、最終更新時間、有効期間などの情報が含まれています。また、先のルーター広告で得られた情報も含まれています。


注 –

状態ファイルの内容を変更する必要はありません。このファイルは、in.ndpd デーモンが自動的に管理します。


設定変数とそれに指定できる値のリストについては、in.ndpd(1M) のマニュアルページと ndpd.conf(4) のマニュアルページを参照してください。

in.ripngd デーモン、IPv6 経路制御用

in.ripngd デーモンは、RIPng (Routing Information Protocol next-generation for IPv6 routers) を実装します。RIPng は IPv6 における RIP 相当機能を定義します。routeadm コマンドで IPv6 ルーターを設定し、IPv6 経路制御を有効にした場合、in.ripngd デーモンはそのルーターに RIPng を実装します。

次に、RIPng のサポートされるオプションを示します。

-p n

n は RIPNG パケットの送受信に使用する代替ポート番号を指定します。

-q

経路制御情報を打ち切ります。

-s

デーモンがルーターとして動作しているかどうかの経路制御情報の提供を強制します。

-P

ポイズンリバースを打ち切ります。

-S

in.ripngd がルーターとして機能しない場合、各ルーターにはデフォルトのルートだけが指定されます。

inetd デーモンと IPv6 サービス

IPv6 が有効なサーバーアプリケーションは、IPv4 要求と IPv6 要求の両方、あるいは、IPv6 要求だけを処理できます。IPv6 が有効なサーバーは常に、IPv6 ソケット経由の要求を処理します。さらに、IPv6 が有効なサーバーは、対応するクライアントで使用しているプロトコルと同じプロトコルを使用します。IPv6 用にサービスを追加または変更するには、Service Management Facility (SMF) から入手できるコマンドを使用します。

IPv6 サービスを設定するには、そのサービスの inetadm プロファイルにある proto フィールド値に、適切な値のリストが含まれていることを確認する必要があります。

Oracle Solaris コマンドを別の実装で置き換えた場合、そのサービスの実装が IPv6 をサポートすることを確認する必要があります。その実装が IPv6 をサポートしない場合、proto 値と して、tcpudp、または sctp のいずれかを指定する必要があります。

次に、IPv4 とIPv6 の両方をサポートし、SCTP で動作する echo サービスマニフェストに inetadm を実行した結果のプロファイルを示します。


# inetadm -l svc:/network/echo:sctp_stream
	SCOPE    NAME=VALUE	  name="echo"
	         endpoint_type="stream"
	         proto="sctp6"
	         isrpc=FALSE
	         wait=FALSE
	         exec="/usr/lib/inet/in.echod -s"
	         user="root"
	default  bind_addr=""
	default  bind_fail_max=-1
	default  bind_fail_interval=-1
	default  max_con_rate=-1
	default  max_copies=-1
	default  con_rate_offline=-1
	default  failrate_cnt=40
	default  failrate_interval=60
	default  inherit_env=TRUE
	default  tcp_trace=FALSE
	default  tcp_wrappers=FALSE

proto フィールドの値を変更するには、次の構文を使用します。


# inetadm -m FMRI proto="transport-protocols"

Oracle Solaris ソフトウェアが提供されるサーバーはすべて、proto 値として、tcp6udp6、または sctp6 のいずれかを指定するプロファイルエントリを 1 つだけ必要とします。しかし、リモートシェルサーバー (shell) とリモート実行サーバー (exec) は、現在、単一のサービスインスタンスで設定されており、proto 値として、tcptcp6only の両方を含める必要があります。たとえば、shellproto 値を設定するには、次のコマンドを発行します。


# inetadm -m network/shell:default proto="tcp,tcp6only"

ソケットを使用する IPv6 対応サーバーの作成方法の詳細については、『プログラミングインタフェース』のソケット API の IPv6 拡張機能を参照してください。

サービスを IPv6 用に設定するときの注意事項

サービスを IPv6 用に追加または変更するときには、次のことに注意しておく必要があります。

IPv6 近傍検索プロトコル

IPv6 は近傍検索プロトコルを導入します (RFC 2461, Neighbor Discovery for IP Version 6 (IPv6) を参照)。近傍検索の主な機能の概要については、「IPv6 近傍検索プロトコルの概要」を参照してください。

この節では、近傍検索プロトコルの次の機能について説明します。

近傍検索からの ICMP メッセージ

近傍検索では、次の 5 種類の新しい ICMP (インターネット制御メッセージプロトコル) メッセージを定義します。これらのメッセージの目的は、次のとおりです。

自動設定プロセス

この節では、自動設定中にインタフェースが実行する一般的な手順の概要について説明します。自動設定が行われるのはマルチキャスト対応リンクだけです。

  1. たとえば、ノードの起動中、マルチキャスト対応インタフェースが有効になります。

  2. このノードは、そのインタフェースのリンクローカルアドレスを生成することによって、自動設定プロセスを開始します。

    リンクローカルアドレスは、インタフェースの MAC (Media Access Control) アドレスから形成されます。

  3. このノードは、仮リンクローカルアドレスをターゲットとする近傍要請メッセージを送信します。

    このメッセージの目的は、仮リンクローカルアドレスが、すでにそのリンク上の別のノードによって使用されているかどうかを確認することです。この確認が終わったら、リンクローカルアドレスをインタフェースに割り当てることができます。

    1. 別のノードがすでにそのアドレスを使用していた場合、その別のノードは近傍通知メッセージを戻して、そのアドレスが使用中であることを伝えます。

    2. 別のノードがそのアドレスを使用しようと試みている場合、そのノードもその宛先に近傍要請を送信します。

      近傍要請送信や再送の数と、連続した要請間の遅延 はリンクによって異なります。これらのパラメータは、必要であれば設定できます。

  4. 仮リンクローカルアドレスが一意でないとノードが判断した場合、自動設定は停止します。その時点で、インタフェースのリンクローカルアドレスは手動で設定する必要があります。

    しかし、ここで、デフォルト以外の代替のインタフェース ID を指定することも可能です。これにより、一意であると考えられる新しいインタフェース ID を使用して、自動設定機構を再開できます。

  5. この仮リンクローカルアドレスが一意であると判断されると、ノードはインタフェースにそのアドレスを割り当てます。

    このとき、ノードは近傍ノードと IP レベルで接続されます。自動設定手順の残りは、ホストだけで実行されます。

ルーター広告の受信

自動設定の次の段階は、ルーター広告を受信するか、ルーターが存在しないことを判断することです。ルーターがあれば、ホストが実行すべき自動設定の種類を指定したルーター広告が送信されます。

ルーターはルーター広告を定期的に送信します。ただし、連続した送信と送信の間の遅延は、自動設定を実行するホスト側の待機時間より通常は長くなります。通知を迅速に受信するため、すべてのルーターマルチキャストグループに 1 つまたは複数のルーター要請を送信します。

接頭辞設定変数

ルーター広告には、ステートレスアドレス自動設定が接頭辞を生成するときに使用する接頭辞変数とその情報が含まれます。ルーター広告の Stateless Address Autoconfiguration フィールドは個別に処理されます。接頭辞情報オプションフィールドの1 つである Address Autoconfiguration フラグは、オプションがステートレス自動設定にも適用されるかどうかを表します。適用される場合、補助オプションフィールドにサブネット接頭辞と寿命値が含まれます。これらの値は、接頭辞から作成されたアドレスがどれだけの時間優先権を持ち有効であるかを表します。

ルーターは定期的にルーター広告を生成するため、ホストは新しい通知を受信し続けます。IPv6 が有効なホストは、各通知に含まれる情報を処理します。情報を追加します。また、ホストは前の通知で受け取った情報を更新します。

アドレスの一意性

セキュリティーのため、すべてのアドレスは、インタフェースに割り当てられる前に、その一意性をテストする必要があります。ただし、ステートレス自動設定で作成したアドレスの場合は状況が異なります。アドレスの一意性は、インタフェース ID から生成されるアドレスの一部で主に決まります。したがって、ノードにおいてリンクローカルアドレスの一意性が確認されると、ほかのアドレスの個別の確認は不要になります。これらのアドレスが、同じインタフェース ID から生成されているためです。ただし、手動で得られるアドレスはすべて、個別に一意であることを確認する必要があります。一部のサイトのシステム管理者は、重複アドレスの検出を実行するためのオーバーヘッドが大きく、それを実行することで得られる利益が帳消しになると信じています。そのようなサイトでは、インタフェース別設定フラグの設定で重複アドレスの検出の使用を無効にできます。

自動設定処理を短時間で終了するために、ルーター広告の待機、リンクローカルアドレスの生成、およびその一意性の確認を、ホストで並列して実行できます。ルーターでは、ルーター要請に対する応答が数秒遅れる可能性があります。そのため、上記 2 つの手順を 1 つずつ実行すると、自動設定を完了するために必要な合計時間が大幅に長くなる可能性があります。

近傍要請と不到達

近傍検索は、「近傍要請」メッセージを使用して、複数のノードに同じユニキャストアドレスが割り当てられているかどうかを判断します。「近傍不到達検出」では、近傍エラーや近傍への送信パスのエラーを検出します。近傍不到達検出では、近傍に送信されるパケットがその近傍に実際にアクセスして、パケットがノードの IP 層によって適切に処理されているかどうかを判断します。

近傍不到達検出では、2 つのソースの確認を使用します。 つまり、上位層プロトコルと近傍要請メッセージです。可能な場合、上位層のプロトコルでは、接続が送信を処理中であるという肯定確認を戻します。たとえば、新しい TCP 確認を受信した場合、以前送信されたデータが正しく送信されたことが確認されます。

あるノードが上位層プロトコルから肯定的な確認を受信しない場合、このノードはユニキャスト近傍要請メッセージを送信します。このメッセージは、次のホップからの到達可能確認として近傍通知を要請します。不要なネットワークトラフィックを避けるため、ノードからアクティブにパケットが送信されている近傍にだけ探査メッセージが送信されます。

重複アドレスの検出アルゴリズム

すべての設定されたアドレスが特定のリンク上で一意であるかどうかを確認するために、ノードは「重複アドレス検出」アルゴリズムをアドレスに対して実行します。この実行は、インタフェースにアドレスを割り当てる前に行われる必要があります。重複アドレスの検出アルゴリズムは、すべてのアドレスを対象として実行されます。

この節で指定する自動設定プロセスは、ホストにだけ適用し、ルーターには適用しません。ホストの自動設定では、ルーターが通知した情報を使用するため、ルーターは別の手段で設定する必要があります。ただし、この章で説明した機構を使用して、ルーターによってリンクローカルアドレスが生成される場合があります。また、インタフェースに割り当てられる前に、すべてのアドレスにおいてルーターによる重複アドレスの検出アルゴリズムが正常終了していることが望まれます。

プロキシ通知

ターゲットアドレスの代わりにパケットを受信するルーターは、取り消しできない近傍通知を発行できる。ルーターは、近傍要請に応答できない宛先アドレスのかわりにパケットを受信する。現在はプロキシの使用方法は指定されていないが、オフリンクになった移動ノードをプロキシ通知で処理できる可能性がある。ただし、プロキシは、このプロトコルを実装していないノードを処理する一般的な機構として使用されることはない

入力負荷分散

インタフェースを複製したノードでは、同じリンク上の複数のネットワークインタフェース間の入力パケットの受信の負荷分散ができる。このようなノードには、同じインタフェースに複数のリンクローカルアドレスが割り当てられる。たとえば、1 つのネットワークドライバで、複数のネットワークインタフェースカードを、複数のリンクローカルアドレスを持つ 1 つの論理インタフェースとして表現できる。

負荷分散は、ルーターがソースリンクローカルアドレスをルーター広告パケットから省略することを可能にすることで処理する。結果として、近傍は近傍要請メッセージを使用して、ルーターのリンクローカルアドレスを確認する。返される近傍通知メッセージには、要請元によって異なるリンクローカルアドレスが含まれ る

リンクローカルアドレスの変更

リンクローカルアドレスの変更を認識したノードは、非要請近傍通知パケットをマルチキャストできる。ノードは、すべてのノードにパケットをマルチキャストして、無効になったキャッシュに入っているリンクローカルアドレスを更新できる。非要請通知の送信は、性能強化が目的。近傍不到達検出アルゴリズムにより、すべてのノードが確実に新しいアドレスを探索できるが、遅延が多少伸びる可能性がある

近傍検索と ARP および関連する IPv4 プロトコルとの比較

IPv6 近傍検索プロトコルの機能は、次のような IPv4 プロトコルの組み合わせのようなものです。 つまり、アドレス解決プロトコル (ARP)、Internet Control Message Protocol (ICMP)、ルーター発見、および ICMP リダイレクトです。IPv4 には近傍不到達検出に全般的に対応できるプロトコルや機構はありませんでした。ただし、ホスト条件ではデッドゲートウェイ検出に対応できるアルゴリズムがいくつか指定されています。デッドゲートウェイ検出は、近傍不到達検出の一部です。

次のリストは、近傍検索プロトコルと関連する IPv4 プロトコルセットを比較します。

IPv6 の経路制御

IPv6 における経路制御は、Classless Inter-Domain Routing (CIDR) 下における IPv4 の経路制御とほとんど同じです。唯一の違いは、IPv4 では 32 ビットアドレスを使用しますが、IPv6 では 128 ビットアドレスを使用することです。非常に簡単な拡張で、IPv4 の経路制御アルゴリズム (OSPF、RIP、IDRP、IS-IS など) をすべて IPv6 の経路制御に使用できます。

IPv6 には、新たに強力な経路制御機能をサポートした簡単な経路制御拡張機能も組み込まれました。次のリストに、新しい経路制御機能を示します。

新しい経路制御機能を利用するには、IPv6 経路制御オプションを使用する IPv6 アドレスのシーケンスを作成します。IPv6 の送信元は、経路制御オプションでを使用して、パケットが宛先に至るまでに経由する複数の中間ノード (またはトポロジカルグループ) をリストします。この中間ノードは、パケットの宛先の途中に通過します。この機能は、IPv4 での緩やかな経路制御と記録オプションによく似ています。

アドレスシーケンスを一般的に使用する場合、通常は、ホストが受信したパケットのルートを逆戻りする必要があります。このパケットは、IPv6 認証ヘッダーを使用して正常に認証される必要があります。パケットを発信者に戻すには、アドレスシーケンスがパケット内に含まれている必要があります。IPv6 ホストの実装では、この方式により始点ルートの処理と逆引きをサポートしています。始点ルートの処理と逆引きは、IPv6 の新機能 (プロバイダの選択や拡張アドレスなど) を実装するホストをプロバイダが使用するためのポイントです。

ルーター広告

マルチキャスト対応リンクとポイントツーポイントリンクでは、各ルーターは定期的にルーター広告パケットをマルチキャストグループに送信して、ルーターが利用できることを知らせます。ホストはすべてのルーターからルーター広告を受け取り、デフォルトルーターのリストを作成します。ルーターは頻繁にルーター広告を生成するので、ホストは数分でルーターが利用できることを知ることができます。ただし、通知がないからといってルーターエラーであると判断できるほどの頻度ではありません。エラー検出には、近傍到達不能性を判別する別の検出アルゴリズムを利用します。

ルーター広告接頭辞

ルーター広告には、ホストがルーターと同じリンク上にいる (つまり、オンリンクである) かどうかを判断するときに使用するサブネット接頭辞のリストが含まれます。この接頭辞リストは、自動アドレス設定にも使用されます。接頭辞に付属するフラグは特定の接頭辞の使用目的を表します。ホストは通知されたオンリンク接頭辞を使用して、パケットの宛先がオンリンクであるか、あるいはルーターを越えているかを判断するためのリストを作成および管理します。通知されたオンリンク接頭辞になくても宛先がオンリンクの場合があります。この場合、ルーターはリダイレクトを送ることができます。リダイレクトは送信側に、宛先が近傍であることを知らせます。

ルーター広告と接頭辞別のフラグを使用すると、ルーターはステートレスアドレス自動設定を実行する方法をホストに伝えることができます。

ルーター広告メッセージ

ルーター広告メッセージには、ホストが発信するパケットに使用するインターネットパラメータ (ホップの制限など) も含めることができます。また、オプションでリンク MTU などのリンクパラメータも含めることができます。この機能により、重要なパラメータを集中管理できます。パラメータは、ルーターに設定され、関連付けられたすべてのホストに自動的に伝達されます。

アドレス解決を行うために、ノードは、宛先ノードがリンク層アドレスを戻すように要求する近傍要請をマルチキャストグループに送信します。マルチキャストされた近傍要請メッセージは、宛先アドレスの要請先ノードのマルチキャストアドレスに送信されます。宛先は、そのリンク層アドレスをユニキャスト近傍通知メッセージで戻します。発信元と宛先の両方に対して 1 つの要求応答パケットペアで互いのリンク層アドレスを処理できます。発信元は、近傍要請に発信元のリンク層アドレスを組み込みます。

IPv6 トンネル

デュアルスタック (IPv4 と IPv6 の両用サイト) における依存を最小限に抑えるため、2 つの IPv6 ノード間のパス中にあるすべてのルーターが IPv6 をサポートする必要はありません。このようなネットワーク構成をサポートする機構のことを「トンネル」と呼びます。基本的に IPv6 パケットは IPv4 パケット内部に組み込まれ、IPv4 ルーター間を転送されます。次の図に、IPv6 ルーター (図中の “R”) を通るトンネル機構を示します。

図 11–5 IPv6 トンネル機構

IPv4 を使用するルーターを通るトンネルにおいて、IPv6 パケットが IPv4 パケット内にどのように格納されるかを示します。

Oracle Solaris IPv6 実装には、2 つの種類のトンネル機構があります。

作成されたトンネルは現在、インターネット上の、たとえば、MBONE (IPv4 マルチキャストバックボーン ) で、ほかの目的に使用されています。設定トンネルの作成手順からいうと、2 つのルー ターを設定して、その間に IPv4 ネットワーク経由の仮想ポイントツーポイントリンクを作成します。近い将来、インターネットのさまざまな局面に、この種のトンネルが利用されるでしょう。

自動トンネルには、IPv4 互換アドレスを必要とします。自動トンネルは、IPv6 ルーターが使用できない場合に IPv6 ノードを接続するために使用できます。このようなトンネルは、自動トンネルネットワークインタフェースを設定することによって、デュアルスタックホストまたはデュアルスタックルーターから作成できます。トンネルは常に、デュアルスタックホストで終了します。トンネルのはたらきにより、宛先 IPv4 アドレス (トンネルの終点) が IPv4 互換宛先アドレスから抽出されて動的に指定されます。

トンネルの設定

トンネルインタフェースのフォーマットは次のとおりです。


ip.tun ppa

ppa は物理的な接続ポイントです。

システムの起動時、トンネルモジュール (tun) は ifconfig コマンドによって IP の一番上にプッシュされ、仮想インタフェースが作成されます。このプッシュは、hostname6.* ファイルを作成することによって行われます。

たとえば、IPv4 ネットワーク経由で IPv6 パケットをカプセル化するためのトンネルを作成するには、次のファイルを作成します。


/etc/hostname6.ip.tun0

このファイルの内容は、インタフェースが plumb されたあとで、ifconfig に渡されます。ポイントツーポイントトンネルの設定に必要なパラメータになります。


例 11–11 IPv6 over IPv4 トンネルの hostname6.ip.tun0 ファイル

次に、hostname6.ip.tun0 ファイルのエントリの例を示します。


tsrc 10.10.10.23 tdst 172.16.7.19 up
addif 2001:db8:3b4c:1:5678:5678::2 up

この例では、IPv4 ソースアドレスと宛先アドレスは、IPv6 リンクローカルアドレスを自動設定するためのトークンとして使用されます。これらのアドレスは、ip.tun0 インタフェースのソースと宛先です。次の 2 つのインタフェース ip.tun0 インタフェースと、論理インタフェース ip.tun0:1 が設定されます。論理インタフェースには、addif コマンドによって指定されたソースと宛先 IPv6 アドレスがあります。

システムをマルチユーザーモードで起動すると、これらの設定ファイルの内容は変更されずに ifconfig に渡されます。例 11–11 内のエントリは、次と同等です。


# ifconfig ip.tun0 inet6 plumb
# ifconfig ip.tun0 inet6 tsrc 10.0.0.23 tdst 172.16.7.19 up
# ifconfig ip.tun0 inet6 addif 2001:db8:3b4c:1:5678:5678::2 up

次に、このトンネルにおける ifconfig -a の出力を示します。


ip.tun0: flags=2200850<UP,POINTOPOINT,RUNNING,MULTICAST,
  NONUD,IPv6> mtu 1480 index 6
        inet tunnel src 10.0.0.23  tunnel dst 172.16.7.19
        inet6 fe80::c0a8:6417/10 --> fe80::c0a8:713
ip.tun0:1: flags=2200850<UP,POINTOPOINT,RUNNING,MULTICAST,NONUD,IPv6> mtu 1480 
  index 5
        inet6 2001:db8:3b4c:1:5678:5678::2 

次の構文で設定ファイルに行を追加すれば、さらに論理インタフェースを設定できます。


addif IPv6-source IPv6-destination up

注 –

トンネルのどちらかの端がトンネル経由で 1 つ以上の接頭辞を通知する IPv6 ルーターである場合、トンネル設定ファイルには addif コマンドは必要ありません。ほかのアドレスは自動設定されるため、必要とされる可能性があるのは tsrctdst だけです。


場合によっては、特定のトンネルについて、固有のソースリンクローカルアドレスと宛先リンクローカルアドレスを手動で設定する必要があることもあります。その場合、設定ファイルの最初の行を変更して、これらのリンクローカルアドレスを組み込みます。次に例を示します。


tsrc 10.0.0.23 tdst 172.16.7.19 fe80::1/10 fe80::2 up

ソースのリンクローカルアドレスの接頭辞の長さが 10 であることに注目してください。この例では、ip.tun0 インタフェースは次のようになります。


ip.tun0: flags=2200850<UP,POINTOPOINT,RUNNING,MULTICAST,NONUD,IPv6> mtu 1480 
index 6
        inet tunnel src 10.0.0.23  tunnel dst 172.16.7.19
        inet6 fe80::1/10 --> fe80::2

IPv6 ネットワーク経由で IPv6 パケットをカプセル化するためのトンネル (IPv6 over IPv6 トンネル) を作成するには、次のファイル名を作成します。


/etc/hostname6.ip6.tun0

例 11–12 IPv6 over IPv6 トンネルの hostname6.ip6.tun0 ファイル

次に、IPv6 ネットワーク経由の IPv6 カプセル化における hostname6.ip6.tun0 ファイルのエントリの例を示します。


tsrc 2001:db8:3b4c:114:a00:20ff:fe72:668c 
        tdst 2001:db8:15fa:25:a00:20ff:fe9b:a1c3
fe80::4 fe80::61 up

IPv6 ネットワーク経由で IPv4 パケットをカプセル化するためのトンネル (IPv4 over IPv6 トンネル) を作成するには、次のファイル名を作成します。


/etc/hostname.ip6.tun0

例 11–13 IPv4 over IPv6 トンネルの hostname.ip6.tun0 ファイル

次に、IPv6 ネットワーク経由の IPv4 カプセル化における hostname.ip6.tun0 ファイルのエントリの例を示します。


tsrc 2001:db8:3b4c:114:a00:20ff:fe72:668c 
         tdst 2001:db8:15fa:25:a00:20ff:fe9b:a1c3
10.0.0.4 10.0.0.61 up

IPv4 ネットワーク経由で IPv4 パケットをカプセル化するためのトンネル (IPv4 over IPv4 トンネル) を作成するには、次のファイル名を作成します。


/etc/hostname.ip.tun0

例 11–14 IPv4 over IPv4 トンネルの hostname.ip.tun0 ファイル

次に、IPv4 ネットワーク経由の IPv4 カプセル化における hostname.ip.tun0 ファイルのエントリの例を示します。


tsrc 172.16.86.158 tdst 192.168.86.122
10.0.0.4 10.0.0.61 up

tun の固有の情報については、tun(7M) のマニュアルページを参照してください。IPv6 への移行期間におけるトンネルの一般的な概念については、「IPv6 トンネルの概要」を参照してください。トンネルを設定する手順については、「IPv6 サポート用にトンネルを構成するための作業 (作業マップ)」を参照してください。

6to4 自動トンネル

Oracle Solaris には、IPv4 から IPv 6 アドレス指定への移行期間における暫定的な優先方法として、6to4 トンネルがあります。6to4 トンネルを使用すると、孤立した IPv6 サイトが、IPv6 をサポートしていない IPv4 ネットワーク上の自動トンネルを通じて通信できるようになります。6to4 トンネルを使用するには、6to4 自動トンネルの片方のエンドポイントとして、境界ルーターを IPv6 ネットワークに設定する必要があります。そのあと、この 6to4 ルーターをほかの 6to4 サイトとの間のトンネルの構成要素として使用することも、あるいは必要に応じて 6to4 以外のネイティブ IPv6 サイトとの間のトンネルで使用することもできます。

この節では、6to4 に関連した次の参考情報を示します。

次の表では、6to4 トンネルを構成するための追加作業について説明し、有用な追加情報の入手先を示しています。

作業または技術情報 

参照先 

6to4 トンネルの設定作業 

「6to4 トンネルを設定する方法」

6to4 関連の RFC 

RFC 3056, "Connection of IPv6 Domains via IPv4 Clouds"

6to4 リレールーターとの間のトンネルのサポートを有効にする 6to4relay コマンドの詳細

6to4relay(1M)

6to4 のセキュリティー 

Security Considerations for 6to4

6to4 トンネルのトポロジ

6to4 トンネルは、あらゆる場所にあるすべての 6to4 サイトに IPv6 接続を提供します。同様に、リレールーターに転送するようにトンネルが構成されている場合、トンネルはネイティブ IPv6 インターネットも含むすべての IPv6 サイトへのリンクとしても機能します。次の図は、6to4 トンネルが 6to4 サイト間にこの接続を提供する仕組みを示しています。

図 11–6 2 つの 6to4 サイト間のトンネル

次の図は、6to4 トンネルを示したものです。この図の内容は、次の段落で説明しています。

この図は、独立した 2 つの 6to4 ネットワーク、サイト A とサイト B を示しています。各サイトは、IPv4 ネットワークに外部接続するようにルーターを設定してあります。IPv4 ネットワークを越える 6to4 トンネルによって、6to4 サイトをリンクする接続が提供されています。

IPv6 サイトを 6to4 サイトにするには、6to4 をサポートできるように 1 つ以上のルーターインタフェースを設定する必要があります。このインタフェースは、IPv4 ネットワークに対する外部接続を提供する必要があります。qfe0 で設定するアドレスは、一意 (世界で唯一) のものでなければなりません。次の図では、境界ルーター A のインタフェース qfe0 がサイト A を IPv4 ネットワークに接続しています。qfe0 を 6to4 擬似インタフェースとして設定するには、IPv4 アドレスを使用してあらかじめインタフェース qfe0 を設定しておきます。

上記の図では、6to4 サイト A はルーター A 上のインタフェース hme0hme1 に接続した 2 つのサブネットから構成されています。サイト A の両サブネットのすべての IPv6 ホストは、ルーター A からの通知を受け取ると 6to4 派生アドレスを使用して自動的に再設定を行います。

サイト B は、もう 1 つの独立した 6to4 サイトです。サイト A からトラフィックを正しく受け取るには、サイト B 側の境界ルーターを 6to4 をサポートするように設定する必要があります。この設定を行わないと、ルーターがサイト A から受け取るパケットが認識されずに削除されてしまいます。

6to4 トンネルを介したパケットフロー

この節では、ある 6to4 サイトにあるホストから、リモートの 6to4 サイトにあるホストまでのパケットのフローについて説明します。このシナリオでは、図 11–6 で使用したトポロジを使用します。このシナリオは、6to4 ルーターと 6to4 ホストがすでに設定済みであることを想定しています。

  1. 6to4 サイト A のサブネット 1 に存在するホストが伝送を行い、6to4 サイト B 上のホストが宛先として機能します。各パケットヘッダーには、送信元の 6to4 派生アドレスと宛先の 6to4 派生アドレスが含まれます。

  2. サイト A のルーターは、IPv4 ヘッダー内で各 6to4 パケットをカプセル化します。このプロセスでルーターは、カプセル化ヘッダーの IPv4 宛先アドレスを、サイト B のルーターアドレスに設定します。トンネルインタフェースを通過する各 IPv6 パケットの IPv6 宛先アドレスには、この IPv4 宛先アドレスも含まれています。したがって、ルーターはカプセル化ヘッダーに設定されている IPv4 宛先アドレスを特定することができます。続いてサイト A のルーターは、標準の IPv4 経路制御手続きを使用し IPv4 ネットワークを介してこのパケットを転送します。

  3. パケットが遭遇する IPv4 ルーターが、パケットの IPv4 宛先アドレスを使用して転送を行います。このアドレスはルーター B のインタフェースに使用される一意の (世界に 1 つしかない) IPv4 アドレスであり、6to4 擬似インタフェースとしても機能します。

  4. サイト A から送付されたパケットがルーター B に到着します。ルーター B は、IPv4 ヘッダーを削除して IPv6 パケットのカプセル化を解除します。

  5. 続いてルーター B は、IPv6 パケット内の宛先アドレスを使用してサイト B の受信ホストにパケットを転送します。

6to4 リレールーターとの間のトンネルについての考慮事項

6to4 リレールーターは、6to4 ではない ネイティブ IPv6 ネットワークと通信を行う必要がある 6to4 ルーターからのトンネルのエンドポイントとして機能します。本来、リレールーターは 6to4 サイトとネイティブ IPv6 サイトとの間のブリッジとして使用されます。この手法は安全ではない場合があるため、Oracle Solaris のデフォルト設定では 6to4 リレールーターのサポートは無効になっています。しかし、サイトでこのようなトンネルが必要な場合には 6to4relay コマンドを使用して次に示すようなトンネリングを有効にできます。

図 11–7 6to4 サイトと 6to4 リレールーター間のトンネル

この図は、6to4 ルーターと 6to4 リレールーター間のトンネルを示します。次のテキストは図について説明します。

図 11–7 において、6to4 Site A はネイティブな IPv6 Site B にあるノードと通信する必要があります。次の図に、Site A から IPv4 ネットワークを越える 6to4 トンネルに通じるトラフィックパスを示します。このトンネルは、6to4 ルーター A と 6to4 リレールーターをエンドポイントとして使用しています。6to4 リレールーターより先は IPv6 ネットワークであり、IPv6 サイト B はこのネットワークに接続されています。

6to4 サイトとネイティブ IPv6 サイト間のパケットフロー

この節では、6to4 サイトからネイティブな IPv6 サイトまでのパケットフローについて説明します。このシナリオでは、図 11–7 で使用したトポロジを使用します。

  1. 6to4 サイト A 上のホストから、ネイティブ IPv6 サイト B 上のホストに向けて伝送を行います。各パケットヘッダーには、その発信元アドレスとして 6to4 派生アドレスが指定されています。宛先アドレスは標準の IPv6 アドレスです。

  2. サイト A の 6to4 ルーターは、各パケットを宛先である 6to4 ルーターの Ipv4 アドレスを持つ IPv4 ヘッダー内でカプセル化します。この 6to4 ルーターは、標準の IPv4 経路制御手続きを使用し IPv4 ネットワークを介してこのパケットを転送します。パケットが遭遇する IPv4 ルーターが、6to4 リレールーターにパケットを転送します。

  3. サイト A に物理的にもっとも近いエニーキャスト 6to4 リレールーターが、192.88.99.1 エニーキャストグループ宛てのパケットを検出します。


    注 –

    6to4 リレールーターエニーキャストグループの一部である 6to4 リレールーターには、192.88.99.1 という IP アドレスが割り当てられます。このエニーキャストアドレスは、6to4 リレールーターのデフォルトアドレスです。特定の 6to4 リレールーターを使用する必要がある場合は、デフォルトを上書きしてそのルーターの IPv4 アドレスを指定できます。


  4. このリレールーターは、IPv4 ヘッダーを取り除いて 6to4 パケットのカプセル化を解除し、ネイティブ IPv6 宛先アドレスを明らかにします。

  5. 続いてこのリレールーターは、IPv6 のみとなったパケットを IPv6 ネットワークに送信します。IPv6 ネットワークにおいて、パケットは最終的に Site B のルーターによって検出されます。続いてこのルーターが、宛先である IPv6 ノードにパケットを転送します。

Oracle Solaris ネームサービスに対する IPv6 拡張機能

この節では、IPv6 の実装によって導入されたネームサービスの変更について説明します。IPv6 アドレスは、どの Oracle Solaris ネームサービス(NIS、LDAP、DNS、およびファイル) にも格納できます。また、NIS over IPv6 RPC トランスポートを使用すると、NIS データを検出できます。

IPv6 の DNS 拡張機能

IPv6 固有なリソースレコードである AAAA リソースレコードについては、RFC 1886、DNS Extensions to Support IP Version 6を参照してください。この AAAA レコードは、ホスト名を 128 ビット IPv6 アドレスにマップします。PTR レコードは IPv6 でも、IP アドレスをホスト名にマップするときに使用されています。128 ビットアドレスの 32 の 4 ビットニブルは、IPv6 アドレス用に反転されています。各ニブルは対応する 16 進 ASCII 値に変換されます。変換後、ip6.int が追加されます。

nsswitch.conf ファイルへの変更

Solaris 10 11/06 以前のリリースでは、/etc/inet/ipnodes で IPv6 アドレスを調べる機能に加え、NIS、LDAP、DNS の各ネームサービスにも IPv6 サポートが追加されています。結果として、nsswitch.conf ファイルは、IPv6 検索をサポートするように変更されました。


hosts:  files dns nisplus [NOTFOUND=return]
ipnodes: files dns nisplus [NOTFOUND=return]

注 –

IPv4 アドレスと IPv6 アドレスでこれらの ipnodes データベースを生成してから、複数のネームサービスで ipnodes を探すように /etc/nsswitch.conf ファイルを変更してください。ホストアドレスの解決時に不要な遅延が発生してしまうからです (起動タイミングの遅れが発生することもあります)。


次の図に、nsswitch.conf ファイルと、gethostbyname コマンドと getipnodebyname コマンドを使用するアプリケーション用の新しいネームサービスデータベースの間の新しい関係を示します。斜体の項目は新規です。gethostbyname コマンドは、/etc/inet/hosts に保存されている IPv4 アドレスだけを調べます。Solaris 10 11/06 以前のリリースでは、getipnodebyname コマンドは、nsswitch.conf ファイルの ipnodes エントリで指定したデータベースを調べます。検索に失敗すると、nsswitch.conf ファイルの hosts エントリで指定したデータベースを調べます。

図 11–8 nsswitch.conf とネームサービスの関係

この図は、NIS、NIS+、files、および DNS データベースと nsswitch.conf ファイル間の関係を示しています。

ネームサービスの詳細は、『Solaris のシステム管理 (ネーミングとディレクトリサービス : DNS、NIS、LDAP 編)』を参照してください。

ネームサービスコマンドの変更

IPv6 をサポートするため、IPv6 アドレスは既存のネームサービスコマンドを使用して検索できます。たとえば、ypmatch コマンドは、新しい NIS マップに使用できます。nslookup コマンドでは、DNS の新しい AAAA レコードを調べることができます。

NFS と RPC による IPv6 のサポート

NFS ソフトウェアと遠隔手続き呼出し (RPC) ソフトウェアは、同じような方法で IPv6 をサポートします。NFS サービスに関連のある既存のコマンドは変更されていません。ほとんどの RPC アプリケーションが、変更なしで IPv6 で実行できます。トランスポート機能のある一部の高度 RPC アプリケーションに更新が必要な場合があります。

IPv6 over ATM のサポート

Oracle Solaris は、IPv6 経由の ATM、固定仮想回路 (PVC)、静的な交換仮想回路 (SVC) をサポートするようになりました。