例:イングレスシングルレート2カラーポリサーの設定によるネットワーク境界でのインバウンドトラフィックの制限
この例では、着信トラフィックをフィルタリングするために、イングレスのシングルレート2カラーポリサーを設定する方法を示しています。ポリサーは、契約内および契約外のトラフィックに対してサービスクラス(CoS)戦略を実施します。シングルレート 2 カラー ポリサーは、着信パケット、発信パケット、またはその両方に適用できます。この例では、ポリサーを入力(イングレス)ポリサーとして適用します。このトピックでは、実際のトラフィック ポリシングを示す例を使用して、ポリシングの概要を説明することを目的としています。
ポリサーは、トークン・バケットと呼ばれる概念を使用して、ポリサーに定義されたパラメーターに基づいてシステム・リソースを割り当てます。トークン バケットの概念とその基になるアルゴリズムの詳細な説明は、このドキュメントの範囲を超えています。トラフィックポリシングとCoS全般の詳細については、Miguel BarreirosとPeter Lundqvistによる 『QOS-Enabled Networks—Tools and Foundations 』を参照してください。この本は、多くのオンライン書店や www.juniper.net/books で入手できます。
要件
この手順を確認するために、この例ではトラフィック ジェネレーターを使用します。トラフィックジェネレータは、ハードウェアベースにすることも、サーバやホストマシン上で動作するソフトウェアにすることもできます。
この手順の機能は、Junos OS を実行するデバイスで広くサポートされています。ここに示す例は、Junos OSリリース10.4を実行するMXシリーズルーターでテストおよび検証されたものです。
概要
シングル レート ツー カラー ポリシングは、制限に適合しないトラフィックに暗黙的または設定されたアクションを適用することにより、特定のサービス レベルに対して設定されたトラフィック フロー レートを適用します。インターフェイスの入力トラフィックまたは出力トラフィックにシングルレート 2 カラー ポリサーを適用すると、ポリサーは次のコンポーネントで定義されたレート制限までトラフィック フローを計測します。
帯域幅制限—インターフェイスで受信または送信されたパケットに許可される平均ビット数/秒。帯域幅制限は、1 秒あたりのビット数の絶対数、または 1 から 100 までのパーセント値で指定できます。パーセント値を指定した場合、実効帯域幅制限は、物理インターフェイスのメディア レートまたは論理インターフェイスで構成されたシェーピング レートのいずれかの割合として計算されます。
バーストサイズ制限 - データのバーストに許可される最大サイズ。バースト サイズはバイト単位で測定されます。バースト サイズの計算には、次の 2 つの式をお勧めします。
バースト サイズ = 帯域幅 x バースト トラフィックの許容時間 / 8
または
バースト サイズ = インターフェイス MTU x 10
バースト サイズの設定については、 トラフィック ポリサーの適切なバースト サイズを決定するを参照してください。
メモ:インターフェイスには有限のバッファ空間があります。一般に、インターフェイスの推定合計バッファー深度は約 125 ミリ秒です。
設定された制限に準拠するトラフィックフロー(グリーントラフィックとして分類)の場合、パケットは暗黙的にPLP(パケット損失優先度)レベル低でマークされ、無制限にインターフェイスを通過できます。
設定された制限を超えるトラフィックフロー(レッドトラフィックとして分類)の場合、パケットはポリサーに設定されたトラフィックポリシングアクションに従って処理されます。この例では、15 KBps の制限を超えてバーストするパケットを破棄します。
レイヤー 3 トラフィックのレート制限を行うには、以下の方法で 2 色ポリサーを適用します。
特定のプロトコルレベルで、論理インターフェイスに直接接続します。
特定のプロトコルレベルで論理インターフェイスに適用される標準ステートレスファイアウォールフィルターのアクションとして。これは、この例で使用されている手法です。
レイヤー 2 トラフィックのレートを制限するには、論理インターフェイス ポリサーとしてのみ 2 色ポリサーを適用できます。ファイアウォールフィルターを介してレイヤー2トラフィックに2色ポリサーを適用することはできません。
ポリサー内で帯域幅制限または帯域幅パーセントのいずれかを選択できますが、これは相互に排他的です。集約インターフェイス、トンネルインターフェイス、およびソフトウェア インターフェイスに帯域幅の割合を使用するようにポリサーを設定することはできません。
この例では、ホストは Web サーバーをエミュレートするトラフィック ジェネレーターです。デバイス R1 および R2 は、サービス プロバイダが所有しています。Web サーバーには、デバイス Host2 上のユーザーがアクセスします。デバイスHost1は、送信元TCP HTTPポートが80のトラフィックをユーザーに送信します。シングルレート2カラーポリサーが設定され、デバイスHost1に接続するデバイスR1上のインターフェイスに適用されます。ポリサーは、デバイス Host1 とデバイス R1 を接続するリンク上を流れる Web トラフィックに対して、Web サーバーの所有者とデバイス R1 を所有するサービス プロバイダーとの間で行われる契約上の帯域幅の可用性を強制します。
Web サーバーの所有者とデバイス R1 およびデバイス R2 を所有するサービス プロバイダーとの間で締結された契約上の帯域幅の可用性に応じて、ポリサーは、ホスト デバイス Host1 から発信される HTTP ポート 80 のトラフィックを、ホスト デバイス Host1 とデバイス R1 間のギガビット イーサネット インターフェイスの MTU サイズの 10 倍の許容バースト レートで、利用可能な帯域幅の 700 Mbps(70 %)を使用するように制限します。
実際のシナリオでは、FTP、SFTP、SSH、TELNET、SMTP、IMAP、POP3 など、他のさまざまなポートのトラフィックもレート制限します。これは、多くの場合、Web ホスティング サービスの追加サービスとして含まれているためです。
ルーティング プロトコル、DNS、およびネットワーク接続の運用を維持するために必要なその他のプロトコルなどのネットワーク制御プロトコルのレート制限を受けない追加の帯域幅を利用できるようにしておく必要があります。これが、ファイアウォールフィルターに最終的な受け入れ条件がある理由です。
構成
手順
CLIクイック構成
この例をすばやく設定するには、次のコマンドをコピーしてテキストファイルに貼り付け、改行を削除して、ネットワーク構成に合わせて必要な詳細を変更し、 階層レベルのCLI [edit] にコマンドをコピーして貼り付けます。
デバイスR1
set interfaces ge-2/0/5 description to-Host set interfaces ge-2/0/5 unit 0 family inet address 172.16.70.2/30 set interfaces ge-2/0/5 unit 0 family inet filter input mf-classifier set interfaces ge-2/0/8 description to-R2 set interfaces ge-2/0/8 unit 0 family inet address 10.50.0.1/30 set interfaces lo0 unit 0 description looback-interface set interfaces lo0 unit 0 family inet address 192.168.13.1/32 set firewall policer discard if-exceeding bandwidth-limit 700m set firewall policer discard if-exceeding burst-size-limit 15k set firewall policer discard then discard set firewall family inet filter mf-classifier term t1 from protocol tcp set firewall family inet filter mf-classifier term t1 from port 80 set firewall family inet filter mf-classifier term t1 then policer discard set firewall family inet filter mf-classifier term t2 then accept set protocols ospf area 0.0.0.0 interface ge-2/0/5.0 passive set protocols ospf area 0.0.0.0 interface lo0.0 passive set protocols ospf area 0.0.0.0 interface ge-2/0/8.0
デバイスR2
set interfaces ge-2/0/8 description to-R1 set interfaces ge-2/0/8 unit 0 family inet address 10.50.0.2/30 set interfaces ge-2/0/7 description to-Host set interfaces ge-2/0/7 unit 0 family inet address 172.16.80.2/30 set interfaces lo0 unit 0 description looback-interface set interfaces lo0 unit 0 family inet address 192.168.14.1/32 set protocols ospf area 0.0.0.0 interface ge-2/0/7.0 passive set protocols ospf area 0.0.0.0 interface lo0.0 passive set protocols ospf area 0.0.0.0 interface ge-2/0/8.0
手順
次の例では、設定階層のいくつかのレベルに移動する必要があります。CLI のナビゲーションについては、『Junos OS CLIユーザーガイド』の「 コンフィギュレーション・モードで CLI エディタを使用する」を参照してください。
Device R1を設定するには:
デバイスインターフェイスを設定します。
[edit interfaces] user@R1# set ge-2/0/5 description to-Host user@R1# set ge-2/0/5 unit 0 family inet address 172.16.70.2/30 user@R1# set ge-2/0/8 description to-R2 user@R1# set ge-2/0/8 unit 0 family inet address 10.50.0.1/30 user@R1# set lo0 unit 0 description looback-interface user@R1# set lo0 unit 0 family inet address 192.168.13.1/32
ファイアウォールフィルターを入力フィルターとしてインターフェイスge-2/0/5に適用します。
[edit interfaces ge-2/0/5 unit 0 family inet] user@R1# set filter input mf-classifier
ポリサーを構成して、HTTP トラフィック(TCP ポート 80)の帯域幅を 700 Mbps、バースト サイズを 15000 KBps に制限します。
[edit firewall policer discard] user@R1# set if-exceeding bandwidth-limit 700m user@R1# set if-exceeding burst-size-limit 15k
red トラフィックフローのパケットを破棄するようにポリサーを設定します。
[edit firewall policer discard] user@R1# set then discard
ポート HTTP (ポート 80) へのすべての TCP トラフィックを受け入れるように、ファイアウォールの 2 つの条件を構成します。
[edit firewall family inet filter mf-classifier] user@R1# set term t1 from protocol tcp user@R1# set term t1 from port 80
ポリサーを使用して HTTP TCP トラフィックのレートを制限するようにファイアウォール アクションを構成します。
[edit firewall family inet filter mf-classifier] user@R1# set term t1 then policer discard
ファイアウォールフィルターの最後に、他のすべてのトラフィックを受け入れるデフォルトアクションを設定します。
それ以外の場合、インターフェイスに到着し、ファイアウォールによって明示的に受け入れられないすべてのトラフィックは破棄されます。
[edit firewall family inet filter mf-classifier] user@R1# set term t2 then accept
OSPFを設定します。
[edit protocols ospf] user@R1# set area 0.0.0.0 interface ge-2/0/5.0 passive user@R1# set area 0.0.0.0 interface lo0.0 passive user@R1# set area 0.0.0.0 interface ge-2/0/8.0
手順
デバイスR2を設定するには:
デバイスインターフェイスを設定します。
[edit interfaces] user@R1# set ge-2/0/8 description to-R1 user@R1# set ge-2/0/7 description to-Host user@R1# set lo0 unit 0 description looback-interface user@R1# set ge-2/0/8 unit 0 family inet address 10.50.0.2/30 user@R1# set ge-2/0/7 unit 0 family inet address 172.16.80.2/30 user@R1# set lo0 unit 0 family inet address 192.168.14.1/32
OSPFを設定します。
[edit protocols ospf] user@R1# set area 0.0.0.0 interface ge-2/0/7.0 passive user@R1# set area 0.0.0.0 interface lo0.0 passive user@R1# set area 0.0.0.0 interface ge-2/0/8.0
結果
コンフィギュレーションモードから、、show firewallshow protocols ospf、およびの各show interfacesコマ ンドを入力し 、コンフィギュレーションを確認します。出力結果に意図した設定内容が表示されない場合は、この例の手順を繰り返して設定を修正します。
user@R1# show interfaces
ge-2/0/5 {
description to-Host;
unit 0 {
family inet {
filter {
input mf-classifier;
}
address 172.16.70.2/30;
}
}
}
ge-2/0/8 {
description to-R2;
unit 0 {
family inet {
address 10.50.0.1/30;
}
}
}
lo0 {
unit 0 {
description looback-interface;
family inet {
address 192.168.13.1/32;
}
}
}
user@R1# show firewall
family inet {
filter mf-classifier {
term t1 {
from {
protocol tcp;
port 80;
}
then policer discard;
}
term t2 {
then accept;
}
}
}
policer discard {
if-exceeding {
bandwidth-limit 700m;
burst-size-limit 15k;
}
then discard;
}
user@R1# show protocols ospf
area 0.0.0.0 {
interface ge-2/0/5.0 {
passive;
}
interface lo0.0 {
passive;
}
interface ge-2/0/8.0;
}
デバイスR1の設定が完了したら、設定モードから を入力します commit 。
user@R2# show interfaces
ge-2/0/7 {
description to-Host;
unit 0 {
family inet {
address 172.16.80.2/30;
}
}
}
ge-2/0/8 {
description to-R1;
unit 0 {
family inet {
address 10.50.0.2/30;
}
}
}
lo0 {
unit 0 {
description looback-interface;
family inet {
address 192.168.14.1/32;
}
}
}
user@R2# show protocols ospf
area 0.0.0.0 {
interface ge-2/0/7.0 {
passive;
}
interface lo0.0 {
passive;
}
interface ge-2/0/8.0;
}
デバイスR2の設定が完了したら、設定モードから を入力します commit 。
検証
設定が正常に機能していることを確認します。
カウンターのクリア
目的
ファイアウォール カウンターがクリアされていることを確認します。
アクション
デバイスR1で、 clear firewall all ファイアウォールカウンターを0にリセットするコマンドを実行します。
user@R1> clear firewall all
ネットワークへのTCPトラフィックの送信と破棄の監視
目的
送信される対象のトラフィックが、入力インターフェイス(ge-2/0/5)でレート制限されていることを確認します。
アクション
トラフィック ジェネレーターを使用して、送信元ポート 80 で 10 個の TCP パケットを送信します。
-s フラグは送信元ポートを設定します。-k フラグを指定すると、ソース・ポートは増加するのではなく、80 で安定します。-c フラグは、パケット数を 10 に設定します。-d フラグはパケット・サイズを設定します。
宛先 IP アドレス 172.16.80.1 は、デバイス R2 に接続されているデバイス ホスト 2 に属しています。デバイス ホスト 2 のユーザーが、デバイス ホスト 1 (デバイス ホスト 1 のトラフィック ジェネレーターによってエミュレートされた Web サーバー)から Web ページを要求しました。レート制限されるパケットは、デバイス ホスト 2 からの要求に応答して、デバイス ホスト 1 から送信されます。
メモ:この例では、ポリサー番号を帯域幅制限 8 Kbps、バースト サイズ制限 1500 KBps に減らして、このテスト中に一部のパケットがドロップされるようにしています。
[root@host]# hping 172.16.80.1 -c 10 -s 80 -k -d 300 [User@Host]# hping 172.16.80.1 -c 10 -s 80 -k -d 350 HPING 172.16.80.1 (eth1 172.16.80.1): NO FLAGS are set, 40 headers + 350 data bytes len=46 ip=172.16.80.1 ttl=62 DF id=0 sport=0 flags=RA seq=0 win=0 rtt=0.5 ms . . . --- 172.16.80.1 hping statistic --- 10 packets transmitted, 6 packets received, 40% packet loss round-trip min/avg/max = 0.5/3000.8/7001.3 ms
デバイスR1で、 コマンドを使用してファイアウォールカウンター
show firewallを確認します。user@R1> show firewall User@R1# run show firewall Filter: __default_bpdu_filter__ Filter: mf-classifier Policers: Name Bytes Packets discard-t1 1560 4
意味
ステップ1と2では、両方のデバイスからの出力は、4つのパケットが破棄されたことを示しています。 これは、少なくとも 8 Kbps の緑(コントラクト内 HTTP ポート 80)トラフィックがあり、赤のコントラクト外 HTTP ポート 80 トラフィックの 1500 KBps バースト オプションを超えたことを意味します。

