Cisco IOS XRvでは、QoS(policy-map, class map等)のコマンド投入は出来るが、投入したコマンドが動作しないどころか、システムに正常に反映されない。
稼働中のIOS XRvはデモ版につき、使用帯域が2Mbpsに制限されている。
外部向けインターフェースGi0/0/0/0を介し、外部環境との間で帯域を多く消費するトラヒックが流れる事がある為、特定の送信トラヒックに対し消費帯域の制限を検討。
試しにコマンド投入したところ、設定内容が適用出来ていない事に気が付いた。
自分の動作環境は以下のとおり。
・DELL LATITUDE E6400
・CPU: Intel Core2 Duo P9700 2.8GHz
・RAM: 4GB, HDD(SSD): 64GB
・ホストOS: Windows7 Home Premium SP1 32bit版
・ゲストOS: Cisco IOS XRv version 6.0.0
・Hypervisor: ESXi version 5.5 (VMware Player6.0上で動作)
1.以下は、policy-mapの設定およびインターフェースへの適用前の状態。
適用前である為、"Service Policy not installed"や"No policy-map of type 'qos' applied"の出力は正しい。
RP/0/0/CPU0:mtkVMRT99#show policy-map interface gigabitEthernet 0/0/0/0 Mon Jan 3 18:37:22.001 JST GigabitEthernet0/0/0/0 direction input: Service Policy not installed GigabitEthernet0/0/0/0 direction output: Service Policy not installed RP/0/0/CPU0:mtkVMRT99# RP/0/0/CPU0:mtkVMRT99#show policy-map applied interface gigabitEthernet 0/0/0/0 Mon Jan 3 18:37:48.112 JST No policy-map of type 'qos' applied in 'input' direction. No policy-map of type 'qos' applied in 'output' direction. RP/0/0/CPU0:mtkVMRT99#
2.下記リンク先("ASR 9000 shape on the interface - where are stats?")の
Mikkelさんが書き込んだコマンドを自分の環境に当てはめて修正し、投入してみた。
https://supportforums.cisco.com/discussion/11883301/asr-9000-shape-interface-where-are-stats
policy-map dummy class class-default bandwidth percent 100 end-policy-map ! policy-map Shape-to-1M class class-default service-policy dummy shape average 1000000 bps end-policy-map ! interface GigabitEthernet0/0/0/0 service-policy output Shape-to-1M exit !
3.投入およびcommit後、show policy-mapコマンドで確認。
commitコマンド投入時、エラーを吐かない為投入自体は問題無いようだ。しかし...
RP/0/0/CPU0:mtkVMRT99#show policy-map interface gigabitEthernet 0/0/0/0 Mon Jan 3 19:04:14.048 JST GigabitEthernet0/0/0/0 direction input: Service Policy not installed GigabitEthernet0/0/0/0 direction output: Service Policy not installed RP/0/0/CPU0:mtkVMRT99# RP/0/0/CPU0:mtkVMRT99#show policy-map applied interface gigabitEthernet 0/0/0/0 Mon Jan 3 19:06:29.530 JST No policy-map of type 'qos' applied in 'input' direction. No policy-map of type 'qos' applied in 'output' direction. RP/0/0/CPU0:mtkVMRT99#
適用すらされていない。
4.対処方法を探していたところ、下記リンク先("service policy command not working on IOS XRv")にて
Danielさんによる残念な書き込みが。
https://learningnetwork.cisco.com/thread/79311
Which version are you running? Generally QoS is difficult to implement in virtual platforms since this is handled by ASICs on the real platform.
Cisco CRSやXR12000などIOS XRが動作する機器では、QoSはプラットフォーム上のASICで処理される設計になっている為、仮想ルータであるIOS XRv上でまともに動かす事は難しいとの事。
Cisco IOS XRのQoSはプラットフォーム依存な設計のようだ。
Cisco IOS XRのQoSコマンドは以下を参照。
IOS XR Userのバイブルである"Cisco IOS XR Fundamentals(Cisco Press刊)"には、QoSの設定に関する記載は無い。
http://www.cisco.com/c/en/us/support/ios-nx-os-software/ios-xr-software/products-command-reference-list.html