ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
Oracle Solaris 11.1 での固定ネットワーク構成を使用したシステムの接続 Oracle Solaris 11.1 Information Library (日本語) |
IP インタフェース構成の削除 (ipadm delete-ip)
IP インタフェース構成の無効化 (ipadm disable-ip)
インタフェースのアドレスの削除 (ipadm delete-addr)
5. Oracle Solaris を実行するノートパソコン上での無線ネットワークの構成
A. 比較マップ: ifconfig コマンドと ipadm コマンド
プロトコルのプロパティー (チューニング可能パラメータとも呼ばれる) を構成するには、ipadm コマンドを使用します。ipadm は、チューニング可能パラメータを設定するために以前のリリースで一般的に使用されていた ndd コマンドを置き換えます。
TCP/IP プロパティーは、インタフェースベースまたはグローバルのどちらにもできます。プロパティーを特定のインタフェースに適用することも、ゾーン内のすべてのインタフェースにグローバルに適用することもできます。グローバルなプロパティーは、非大域ゾーンごとに異なる値にすることができます。サポートされるプロトコルのプロパティーの一覧については、ipadm(1M) のマニュアルページを参照してください。
ネットワークが機能するには、通常、TCP/IP インターネットプロトコルのデフォルト値で十分です。ただし、デフォルト値が特定のネットワークトポロジに対して十分でない場合は、必要に応じてこれらのプロパティーをカスタマイズできます。
TCP/IP インタフェースのプロパティーを設定するには、3 つの ipadm サブコマンドを使用します。
ipadm show-prop -p property protocol コマンドは、プロトコルのプロパティーとそれらの現在値を表示します。-p property オプションを使用しなかった場合は、プロトコルのすべてのプロパティーが一覧表示されます。プロトコルを指定しなかった場合は、すべてのプロトコルのすべてのプロパティーが一覧表示されます。
ipadm set-prop -p property=value protocol サブコマンドは、IP インタフェースのプロパティーに値を割り当てます。
ipadm reset-prop -p property protocol サブコマンドは、特定のプロトコルのプロパティーをそのデフォルト値にリセットします。
注 - プロパティーが複数の値を受け取ることができる場合は、次のように += 修飾子を使用してプロパティーに複数の値を割り当てます。
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 プロセスのみがそのポートにバインドできます。特権ポートを設定するには、トランスポートプロトコルの次のプロパティーをカスタマイズします。
smallest_nonpriv_port - 通常のユーザーがバインドできるポート番号の範囲を示す値を持つプロパティー。指定されたポートがこの範囲内にある場合は、そのポートを特権ポートとして設定できます。プロパティーの値を表示するには、ipadm show-prop コマンドを使用します。
extra_priv_ports - どのポートに特権があるかを示すプロパティー。制限するポートを指定するには、ipadm set-prop サブコマンドを使用します。このプロパティーには複数の値を割り当てることができます。
たとえば、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 つの値のいずれかに設定できます。
RFC 1122 で定義されている強い終端システム (ES) モデルに対応します。この値によって、対称ルーティングが実装されます。
RFC 1122 で定義されている弱い ES モデルに対応します。この値では、マルチホームホストは非対称ルーティングを使用します。
優先ルートを使用してパケットルーティングを構成します。ルーティングテーブル内に複数の宛先ルートが存在する場合、優先ルートは、送信パケットの 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 でサポートされており、オペレーティングシステムに容易に追加したり、直接プラグインしたりできます。
次の表では、サポートされているアルゴリズムを一覧表示し、説明します。
|
輻輳制御を有効にするには、次に示す制御関連の TCP プロパティーを設定します。これらのプロパティーは TCP について表示されますが、これらのプロパティーによって有効になる制御メカニズムは、SCTP トラフィックにも適用されます。
cong_enabled – システムで現在動作中のアルゴリズムをコンマで区切ったリストが格納されます。アルゴリズムを追加または削除して、使用するアルゴリズムのみを有効にすることができます。このプロパティーには複数の値を設定できます。このため、行う変更に応じて += 修飾子または -= 修飾子を使用する必要があります。
cong_default – アプリケーションがソケットオプション内でアルゴリズムを明示的に指定しない場合にデフォルトで使用されるアルゴリズム。現在、cong_default プロパティーの値は大域ゾーンと非大域ゾーンの両方に適用されます。
プロトコルに輻輳制御のアルゴリズムを追加するには、次のコマンドを実行します。
# 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 プロパティー 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 の値が異なることを示す、次のケースを考慮してください。
BDP = 128 MBps * 0.001 s = 128 kB
BDP = 128 MBps * 0.1 s = 12.8 MB
BDP = 2.6 MBps * 0.175 = 470 kB
BDP を計算できない場合は、次の所見をガイドラインとして使用します。
LAN 経由の一括転送では、バッファーサイズの値は 128K バイトで十分です。
ほとんどの WAN 配備では、受信バッファーサイズは 2M バイトの範囲内にすべきです。
注意 - TCP 受信バッファーサイズを増やすと、多くのネットワークアプリケーションのメモリーフットプリントも増加します。 |