例:マルチフィールド分類子に対するファイアウォールフィルターの設定と適用
この例では、ファイアウォールフィルターを設定して、マルチフィールドの分類子を使用してトラフィックを分類する方法を示します。分類子は、サービスクラス(CoS)がインターフェイスに到着する際に、関心のあるパケットを検出します。マルチフィールド分類子は、単純な動作集約(BA)分類子がパケットを分類するのに不十分な場合、ピアリングルーターにCoSビットがマークされていない場合、またはピアリングルーターのマーキングが信頼できない場合に使用されます。
要件
この手順を確認するために、この例ではトラフィック ジェネレータを使用します。トラフィック ジェネレータは、ハードウェアベースで実行することも、サーバーまたはホスト マシン上で実行するソフトウェアにすることもできます。
この手順の機能は、Junos OS を実行するデバイスで幅広くサポートされています。ここに示す例は、Junos OSリリース10.4を実行しているMXシリーズルーターでテストと検証を行いました。
概要
分類子とは、ルーターまたはスイッチに入るパケットを検査するソフトウェア操作です。パケット ヘッダーの内容を検証し、この検査によって、ネットワークが忙しくなり、すべてのパケットを処理できなくなり、デバイスがパケットを無差別にドロップするのではなく、インテリジェントにパケットをドロップしたいときのパケットの扱い方法が決定されます。関心のあるパケットを検出する一般的な方法の 1 つは、送信元ポート番号です。この例では、TCP ポート番号 80 と 12345 を使用していますが、ファイアウォール フィルターの一致条件を使用して、パケット検出の他の多くの一致条件をマルチフィールド分類子で使用できます。この例の設定では、送信元ポート80を持つTCPパケットは、BEデータ転送クラスとキュー番号0に分類されることを指定しています。送信元ポート12345を持つTCPパケットは、プレミアムデータ転送クラスとキュー番号1に分類されます。
通常、マルチフィールドの分類子は、パケットが自律システム(AS)に入る際に、ネットワークエッジで使用されます。
この例では、ファイアウォールフィルターmfの分類子を設定し、デバイスR1にいくつかのカスタム転送クラスを指定します。カスタム転送クラスを指定する際には、各クラスをキューに関連付けます。
分類子演算を 図 1 に示します。

マルチフィールド分類子のファイアウォールフィルターを、フィルターを必要とする各顧客対応またはホスト対応インターフェイスの入力フィルターとして適用します。受信インターフェイスは、デバイスR1のge-1/0/1です。分類とキューの割り当ては、発信インターフェイスで検証されます。発信インターフェイスは、デバイスR1のge-1/0/9インターフェイスです。
トポロジ
図 2 は、サンプル ネットワークを示しています。

CLI クイック構成 は、ジュニパーネットワークスのすべてのデバイスの設定を 図 2 に示しています。
ステップバイステップ手順 では、デバイスR1の手順について説明します。
分類子については、次の Juniper Networks Learning Byte ビデオで詳しく説明します。
構成
手順
CLI クイックコンフィギュレーション
この例を迅速に設定するには、以下のコマンドをコピーしてテキスト ファイルに貼り付け、改行を削除し、ネットワーク設定に一致させる必要がある詳細情報を変更し、コマンドを 階層レベルの [edit]
CLI にコピー アンド ペーストして、設定モードから を入力 commit
します。
デバイス R1
set interfaces ge-1/0/1 description to-host set interfaces ge-1/0/1 unit 0 family inet filter input mf-classifier set interfaces ge-1/0/1 unit 0 family inet address 172.16.50.2/30 set interfaces ge-1/0/9 description to-R2 set interfaces ge-1/0/9 unit 0 family inet address 10.30.0.1/30 set class-of-service forwarding-classes class BE-data queue-num 0 set class-of-service forwarding-classes class Premium-data queue-num 1 set class-of-service forwarding-classes class Voice queue-num 2 set class-of-service forwarding-classes class NC queue-num 3 set firewall family inet filter mf-classifier term BE-data from protocol tcp set firewall family inet filter mf-classifier term BE-data from port 80 set firewall family inet filter mf-classifier term BE-data then forwarding-class BE-data set firewall family inet filter mf-classifier term Premium-data from protocol tcp set firewall family inet filter mf-classifier term Premium-data from port 12345 set firewall family inet filter mf-classifier term Premium-data then forwarding-class Premium-data set firewall family inet filter mf-classifier term accept-all-else then accept
デバイスR2
set interfaces ge-1/0/9 description to-R1 set interfaces ge-1/0/9 unit 0 family inet address 10.30.0.2/30
手順
次の例では、設定階層内のさまざまなレベルに移動する必要があります。CLIのナビゲーションについては、 Junos OS CLIユーザーガイドの設定モードでのCLIエディターの使用を参照してください。
デバイスR1を設定するには:
-
デバイス インターフェイスを設定します。
[edit interfaces] user@R1# set ge-1/0/1 description to-host user@R1# set ge-1/0/1 unit 0 family inet address 172.16.50.2/30 user@R1# set ge-1/0/9 description to-R2 user@R1# set ge-1/0/9 unit 0 family inet address 10.30.0.1/30
-
カスタム転送クラスと関連するキュー番号を設定します。
[edit class-of-service forwarding-classes] user@R1# set BE-data queue-num 0 user@R1# set Premium-data queue-num 1 user@R1# set Voice queue-num 2 user@R1# set NC queue-num 3
-
送信元ポート80(HTTPトラフィック)を持つTCPトラフィックを、キュー0に関連付けられた BE データ転送クラスに配置するファイアウォールフィルター条件を設定します。
[edit firewall family inet filter mf-classifier] user@R1# set term BE-data from protocol tcp user@R1# set term BE-data from port 80 user@R1# set term BE-data then forwarding-class BE-data
-
送信元ポートが12345のTCPトラフィックを、キュー1に関連付けられたプレミアムデータ転送クラスに配置するファイアウォールフィルター条件を設定します。
[edit firewall family inet filter mf-classifier] user@R1# set term Premium-data from protocol tcp user@R1# set term Premium-data from port 12345 user@R1# set term Premium-data then forwarding-class Premium-data
-
ファイアウォールフィルターの最後に、他のすべてのトラフィックを受け入れるデフォルト条件を設定します。
それ以外の場合、インターフェイスに到着し、ファイアウォールフィルターによって明示的に受け入れられないすべてのトラフィックは破棄されます。
[edit firewall family inet filter mf-classifier] user@R1# set term accept-all-else then accept
-
ファイアウォールフィルターを、入力フィルターとしてge-1/0/1インターフェイスに適用します。
[edit interfaces] user@R1# set ge-1/0/1 unit 0 family inet filter input mf-classifier
結果
設定モードから、 、 show class-of-service
、 show firewall
コマンドを入力して設定をshow interfaces
確認します。出力結果に意図した設定が表示されない場合は、この例の手順を繰り返して設定を修正します。
user@R1# show interfaces ge-1/0/1 { description to-host; unit 0 { family inet { filter { input mf-classifier; } address 172.16.50.2/30; } } } ge-1/0/9 { description to-R2; unit 0 { family inet { address 10.30.0.1/30; } } }
user@R1# show class-of-service forwarding-classes { class BE-data queue-num 0; class Premium-data queue-num 1; class Voice queue-num 2; class NC queue-num 3; }
user@R1# show firewall family inet { filter mf-classifier { term BE-data { from { protocol tcp; port 80; } then forwarding-class BE-data; } term Premium-data { from { protocol tcp; port 12345; } then forwarding-class Premium-data; } term accept-all-else { then accept; } } }
デバイスの設定が完了したら、設定モードから を入力します commit
。
検証
設定が正しく機能していることを確認します。
CoS 設定の確認
目的
転送クラスが正しく設定されていることを確認します。
アクション
デバイスR1から、 コマンドを show class-of-service forwardng-classes
実行します。
user@R1> show class-of-service forwarding-class Forwarding class ID Queue Restricted queue Fabric priority Policing priority SPU priority BE-data 0 0 0 low normal low Premium-data 1 1 1 low normal low Voice 2 2 2 low normal low NC 3 3 3 low normal low
意味
出力には、構成済みのカスタム分類子設定が表示されます。
TCP トラフィックをネットワークに送信し、キュー配置を監視する
目的
目的のトラフィックが予想されるキューに送信されていることを確認します。
アクション
デバイスR1の発信インターフェイスのインターフェイス統計をクリアします。
user@R1> clear interfaces statistics ge-1/0/9
トラフィック ジェネレータを使用して、50 個の TCP ポート 80 パケットをデバイス R2 または他のダウンストリーム デバイスに送信します。
デバイスR1で、キューカウンターを確認します。
受信インターフェイスではなく、ダウンストリーム出力インターフェイスでキューカウンターを確認していることに注意してください。
user@R1> show interfaces extensive ge-1/0/9 | find "Queue counters" Queue counters: Queued packets Transmitted packets Dropped packets 0 50 50 0 1 0 57 0 2 0 0 0 3 0 0 0
トラフィック ジェネレータを使用して、50 個の TCP ポート 12345 パケットをデバイス R2 または他のダウンストリーム デバイスに送信します。
[root@host]# hping 172.16.60.1 -c 50 -s 12345 -k
デバイスR1で、キューカウンターを確認します。
user@R1> show interfaces extensive ge-1/0/9 | find "Queue counters" Queue counters: Queued packets Transmitted packets Dropped packets 0 50 50 0 1 50 57 0 2 0 0 0 3 0 0 0
意味
出力は、パケットが正しく分類されていることを示しています。ポート 80 が TCP パケットで使用される場合、キュー 0 は増分されます。ポート 12345 を使用すると、キュー 1 は増分されます。