例:CoS戦略を実施するために、ネットワーク境界でのCoS情報の書き換え
この例では、ネットワーク境界で(リマーキング)サービスクラス(CoS)値を書き換えて、内部CoS戦略を実施する方法を示しています。これは通常、ネットワーク境界のインバウンド トラフィックの CoS 値が信頼できない場合、または値が内部ネットワークの CoS 戦略と一致しない場合に行われます。
CoS の書き換えとその基礎となるアルゴリズムの徹底的な解説は、本書の範囲外です。トラフィックポリシングとCoSの一般的な詳細については、 QoS-Enabled Networks— Miguel BarreirosとPeter Lundqvistの「Tools and Foundations」を参照してください。このガイドは、多くのオンライン書籍販売業者や www.juniper.net/books で利用できます。
要件
この手順を確認するために、この例ではトラフィック ジェネレータを使用します。トラフィック ジェネレータは、ハードウェアベースで実行することも、サーバーまたはホスト マシン上で実行するソフトウェアにすることもできます。
この手順の機能は、Junos OS を実行するデバイスで幅広くサポートされています。ここに示す例は、Junos OSリリース10.4を実行しているMXシリーズルーターでテストと検証を行いました。
概要
この例の目的は、トラフィックに割り当てられた転送クラスとPLP(パケット損失の優先度)に基づいて、トラフィックのCoSプロファイルをネクストホップルーターに伝えるために、ネットワーク境界でのCoS書き換えをデモンストレーションすることです。CoS情報の書き換えは、パケットがエグレスネットワークに送信される前の最後のステップとして実行されます。
この例では、デバイスR1に接続されたホストからデバイスR2に接続されたホストにトラフィックを送信する場合に、書き換えが行われます。この例では、CoS パラメータを逆方向に書き換えるのに必要な情報は含まれていません。ただし、デバイスR1で書き換え情報を使用し(使用されるインターフェイスに変更を加える)、デバイスR2に適用して、双方向CoS書き換えを実現できます。
Junos OS には、要件を満たす場合があるいくつかのデフォルト書き換えルールが含まれています。コマンドで show class-of-service rewrite-rule
表示します。 表 1 は、デフォルトの書き換えルール マッピングの一部を示しています。
転送クラスからのマップ |
PLP 値 |
DSCP/DSCP へのマッピング IPv6/EXP/IP コード ポイントエイリアス |
---|---|---|
expedited-forwarding |
低 |
Ef |
expedited-forwarding |
高 |
Ef |
保証された転送 |
低 |
af11 |
保証された転送 |
高 |
af12(DSCP/DSCP IPv6/EXP) |
ベストエフォート |
低 |
Bve |
ベストエフォート |
高 |
Bve |
ネットワーク制御 |
低 |
nc1/cs6 |
ネットワーク制御 |
高 |
nc2/cs7 |
独自のカスタム書き換えルールテーブルを定義したり、作成するデフォルトの書き換えルールとカスタムテーブルを組み合わせて使用することもできます。この例では、デフォルトの書き換えルールを使用しています。
トポロジ
この例では、 図 1 のトポロジーを使用しています。
このビデオでは、この例で使用するトピックについて説明します。続行する前にビデオを見てください。
構成
手順
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 class-of-service forwarding-classes queue 0 BE-data set class-of-service forwarding-classes queue 1 Premium-data set class-of-service forwarding-classes queue 2 voice set class-of-service forwarding-classes queue 3 NC set class-of-service interfaces ge-2/0/8 scheduler-map test-map set class-of-service interfaces ge-2/0/8 unit 0 rewrite-rules dscp IPv4-rewrite-table set class-of-service rewrite-rules dscp IPv4-rewrite-table forwarding-class BE-data loss-priority low code-point be set class-of-service rewrite-rules dscp IPv4-rewrite-table forwarding-class Premium-data loss-priority low code-point ef set class-of-service scheduler-maps test-map forwarding-class BE-data scheduler BE-data set class-of-service scheduler-maps test-map forwarding-class Premium-data scheduler Prem-data set class-of-service schedulers BE-data transmit-rate 1m set class-of-service schedulers BE-data buffer-size percent 25 set class-of-service schedulers BE-data priority low set class-of-service schedulers Prem-data transmit-rate 1m set class-of-service schedulers Prem-data buffer-size percent 25 set class-of-service schedulers Prem-data priority high 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 count BE-data set firewall family inet filter mf-classifier term BE-data then forwarding-class BE-data set firewall family inet filter mf-classifier term Prem-data from protocol tcp set firewall family inet filter mf-classifier term Prem-data from port 12345 set firewall family inet filter mf-classifier term Prem-data then count Prem-data set firewall family inet filter mf-classifier term Prem-data then forwarding-class Premium-data set firewall family inet filter mf-classifier term accept 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.1/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 ge-2/0/8 unit 0 family inet filter input mf-classifier set interfaces unit 0 description looback-interface set interfaces unit 0 family inet address 192.168.14.1/32 set firewall family inet filter mf-classifier term BE-data from dscp be set firewall family inet filter mf-classifier term BE-data then count BE-data set firewall family inet filter mf-classifier term Premium-data from dscp ef set firewall family inet filter mf-classifier term Premium-data then count Premium-data set firewall family inet filter mf-classifier term accept then accept 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 ] user@R1# set interfaces ge-2/0/5 description to-Host user@R1# set interfaces ge-2/0/5 unit 0 family inet address 172.16.70.2/30 user@R1# set interfaces ge-2/0/5 unit 0 family inet filter input mf-classifier user@R1# set interfaces ge-2/0/8 description to-R2 user@R1# set interfaces ge-2/0/8 unit 0 family inet address 10.50.0.1/30 user@R1# set interfaces lo0 unit 0 description looback-interface user@R1# set interfaces lo0 unit 0 family inet address 192.168.13.1/32
ファイアウォールパラメータを設定します。
[edit ] user@R1# set firewall family inet filter mf-classifier term BE-data from protocol tcp user@R1# set firewall family inet filter mf-classifier term BE-data from port 80 user@R1# set firewall family inet filter mf-classifier term BE-data then count BE-data user@R1# set firewall family inet filter mf-classifier term BE-data then forwarding-class BE-data user@R1# set firewall family inet filter mf-classifier term Prem-data from protocol tcp user@R1# set firewall family inet filter mf-classifier term Prem-data from port 12345 user@R1# set firewall family inet filter mf-classifier term Prem-data then count Prem-data user@R1# set firewall family inet filter mf-classifier term Prem-data then forwarding-class Premium-data user@R1# set firewall family inet filter mf-classifier term accept then accept
サービス クラス パラメーターを設定します。
[edit ] user@R1# set class-of-service forwarding-classes queue 0 BE-data user@R1# set class-of-service forwarding-classes queue 1 Premium-data user@R1# set class-of-service forwarding-classes queue 2 voice user@R1# set class-of-service forwarding-classes queue 3 NC user@R1# set class-of-service interfaces ge-2/0/8 scheduler-map test-map user@R1# set class-of-service interfaces ge-2/0/8 unit 0 rewrite-rules dscp IPv4-rewrite-table user@R1# set class-of-service rewrite-rules dscp IPv4-rewrite-table forwarding-class BE-data loss-priority low code-point be user@R1# set class-of-service rewrite-rules dscp IPv4-rewrite-table forwarding-class Premium-data loss-priority low code-point ef user@R1# set class-of-service scheduler-maps test-map forwarding-class BE-data scheduler BE-data user@R1# set class-of-service scheduler-maps test-map forwarding-class Premium-data scheduler Prem-data user@R1# set class-of-service schedulers BE-data transmit-rate 1m user@R1# set class-of-service schedulers BE-data buffer-size percent 25 user@R1# set class-of-service schedulers BE-data priority low user@R1# set class-of-service schedulers Prem-data transmit-rate 1m user@R1# set class-of-service schedulers Prem-data buffer-size percent 25 user@R1# set class-of-service schedulers Prem-data priority high
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 ] user@R1# set interfaces ge-2/0/7 description to-Host user@R1# set interfaces ge-2/0/7 unit 0 family inet address 172.16.80.1/30 user@R1# set interfaces ge-2/0/8 description to-R1 user@R1# set interfaces ge-2/0/8 unit 0 family inet address 10.50.0.2/30 user@R2# set interfaces ge-2/0/8 unit 0 family inet filter input mf-classifier user@R1# set interfaces unit 0 description looback-interface user@R1# set interfaces unit 0 family inet address 192.168.14.1/32
ファイアウォールパラメータを設定します。
[edit ] user@R2# set firewall family inet filter mf-classifier term BE-data from dscp be user@R2# set firewall family inet filter mf-classifier term BE-data then count BE-data user@R2# set firewall family inet filter mf-classifier term Premium-data from dscp ef user@R2# set firewall family inet filter mf-classifier term Premium-data then count Premium-data user@R2# set firewall family inet filter mf-classifier term accept then accept
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 class-of-service
show firewall
および のコマンドをshow interfaces
入力して設定をshow protocols ospf
確認します。出力結果に意図した設定が表示されない場合は、この例の手順を繰り返して設定を修正します。
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 BE-data { from { protocol tcp; port 80; } then { count BE-data; forwarding-class BE-data; } } term Prem-data { from { protocol tcp; port 12345; } then { count Prem-data; forwarding-class Premium-data; } } term accept { then accept; } } }
user@R1 show class-of-service forwarding-classes { queue 0 BE-data; queue 1 Premium-data; queue 2 voice; queue 3 NC; } interfaces { ge-2/0/8 { scheduler-map test-map; unit 0 { rewrite-rules { dscp IPv4-rewrite-table; } } } } rewrite-rules { dscp IPv4-rewrite-table { forwarding-class BE-data { loss-priority low code-point be; } forwarding-class Premium-data { loss-priority low code-point ef; } } } scheduler-maps { test-map { forwarding-class BE-data scheduler BE-data; forwarding-class Premium-data scheduler Prem-data; } } schedulers { BE-data { transmit-rate 1m; buffer-size percent 25; priority low; } Prem-data { transmit-rate 1m; buffer-size percent 25; priority high; } }
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 { unit 0 { description to-Host; family inet { address 172.16.80.2; } } } ge-2/0/8 { description to-R1; unit 0 { family inet { filter { input mf-classifier; } address 10.50.0.2/30; } } } lo0 { unit 0 { description looback-interface; family inet { address 192.168.14.1/32; } } }
user@R2# show firewall family inet { filter mf-classifier { term BE-data { from { dscp be; } then count BE-data; } term Premium-data { from { dscp ef; } then count Premium-data; } term accept { then accept; } } }
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とR2で、 コマンドを clear firewall all
実行して、ファイアウォールカウンターを0にリセットします。
user@R1> clear firewall all user@R2> clear firewall all
TCP HTTP ポート 80 および 12345 からネットワークにトラフィックを送信し、結果を監視する
目的
デバイスR1とデバイスR2のファイアウォールで監視できるように、デバイス1に接続されたホストからネットワークにトラフィックを送信します。
アクション
トラフィック ジェネレータを使用して、送信元ポートが 80 の 20 個の TCP パケットをネットワークに送信します。
s フラグは、送信元ポートを設定します。k フラグは、ソース ポートがインクリメントされるのではなく、80 で安定した状態を維持します。c フラグは、パケット数を 20 に設定します。d フラグは、パケットサイズを設定します。
[User@host]# hping 172.16.80.1 -c 20 -s 80 -k -d 300 HPING 172.16.80.1 (eth1 172.16.80.1): NO FLAGS are set, 40 headers + 0 data bytes len=46 ip=172.16.80.1 ttl=62 DF id=0 sport=0 flags=RA seq=0 win=0 rtt=0.9 ms . . . --- 172.16.80.1 hping statistic --- 20 packets transmitted, 20 packets received, 0% packet loss round-trip min/avg/max = 0.9/9501.4/19002.4 ms
トラフィック ジェネレータを使用して、送信元ポートが 12345 の 20 個の TCP パケットをネットワークに送信します。
[User@host]# hping 172.16.80.1 -c 20 -s 12345 -k -d 300 HPING 172.16.80.1 (eth1 172.16.80.1): NO FLAGS are set, 40 headers + 0 data bytes len=46 ip=172.16.80.1 ttl=62 DF id=0 sport=0 flags=RA seq=0 win=0 rtt=0.3 ms . . . --- 172.16.80.1 hping statistic --- 20 packets transmitted, 20 packets received, 0% packet loss round-trip min/avg/max = 0.3/9501.5/19002.7 ms
デバイスR1で、 コマンドを使用してファイアウォールカウンターを
show firewall
確認します。user@R1> show firewall Filter: mf-classifier Counters: Name Bytes Packets BE-data 800 20 Prem-data 800 20
デバイスR2で、 コマンドを使用してファイアウォールカウンターを
show firewall
確認します。user@R2> show firewall Filter: mf-classifier Counters: Name Bytes Packets BE-data 800 20 Premium-data 800 20
意味
デバイスR1は、TCPパケットのコードポイントをポート12345からbfに正しく設定しています。デバイス R1 は、TCP パケットのコード ポイントをポート 80 に ef に正しく設定します。デバイスR2は、ポート12345へのTCPパケットのコードポイントをbfとして正しく認識しました。デバイス R2 は、ポート 80 への TCP パケットのコード ポイントを ef として正しく認識しました。