DynagenでCCIEを目指す
INE Workbook Volume I QoS 確認方法の基本方針
最終更新:
it_certification
-
view
1 概要
QoS動作確認をする方法についてまとめます。
設定量が多く確認に時間のかかる方法や設定量は少ないが簡易的な確認しかできない方法など、さまざまな確認方法があります。CCIE試験は非常にスピードが求められる試験だと思いますので、極力手間を抑えて確認できるよう、様々な方法を例示します。
設定量が多く確認に時間のかかる方法や設定量は少ないが簡易的な確認しかできない方法など、さまざまな確認方法があります。CCIE試験は非常にスピードが求められる試験だと思いますので、極力手間を抑えて確認できるよう、様々な方法を例示します。
2 トラフィックの生成
2.1 pingおよび拡張ping
以下の通り、size repeatを指定する事で大量のトラフィックを発生される事ができます。
Router# ping 192.168.0.1 size 1500 repeat 99999
timeoutを0にする事でより大量のトラフィックを発生される事ができます。
Router# ping 192.168.0.1 size 1500 repeat 99999 timeout 0
拡張pingを使用するとより詳細な設定が可能です。主に、IP Precedence, DSCPをセットしたpingを送信したい時に使用します。
Router# ping Protocol [ip]: Target IP address: 192.168.0.1 Repeat count [5]: 99999 Datagram size [100]: 1500 Timeout in seconds [2]: Extended commands [n]: y Source address or interface: Type of service [0]: 184 Set DF bit in IP header? [no]: Validate reply data? [no]: Data pattern [0xABCD]: Loose, Strict, Record, Timestamp, Verbose[none]: Sweep range of sizes [n]:
2.2. policy-map の適用
policy-mapをout方向に適用し、cos, IP Precedence, DSCPを設定したパケットを送信する事ができます。但し、上記の拡張pingの方が素早く確認ができるので、policy-mapをパケット生成用に使用するのは、主に以下の局面に限定されると思います。
- cos値を設定したパケットを送信する
- IP Precedence, DSCPが設定されたICMP以外のパケットを送信する ( 例 : precedence 2 のHTTPトラフィック )
具体的な設定例は以下の通りです。
policy-map SET_PREC_2 class class-default set ip precedence 2 ! interface FastEthernet 0/0 service-policy output SET_PREC_2
2.3. HTTP
簡単にHTTPトラフィックを発生されるには、IOSイメージのダウンロード実行します。具体的な方法は以下の通りです。
まず、ダウンロードされる側の機器で、HTTP serverを有効にします。
まず、ダウンロードされる側の機器で、HTTP serverを有効にします。
ip http service ip http service path flash:
ダウンロードされる側でIOSイメージが存在するファイルパスを確認します。(show flashでは確認できない場合もあります)
Rack18R6#show version Cisco IOS Software, 1841 Software (C1841-ADVENTERPRISEK9-M), Version 12.4(24)T, RELEASE SOFTWARE (fc1) Technical Support: http://www.cisco.com/techsupport Copyright (c) 1986-2009 by Cisco Systems, Inc. Compiled Wed 25-Feb-09 15:36 by prod_rel_team ROM: System Bootstrap, Version 12.4(13r)T, RELEASE SOFTWARE (fc1) Rack18R6 uptime is 2 hours, 37 minutes System returned to ROM by reload at 15:02:36 UTC Mon Jul 11 2011 System restarted at 15:04:14 UTC Mon Jul 11 2011 System image file is "flash:c1841-adventerprisek9-mz.124-24.T.bin"
ダウンロードする側で、以下の要領でダウンロードを実施します(ユーザ名が設定されていない場合は、ユーザ名は任意の文字列で差し支えありません)。
copy http://user:password@ip_address/file null:
なお、以下のようにパスワードを設定する事で、ユーザ名とパスワードを省略する事ができます。
ip http client password password
ちなみに、少量のHTTPトラフィックで充分確認できる場合は、以下の方法が簡易的でお勧めです。
telnet 192.168.0.1 80
2.4. その他 TCP
telnetコマンドでトラフィックを発生されます。compressionの設定を確認する時などに有効です。
telnet 192.168.0.1
Windows, Linuxなどと同様にポート番号を指定したtelnetも可能です。
telnet 192.168.0.1 80
2.5. Voice
IP SLA機能によりVoiceのパケットを生成する事ができます。~
但し、Cisco1814とCisco2610XMでは使用できる機能に違いがある事に注意して下さい。INEの動作確認例は、R1, R2, R3, R4, R5, R6が全てCisco2610XMである前提で動作確認していますが、現在のレンタルラボでCisco2610XMはR1, R2, R3のみです。
大量のVoiceパケットを送信するのはCisco1814では難しいです。そこで、"10.57 RSVP and WFQ"のような大量のパケットを送付して動作確認したい場合は、以下のように一部I/Fをshutdownして動作確認しやすい通信経路を作成します。
但し、Cisco1814とCisco2610XMでは使用できる機能に違いがある事に注意して下さい。INEの動作確認例は、R1, R2, R3, R4, R5, R6が全てCisco2610XMである前提で動作確認していますが、現在のレンタルラボでCisco2610XMはR1, R2, R3のみです。
大量のVoiceパケットを送信するのはCisco1814では難しいです。そこで、"10.57 RSVP and WFQ"のような大量のパケットを送付して動作確認したい場合は、以下のように一部I/Fをshutdownして動作確認しやすい通信経路を作成します。
#ref error :ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (100%)
;
IP SLAを使いこなすために、まずはtype jitter dest-ipaddrコマンドの使い方について確認します。構文は以下の通りです。
ip sla monitor num type jitter dest-ipaddr addr dest-port port source-ipaddr addr source-port port codec codec codec-numpackets num codec-size byte codec-interval msec control { enable | disable}
各optionの意味は以下の通りです。
option | 意味 |
---|---|
dest-port | 宛先ポートを指定します。UDP jitter (codec)の場合、ポート番号は、16384 - 32766, 49152 - 65534 の偶数を指定する必要があります。 |
codec | codecを指定し、ICPIF, MOS等の音声品質評価ができるようになります。また、このパラメータを指定すると、codec-numpacketsなどのデフォルト値が自動的に決定されます。 |
codec-numpackets | 各動作で送信されるパケット数を指定します。有効範囲は1 - 6000パケットで、デフォルト値は1000パケットです。 |
codec-size | RTP headerを含むサイズを指定します。例えば20byteを指定したとすると、パケットサイズは60byteになります(UDP header 20byte, IP header 20byteを加算するので) |
codec-interval | パケット間の間隔です。デフォルトは20msecです。 |
control | IP SLA responderへの制御メッセージ送付の有効・無効を指定します。無効にすると、jitter, lossなどの統計情報が正確に生成されなくなってしまいます。 |
指定可能なcodecとデフォルト値は以下の通りです。なお、codec-sizeのRTP headerを含む大きさです。pakect sizeに変換する場合は、40byteを加算して下さい。
codec-numpackets | codec-size | codec-interval | 動作の頻度 | |
---|---|---|---|---|
g711ulaw | 1000 | 160byte | 20msec | 60秒に1回 |
g711alaw | 1000 | 160byte | 20msec | 60秒に1回 |
g729a | 1000 | 20byte | 20msec | 60秒に1回 |
sender側の設定例は以下の通りです。codec-numpacket, codec-interval, frequency(timeoutより大きい必要あり)等をチューニングする事で、ある程度の大きさのVoiceトラフィックを送信させる事ができます。
ip sla monitor 1 type jitter dest-ipaddr 150.18.5.5 dest-port 16384 source-ipaddr 150.18.1.1 source-port 16384 codec g729a codec-interval 1 timeout 800 frequency 1 ip sla monitor schedule 1 life forever start-time now
responder側の設定例です。
ip sla monitor responder
3 テストトラフィックの測定
3.1 ping 目視による確認
pingを送信した時に表示される" ! "が、どの程度早く表示されたかは非常に重要な情報です。policing, shapingを設定した後と前では、目視で分かるくらい明らかに" ! "が表示されるスピードが違います。また、"10.2 Weghited Fair Queue(WFQ)"のように、WFQが設定されたqueueに対しprecedenceの異なるpingを同時に送信すると、目視で分かるくらい送信速度に差が出ます。
Rack18R6#ping Protocol [ip]: Target IP address: 192.168.0.2 Repeat count [5]: 99999999 Datagram size [100]: 156 Timeout in seconds [2]: 1 Extended commands [n]: y Source address or interface: Loopback0 Type of service [0]: 224 Set DF bit in IP header? [no]: Validate reply data? [no]: Data pattern [0xABCD]: Loose, Strict, Record, Timestamp, Verbose[none]: Sweep range of sizes [n]: Type escape sequence to abort. Sending 99999999, 156-byte ICMP Echos to 192.168.0.2, timeout is 1 seconds: Packet sent with a source address of 1.1.1.1 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3.2 ping による送信速度確認
exceed-actionがdropであるpolicingの場合、pingがdropされる頻度から送信速度をある程度推測する事ができます。以下ping実行結果を例に挙げて、policingの確認方法について説明します。
Rack18R1#ping 150.18.6.6 repeat 99999999 timeout 1 size 1500 Type escape sequence to abort. Sending 99999999, 1500-byte ICMP Echos to 150.18.6.6, timeout is 1 seconds: !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!.!!!!!!!!!!!!!!!!!!!!!!!.!!!!!!!!!!!!!!!!!!!! !!!.!!!!!!!!!!!!!!!!!!!!!!!.!!!!!!!!!!!!!!!!!!!!!!!!.!!!!!!!!!!!!!!!!! !!!!!!!.!!!!!!!!!!!!!!!!!!!!!!!.!!!!!!!!!!!!!!!!!!!!!!!.!!!!!!!!!!!!!! !!!!!!!!!.!!!!!!!!!!!!!!!!!!!!!!!!.!!!!!!!!!!!!!!!!!!!!!!!.!!!!!!!!!!! !!!!!!!!!!!!!.!!!!!!!!!!!!!!!!!!!!!!.!!!!!!!!!!!!!!!!!!!!!!!!!.!!!!!!! !!!!!!!!!!!!!!!!.!!!!!!!!!!!!!!!!!!!!!!!.!!!!!!!!!!!!!!!!!!!!!!.!!!!!! !!!!!!!!!!!!!!!!!!!.!!!!!!!!!!!!!!!!!!!!!!!.!!!!!!!!!!!!!!!!!!!!!!!!.! !!!!!!!!!!!!!!!!!!!!!!.!!!!!!!!!!!!!!!!!!!!!!!. Success rate is 97 percent (795/817), round-trip min/avg/max = 1/4/8 ms Rack18R1#
上記は、256Kbpsを超過したトラフィックをdropするように設定された経路に対して、pingを送信した結果です。pingが23発に一度"応答なし"である事が読み取れます。timeoutが1秒に設定されている事から、ほぼ1秒間(実際は1秒よりも少し長い時間)に23回のpingが送信されているので、送信速度は以下のように計算する事ができます。
設定された256Kbpsにかなり近い値が算出された事が分かります。
設定された256Kbpsにかなり近い値が算出された事が分かります。
23 x 1500 byte x 8 bit/byte = 276000 bit
3.3 Interfaceレベル, PVCレベルでの確認
showコマンドによりInterfaceレベル, PVCレベルでの送受信速度の確認が可能です。(但し、Catalystはこの方法による確認はできません。)
Rack18R1#show interfaces FastEthernet 0/0 | include input rate 30 second input rate 15000 bits/sec, 11 packets/sec Rack18R1# Rack18R5#show frame-relay pvc 503 | i rate 30 second input rate 56000 bits/sec, 68 packets/sec 30 second output rate 58000 bits/sec, 68 packets/sec Queueing strategy: fifo Rack18R5#
デフォルト設定の送受信速度は5分間のtraffic counter増分を元に算出されますが、最短30秒間隔まで計測間隔を短くする事ができます。
interface FastEthernet 0/0 load-interval 30 ! interface Serial 0/0/0 frame-relay interface-dlci 502 load-interval 30
3.4 policy-mapによる確認
policy-mapにより送受信速度を測定する事もできます。Precedenceのような優先度毎やHTTPなどのプロトコル毎の送受信速度を計測する事ができますが、難点は設定に非常に時間がかかってしまう事です。また、Catalystなどのスイッチでは計測不能である事にも注意して下さい。
設定例は以下の通りです。policy-mapを作成しinterfaceに適用します。(極力input方向に対して設定して下さい。例えば、出力パケットを制限している場合ならば、対向I/Fのinput方向に対してpolicy-mapを適用します)
access-list 100 permit tcp any eq www any access-list 101 permit icmp any any ! class-map match-all ICMP match access-group 101 class-map match-all HTTP match access-group 100 class-map match-all VOICE match packet length min 60 max 60 ! policy-map METER class VOICE class HTTP class ICMP ! interface Serial0/1/0 service-policy input METER
以下showコマンドにより送受信速度を確認できます。速度の計算間隔はload-intervalコマンドにより変更する事ができます。
Rack18R5#show policy-map interface Serial0/1/0 Service-policy input: METER Class-map: VOICE (match-all) 7022 packets, 449408 bytes 30 second offered rate 33000 bps Match: packet length min 60 max 60 Class-map: HTTP (match-all) 2014 packets, 1168120 bytes 30 second offered rate 77000 bps Match: access-group 100 Class-map: ICMP (match-all) 1167 packets, 186720 bytes 30 second offered rate 12000 bps Match: access-group 101 Class-map: class-default (match-any) 926818 packets, 68790385 bytes 30 second offered rate 0 bps, drop rate 0 bps Match: any Rack18R5#
4 Marking の確認
4.1 show mls qosによる確認
show mls qos interface statisticsコマンドによりMarkingの結果を確認できます。
Rack7SW1#show mls qos interface FastEthernet 0/19 statistics FastEthernet0/19 (All statistics are in packets) dscp: incoming ------------------------------- 0 - 4 : 14099 0 0 0 0 5 - 9 : 0 0 0 0 0 10 - 14 : 0 0 0 0 0 15 - 19 : 0 0 0 0 0 20 - 24 : 0 0 0 0 313 25 - 29 : 0 0 0 0 0 30 - 34 : 0 0 0 0 0 35 - 39 : 0 0 0 0 0 40 - 44 : 0 0 0 0 0 45 - 49 : 0 0 0 96 0 50 - 54 : 0 0 0 0 0 55 - 59 : 0 0 0 0 0 60 - 64 : 0 0 0 0 omitted
Catalyst 3550 の場合は、全DSCPの統計情報が取得されるわけではありません。統計情報を取得したいDSCPを明示的に設定する必要があります。
interface FastEthernet0/13 mls qos monitor dscp 16 24 32 40 46 Rack7SW4#sho mls qos int f0/13 st FastEthernet0/13 Ingress dscp: incoming no_change classified policed dropped (in pkts) 0 : 7472 7472 0 0 0 16: 0 0 0 0 0 24: 0 0 0 0 0 32: 5 5 0 0 0 40: 0 0 0 0 0 46: 0 0 0 0 0 Others: 3589 3589 0 0 0 Egress dscp: incoming no_change classified policed dropped (in pkts) 0 : 15594 n/a n/a 0 0 16: 10 n/a n/a 0 0 24: 350 n/a n/a 0 0 32: 0 n/a n/a 0 0 40: 0 n/a n/a 0 0 46: 0 n/a n/a 0 0 Others: 613 n/a n/a 0 0 Rack7SW4#
4.2 ACLによる確認
ACLによって想定通りのMarkingがされているかどうかの確認もできます(但し、Catalyst Switchではこの確認方法が効きません)。
以下のように、precedence, dscpなどにマッチするかどうかをチェックするACLを作成します。
以下のように、precedence, dscpなどにマッチするかどうかをチェックするACLを作成します。
ip access-list extended CHECK_PREC permit ip any any precedence routine permit ip any any precedence priority permit ip any any ! interface Virtual-Template1 ip access-group CHECK_PREC out
show access-listsコマンドのカウンタより、想定通りのMarkingがされている事を確認します。
Rack18R4#show access-lists CHECK_PREC Extended IP access list CHECK_PREC 10 permit ip any any precedence routine (55087 matches) 20 permit ip any any precedence priority (17834 matches) 99 permit ip any any Rack18R4#
ACLのカウンタをリセットしたい場合は、以下のコマンドを使用します。
clear access-list counters
4.3 policy-mapによる確認
Markingと送受信速度を同時に確認したい場合は、policy-mapが有効です(但し、Catalyst Switchではこの確認方法が効きません)。
以下のように、precedence, dscp毎に分類したpolicy-mapを作成します。
以下のように、precedence, dscp毎に分類したpolicy-mapを作成します。
class-map match-all CMAP_CS1 match dscp cs1 class-map match-all CMAP_CS3 match dscp cs3 ! policy-map PMAP_METER class CMAP_CS1 class CMAP_CS3 ! interface FastEthernet0/0 load-interval 30 ! interface FastEthernet0/0.146 service-policy input PMAP_METER
想定通りのMarkingがなされている事と、precedence, dscp毎の送受信速度を確認します。
Rack9R1#show policy-map interface FastEthernet0/0.146 Service-policy input: PMAP_METER Class-map: CMAP_CS1 (match-all) 42997 packets, 5073646 bytes 30 second offered rate 359000 bps Match: dscp cs1 (8) Class-map: CMAP_CS3 (match-all) 7947 packets, 937746 bytes 30 second offered rate 64000 bps Match: dscp cs3 (24) Class-map: class-default (match-any) 37 packets, 11950 bytes 30 second offered rate 0 bps, drop rate 0 bps Match: any Rack9R1#