JavaScript is required to for searching.
ナビゲーションリンクをスキップ
印刷ビューの終了
Oracle Solaris 11.1 での固定ネットワーク構成を使用したシステムの接続     Oracle Solaris 11.1 Information Library (日本語)
このドキュメントの評価
search filter icon
search icon

ドキュメントの情報

はじめに

1.  固定ネットワーク構成の概要

2.  ネットワーク用のシステムの構成

3.  データリンクの操作

4.  IP インタフェースの操作

基本的な ipadm コマンド

IP インタフェース構成の削除 (ipadm delete-ip)

IP インタフェース構成の無効化 (ipadm disable-ip)

インタフェースのアドレスの削除 (ipadm delete-addr)

IP インタフェースのプロパティーの設定

パケット転送の有効化

IP アドレスのプロパティーの設定

TCP/IP プロトコルのプロパティーの設定

グローバルなパケット転送の有効化

特権ポートの設定

マルチホームホストに対する対称ルーティングの実装

トラフィックの輻輳制御の実装

TCP 受信バッファーサイズの変更

IP インタフェースとアドレスの監視

IP インタフェースに関する一般情報の取得

IP インタフェースに関する情報の取得

IP インタフェースのプロパティーに関する情報の取得

IP アドレスに関する情報の取得

IP アドレスのプロパティーに関する情報の取得

5.  Oracle Solaris を実行するノートパソコン上での無線ネットワークの構成

A.  比較マップ: ifconfig コマンドと ipadm コマンド

B.  比較マップ: ndd コマンドと ipadm コマンド

索引

ドキュメントの品質向上のためのご意見をください
簡潔すぎた
読みづらかった、または難し過ぎた
重要な情報が欠けていた
内容が間違っていた
翻訳版が必要
その他
Your rating has been updated
貴重なご意見を有り難うございました!

あなたの貴重なご意見はより良いドキュメント作成の手助けとなります 内容の品質向上と追加コメントのためのアンケートに参加されますか?

TCP/IP プロトコルのプロパティーの設定

プロトコルのプロパティー (チューニング可能パラメータとも呼ばれる) を構成するには、ipadm コマンドを使用します。ipadm は、チューニング可能パラメータを設定するために以前のリリースで一般的に使用されていた ndd コマンドを置き換えます。

TCP/IP プロパティーは、インタフェースベースまたはグローバルのどちらにもできます。プロパティーを特定のインタフェースに適用することも、ゾーン内のすべてのインタフェースにグローバルに適用することもできます。グローバルなプロパティーは、非大域ゾーンごとに異なる値にすることができます。サポートされるプロトコルのプロパティーの一覧については、ipadm(1M) のマニュアルページを参照してください。

ネットワークが機能するには、通常、TCP/IP インターネットプロトコルのデフォルト値で十分です。ただし、デフォルト値が特定のネットワークトポロジに対して十分でない場合は、必要に応じてこれらのプロパティーをカスタマイズできます。

TCP/IP インタフェースのプロパティーを設定するには、3 つの ipadm サブコマンドを使用します。


注 - プロパティーが複数の値を受け取ることができる場合は、次のように += 修飾子を使用してプロパティーに複数の値を割り当てます。

ipadm set-prop -p property+=value1 [value2 value3 ...]

プロパティーの値のセットから 1 つの値を削除するには、次のように -= 修飾子を使用します。

ipadm set-prop -p property-=value2


グローバルなパケット転送の有効化

「パケット転送の有効化」では、インタフェース上でパケット転送を有効にする方法を示します。IP インタフェースのプロパティーでパケット転送を設定すると、この機能を選択的に実装できます。このプロパティーは、システム上の特定のインタフェース上でのみ有効にできます。

IP インタフェースの数に関係なく、システム全体でパケット転送を有効にするには、プロトコルのプロパティーを使用します。プロトコルでのプロパティー名は、IP インタフェースと同じ forwarding です。このコマンドは、IPv4 プロトコルと IPv6 プロトコルでパケット転送を有効にするために別個に実行する必要があります。

次の例は、システム上のすべての IPv4 および IPv6 トラフィックに対してパケット転送を有効にする方法を示しています。

# ipadm show-prop -p forwarding ip
PROTO   PROPERTY     PERM   CURRENT   PERSISTENT   DEFAULT   POSSIBLE
ipv4    forwarding   rw     off       --           off       on,off
ipv6    forwarding   rw     off       --           off       on,off
#
# ipadm set-prop -p forwarding=on ipv4
# ipadm set-prop -p forwarding=on ipv6
#
# ipadm show-prop ip
PROTO   PROPERTY     PERM   CURRENT   PERSISTENT   DEFAULT   POSSIBLE
ipv4    forwarding   rw     on        on           off       on,off
ipv4    ttl          rw     255       --           255       1-255
ipv6    forwarding   rw     on        on           off       on,off
ipv6    hoplimit     rw     255       --           255       1-255#

注 - IP インタフェースとプロトコルの forwarding プロパティーは、どちらも排他的ではありません。インタフェースとプロトコルのプロパティーを同時に設定できます。たとえば、プロトコル上でグローバルにパケット転送を有効にしてから、システム上の IP インタフェースごとにパケット転送をカスタマイズできます。したがって、そのシステムではパケット転送はグローバルに有効ですが、選択的でもあります。


特権ポートの設定

TCP、UDP、SCTP などのトランスポートプロトコルでは、ポート 1–1023 はデフォルトの特権ポートであり、root アクセス権で実行されるプロセスのみがこれらのポートにバインドできます。ipadm コマンドを使用することにより、この指定されたデフォルト範囲を超えて、あるポートを特権ポートになるように予約することができます。したがって、root プロセスのみがそのポートにバインドできます。特権ポートを設定するには、トランスポートプロトコルの次のプロパティーをカスタマイズします。

たとえば、TCP ポート 3001 および 3050 を、root ユーザーのみにアクセスを制限する特権ポートとして設定するとします。smallest_nonpriv_port プロパティーは、1024 が非特権ポートの最小ポート番号であることを示しています。したがって、指定されたポート 3001 および 3050 は特権ポートに変更できます。次のようなコマンドを実行して処理を進めます。

# ipadm show-prop -p smallest_nonpriv_port tcp
PROTO PROPERTY                PERM   CURRENT   PERSISTENT   DEFAULT   POSSIBLE
tcp   smallest_nonpriv_port   rw     1024      --           1024      1024-32768

# ipadm show-prop -p extra_priv_ports tcp
PROTO   PROPERTY           PERM   CURRENT     PERSISTENT   DEFAULT     POSSIBLE
tcp     extra_priv_ports   rw     2049,4045   --           2049,4045   1-65535

# ipadm set-prop -p extra_priv_ports+=3001 tcp        
# ipadm set-prop -p extra_priv_ports+=3050 tcp
# ipadm show-prop -p extra_priv_ports tcp
PROTO   PROPERTY           PERM   CURRENT     PERSISTENT   DEFAULT     POSSIBLE
tcp     extra_priv_ports   rw     2049,4045   3001,3050    2049,4045   1-65535
                                  3001,3050

特権ポートからいずれかのポート (たとえば、4045) を削除するには、次のコマンドを入力します。

# ipadm set-prop -p extra_priv_ports-=4045 tcp
# ipadm show-prop -p extra_priv_ports tcp
PROTO   PROPERTY           PERM   CURRENT     PERSISTENT   DEFAULT     POSSIBLE
tcp     extra_priv_ports   rw     2049,3001   3001,3050    2049,4045   1-65535
                                  3050

マルチホームホストに対する対称ルーティングの実装

デフォルトでは、複数のインタフェースを備えたシステム (マルチホームホストとも呼ばれる) は、ルーティングテーブル内のトラフィックの宛先への最長一致ルートに基づいてネットワークトラフィックをルーティングします。宛先への長さが等しいルートが複数存在する場合、Oracle Solaris はこれらのルートにトラフィックを分散させるために等コストマルチパス (ECMP) アルゴリズムを適用します。

この方法でのトラフィックの分散が、場合によっては最適でないことがあります。ある IP パケットが、そのパケット内の IP 発信元アドレスと同じサブネット上に存在しないマルチホームホスト上のインタフェース経由で送信される可能性があります。さらに、送信パケットが特定の受信要求への応答 (ICMP エコー要求など) である場合は、要求と応答が同じインタフェースをたどらない可能性があります。トラフィックのこのようなルーティング構成を非対称ルーティングと呼びます。インターネットサービスプロバイダが RFC 3704 (http://rfc-editor.org/rfc/bcp/bcp84.txt) に記載されているイングレスフィルタリングを実装している場合は、非対称ルーティング構成のために、送信パケットがプロバイダによって破棄されることがあります。

RFC 3704 は、インターネット全体にわたるサービス拒否攻撃の制限を目的にしています。この目的に従うには、ネットワークを対称ルーティング用に構成する必要があります。Oracle Solaris では、IP の hostmodel プロパティーを使用して、この要件を満たすことができます。このプロパティーは、マルチホームホスト経由で受信または送信されている IP パケットの動作を制御します。

hostmodel プロパティーは、3 つの値のいずれかに設定できます。

strong

RFC 1122 で定義されている強い終端システム (ES) モデルに対応します。この値によって、対称ルーティングが実装されます。

weak

RFC 1122 で定義されている弱い ES モデルに対応します。この値では、マルチホームホストは非対称ルーティングを使用します。

src-priority

優先ルートを使用してパケットルーティングを構成します。ルーティングテーブル内に複数の宛先ルートが存在する場合、優先ルートは、送信パケットの IP 発信元アドレスが構成されているインタフェースを使用するルートです。このようなルートが存在しない場合、送信パケットは、そのパケットの IP 宛先への一致する最長のルートを使用します。

次の例は、マルチホームホストに対して IP パケットの対称ルーティングを実装する方法を示しています。

# ipadm set-prop -p hostmodel=strong ip
# ipadm show-prop -p hostmodel ip
PROTO  PROPERTY   PERM  CURRENT  PERSISTENT  DEFAULT   POSSIBLE
ipv6   hostmodel  rw    strong   --          weak      strong,
                                                       src-priority,
                                                       weak
ipv4   hostmodel  rw    strong   --          weak      strong,
                                                       src-priority,
                                                       weak

トラフィックの輻輳制御の実装

ネットワークの輻輳は通常、ネットワークが対応できる量を上回るパケットをノードが送信したときに、ルーターバッファーオーバーフローの形で発生します。トラフィックの輻輳は、さまざまなアルゴリズムによって送信側システムに対する制御を設定することで回避されます。これらのアルゴリズムは、Oracle Solaris でサポートされており、オペレーティングシステムに容易に追加したり、直接プラグインしたりできます。

次の表では、サポートされているアルゴリズムを一覧表示し、説明します。

アルゴリズム
Oracle Solaris 名
説明
NewReno
newreno
Oracle Solaris のデフォルトアルゴリズム。制御メカニズムには、送信側の輻輳ウィンドウ、スロースタート、および輻輳回避があります。
HighSpeed
highspeed
高速ネットワーク用のもっとも有名かつシンプルな NewReno の修正版の 1 つ。
CUBIC
cubic
Linux 2.6 の現在のデフォルトアルゴリズム。輻輳回避フェーズを線形的なウィンドウ増加から cubic 関数に変更します。
Vegas
vegas
実際のパケットロスを発生させずに輻輳を予測しようとする典型的な遅延ベースのアルゴリズム。

輻輳制御を有効にするには、次に示す制御関連の TCP プロパティーを設定します。これらのプロパティーは TCP について表示されますが、これらのプロパティーによって有効になる制御メカニズムは、SCTP トラフィックにも適用されます。

プロトコルに輻輳制御のアルゴリズムを追加するには、次のコマンドを実行します。

# ipadm set-prop -p cong_enabled+=algorithm tcp

アルゴリズムを削除するには、次のコマンドを実行します。

# ipadm set-prop -p cong_enabled-=algorithm tcp

デフォルトのアルゴリズムを置き換えるには、次のコマンドを実行します。

# ipadm set-prop -p cong_default=algorithm tcp

注 - アルゴリズムを追加または削除するときに従う順序の規則はありません。ほかのアルゴリズムをプロパティーに追加する前に、アルゴリズムを削除できます。ただし、cong_default プロパティーには定義済みのアルゴリズムが常に設定されている必要があります。


次の例は、輻輳制御を実装するために実行する手順を示しています。この例では、TCP プロトコルのデフォルトのアルゴリズムが newreno から cubic に変更されています。次に、vegas アルゴリズムが有効なアルゴリズムのリストから削除されています。

# ipadm show-prop -p cong_default,cong_enabled tcp
PROTO  PROPERTY      PERM  CURRENT          PERSISTENT   DEFAULT   POSSIBLE
tcp    cong_default  rw    newreno          --           newreno   -
tcp    cong_enabled  rw    newreno,cubic,   --           newreno   newreno,cubic,
                           highspeed,                              highspeed,vegas
                           vegas

# ipadm set-prop -p cong_enabled-=vegas tcp
# ipadm set-prop -p cong_default=cubic tcp

# ipadm show-prop -p cong_default,confg_enabled tcp
PROTO  PROPERTY      PERM  CURRENT          PERSISTENT   DEFAULT   POSSIBLE
tcp    cong_default  rw    cubic            --           newreno   -
tcp    cong_enabled  rw    newreno,cubic,   --           newreno   newreno,cubic,
                           highspeed                               highspeed,vegas

TCP 受信バッファーサイズの変更

TCP 受信バッファーのサイズは、TCP プロパティー recv_buf (デフォルトでは 128K バイト) を使用して設定します。しかし、アプリケーションは利用可能な帯域幅を均等に使用しません。このため、接続待ち時間に応じてデフォルトのサイズを変更する必要があります。たとえば、Oracle Solaris の Secure Shell 機能を使用すると、データストリームに対して追加のチェックサム処理や暗号化処理が実行されるため、帯域幅の使用量にオーバーヘッドが発生します。したがって、バッファーサイズを増やす必要がある可能性があります。同様に、一括転送を行うアプリケーションが帯域幅を効率的に使用するために、同じバッファーサイズ調整が必要です。

次のように帯域幅遅延積 (BDP) を推定することで、使用する正しい受信バッファーサイズを計算できます。

BDP = available_bandwidth * connection-latency

接続待ち時間の値を取得するには、ping -s host を使用します。帯域幅の使用量を推定するには、uperf および iperf ツールを使用します。

適切な受信バッファーサイズは、BDP の値に近似します。ただし、帯域幅の使用量はさまざまな条件によって左右されます。インフラストラクチャーの共有や、帯域幅の使用で競合するアプリケーションとユーザーの数によって、その推定値は変化します。

バッファーサイズの値を変更するには、次の構文を使用します。

# ipdadm set-prop -p recv_buf=value tcp

次の例は、バッファーサイズを 164K バイトに増やす方法を示しています。

# ipadm show-prop -p recv_buf tcp
PROTO PROPERTY   PERM CURRENT   PERSISTENT   DEFAULT  POSSIBLE
tcp   recv_buf   rw   128000       --        128000   2048-1048576

# ipadm set-prop -p recv_buf=164000 tcp

# ipadm show-prop -p recv_buf tcp
PROTO PROPERTY   PERM CURRENT   PERSISTENT   DEFAULT  POSSIBLE
tcp   recv_buf   rw   164000       --        164000   2048-1048576

推奨されるバッファーサイズは状況によって異なるため、推奨設定値はありません。固有の条件を持つネットワークごとに BDP の値が異なることを示す、次のケースを考慮してください。

バッファーサイズのデフォルト値が 128K バイトである標準的な 1G ビット/秒 LAN:
BDP = 128 MBps * 0.001 s = 128 kB
待ち時間が 100 ミリ秒である架空の 1G ビット/秒 WAN:
BDP = 128 MBps * 0.1 s = 12.8 MB
欧州米国間リンク (uperf で帯域幅を測定)
BDP = 2.6 MBps * 0.175 = 470 kB

BDP を計算できない場合は、次の所見をガイドラインとして使用します。


注意

注意 - TCP 受信バッファーサイズを増やすと、多くのネットワークアプリケーションのメモリーフットプリントも増加します。