サービスインターフェイス上のサービスクラス
サービスクラスサービス概要
M SeriesおよびMXシリーズベースのサービスカードで利用可能なCoS設定では、サービスカード-サービスPICを通過するパケットの差別化されたサービス(DiffServ)コードポイント(DSCP)マーキングと転送クラスの割り当てを設定できます。M SeriesおよびMXシリーズベースのサービスカードには、マルチサービスPIC、MS-MIC、MS-MPC、MS-DPC、およびアダプティブサービスPICが含まれます。同様のルール構造を使用して、ステートフルファイアウォールおよびNATサービスと一緒にCoSサービスを設定できます。コンポーネント構造については、 サービス クラス ユーザー ガイド(ルーターとEX9200スイッチ)で詳しく説明しています。
差別化されたサービスの標準については、次のドキュメントで説明されています。
RFC 2474、 IPv4およびIPv6ヘッダーの差別化されたサービスフィールド(DSフィールド)の定義
RFC 2475、 差別化されたサービスのためのアーキテクチャ
手記:CoS BA 分類は、サービス インターフェイスではサポートされていません。CoS 設定は、NAT およびステートフル ファイアウォール サービスでのみ使用できます。CoS設定は、IPsecなどのサービスカードで実行される他のサービスでは機能しません。
サービスインターフェイスでのCoS設定の制約と注意
サービス インターフェイスでの CoS 設定には、次の制限と注意事項が適用されます。
サービス セットには、少なくとも 1 つのステートフル ルールオプションは、ファイアウォールルールまたは NAT ルールを設定する必要があります。そうしないと、CoSは機能しません。
サービス インターフェイスはスケジューリングをサポートしておらず、DiffServ マーキングとキュー割り当てのみをサポートしています。スケジューリングは、出力インターフェイスまたはファブリック上の
[edit class-of-service]階層レベルで設定する必要があります。デフォルト設定では、キュー 1 とキュー 2 は 0 % の帯域幅を受け取ります。パケットがこれらのキューに割り当てられる場合は、スケジューリング マップを設定する必要があります。
設定でカスタム転送クラス名を使用する前に、
commit fullコマンドを発行する必要があります。設定では、Junos 標準の DiffServ 名のみを使用できます。カスタム名は認識されません。
M Seriesルーターでは、パケットヘッダーを変更する 書き換えルール を設定し、そのルールを出力インターフェイスにアタッチできます。これらのルールは、マルチサービスPICに設定されたDSCPマーキングを上書きする可能性があります。システム全体の設定を作成する際には、この悪影響を念頭に置いて注意することが重要です。
例えば、マルチサービスPICがパケットを任意のToSまたはDSCP値でマークでき、出力インターフェイスが8つのDSCP値のみに制限されていることがわかっている場合、出力インターフェイスの書き換えルールは、マッピングを64から8に凝縮しますが、全体的な粒度は失われます。この場合、次のオプションがあります。
出力インターフェイスから書き換えルールを削除します。
最も重要なマッピングを含むように出力インターフェイスを設定します。
CoS ルールの設定
CoSルールを設定するには、[edit services cos]階層レベルでrule rule-nameステートメントを含めます。
[edit services cos] rule rule-name { match-direction (input | output | input-output); term term-name { from { application-sets set-name; applications [ application-names ]; destination-address address; destination-prefix-list list-name <except>; source-address address; source-prefix-list list-name <except>; } then { application-profile profile-name; dscp (alias | bits); forwarding-class class-name; syslog; reflexive; | revert; | reverse { application-profile profile-name; dscp (alias | bits); forwarding-class class-name; syslog; } } } }
各 CoS ルールは、 [edit firewall] 階層レベルで設定されたフィルターと同様に、一連の条件で構成されます。用語は、次のもので構成されます。
fromステートメント—含まれ、除外される一致条件とアプリケーションを指定します。thenステートメント—ルーター ソフトウェアによって実行されるアクションとアクション修飾子を指定します。
CoSルールを [edit services] 階層レベルのサービスセットに適用します。
[edit services]
service-set service-set-name {
cos-rules [cos-rule-name];
}
次のセクションでは、CoSルールのコンポーネントを設定する方法について説明します。
CoS ルールの一致方向の設定
各ルールには、ルールの一致が適用される方向を指定する match-direction ステートメントを含める必要があります。一致が適用される場所を設定するには、[edit services cos rule rule-name]階層レベルでmatch-directionステートメントを含めます。
match-direction (input | output | input-output);
match-direction input-outputを設定すると、双方向のルール作成が許可されます。
一致方向は、マルチサービス PIC、MS-MIC、または MS-MPC を経由するトラフィック フローに対して使用されます。パケットがPICに送信されると、方向情報が一緒に伝送されます。
インターフェイス サービス セットを使用すると、パケットの方向は、サービス セットが適用されているインターフェイスにパケットが出入りするかによって決まります。
ネクストホップ サービス セットでは、パケットの方向は、マルチサービス PIC、MS-MIC、または MS-MPC にパケットをルーティングするために使用されるインターフェイスによって決定されます。内部インターフェイスを使用してパケットをルーティングする場合は、パケット方向が入力されます。外部インターフェイスを使用してパケットをマルチサービス PIC、MS-MIC、または MS-MPC に転送する場合、パケット方向が出力されます。内部インターフェイスと外部インターフェイスの詳細については、 サービス インターフェイスに適用するサービス セットの設定を参照してください。
マルチサービス PIC、MS-MIC、または MS-MPC では、フロー ルックアップが実行されます。フローが見つからない場合は、ルール処理が実行されます。サービス セット内のすべてのルールが考慮されます。ルールの処理中に、パケットの方向がルールの方向と比較されます。パケットの方向と一致する方向情報を持つルールのみが考慮されます。
CoS ルールでの一致条件の設定
CoS 一致条件を設定するには、[edit services cos rule rule-name term term-name] 階層レベルに from ステートメントを含めます。
from { application-sets set-name; applications [ application-names ]; destination-address address; destination-prefix-list list-name <except>; source-address address; source-prefix-list list-name <except>; }
送信元アドレスと宛先アドレスは、IPv4 または IPv6 のいずれかです。ファイアウォールフィルターを設定するのと同じ方法で、送信元アドレスまたは宛先アドレスのいずれかを一致条件として使用できます。詳細については、「 ルーティングポリシー、ファイアウォールフィルター、およびトラフィックポリサーユーザーガイド」を参照してください。
または、[edit policy-options]階層レベルでprefix-listステートメントを設定し、CoSルールにdestination-prefix-listまたはsource-prefix-listステートメントを含めることで、送信元または宛先プレフィックスのリストを指定できます。例については、「例:ステートフル ファイアウォール ルールの設定」を参照してください。
from条件を省略すると、ルーターはすべてのトラフィックを受け入れ、デフォルトのプロトコルハンドラーが有効になります。
UDP(User Datagram Protocol)、TCP(Transmission Control Protocol)、ICMP(Internet Control Message Protocol)は、予測されるリバースフローを使用して双方向フローを作成します。
IP は、一方向のフローを作成します。
また、 [edit applications] 階層レベルで設定したアプリケーション プロトコル定義を含めることもできます。詳細については、 アプリケーション プロパティの設定を参照してください。
1 つ以上の特定のアプリケーション プロトコル定義を適用するには、
[edit services cos rule rule-name term term-name from]階層レベルでapplicationsステートメントを含めます。定義したアプリケーション プロトコル定義の 1 つ以上のセットを適用するには、
[edit services cos rule rule-name term term-name from]階層レベルでapplication-setsステートメントを含めます。手記:アプリケーション プロトコルを指定するステートメントの 1 つを含めると、ルーターは
[edit applications]階層レベルの対応する設定からポートとプロトコルの情報を取得します。これらのプロパティを一致条件として指定することはできません。
CoS ルールでのアクションの設定
CoSアクションを設定するには、[edit services cos rule rule-name term term-name]階層レベルでthenステートメントを含めます。
[edit services cos rule rule-name term term-name] then { application-profile profile-name; dscp (alias | bits); forwarding-class class-name; syslog; reflexive; | revert; | reverse { application-profile profile-name; dscp (alias | bits); forwarding-class class-name; syslog; } }
主な CoS アクションは次のとおりです。
dscp- 指定された DiffServ コード ポイント(DSCP)値またはエイリアスでパケットをマーキングします。forwarding-class- 指定された転送クラスにパケットを割り当てます。
DSCP値と転送クラスの詳細については、「 例:サービスインターフェイスでのCoSの設定 」または 「サービスクラスユーザーガイド(ルーターおよびEX9200スイッチ)」を参照してください。
オプションで、[edit services cos rule rule-name term term-name then]階層レベルでsyslogステートメントを含めることで、システムロギング機能に情報を記録する設定を設定することができます。このステートメントは、サービス セットまたはインターフェイスのデフォルト設定に含まれるsyslog設定を上書きします。
その他の CoS アクションについては、次のセクションを参照してください。
CoS ルール アクションとして使用するアプリケーション プロファイルの設定
オプションで、CoS アクションに含めるアプリケーション プロファイルを 1 つ以上定義できます。アプリケーション プロファイルを設定するには、[edit services cos] 階層レベルで application-profile ステートメントを含めます。
[edit services cos] application-profile profile-name { ftp { data { dscp (alias | bits); forwarding-class class-name; } } sip { video { dscp (alias | bits); forwarding-class class-name; } voice { dscp (alias | bits); forwarding-class class-name; } } }
application-profileステートメントには、2つの主要コンポーネントと3つのトラフィックタイプが含まれています:ftpはdataトラフィックタイプ、sipはvideoおよびvoiceトラフィックタイプです。アプリケーション プロファイル内の各コンポーネントに適切なdscp値とforwarding-class値を設定できます。
ftpおよびsipステートメントは、Juniper Network MXシリーズ 3Dユニバーサルエッジルーターではサポートされていません。
アプリケーション プロファイルを [edit services cos rule rule-name term term-name then] 階層レベルで含めることで、CoS 設定に適用できます。
再帰、取り消し、およびリバース CoS ルール アクションの設定
CoSサービスは一方向です。反対方向のフローに対して異なる処理を指定する必要がある場合があります。
パケットが入力方向、出力方向、または入出力方向のいずれと一致しているかに関係なく、両方向のフローが作成されます。順方向、逆方向、または順方向と逆方向の CoS アクションは、各フローに関連付けられています。逆方向のフローには、特に設定していないCoSアクションが関連付けられる可能性があることに留意してください。
ルール一致が適用される方向とは異なり、サービスが適用される方向を制御するには、[edit services cos rule rule-name term term-name then]階層レベルで(reflexive | revert | reverse)ステートメントを設定します。
[edit services cos rule rule-name term term-name then]
reflexive; | revert; | reverse {
application-profile profile-name;
dscp (alias | bits);
forwarding-class class-name;
syslog;
}
この 3 つのアクションは相互に排他的です。
reflexiveCoS ルール アクションが、逆方向のフローおよび一致する方向のフローに適用されます。Junos OS リリース 16.1R5 および Junos OS リリース 17.4R1 以降、
revertは、ルールの一致方向で受信されたパケットの DSCP と転送クラスを保存し、同じセッションの逆方向で受信されたパケットにその DSCP と転送クラスを適用します。reverseでは、逆方向のフローの CoS 動作を定義できます。
ステートメントを省略すると、データ フローは前方制御フローの CoS 動作を継承します。
非一致方向のパケット受信時の CoS セッション作成の設定
Junos OS リリース 16.1R5 および Junos OS リリース 17.4R1 以降では、サービス セットに割り当てられている CoS ルールに対してパケットが最初に間違った一致方向で受信された場合でも、CoS セッションを作成するようにサービス セットを設定できます。これにより、正しい一致方向のパケットを受信するとすぐにCoSルール値が適用されます。この機能を設定するには、[edit services service-set service-set-name cos-options] 階層レベルで match-rules-on-reverse-flow を含めます。
[edit services service-set service-set-name cos-options] match-rules-on-reverse-flow;
例:CoS ルールの設定
次の例は、指定されたアプリケーション セットでの入力照合と、指定された送信元アドレスでの出力照合の 2 つのルールを含む CoS 設定を示しています。
[edit services]
cos {
rule my-cos-rule {
match-direction input-output;
term term1 {
from {
source-address 10.1.3.2/32;
application-set sip;
}
then {
dscp ef;
syslog;
}
}
term term2 {
from {
destination-address 10.2.3.2;
applications http;
}
then {
dscp af21;
}
}
}
}
CoS ルール セットの設定
rule-set ステートメントは、データ ストリーム内のパケットに対してルーター ソフトウェアが実行するアクションを決定する CoS ルールの集合を定義します。各ルールを定義するには、ルール名を指定し、条件を設定します。次に、[edit services cos]階層レベルでrule-setステートメントと各ルールのruleステートメントを含めることで、ルールの順序を指定します。
rule-set rule-set-name { rule rule-name; }
ルーター ソフトウェアは、設定で指定した順序でルールを処理します。ルール内の条件がパケットと一致する場合、ルーターは対応するアクションを実行し、ルールの処理は停止します。ルール内のどの条件もパケットに一致しない場合、処理はルール セット内の次のルールに進みます。どのルールもパケットに一致しない場合、パケットはデフォルトで破棄されます。
例:サービス インターフェイスでの CoS の設定
ジュニパーネットワークスのルーター間で設定の一貫性を保つために、サービスインターフェイスで使用される多くのCoS設定を [edit class-of-service] 階層レベルで設定します。 [edit services cos] 階層レベルでの設定とともにこの設定をコミットすると、これらのプロパティがマルチサービスPIC、MS-MIC、またはMS-MPCに適用されます。
[edit class-of-service]階層レベルでの以下の設定例は、サービスインターフェイスに適用することができます。詳細については、サービス クラス ユーザー ガイド(ルーターとEX9200スイッチ)を参照してください。
最初の 2 つの設定、転送クラス名から転送クラス ID へのマッピングと、転送クラス名からキュー番号へのマッピングは、相互に排他的です。
転送クラス名から転送クラスIDへのマッピング
転送クラス名を転送クラス ID にマッピングします。
[edit class-of-service]
forwarding-classes {
forwarding-class fc0 0;
forwarding-class fc1 0;
forwarding-class fc2 1;
forwarding-class fc3 1;
forwarding-class fc4 2;
forwarding-class fc5 2;
forwarding-class fc6 3;
forwarding-class fc7 3;
forwarding-class fc8 4;
forwarding-class fc9 4;
forwarding-class fc10 5;
forwarding-class fc11 5;
forwarding-class fc12 6;
forwarding-class fc13 6;
forwarding-class fc14 7;
forwarding-class fc15 7;
}
転送クラス名からキュー番号へのマッピング
転送クラス名をキュー番号にマッピングします。
[edit class-of-service]
forwarding-classes {
queue 0 be;
queue 1 ef;
queue 2 af;
queue 3 nc;
queue 4 ef1;
queue 5 ef2;
queue 6 af1;
queue 7 nc1;
}
Diffserv コードポイントエイリアスの DSCP ビットへのマッピング
エイリアス名を DSCP ビット値にマッピングします。エイリアスは、適応サービス設定のDSCPビットの代わりに使用できます。
[edit class-of-service]
code-point-aliases {
(dscp | dscp-ipv6 | exp | ieee-802.1 | inet-precedence) {
alias | bits;
}
}
次に例を示します。
code-point-aliases {
dscp {
my1 110001;
my2 101110;
be 000001;
cs7 110000;
}
}
参照
変更履歴
サポートされる機能は、使用しているプラットフォームとリリースによって決まります。特定の機能がお使いのプラットフォームでサポートされているかどうかを確認するには、 Feature Explorer を使用します。
revert は、ルールの一致方向で受信されたパケットの DSCP と転送クラスを保存し、同じセッションの逆方向で受信されたパケットにその DSCP と転送クラスを適用します。