例:エグレスシングルレート2カラーポリサーを設定して、エグレスネットワーク境界でCoSを実行する
この例では、エグレスシングルレート2カラーポリサーを設定する方法を示しています。ポリサーはトークンバケットと呼ばれる概念を使用します。ポリサーは、契約内および契約外トラフィックに対してサービスクラス(CoS)戦略を適用します。単一レートの 2 カラー ポリサーを受信パケット、発信パケット、またはその両方に適用できます。この例では、ポリサーを出力(エグレス)ポリサーとして適用します。この例では、トラフィックのポリシー実行を示す例を使用して、ポリシー実行について説明します。
トークン バケットの概念とその基盤となるアルゴリズムの徹底的な説明は、このドキュメントの範囲外です。トラフィックポリシングとCoSの一般的な詳細については、 QoS-Enabled Networks— Miguel BarreirosとPeter Lundqvistの「Tools and Foundations」を参照してください。このガイドは、多くのオンライン書籍販売業者や www.juniper.net/books で利用できます。
要件
この手順を確認するために、この例ではトラフィック ジェネレータを使用します。トラフィック ジェネレータは、ハードウェアベースで実行することも、サーバーまたはホスト マシン上で実行するソフトウェアにすることもできます。
この手順の機能は、Junos OS を実行するデバイスで幅広くサポートされています。ここに示す例は、Junos OSリリース10.4を実行しているMXシリーズルーターでテストと検証を行いました。
概要
シングルレートの2カラーポリシーは、制限に準拠しないトラフィックに暗示的または設定されたアクションを適用することで、特定のサービスレベルに設定されたトラフィックフローのレートを適用します。インターフェイスの入力または出力トラフィックに単一レートの 2 カラー ポリサーを適用すると、ポリサーはトラフィック フローを次のコンポーネントで定義されたレート制限まで計ります。
帯域幅制限—インターフェイスで受信または送信されたパケットで許可される1秒あたりのビット数の平均。帯域幅制限は、1秒あたりのビット数の絶対数として、または1~100の割合値として指定できます。パーセンテージ値を指定した場合、有効帯域幅制限は、物理インターフェイスメディアレートまたは論理インターフェイス設定シェーピングレートのいずれかの割合として計算されます。
バーストサイズ制限 — データのバーストで許可される最大サイズ。バースト サイズはバイト単位で測定されます。バースト サイズの計算には、2 つの公式が推奨されます。
バースト サイズ = 帯域幅 x バースト トラフィックの許容時間 / 8
または
バースト サイズ = インターフェイス mtu x 10
バースト サイズの設定については、 トラフィック ポリサーの適切なバースト サイズの決定を参照してください。
メモ:インターフェイスにはバッファ空間が有限です。一般に、インターフェイスの推定総バッファ深さは約125ミリ秒です。
設定された制限(緑のトラフィックに分類)に準拠したトラフィックフローの場合、パケットは暗黙的にPLP(パケット損失優先度)レベルが低くマークされ、無制限にインターフェイスを通過できます。
設定された制限(赤色のトラフィック)を超えるトラフィックフローの場合、パケットはポリサーに設定されたトラフィックポリシングアクションに従って処理されます。この例では、15 KBps 制限を超えるバーストパケットを破棄します。
レイヤー 3 トラフィックをレート制限するために、次の方法で 2 カラー ポリサーを適用できます。
特定のプロトコルレベルで、論理インターフェイスに直接。
論理インターフェイスに適用される標準ステートレスファイアウォールフィルターのアクションとして、特定のプロトコルレベルで実行されます。これは、この例で使用される技術です。
レイヤー 2 トラフィックをレート制限するために、2 色のポリサーを論理インターフェイス ポリサーとしてのみ適用できます。ファイアウォール フィルターを介してレイヤー 2 トラフィックに 2 カラー ポリサーを適用することはできません。
ポリサーは相互に排他的であるため、帯域幅制限または帯域幅パーセントのいずれかを選択できます。ポリサーがアグリゲート インターフェイス、トンネル インターフェイス、またはソフトウェア インターフェイスに帯域幅パーセントを使用するように設定することはできません。
この例では、ホストは Web サーバーをエミュレートするトラフィック ジェネレータです。デバイスR1およびR2はサービスプロバイダが所有しています。Webサーバーは、デバイスR2の背後にあるユーザーによってアクセスされます。ホストは、送信元TCP HTTPポート80のトラフィックをユーザーに送信します。シングルレートの2カラーポリサーが設定され、デバイスR2に接続するデバイスR1のインターフェイスに適用されます。ポリサーは、Webサーバーの所有者(この場合はホストでエミュレート)と、デバイスR1とR2を接続するリンクを介して流れるWebトラフィックに対してデバイスR1とR2を所有するサービスプロバイダとの間で行われる帯域幅の可用性を強制します。
Webサーバーの所有者とデバイスR1とR2を所有するサービスプロバイダとの間で可能になる契約帯域幅に従い、ポリサーは、ホストから発信されるHTTPポート80トラフィックを、利用可能な帯域幅の700 Mbps(70%)を使用し、許容バーストレートはR1とR2デバイス間のギガビットイーサネットインターフェイスのMTUサイズ10 x を使用することを制限します。
実際のシナリオでは、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/8 description to-R2 set interfaces ge-2/0/8 unit 0 family inet address 10.50.0.1/30 set interfaces ge-2/0/8 unit 0 family inet filter output mf-classifier 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/7 description to-Host set interfaces ge-2/0/7 unit 0 family inet address 172.16.80.2/30 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 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
手順
次の例では、設定階層内のさまざまなレベルに移動する必要があります。その方法の詳細については、 Junos OS CLIユーザーガイドの 設定モードでのCLIエディターの使用を参照してください。
デバイス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
ポリサーを設定して、HTTP トラフィックに対して 700 Mbps の帯域幅と 15 KBps のバースト サイズ(TCP ポート 80)にレート制限します。
[edit firewall policer discard] user@R1# set if-exceeding bandwidth-limit 700m user@R1# set if-exceeding burst-size-limit 15k
赤色のトラフィック フローでパケットを破棄するようにポリサーを設定します。
[edit firewall policer discard] user@R1# set then discard
ファイアウォールの2つの条件を設定して、すべてのTCPトラフィックをポートHTTP(ポート80)に受け入れます。
[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
ファイアウォールフィルターを、出力フィルターとしてインターフェイスge-2/0/8に適用します。
[edit interfaces ge-2/0/8 unit 0 family inet] user@R1# set filter output mf-classifier
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] set ge-2/0/7 description to-Host set ge-2/0/7 unit 0 family inet address 172.16.80.2/30 set ge-2/0/8 description to-R1 set ge-2/0/8 unit 0 family inet address 10.50.0.2/30 set lo0 unit 0 description looback-interface set lo0 unit 0 family inet address 192.168.14.1/32
OSPFを設定します。
[edit protocols ospf] set area 0.0.0.0 interface ge-2/0/7.0 passive set area 0.0.0.0 interface lo0.0 passive set area 0.0.0.0 interface ge-2/0/8.0
結果
設定モードから、 、 、 show firewallコマンドを入力して設定をshow interfacesshow protocols OSPF確認します。出力結果に意図した設定が表示されない場合は、この例の手順を繰り返して設定を修正します。
ge-2/0/5 {
description to-Host;
unit 0 {
family inet {
address 172.16.70.2/30;
}
}
}
ge-2/0/8 {
description to-R2;
unit 0 {
family inet {
filter {
output mf-classifier;
}
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;
}
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/8)でレート制限されていることを確認します。
アクション
トラフィック ジェネレータを使用して、送信元ポートが 80 の TCP パケットを 20 個送信します。
s フラグは、送信元ポートを設定します。k フラグは、ソース ポートがインクリメントされるのではなく、80 で安定した状態を維持します。c フラグは、パケット数を 10 に設定します。d フラグは、パケットサイズを設定します。
宛先 IP アドレス 172.16.80.1 は、デバイス R2 のダウンストリームであるユーザーを表します。ユーザーがホスト(トラフィックジェネレータでエミュレートされたWebサーバー)からWebページを要求すると、その要求に応じてパケットが送信されます。
メモ:この例では、ポリサー数は帯域幅制限の 8 Kbps に、バースト サイズ制限は 1500 KBps に減り、一部のパケットがドロップされることを確認しています。
[root@host]# hping 172.16.80.1 -s 80 -k -d 375 -c 20 [root@tp-lnx03 rtwright]# hping 172.16.80.1 -s 80 -k -d 375 -c 20 HPING 172.16.80.1 (eth1 172.16.80.1): NO FLAGS are set, 40 headers + 375 data bytes len=46 ip=172.16.80.1 ttl=62 DF id=0 sport=0 flags=RA seq=0 win=0 rtt=4000.8 ms . . . --- 172.16.80.1 hping statistic --- 20 packets transmitted, 12 packets received, 40% packet loss
デバイスR1で、 コマンドを使用してファイアウォールカウンターを
show firewall確認します。user@R1> show firewall user@sugar# run show firewall Filter: mf-classifier Policers: Name Bytes Packets discard-t1 3320 8
意味
ステップ1および2では、両方のデバイスからの出力は、8パケットが破棄されたことを示しています。これは、緑(契約内 HTTP ポート 80)トラフィックが少なくとも 8 Kbps あり、赤い契約外 HTTP ポート 80 トラフィックの 1500 KBps バースト オプションを超えていたことを意味します。

