ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
![]() |
マニュアルページセクション 1M: システム管理コマンド Oracle Solaris 11 Information Library (日本語) |
- プロトコル、サービス、コンテナ、および仮想マシンの帯域幅リソース制御の管理
flowadm show-flow [-P] [[-p] -o field[,...]] [-l link] [flow]
flowadm add-flow [-t] [-R root-dir] -l link -a attr=value[,...] [-p prop=value[,...]] flow flowadm remove-flow [-t] [-R root-dir] {-l link | flow}
flowadm set-flowprop [-t] [-R root-dir] -p prop=value[,...] flow flowadm reset-flowprop [-t] [-R root-dir] [-p prop[,...]] flow flowadm show-flowprop [-P] [[-c] -o field[,...]] [-l link] [-p prop[,...]] [flow]
flowadm コマンドは、特定リンク上のあるトラフィックタイプに対するネットワーク帯域幅とその関連リソースを作成、変更、削除、および表示するために使用されます。
flowadm コマンドを使用すると、トランスポート、サービス、またはサブネットのネットワーク帯域幅リソースを管理できます。サービスは、トランスポートとローカルポートを組み合わせて指定します。サブネットは、その IP アドレスとサブネットマスクで指定します。このコマンドは、物理リンク、仮想 NIC、リンク集積体など、任意のタイプのデータリンクで使用できます。
フローは、レイヤー 3 およびレイヤー 4 のヘッダーに基づく一連の属性として定義され、プロトコル、サービス、または仮想マシンを識別する目的で使用できます。あるフローがフロー属性に基づいて識別されると、そのフローに対するほかのトラフィックからの影響が最小限またはゼロに抑えられるように、そのフローに対してレイヤー 2、3、および 4 のキューやその処理用スレッド、その他のリソースなど、個別のカーネルリソースが一意に作成されます。
パフォーマンスへの影響を最小限に抑えながら制限を適用できるように、非常に高速かつスケーラビリティーの高い方法でインバウンドおよびアウトバウンドのパケットがフローに対応付けられます。
flowadm コマンドを使用してフローを識別する際に、帯域幅リソースの制御を課さないようにすることもできます。この場合、そのトラフィックタイプは独自のリソースやキューを取得するため、残りのネットワークトラフィックから隔離され、より監視しやすい決定性動作が実現されます。
フローの作成、変更、および削除は、大域ゾーン、非大域ゾーンのどちらでも行うことができます。ゾーン管理者は、自身の大域または非大域ゾーン内でしかフローを作成できません。ただし、次の段落で説明するように、大域ゾーンで作成されたフローを非大域ゾーンに移行することは可能です。管理者がフローの変更や削除を行えるのは、そのフローの作成元となる大域または非大域ゾーン内からだけです。大域ゾーンのユーザーは、大域ゾーン内とすべての非大域ゾーン内に存在している、システム上のすべてのフローを表示できます。非大域ゾーンのユーザーが表示できるのは、そのゾーン内のフローだけです。
管理者は、大域ゾーン内でのフローの作成が完了すると、そのフローに関連付けられたデータリンクを非大域ゾーンに割り当てることができます。そのような場合、関連するフローもその同じ非大域ゾーンに割り当てられます。この非大域ゾーンが停止すると、データリンクとその関連フローは大域ゾーンに戻されます。
同じ名前のフローでも、ゾーン名が異なれば区別されます。たとえば、fastpak という名前のフローを 3 つ作成する場合、fastpak をそれぞれ異なるゾーン内に格納すれば可能となります。たとえば、zone1/fastpak、zone2/fastpak、および zone3/fastpak はすべて有効なゾーン名です。
flowadm は、対応するオプションを備えた一連のサブコマンドとして実装されています。オプションについては各サブコマンドの文脈で説明します。
サポートされているサブコマンドは次のとおりです。
すべてのフロー、1 つのリンクのすべてのフロー、指定されたフローのいずれかに対するフロー構成情報 (デフォルト) または統計情報を表示します。
表示する出力フィールドのコンマ区切りのリスト (大文字と小文字は区別されません)。フィールド名は、次に示すフィールドのいずれか、またはすべてのフィールドを表示するための特殊な値 all にする必要があります。見つかったフローごとに、次のフィールドを表示できます。
フローの名前。
フローが存在するリンクの名前。
フローの IP アドレス。これは、フローの定義方法に応じて、ローカルかリモートのいずれかになります。
使用されるプロトコルのレイヤーの名前。
フローのサービスのローカルポート。
フローの差別化サービス値、および IP ヘッダーの差別化サービスフィールドのどのビットを対象とするかを指定するために DSFIELD 値とともに使用されるマスク。
安定したマシン解析可能な形式を使用して表示します。
永続的なフロープロパティーの情報を表示します。
指定されたリンク上のすべてのフローの情報または指定されたフローの情報を表示します。
システムにフローを追加します。フローはそのフロー属性とフロープロパティーによって識別されます。
特定のフローを識別するにあたり、その帯域幅リソースを制限できます。帯域幅制限を指定しない場合でも、そのトラフィックは一意のレイヤー 2、3、および 4 キューや処理用スレッドを取得するほか、NIC ハードウェアリソース (サポートされている場合) も取得します。このため、その選択されたトラフィックをほかのトラフィックから隔離することが可能となり、フローに対するほかのトラフィックからの影響を最小限に抑えることができます。
変更は一時的なものであり、リブート後は永続しません。永続がデフォルトです。
flowadm が永続的な作成を適用するべき代替ルートディレクトリを指定します。
フローの追加先となるリンクを指定します。
指定された値に設定される属性のコンマ区切りリスト。
指定された値に設定するプロパティーのコンマ区切りのリスト。
リンクまたは名前で特定された既存のフローを削除します。
変更は一時的なものであり、リブート後は永続しません。永続がデフォルトです。
flowadm が永続的な削除を適用するべき代替ルートディレクトリを指定します。
リンクが指定されている場合、そのリンクからすべてのフローを削除します。単一のフローが指定されている場合は、そのフローだけを削除します。
名前で指定されたフローで、1 つ以上のプロパティーの値を設定します。プロパティーの完全な一覧を取得するには、show-flow サブコマンドを使用します。
変更は一時的なものであり、リブート後は永続しません。永続がデフォルトです。
flowadm が永続的なプロパティー設定を適用するべき代替ルートディレクトリを指定します。
指定された値に設定するプロパティーのコンマ区切りのリスト。
指定されたフローで、1 つ以上のプロパティーをデフォルト値にリセットします。プロパティーが指定されていない場合、すべてのプロパティーがリセットされます。デフォルト値など、プロパティーの説明については、show-flowprop サブコマンドを参照してください。
リセットを一時的なものとして指定します。一時的なリセットは、次回のリブートまで保持されます。
flowadm が永続的なプロパティー設定を適用するべき代替ルートディレクトリを指定します。
リセットするプロパティーのコンマ区切りのリスト。
すべてのフロー、指定されたリンクのフロー、指定されたフローのいずれかに対する 1 つ以上のプロパティーの現在値または永続的な値を表示します。
デフォルトでは、現在の値が表示されます。プロパティーが指定されていない場合、使用可能なすべてのフロープロパティーが表示されます。プロパティーごとに、次のフィールドが表示されます。
フローの名前。
プロパティーの名前。
現在の (または永続的な) プロパティー値。値は、未設定の場合は -- (ハイフン 2 つ) として表示され、未知の場合は ? (疑問符) として表示されます。設定されていないか、またはリセットされた永続的な値は -- と表示され、システムの DEFAULT 値 (もしあれば) を使用します。
プロパティーのデフォルト値。プロパティーにデフォルト値がない場合は、-- (ハイフン 2 つ) が表示されます。
プロパティーに設定できる値のコンマ区切りのリスト。値に数値の範囲がある場合は、短縮形として最小値と最大値が表示される可能性があります。指定可能な値が不明または無限の場合は、-- (ハイフン 2 つ) が表示されます。
フロープロパティーについては「フロープロパティー」の節で説明されています。
安定したマシン解析可能な形式を使用して表示します。
永続的なフロープロパティーの情報を表示します。
表示するプロパティーのコンマ区切りのリスト。
flowadm コマンド内でフローを識別するフローオペランドは、次の一覧から選択した 1 つ以上のキーワード-値ペアのコンマ区切りのリストです。
ローカル IP アドレスでネットワークフローを識別します。value はドット区切り 10 進表記の IPv4 アドレス、コロン区切り表記の IPv6 アドレスのいずれかでなければいけません。prefix_len は省略可能です。
prefix_len が指定された場合、それは、ifconfig(1M) や route(1M) のアドレスと同じ表記規則に従って、サブネットアドレスのネットマスクを記述します。これが指定されなかった場合、指定された IP アドレスはホストアドレスとみなされ、そのデフォルトプレフィックス長は、IPv4 アドレスでは /32、IPv6 では /128 になります。
リモート IP アドレスでネットワークフローを識別します。その構文は local_ip 属性と同じです
使用するレイヤー 4 プロトコルを識別します。これは通常、特別な注意を払う必要のあるローカルまたはリモートのサービスを識別するために、local_port または remote_port と組み合わせて使用されます。
ローカルポートで指定されるサービスを識別します。
リモートポートで指定されるサービスを識別します。
RFC 2474 で定義されているとおりに 8 ビットの差別化サービスフィールドを識別します。
省略可能な dsfield_mask は、dsfield 値との比較時に差別化サービスフィールドのどのビットを対象とするかを指定するために使用されます。あるビット位置の値が 0 の場合、それは、そのビットの値を無視する必要があることを示し、1 の場合はその逆を示します。このマスクの範囲は 0x01 から 0xff です。dsfield_mask が指定されていなければ、デフォルトマスク 0xff の値が使用されます。dsfield 値とマスクはどちらも 16 進数値でなければいけません。
サポートされている属性の組み合わせの種類は、次のとおりです。
local_ip[/prefixlen]=address remote_ip[/prefixlen]=address transport={tcp|udp|sctp|icmp|icmpv6} transport={tcp|udp|sctp},local_port=port transport={tcp|udp|sctp},remote_port=port dsfield=val[:dsfield_mask]
ある特定のリンク上で、上の各組み合わせは相互に排他的です。複数の組み合わせを含むフローを作成しようとすると、失敗します。
制限には、個別のフロー制限とゾーンごとのフロー制限があります。
個別のフロー制限個々のフローに対する制限では、同じリンクに追加されたほかのフローを考慮する必要はありません。
各フローで属性を指定できるのは、1 回だけです。たとえば、次のコマンドは有効ではありません。
# flowadm add-flow -l vnic1 -a local_port=80,local_port=8080 httpflow
transport と local_port または transport と remote_port:
TCP、UDP、または SCTP フローの指定時には、ローカルポートまたはリモートポートを使用できます。ICMP または ICMPv6 フローではポートを指定できません。
local_port、remote_port のいずれかを指定する場合、トランスポートは TCP、UDP、または SCTP のいずれかでなければいけません。
次のコマンドは有効です。
# flowadm add-flow -l e1000g0 -a transport=udp udpflow # flowadm add-flow -l e1000g0 -a transport=tcp,local_port=80 \ udp80flow
次のコマンドは有効ではありません。
# flowadm add-flow -l e1000g0 -a remote_port=25 flow25 # flowadm add-flow -l e1000g0 -a transport=icmpv6,remote_port=16 \ flow16ゾーンごとのフロー制限
あるゾーン内で同じ名前のフローを 2 つ作成することはできません。リンクを指定してフローを追加した場合、そのフローを表示、変更、または削除する際にリンクを指定する必要はありません。
サポートされるフロープロパティーは次のとおりです。あるプロパティーを特定の値に設定できるかどうかは、ドライバやハードウェアによって異なることに注意してください。
フローの全二重帯域幅を設定します。この帯域幅は、いずれかのスケールサフィックス (Kbps、Mbps、または Gbps を示す K、M、または G) が付いた整数として指定されます。単位が指定されていない場合、入力値は Mbps として読み取られます。デフォルトでは、帯域幅の制限はありません。
例 1 ミッションクリティカルポートに関するポリシーの作成
次のコマンドは、HTTPS が専用の NIC ハードウェアとカーネル TCP/IP リソースを取得できるように、HTTPS サーバーのインバウンド HTTPS トラフィックに関するポリシーを作成しています。指定されている名前 https-1 は、あとでポリシーの変更や削除を行う際に使用できます。
# flowadm add-flow -l bge0 -a transport=TCP,local_port=443 https-1 # flowadm show-flow -l bge0 FLOW LINK IP ADDR PROTO PORT RPORT DSFLD https1 bge0 -- tcp 443 -- --
例 2 既存のポリシーの変更による帯域幅リソース制御の追加
次のコマンドは、前述の例の https-1 ポリシーを変更します。このコマンドは帯域幅制御を追加します。
# flowadm set-flowprop -p maxbw=500M https-1 # flowadm show-flow https-1 FLOW LINK IP ADDR PROTO PORT RPORT DSFLD https1 bge0 -- tcp 443 -- -- # flowadm show-flowprop https-1 FLOW PROPERTY VALUE DEFAULT POSSIBLE https-1 maxbw 500 -- --
例 3 UDP 帯域幅使用量の制限
次のコマンドは、UDP プロトコルのポリシーを作成し、使用可能な帯域幅のうち、100 Mbps を超える量をそのプロトコルが消費できないようにしています。このフローには limit-udp-1 という名前が付けられています。
# flowadm add-flow -l bge0 -a transport=UDP -p maxbw=100M, \ limit-udp-1
例 4 dsfield 属性を使用したポリシーの設定
次のコマンドは、帯域幅 500Mbps の EF PHB (RFC 2598 の DSCP 値 101110) に対するポリシーを設定します。このフローでは、dsfield の値が 0x2e (101110)、dsfield_mask が 0xfc になっています (下位 2 ビットを無視する必要があるため)。
# flowadm add-flow -l bge0 -a dsfield=0x2e:0xfc \ -p maxbw=500M efphb-flow
例 5 複数ゾーン内のフローの表示
次のコマンドは、同じ名前を持つ 2 つのフローを表示しています。最初のフローは大域ゾーン内に存在し、2 番目のフローはゾーン zone1 内に存在しています。このコマンドは大域ゾーンから呼び出されているため、ユーザーはシステム上のすべてのフローを表示できます
# flowadm show-flow FLOW LINK IPADDR PROTO LPORT RPORT DSFLD tcpflow e1000g2 -- tcp -- -- -- zone1/tcpflow e1000g1 -- tcp -- -- --
アクションはすべて正常に実行されました。
エラーが発生しました。
次の属性についての詳細は、attributes(5) を参照してください。
|
acctadm(1M), dladm(1M), flowstat(1M), ifconfig(1M), prstat(1M), route(1M), attributes(5), ifconfig(1M)
以前のリリースの flowadm に存在していた show-usage サブコマンドは、flowstat(1M) -h コマンドで置き換えられました。