このドキュメントでは、Class of Service(CoS)パラメータに Type of Service(ToS)をマッピングして、LAN 環境で Voice over IP(VoIP)用の Quality of Service(QoS)を実装する方法について説明します。
最近までは、ネットワーク トラフィックのバーストやバッファ オーバーフローに対するキャパシティが原因となって、エンタープライズ側で QOS が問題になることはない、という考え方が一般的でした。LAN 側で QoS を使用する目的は、帯域幅不足を補うためではなく、バッファ不足を防ぐためです。そのためには、それらのバッファを管理して、損失、遅延、遅延変動などを最小限に抑える QoS ツールが必要になります。比較的サイズの小さな伝送制御プロトコル(TCP)パケットが大量にやり取りされるデータ ネットワークは、基本的にバースト状態になりやすいため、高速なネットワークでは送信バッファが容量制限に達しやすい傾向にあります。出力バッファがいっぱいになると、入力側インターフェイスは新しいフロー トラフィックを出力バッファへ直ちに移すことができなくなります。入力バッファがいっぱいになると(この状況はすぐに発生する可能性があります)、パケット ドロップが発生します。このような状況では、パケットの損失によって音声品質の低下がもたらされる場合があります。
VoIP トラフィックには、パケットの遅延とパケットのドロップのどちらに対しても影響を受けやすい性質があります。LAN リンクは高速であるため、キュー バッファのサイズにかかわらず、遅延はそれほど大きな問題となりません。それに対して、ドロップはすべてのネットワークで常に音声品質に悪影響をもたらします。バッファが 100 % 使用されることで発生するトラフィック ドロップの可能性を防ぐ唯一の方法は、送信インターフェイスで複数のキューを使用することです。(遅延およびドロップによる影響を受けやすい)音声と映像を別々のキューに分けることで、データ送信バッファがデータ フローによって完全に使用されている場合でも、入力側インターフェイスでのフローのドロップを防ぐことができます。
トラフィック負荷の高いネットワークでは、VoIP ユーザの快適な通信を実現するためには、制御トラフィックの管理がきわめて重要になります。その理由は簡単です。たとえば、IP Phone はフックが外されると、基本的に Cisco CallManager に対して何をすべきかを問い合せます。Cisco CallManager は IP Phone に対してダイヤル トーンを再生するように指示します。Skinny Client Protocol 管理トラフィックおよび制御トラフィックに、ドロップまたは遅延が発生した場合には、ユーザの快適な通信に悪影響が及びます。QoS を実装するには、パケット ヘッダーに高い優先順位のマークを付け、Catalyst が識別できるようにそれらのヘッダーを Layer 2 ヘッダーに正しくマッピングさせます。これにより、LAN 上でやり取りされる音声パケットに、適切な優先順位を付与できます。
このドキュメントに関しては個別の前提条件はありません。
このドキュメントの情報は、次のソフトウェアとハードウェアのバージョンに基づいています。
Cisco IOS® ソフトウェア リリース 12.3(4)T が稼働する Cisco 3725 音声ゲートウェイ
Catalyst 4000 スイッチ
Cisco CallManagers および IP Phone
このマニュアルの情報は、特定のラボ環境に置かれたデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、初期(デフォルト)設定の状態から起動しています。実稼動中のネットワークで作業をしている場合、実際にコマンドを使用する前に、その潜在的な影響について理解しておく必要があります。
ドキュメント表記の詳細は、『シスコ テクニカル ティップスの表記法』を参照してください。
このセクションでは、このドキュメントで説明する機能を設定するために必要な情報を提供しています。
注:この文書で使用されているコマンドの詳細を調べるには、「Command Lookup ツール」を使用してください(登録ユーザのみ)。
このドキュメントでは、次の図で示されるネットワーク設定を使用しています。
このドキュメントでは次の設定を使用します。
この設定は、802.1p ヘッダー部分の CoS 値に ToS/Differentiated Services Code Point(DSCP; DiffServ コード ポイント)値をマッピングする方法を示しています。これを実装する方法は多数ありますが、設計によってそれぞれ多少の違いが見られます。次に示す 2 つの設定例の目的は同一であり、どちらを使用しても同じ結果になります。ToS ビットで IP 優先順位を最優先を意味する(5)に設定するパケットは、VoIP パケットのみにしてください。他のトラフィックについては、このビットを 5 に設定しないでください。音声キュー内で不必要なトラフィックの重複が生じる場合があるためです。
注:LLQの設定は、Catalyst 4000などのネットワーク内の他のデバイスで行います。このドキュメントでは説明しません。
この最初の例では、RTP ストリームだけが IP 優先順位 5 にマッチします。RTCP や H.225/245 シグナリング パケットおよびメッセージング パケットはマッチしません。
Cisco 3660(例 1) |
---|
! ip cef ! !--- The Cisco Express Forwarding (CEF) mechanism needs to be enabled !--- in order for the set cos command that is !--- configured later to take effect. !--- If this is not on, the router reminds you with !--- the error "CEF switching needed for 'set' operations". ! class-map match-all RTP match ip precedence 5 !--- This command matches on all packets with the IP precedence of 5. ! policy-map OutboundPolicy class RTP set CoS 5 !--- For all packets which previously matched on class-map RTP for !--- having precedence of 5, the CoS bit is now set to 5. class class-default set CoS 0 !--- All other traffic has a CoS of 0 and !--- carries a lower priority of delivery. ! interface FastEthernet0/0 no ip address no ip mroute-cache duplex auto speed auto ! interface FastEthernet0/0.816 encapsulation dot1Q 816 !--- There must be subinterfaces for FastEthernet to enable trunking, !--- as well as either dot1q or isl encapsulation. ip address 10.120.16.112 255.255.255.0 service-policy output OutboundPolicy !--- Apply the QoS to the interface that connects to the LAN !--- via the Catalyst 4000. ! dial-peer voice 99131 voip destination-pattern 9913109 session target ipv4:10.120.17.133 ip qos dscp cs5 media no vad ! |
注:コマンドip qos dscpは、Cisco IOSソフトウェアリリース12.2(2)Tで導入されました。これは、ip precedence(ダイヤルピア)を置き換えるコマンドです。Cisco IOSソフトウェアリリース12.2(2)T以前で稼働するすべてのルータは、ダイヤルピア設定でip precedenceを使用できます。
2 番目の例では、policy-map のクラスに対するマッチング パラメータが異なります。次に示す設定では、RTP ストリームだけでなく、H.225 コール セットアップ パケットに対してもマッチングが行われます。RTP ストリームにマッチさせる条件も若干異なります。ここでは、IP ヘッダーではなく、UDP ポートの範囲のみが確認されます。UDP ポートが 16384 ~ 32767 の範囲内にある場合には、タグが追加されて policy-map に送信されます。
Cisco 3660(例 2) |
---|
! ip cef ! !--- The CEF mechanism needs to be enabled !--- in order for the set cos command that is !--- configured later to take effect. !--- If this is not on, the router reminds you with !--- the error "CEF switching needed for 'set' operations". ! class-map match-all Call-Control match access-group 101 ! class-map match-all RTP match ip rtp 16384 16383 !--- Match on UDP port range 16384-32767 to single out !--- VoIP packets for policy-map. ! access-list 101 permit tcp host 10.120.16.112 any eq 1720 !--- Match on all packets using TCP port 1720 which is !--- dedicated for H.225 call setup. ! policy-map OutboundPolicy class RTP set CoS 5 !--- For all VoIP packets that match the UDP port range listed above, !--- set the CoS bit to 5. class Call-Control set CoS 3 set ip precedence 3 !--- For all signaling and control packets that match access-list !--- 101, set the CoS bit to 3 and IP precedence to 3. class class-default set CoS 0 !--- All other traffic has a CoS of 0 and carries a !--- lower priority of delivery. ! interface FastEthernet0/0 no ip address no ip mroute-cache duplex auto speed auto ! interface FastEthernet0/0.816 encapsulation dot1Q 816 ip address 10.120.16.112 255.255.255.0 service-policy output OutboundPolicy !--- Apply your QoS to the interface that connects to the !--- LAN via the Catalyst 4000. ! dial-peer voice 99131 voip destination-pattern 9913109 session target ipv4:10.120.17.133 ip qos dscp cs5 media no vad ! |
ここでは、設定が正しく機能していることを確認するために使用する情報を示します。
一部の show コマンドはアウトプット インタープリタ ツールによってサポートされています(登録ユーザ専用)。このツールを使用することによって、show コマンド出力の分析結果を表示できます。
show policy-map interface:指定されたサービス ポリシー マップのすべてのクラスのマッチ カウンタを表示します。
これでルータは、CoS ビットに ToS ビットをマッピングするように設定されました。トラフィックが実際に設定どおりにマーキングされているかどうかを確認するには、次に示す show policy-map interface コマンドを使用します。
次に示す最初の例では、539 VoIP パケットは class-map にマッチするため、すべての 539 パケットの CoS ビットは 5 に設定されます。このタイプのキューイングでは、輻輳がアクティブになるまで待機する必要がありません。ファースト イーサネット インク上を通過する音声トラフィックが存在する限り、すべてのパケットは適宜マーキングされます。次に示す 2 番目の例では、VoIP パケットの CoS 値が 5 に設定されるだけでなく、シグナリング パケットの CoS 値も設定に従って 3 に設定されます。
Cisco 3660(例 1) の場合:
vdtl-3660-16a#show policy-map interface fastethernet 0/0.816 FastEthernet0/0.816 Service-policy output: OutboundPolicy Class-map: RTP (match-all) 539 packets, 42042 bytes 5 minute offered rate 2000 bps, drop rate 0 BPS Match: ip precedence 5 QoS Set CoS 5 Packets marked 539 Class-map: class-default (match-any) 13 packets, 1803 bytes 5 minute offered rate 0 BPS, drop rate 0 BPS Match: any QoS Set CoS 0 Packets marked 13
Cisco 3660(例 2)の場合:
vdtl-3660-16a#show policy-map interface fastethernet 0/0.816 FastEthernet0/0.816 Service-policy output: OutboundPolicy Class-map: RTP (match-all) 370 packets, 28860 bytes 5 minute offered rate 0 BPS, drop rate 0 BPS Match: ip rtp 16384 16383 QoS Set CoS 5 Packets marked 370 Class-map: Call-Control (match-all) 26 packets, 2697 bytes 5 minute offered rate 0 BPS, drop rate 0 BPS Match: access-group 101 QoS Set ip precedence 3 Packets marked 26 CoS 3 Packets marked 26 Class-map: class-default (match-any) 4363 packets, 515087 bytes 5 minute offered rate 0 BPS, drop rate 0 BPS Match: any QoS Set CoS 0 Packets marked 4363 vdtl-3660-16a#
現在、この設定に関する特定のトラブルシューティング情報はありません。
改定 | 発行日 | コメント |
---|---|---|
1.0 |
02-Feb-2006 |
初版 |