次に、match precedence コマンドを使用して IPv6 トラフィック フローを管理する例を示します。
Router# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# class-m c1
Router(config-cmap)# match precedence 5
Router(config-cmap)# end
Router#
Router(config)# policy p1
Router(config-pmap)# class c1
Router(config-pmap-c)# police 10000 conform set-prec-trans 4
パケット マーキングが想定どおりに動作していることを確認するには、show policy コマンドを使用します。 このコマンドの出力には、パケット総数とマーキングされたパケット数の差が表示されます。
Router# show policy p1
Policy Map p1
Class c1
police 10000 1500 1500 conform-action set-prec-transmit 4 exceed-action drop
Router# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# interface serial 4/1
Router(config-if)# service out p1
Router(config-if)# end
Router# show policy interface s4/1
Serial4/1
Service-policy output: p1
Class-map: c1 (match-all)
0 packets, 0 bytes
5 minute offered rate 0 bps, drop rate 0 bps
Match: precedence 5
police:
10000 bps, 1500 limit, 1500 extended limit
conformed 0 packets, 0 bytes; action: set-prec-transmit 4
exceeded 0 packets, 0 bytes; action: drop
conformed 0 bps, exceed 0 bps violate 0 bps
Class-map: class-default (match-any)
10 packets, 1486 bytes
5 minute offered rate 0 bps, drop rate 0 bps
Match: any
発信インターフェイスでの送信輻輳中、パケットは、インターフェイスが送信可能な速度より速く到達します。 show policy-map interface コマンド出力の解釈方法を理解しておくと、シスコの MQC を使って作成されたサービス ポリシーの結果をモニタリングするうえで役に立ちます。
輻輳は通常、高速な入力インターフェイスが相対的に低速な出力インターフェイスに供給する場合に発生します。 機能的には、輻輳の定義は、インターフェイス上で送信リングがいっぱいになることです(リングとは、特殊なバッファ制御構造のことです)。 それぞれのインターフェイスは、1 対のリング、つまりパケット受信用の受信リングとパケット送信用の送信リングをサポートしています。 リングのサイズは、インターフェイス コントローラやインターフェイスまたは仮想回線(VC)の帯域幅によって異なります。 次の例に示すように、show atm vc vcd コマンドを使用して、PA-A3 ATM ポート アダプタ上の送信リングの値を表示します。
Router# show atm vc 3
ATM5/0.2: VCD: 3, VPI: 2, VCI: 2
VBR-NRT, PeakRate: 30000, Average Rate: 20000, Burst Cells: 94
AAL5-LLC/SNAP, etype:0x0, Flags: 0x20, VCmode: 0x0
OAM frequency: 0 second(s)
PA TxRingLimit: 10
InARP frequency: 15 minutes(s)
Transmit priority 2
InPkts: 0, OutPkts: 0, InBytes: 0, OutBytes: 0
InPRoc: 0, OutPRoc: 0
InFast: 0, OutFast: 0, InAS: 0, OutAS: 0
InPktDrops: 0, OutPktDrops: 0
CrcErrors: 0, SarTimeOuts: 0, OverSizedSDUs: 0
OAM cells received: 0
OAM cells sent: 0
Status: UP
シスコ ソフトウェア(レイヤ 3 プロセッサとも呼ばれる)とインターフェイス ドライバは、パケットを物理メディアに移動する際に送信リングを使用します。 この 2 つのプロセッサは、次のように連携します。
-
インターフェイスは、インターフェイス レートまたはシェイプド レートに応じてパケットを送信します。
-
インターフェイスは、物理ワイヤへの送信を待機するパケットの格納場所であるハードウェア キューまたは送信リングを維持します。
-
ハードウェア キューまたは送信リングがいっぱいになると、インターフェイスはレイヤ 3 プロセッサ システムへの明示的なバック プレッシャを提供します。 インターフェイスは、送信リングがいっぱいであるため、インターフェイスの送信リングへのパケットのデキューを停止するようレイヤ 3 プロセッサに通知します。 レイヤ 3 プロセッサは、超過パケットをレイヤ 3 キューに格納します。
-
インターフェイスが送信リング上のパケットを送信してリングを空にすると、パケットを格納するために十分なバッファが再び利用可能になります。 インターフェイスはバック プレッシャを解放し、レイヤ 3 プロセッサはインターフェイスへの新しいパケットをデキューします。
この通信システムの最も重要な側面は、インターフェイスが送信リングがいっぱいであることを認識し、レイヤ 3 プロセッサ システムからの新しいパケットの受信を制限するということです。 したがって、インターフェイスが輻輳状態になった場合、ドロップの決定は、送信リングの先入れ先出し(FIFO)キュー内のランダムな後入れ先ドロップ決定から、レイヤ 3 プロセッサによって実装される IP レベルのサービス ポリシーに基づいたディファレンシエーテッド決定に移行されます。
サービス ポリシーは、レイヤ 3 キューに格納されているパケットにだけ適用されます。 次の表に、どのパケットがレイヤ 3 キューに含まれるかを示します。 ローカルに生成されたパケットは常にプロセス スイッチド パケットとなり、インターフェイス ドライバに渡される前にまずレイヤ 3 キューに送信されます。 ファスト スイッチド パケットおよびシスコ エクスプレス フォワーディング スイッチド パケットは、送信リングに直接送信され、送信リングがいっぱいになったときにだけレイヤ 3 キューに入れられます。
表 1 パケット タイプおよびレイヤ 3 キュー
パケット タイプ |
輻輳 |
非輻輳 |
ローカルに生成されたパケット(Telnet パケットおよび ping を含む) |
Yes |
Yes |
プロセス スイッチングが行われる他のパケット |
Yes |
Yes |
シスコ エクスプレス フォワーディング スイッチングまたはファストスイッチングが行われるパケット |
Yes |
No |
次の例では、これらのガイドラインが show policy-map interface コマンド出力に適用されています。
Router# show policy-map interface atm 1/0.1
ATM1/0.1: VC 0/100 -
Service-policy output: cbwfq (1283)
Class-map: A (match-all) (1285/2)
28621 packets, 7098008 bytes
5 minute offered rate 10000 bps, drop rate 0 bps
Match: access-group 101 (1289)
Weighted Fair Queueing
Output Queue: Conversation 73
Bandwidth 500 (kbps) Max Threshold 64 (packets)
(pkts matched/bytes matched) 28621/7098008
(depth/total drops/no-buffer drops) 0/0/0
Class-map: B (match-all) (1301/4)
2058 packets, 148176 bytes
5 minute offered rate 0 bps, drop rate 0 bps
Match: access-group 103 (1305)
Weighted Fair Queueing
Output Queue: Conversation 75
Bandwidth 50 (kbps) Max Threshold 64 (packets)
(pkts matched/bytes matched) 0/0
(depth/total drops/no-buffer drops) 0/0/0
Class-map: class-default (match-any) (1309/0)
19 packets, 968 bytes
5 minute offered rate 0 bps, drop rate 0 bps
Match: any (1313)
次の表は、例に示されるカウンタを定義しています。
表 2 show policy-map interface 出力内のパケット カウンタ
カウンタ |
説明 |
28621 packets, 7098008 bytes |
クラスの基準に一致するパケットの数。 このカウンタは、インターフェイスが輻輳しているかどうかにかかわらず、増分します。 |
(pkts matched/bytes matched) 28621/709800 |
インターフェイスが輻輳していたときの、クラスの基準に一致するパケットの数。 つまり、インターフェイスの送信リングがいっぱいになり、ドライバと L3 プロセッサ システムが連携して、サービス ポリシーが適用される L3 キューに超過パケットを入れました。 プロセス スイッチド パケットは必ず L3 キューイング システムを通過するため、「一致パケット」カウンタが増加します。 |
Class-map: B (match-all) (1301/4) |
これらの番号は、CISCO-CLASS-BASED-QOS-MIB 管理情報ベース(MIB)で使用される内部 ID を定義します。 |
5 minute offered rate 0 bps, drop rate 0 bps |
この値を変更し、より瞬間的な値にするには、load-interval コマンドを使用します。 最小値は 30 秒ですが、show policy-map interface コマンド出力に表示される統計情報は、10 秒ごとに更新されます。 このコマンドは特定の瞬間におけるスナップショットを提供するため、統計情報はキュー サイズの一時的な変更を反映していないことがあります。 |
輻輳がない場合、超過パケットをキューイングする必要はありません。 輻輳が発生した場合、パケット(シスコ エクスプレス フォワーディング スイッチド パケットおよびファスト スイッチド パケットを含む)は、レイヤ 3 キューに入れられる可能性があります。 輻輳管理機能を使用する場合、インターフェイスに累積されるパケットは、インターフェイスがそれらのパケットを送信するように解放されるまでキューイングされます。そのあと、割り当てられた優先順位およびインターフェイスに対して設定されたキューイング メカニズムに従ってスケジュールされます。
通常、パケット カウンタの方が、一致パケット カウンタよりもはるかに大きくなります。 2 つのカウンタの値がほぼ等しい場合、インターフェイスが大量のプロセス スイッチド パケットを受信しているか、または重度に輻輳しています。 確実に最適なパケット転送を行うために、この両方の条件を調査する必要があります。
ルータは、サービス ポリシーが適用されたときに作成されたキューに対してカンバセーション番号を割り当てます。 次に、キューおよび関連情報を表示する例を示します。
Router# show policy-map interface s1/0.1 dlci 100
Serial1/0.1: DLCI 100 -
output : mypolicy
Class voice
Weighted Fair Queueing
Strict Priority
Output Queue: Conversation 72
Bandwidth 16 (kbps) Packets Matched 0
(pkts discards/bytes discards) 0/0
Class immediate-data
Weighted Fair Queueing
Output Queue: Conversation 73
Bandwidth 60 (%) Packets Matched 0
(pkts discards/bytes discards/tail drops) 0/0/0
mean queue depth: 0
drops: class random tail min-th max-th mark-prob
0 0 0 64 128 1/10
1 0 0 71 128 1/10
2 0 0 78 128 1/10
3 0 0 85 128 1/10
4 0 0 92 128 1/10
5 0 0 99 128 1/10
6 0 0 106 128 1/10
7 0 0 113 128 1/10
rsvp 0 0 120 128 1/10
Class priority-data
Weighted Fair Queueing
Output Queue: Conversation 74
Bandwidth 40 (%) Packets Matched 0 Max Threshold 64 (packets)
(pkts discards/bytes discards/tail drops) 0/0/0
Class class-default
Weighted Fair Queueing
Flow Based Fair Queueing
Maximum Number of Hashed Queues 64 Max Threshold 20 (packets)
各クラスに対して報告される情報には、次のものが含まれます。
-
クラス定義
-
適用されるキューイング方式
-
出力キュー カンバセーション番号
-
使用されている帯域幅
-
廃棄されたパケット数
-
廃棄されたバイト数
-
ドロップされたパケット数
class-default クラスは、ポリシー マップ内にポリシーが定義されている他のクラスの一致基準をトラフィックが満たさない場合に、そのトラフィックの誘導先となるデフォルト クラスです。 fair-queue コマンドを使用すると、IP フローをソートおよび分類するダイナミック キューの数を指定できます。 あるいは、ルータは、インターフェイスまたは VC 上の帯域幅から導出したデフォルトのキュー数を割り当てます。 いずれの場合も、サポートされる値は 2 の累乗(16 ~ 4096 の範囲)です。
次の表に、インターフェイスのデフォルト値と ATM 相手先固定接続(PVC)のデフォルト値を示します。
表 3 インターフェイス帯域幅の関数としてのデフォルトのダイナミック キュー数
帯域幅範囲 |
ダイナミック キューの数 |
64 kbps 以下 |
16 |
64 kbps より大きく 128 kbps 以下 |
32 |
128 kbps より大きく 256 kbps 以下 |
64 |
256 kbps より大きく 512 kbps 以下 |
128 |
512 kbps より大きい |
256 |
次の表に、ATM PVC 帯域幅に関連するダイナミック キューのデフォルト数を示します。
表 4 ATM PVC 帯域幅の関数としてのデフォルトのダイナミック キュー数
帯域幅範囲 |
ダイナミック キューの数 |
128 kbps 以下 |
16 |
128 ~ 512 kbp(128 kbps は含まない) |
32 |
512 ~ 2000 kbp(512 kbps は含まない) |
64 |
2000 kbps より大きく、8000 kbps 以下 |
128 |
8000 kbps より大きい |
256 |
WFQ に予約されているキューの数に基づいて、シスコ ソフトウェアは、下の表に示すカンバセーション番号またはキュー番号を割り当てます。
表 5 キューに割り当てられるカンバセーション番号
番号 |
トラフィックのタイプ |
1 ~ 256 |
汎用フローベース トラフィック キュー。 ユーザ作成クラスと一致しないトラフィックは、class-default およびいずれかのフローベース キューと一致します。 |
257 ~ 263 |
Cisco Discovery Protocol 用、および内部高優先順位フラグでマーキングされたパケット用として予約されています。 |
264 |
プライオリティ クラス(priority コマンドで設定されたクラス)用のキューとして予約されています。 show policy-map インターフェイス出力でクラスに関する Strict Priority 値を探します。 プライオリティ キューは、ダイナミック キューの数に 8 を加えた数に一致するカンバセーション ID を使用します。 |
265 以上 |
ユーザ作成クラス用のキュー。 |