はじめに
このドキュメントでは、Cisco ルータの Quality of Service(QoS)設定にある DiffServ コードポイント(DSCP)の値を設定する方法について説明します。
前提条件
要件
IPヘッダーのフィールドとCisco IOS® CLIに精通している必要があります。
使用するコンポーネント
このドキュメントの内容は、特定のソフトウェアやハードウェアのバージョンに限定されるものではありません。
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
表記法
ドキュメント表記の詳細は、『シスコテクニカルティップスの表記法』を参照してください。
背景説明
Differentiated Services(DiffServ; 差別化サービス)とは、type of services(TOS; タイプ オブ サービス)バイトをベースとする相対的な優先順位を使用し、中継システムによってトラフィックを制御する新しいモデルです。RFC 2474とRFC 2475で定義されているように、DiffServ標準により、RFC 791で説明されているパケット優先度を定義する元の仕様が置き換えられます。DiffServでは、IPパケットのビットを再割り当てして優先度としてマークする際に、定義できる優先度レベルの数が増やされています。
DiffServのアーキテクチャでは、DiffServ(DS)フィールドを定義しています。これはIPv4のToSフィールドに代わるフィールドで、パケットの分類や、メータリング、マーキング、シェーピング、ポリシングなどのトラフィック調整機能についてのper-hop behavior(PHB)を決定します。
RFC では、PHB の実装方法については言及されていないため、実装に関しては各ベンダーが責任を持ちます。シスコではキューイング技術を実装し、パケットの IP ヘッダーに記述された IP 優先順位または DSCP 値を PHB のベースとしています。DSCP または IP 優先順位をベースとすることで、トラフィックを特別なサービス クラスへ振り分けることができます。同じサービス クラスにあるパケットは、同じ方法で処理されます。
Differentiated Services Code Point(DiffServ コード ポイント)
DiffServ フィールドの上位 6 ビットは DSCP として使用されています。DiffServ フィールドの最後の 2 つの Currently Unused(CU; 現在未使用)ビットは、DiffServ フィールドのアーキテクチャでは定義されておらず、現在は Explicit Congestion Notification(ECN; 明示的輻輳通知)ビットとして使用されています。あるネットワークの端にあるルータでは、Diffserv ネットワークの IP 優先順位か DSCP 値のどちらかに基づいて、パケットのクラス分けやマーキングが行われます。Diffserv をサポートするコア内の他のネットワーク デバイスでは、IP ヘッダーにある DSCP 値を使用して、そのパケットに対する PHB の動作が選択されて、適切な QoS 処理が行われます。
このセクションの次の図は、RFC 791で定義されているToSバイトとDiffServフィールドの比較を示しています。
ToS バイト
P2 |
P1 |
P0 |
T2 |
T1 |
T0 |
CU1 |
CU0 |
DiffServ フィールド
DS5 |
DS4 |
DS3 |
DS2 |
DS1 |
DS0 |
ECN |
ECN |
-
DSCP:6ビット(DS5-DS0)
-
ECN:2ビット
パケット内の標準化された DiffServ フィールドは、ある値でマークされているため、パケットは各ネットワークノードにおいて、特定の場所への転送または PHB によって処理されます。
デフォルトの DSCP は 000 000 です。クラス セレクタ DSCP の値には、IP 優先順位との下位互換性があります。IP precedenceとDSCPの間で変換を行う場合は、上位3ビットを一致させます。まとめると、次のようになります。
IP Prec 5 (101) maps to IP DSCP 101 000
ToS バイト
DiffServ フィールド
DiffServ標準では、優先順位の設定に同じ優先順位ビット(最上位ビット:DS5、DS4、およびDS3)を使用していますが、定義をさらに明確にしているため、DSCPの次の3ビットを使用してより細かく設定できます。DiffServ では、優先順位のレベルを次のカテゴリに沿うように再編成し、名称を変更しています(これらのレベルについてはこのドキュメントの後の部分で詳しく説明しますが、引き続き DSCP の上位 3 ビットで定義されています)。
優先順位レベル |
説明 |
7 |
以前と同じ(リンク層とルーティング プロトコルはそのまま) |
6 |
以前と同じ(IP ルーティング プロトコルのために使用) |
5 |
緊急転送(EF) |
4 |
クラス 4 |
3 |
クラス 3 |
2 |
クラス 2 |
1 |
クラス 1 |
0 |
ベスト エフォート |
このシステムでは、デバイスは最初にトラフィックをクラスによって優先順位付けします。次に、同じクラスのトラフィックを区別して優先順位を付け、廃棄確率を考慮に入れます。
DiffServ 規格では、「低」、「中」、「高」の廃棄確率の厳密な定義を指定していません。すべてのデバイスで DiffServ(DS2 および DS1)の設定が判別されるとは限りません。また、設定が判別された場合でも、各ネットワーク ノードで同じ PHB 転送処理が行われるとは限りません。各ノードには、設定されている内容に基づく独自の対応方法が実装されています。
Assured Forwarding(相対的優先転送/確認転送)
RFC 2597には、Assured Forwarding(AF;確認転送)のPHBが定義されており、クライアントのDSドメインから受信したIPパケットに対して、さまざまなレベルの転送保証をプロバイダーのDSドメインで提供する方法として記述されています。相対的優先(確認)転送の PHB では、AF クラスに対して一定量の帯域幅が保証され、使用可能な場合にはさらに多くの帯域幅へのアクセスが許可されます。ここでは、AF1x から AF4x まで、4 つの AF クラスがあります。各クラスに、3 種類の廃棄確率があります。指定されたネットワークポリシーに応じて、必要なスループット、遅延、ジッタ、損失に基づいて、またはネットワークサービスへのアクセスの優先順位に基づいて、PHBにパケットを選択できます。
クラス 1 から 4 は、AF クラスと呼ばれます。次の表に、確率でAFクラスを指定するDSCPコードを示します。ビット DS5、DS4、および DS3 にはクラスが定義されており、ビット DS2 と DS1 には廃棄確率が指定されています。ビット DS0 は常に 0 です。
[Drop] |
クラス 1 |
クラス 2 |
クラス 3 |
クラス 4 |
低い |
001010 AF11 DSCP 10 |
010010 AF21 DSCP 18 |
011010 AF31 DSCP 26 |
100010 AF41 DSCP 34 |
中 |
001100 AF12 DSCP 12 |
010100 AF 22 DSCP 20 |
011100 AF32 DSCP 28 |
100100 AF42 DSCP 36 |
高 |
001110 AF13 DSCP 14 |
010110 AF23 DSCP 22 |
011110 AF33 DSCP 30 |
100110 AF43 DSCP 38 |
Expedited Forwarding(完全優先転送/緊急転送)
RFC 2598には、Expedited Forwarding(EF;緊急転送)のPHBが次のように定義されています。「EF PHBは、DS(Diffserv)ドメインを経由する低損失、低遅延、低ジッタ、帯域幅保証、エンドツーエンドサービスの構築に使用できます。このようなサービスは、ポイントツーポイント接続や「仮想専用回線」などのエンドポイントに見られます。 このサービスは、プレミアムサービスとも呼ばれます。EF PHB には、コードポイント 101110 を推奨します。これは DSCP 値 46 に対応します。
さらに、これらの PHB の実装には、ベンダー特有のメカニズムが構成されている必要があります。EF PHB についての詳細は、RFC 2598 を参照してください。
DSCPフィールドの使用
DSCP フィールドは、次の 3 つの方法で使用されます。
-
分類子:パケット ヘッダーのある部分の内容に基づいてパケットを選択し、DSCP 値で定義されたサービスの特性に基づいて PHB を適用します。
-
マーカー:トラフィック プロファイルに基づいて、DSCP フィールドを設定します。
-
Metering
– シェーパまたはドロッパ機能を使用して、トラフィックプロファイルへの適合性をチェックします。
Cisco IOSソフトウェアでは、Weighted Fair Queuing(WFQ;重み付け均等化キューイング)、Weighted Random Early Detection(WRED;重み付けランダム早期検出)、またはWeighted Round Robin(WRR;加重ラウンドロビン)でトラフィックがキューイングされている場合、TOSフィールドの優先順位ビットが考慮されます。ポリシー ルーティング、Priority Queuing(PQ; プライオリティ キューイング)、カスタム キューイング(CQ)、または Class Based Weighted Fair Queuing(CBWFQ; クラスベースの重み付け均等化キューイング)が設定されている場合は、この優先順位ビットは考慮されません。詳細は、『クラスベース重み付け均等化キューイング(CBWFQ)』を参照してください。
パケットの分類
パケット分類では、トラフィック記述子を使用して、パケットを特定のグループ内で分類し、ネットワーク内で管理するQoSでそのパケットにアクセスできるようにします。パケット分類を使用すると、ネットワークトラフィックを複数のプライオリティレベルまたはサービスクラス(CoS)に分割できます。
アクセス リスト(ACL)、またはモジュラ QOS CLI の match コマンドを使用して、DSCP 値に合わせることができます。Cisco IOSソフトウェアリリース12.1(5)Tでは、matchコマンドでDSCP値を選択する機能が導入されました。
Router1(config)#access-list 101 permit ip any any ?
dscp Match packets with given dscp value
fragments Check non-initial fragments
log Log matches against this entry
log-input Log matches against this entry, including input interface
precedence Match packets with given precedence value
time-range Specify a time-range
tos Match packets with given TOS value
class map コマンドで ip dscp 値を指定すると、次のように表示されます。
Router(config)#class-map match-all VOIP
1751-uut1(config-cmap)#match ip dscp ?
<0-63> Differentiated services codepoint value
af11 Match packets with AF11 dscp (001010)
af12 Match packets with AF12 dscp (001100)
af13 Match packets with AF13 dscp (001110)
af21 Match packets with AF21 dscp (010010)
af22 Match packets with AF22 dscp (010100)
af23 Match packets with AF23 dscp (010110)
af31 Match packets with AF31 dscp (011010)
af32 Match packets with AF32 dscp (011100)
af33 Match packets with AF33 dscp (011110)
af41 Match packets with AF41 dscp (100010)
af42 Match packets with AF42 dscp (100100)
af43 Match packets with AF43 dscp (100110)
cs1 Match packets with CS1(precedence 1) dscp (001000)
cs2 Match packets with CS2(precedence 2) dscp (010000)
cs3 Match packets with CS3(precedence 3) dscp (011000)
cs4 Match packets with CS4(precedence 4) dscp (100000)
cs5 Match packets with CS5(precedence 5) dscp (101000)
cs6 Match packets with CS6(precedence 6) dscp (110000)
cs7 Match packets with CS7(precedence 7) dscp (111000)
default Match packets with default dscp (000000)
ef Match packets with EF dscp (101110)
Router1(config-cmap)#match ip dscp af31
マーキング
「パケットの分類」セクションに示すようにコアデバイスがパケットを分類して、適切なレベルのサービスを提供しやすくするために、ネットワークの端でDSCPを必要な値に設定できます。クラスベースのパケットマーキングを使用して、次のようにDSCP値を設定できます。
policy-map pack-multimedia-5M
!--- Creates a policy map named pack-multimedia-5M.
class management
!--- Specifies the policy to be created for the !--- traffic classified by class management.
bandwidth 50
set ip dscp 8
!--- Sets the DSCP value of the packets matching !--- class management to 8.
class C1
priority 1248
set ip dscp 40
class voice-signalling
bandwidth 120
set ip dscp 24
専用アクセスレートまたはクラスベースポリシングの使用
専用アクセスレートまたはクラスベース ポリシングは、合意されたサービス パラメータに従ってトラフィック フローを規制するために使用されるトラフィック規制メカニズムです。これらのメカニズムをDSCPとともに使用すると、このセクションに示すように、DSCP値を適切に変更する際に、トラフィックに準拠しない、またトラフィックに準拠しない異なるレベルのサービスを提供できます。
詳細は Configuring
、『トラフィック』Policing
および『クラスベースポリシングと専用アクセスレートの比較』を参照してください。
interface Serial1/0.1 point-to-point
bandwidth 5000
ip address 192.168.126.134 255.255.255.252
rate-limit output access-group 150 8000 1500 2000 conform-action
set-dscp-transmit 10 exceed-action set-dscp-transmit 20
!--- For traffic matching access list 150, sets the DSCP value of conforming traffic !--– to 10 and that of non-conforming traffic to 20.
rate-limit output access-group 152 8000 1500 2000 conform-action
set-dscp-transmit 15 exceed-action set-dscp-transmit 25
rate-limit output access-group 154 8000 1500 2000 conform-action
set-dscp-transmit 18 exceed-action set-dscp-transmit 28
frame-relay interface-dlci 17
class shaper-multimedia-5M
DSCP 規格対応 WRED
Weighted Random Early Detection(WRED; 重み付けランダム早期検出)では、インターフェイスに輻輳が発生し始めると優先度の低いトラフィックが選択的に廃棄されます。WRED では、差別化したパフォーマンス特性をさまざまな CoS に提供できます。次に示すように DSCP に基づいて、この差別化サービスを提供できます。
class C2
bandwidth 1750
random-detect dscp-based
!--- Enable dscp-based WRED as drop policy.
random-detect exponential-weighting-constant 7
!--- Specifies the exponential weight factor for the !--- average queue size calculation for the queue.
random-detect dscp 16 48 145 10
!--- Specifies the minimum and maximum queue thresholds !--- for each DSCP value.
random-detect dscp 32 145 435 10
詳細は、『輻輳回避に関する概要』の「DiffServ 準拠の WRED」のセクションを参照してください。
Cisco IOS ソフトウェア 12.2 リリース トレインにおける既知の問題
バグツールと情報へのアクセスは、登録されたシスコのクライアントに対してのみ可能です。
Bug Search Toolを使用して、これらのバグを検索できます。
-
Cisco Bug ID CSCdt63295(登録ユーザ専用):Cisco IOSソフトウェアリリース12.2.2Tのダイヤルピア(0に設定)で、新しいDSCPマーキングコマンドによるToSバイトの設定に失敗した場合、パケットはマークできずToSを0に設定したままになります。
-
Cisco Bug ID CSCdt74738:Cisco 7200ルータおよびローエンドプラットフォームでのマルチキャストパケット用のset ip dscpコマンドのサポートは、Cisco IOSソフトウェアリリース12.2(3.6)以降で使用可能である必要があります。
関連情報