サービス品質(QoS) : QoS 輻輳管理(キューイング)

TLS(広域イーサネットサービス)接続ネットワーク環境でMQCを使用した QoS 設定例

2006 年 11 月 29 日 - 日本オリジナル版
その他のバージョン: PDFpdf | フィードバック

1. ネットワーク構成図

設定の前提となるネットワーク構成図になります

※ 画像をクリックすると、大きく表示されます。popup_icon


2. システムの前提条件

広域イーサネットなどのサービスにて、Cisco ISR サービス統合型ルータ シリーズを使用し、接続された拠点間での契約回線帯域を守りつつ、音声トラフィックや重要アプリケーションなどを優先し、転送するための設定を行います。

3. 想定する環境

広域イーサネットのサービスにて、契約回線 3Mbps で、2つの拠点ネットワークが接続されています。トラフィックシェーピングの機能により、契約回線を守り、音声トラフィックを優先的に転送し、重要アプリケーションの帯域を確保します。

今回は、上図の IP Phone(192.168.1.1/192.168.101.1)を LLQ 33% に設定し、PC-A(192.168.1.2)と PC-B(192.168.101.2)を CBWFQ 42% に設定します。
またルーティングプロトコルは EIGRP を使用します。

4. 必要なハードウェア / ソフトウェア要件

Cisco ISR サービス統合型ルータ シリーズは全てオンボードにて 2FE(もしくは 2GE)を具備します。Cisco ISR シリーズにて本構成が実現可能なハードウェア / ソフトウェアの組み合わせは下記になります。

プラットホーム T トレイン メイントレイン
871 12.4(2)T 以上 N/A
1812J 12.4(2)T 以上 N/A
1841 12.3(8)T 以上 12.4(1)以上
2800 シリーズ
(2801/2811/2821/2851)
12.3(8)T 以上 12.4(1)以上
3800 シリーズ
(3825/3845)
12.3(11)T 以上 12.4(1)以上

本設定例においては、本社側:Cisco2811 IOS12.4(2)T2、支社側:Cisco1812J IOS12.4(2)T2 を使用しています。


5. サンプルコンフィグレーション

1. 1812J-A

hostname 1812J-A
!
ip subnet-zero
!
ip cef
!
class-map match-all Voice
match access-group 101
class-map match-all Data
match access-group 102

!
policy-map Child
class Voice
priority percent 33
set dscp ef
class Data
bandwidth percent 42
set dscp af31
class class-default
fair-queue
policy-map Parent
class class-default
shape average 3000000
service-policy Child

!
interface FastEthernet0
ip address 192.168.32.2 255.255.255.252
duplex full
speed 10
bandwidth 3000
service-policy output Parent

!
interface FastEthernet3
switchport access vlan 10
!
!
interface Vlan10
ip address 192.168.1.254 255.255.255.0
!
access-list 101 permit ip host 192.168.1.1 any
access-list 102 permit ip host 192.168.1.2 any

!
router eigrp 100
network 192.168.1.254 0.0.0.0
network 192.168.32.2 0.0.0.0
!

2. 2811


hostname 2811
!
ip subnet-zero
!
ip cef
!
class-map match-all marking-voice
match access-group 101
class-map match-all AF31
match dscp af31
class-map match-all marking-data
match access-group 102
class-map match-all EF
match dscp ef

!
policy-map Child
class EF
priority percent 33
class AF31
bandwidth percent 42
class class-default
fair-queue
policy-map Parent
class class-default
shape average 3000000
service-policy Child
policy-map marking
class marking-voice
set dscp ef
class marking-data
set dscp af31

!
!
interface FastEthernet0/0
ip address 192.168.32.2 255.255.255.252
duplex full
speed 10
bandwidth 3000
service-policy output Parent

!
interface FastEthernet0/1
ip address 192.168.101.254 255.255.255.0
service-policy input marking
!
access-list 101 permit ip host 192.168.101.1 any
access-list 102 permit ip host 192.168.101.2 any
!
!

6. キーとなるコマンドの解説

" ip cef "
<コマンド種別>
グローバルコンフィグレーションコマンド
<コマンドの機能>
ルーター上で Cisco Express Forwarding (CEF) を有効にします。class-based marking で必須になります。(デフォルトで有効)
----------------------------
" class-map class-map-name "
<コマンド種別>
グローバルコンフィグレーションコマンド
<コマンドの機能>
トラフィッククラスを作成します。下記の match コマンドにて定義された条件に当てはまるトラフィックが本クラスに割り当てられます。
----------------------------
" match access-group access-group "
<コマンド種別>
クラスマップコンフィグコマンド
<コマンのド機能>
アクセスリスト番号を指定します。各パケットはそのクラスに属するかがチェックされます。
----------------------------
" match dscp dscp-value "
<コマンド種別>
クラスマップコンフィグコマンド
<コマンドの機能>
DSCP(differentiated services code point)値を指定します。値は 0 から 63 までです。
また、precedence を使用する場合は、match precedence precedence-value を指定します。
----------------------------
" policy-map policy-name "
<コマンド種別>
グローバルコンフィグレーションコマンド
<コマンドの機能>
トラフィックポリシーを作成します。下記 class コマンドにて定義された QoS アクションを実施します。
----------------------------
" class class-name"
<コマンド種別>
ポリシーマップコンフィグコマンド
<コマンドの機能>
あらかじめ定義された traffic class 名(class-map コマンドで設定されている)を指定します。
----------------------------
" class class-default "
<コマンド種別>
ポリーマップコンフィグコマンド
<コマンドの機能>
class-map にて定義されたもの以外のトラフィッククラスを指定します。
----------------------------
" priority percent percent "
<コマンド種別>
ポリシーマップコンフィグコマンド
<コマンドの機能>
遅延に敏感なトラフィックに対し、LLQ を設定します。kbps またはパーセントを指定します。
----------------------------
" bandwidth percent percent "
<コマンド種別>
ポリシーマップコンフィグコマンド
<コマンドの機能>
トラフィッククラスに対し、CBWFQ を設定します。kbps 又はパーセントを指定します。
----------------------------
" set dscp dscp-value "
<コマンド種別>
ポリシーマップコンフィグコマンド
<コマンドの機能>
トラフィッククラスに対しパケットの DSCP 値を指定します。値は 0 から 63 までです。
また、precedence を使用する場合は、set precedence precedence-value を指定します。
----------------------------
" fair-queue number-of-queues "
<コマンド種別>
ポリシーマップコンフィグコマンド
<コマンドの機能>
クラスデフォルトに対して、WFQ を設定します。トラフィックフローは設定された Queue の数により均等に割り当てられます。
----------------------------
" shape average mean-rate "
<コマンド種別>
ポリシーマップコンフィグコマンド
<コマンドの機能>
指定したレートにトラフィックをシェーピングします。単位は bit/sです。
----------------------------
" service-policy policy-map-name"
<コマンド種別>
ポリシーマップコンフィグコマンド
<コマンドの機能>
トラフィックポリシー名を指定し、子ポリシーを設定します。
----------------------------
" service-policy {input | output} policy-map-name "
<コマンド種別>
インターフェースコマンド
<コマンドの機能>
トラフィックポリシーをインターフェースに割り当てます。input 指定にて入力トラフィック、output にして出力トラフィックに対して適用されます。
----------------------------
" interface vlan vlan-id"
<コマンド種別>
グローバルコンフィグレーションコマンド
<コマンドの機能>
設定した VLAN の論理インターフェースを設定します。
----------------------------
" switchport access vlan vlan-id "
<コマンド種別>
インターフェースコマンド
<コマンドの機能>
物理インターフェースに、設定した VLAN を割り当てます。
----------------------------
" router eigrp AS 番号 "
<コマンド種別>
グローバルコンフィグレーションコマンド
<コマンドの機能>
EIGRP の AS番号 100 プロセスを開始します。
----------------------------
" network networkアドレス wild カードビット"
<コマンド種別>
ルータ EIGPR コマンド
<コマンドの機能>
EIGRP を割り当てるネットワークを指定します。

7. 設定に際しての注意点

IOS のイーサネットシェーピングではイーサネットフレームから FCS を除いたフレーム長で格納されます。よってシェーピングレートの計算では FCS(4byte)とトランスミッションオーバヘットを考慮し、計算をする必要があります。

広域 LAN の接続によっては、中継回線に ATM や専用線での接続を使用している場合があります。その際には ATM の cell_tax などを考慮する必要があります。

OSPF や EIGRP などのルーティングプロトコルではインターフェース帯域幅を元にメトリックを計算します。この為ルータの物理速度と実際の回線速度が異なる今回の様なケースでは実際の回線速度と同様なメトリックが作成されません。bandwidth コマンドにてインターフェースに実際の回線速度と同等な値を設定する必要があります。

特に EIGRP ではデフォルトにて回線帯域 50% までをルーティングプロトコルが使用可能です。(ip bandwidth-percent eigrp コマンドにて設定変更可能)今回のように物理インターフェース(10Mbps)、回線速度(3Mbps)の状況では EIGRP が回線速度の 50% つまり 5Mbps まで使用可能となってしまい、最悪なケースでは回線全体をルーティングプロトコルにて埋めてしまう可能性があります。bandwidth コマンドにて必ず実際の回線速度を設定してください。

ルータと接続する LAN-TA のインターフェースにあわせ、speed や duplex の設定を行ってください。

1812J や 871 の様な SW 内蔵のプラットホームまたは HWIC-4ESW/HWIC-9DESW などのスイッチモジュールを使用し、vlan を使用する際には、vlan database コマンドにて追加する vlan を指定する必要があります。

実際に導入し、運用される際には障害解析などの観点により下記の様なコマンドも追加する事を推奨いたします。

service timestamps debug datetime localtime msec
service timestamps log datetime localtime msec
clock timezone JST 9
!
logging buffered 512000 debugging
!
clock calendar-valid

8.MQC および階層化シェーピングについて

下記に階層化シェーピングの概念図を記載します。
階層化シェーピングでは、親ポリシーにてシェーピング実施し契約回線を守り、子ポリシーにてキューイングを実施します。

階層化シェ-ピングの概念を示した図になります。

本設定例の 2811 を例にとって MQC の詳細を解説します。
インプットポリシーではマーキングを行っています。

インプットマーキングのコンフィグレーションの解説です。

? アクセスリスト 101 にて設定したトラフィックを marking-voice クラスに割り当てる。
? アクセスリスト 102 にて設定したトラフィックを marking-data クラスに割り当てる。
? marking-voice のトラフィックを DSCP EF に設定する。
? marking-data のトラフィックを DSCP AF31 に設定する。
本設定におけるアウトプットインターフェースの詳細を解説します。
アウトプットインターフェースでは親ポリシーにてシェーピングを行い、子ポリシーにてキューイングを行っています。

アウトプットシェ-ピングのコンフィグレーションの解説です

? DSCP EF のトラフィックを EF クラスに設定する。
? DSCP AF31 のトラフィックを AF31 クラスに設定する。
? EF クラスにて LLQ 33% を設定する。
? AF31 クラスにて CBWFQ 42% を設定する。
? Parent ポリシー(親ポリシー)を設定し、全てのトラフィックに対してシェーピング 3Mbps になるように設定する。
? ??にて設定された Child ポリシーを Parent ポリシーに階層的に割り当てる。

Nov 29 , 2006 Document ID: jtac_20060127_14