QoSが効かない時の原因と検証手順【優先制御トラブル対策】

  • URLをコピーしました!

QoS(Quality of Service)が正しく動作していないと、遅延・輻輳・帯域逼迫により VoIP や業務アプリが不安定になります。本記事では、QoS が「効かない」典型原因と、現場で実際に使用される検証手順、show コマンドの例を交えて分かりやすく解説します。

目次

■ QoSが効かない代表的な原因まとめ

  • 分類(Classify)が間違っている … ACL / DSCP / ポート判定のズレ
  • マーキング(Marking)が適切に付与されていない … DSCP の書き換え漏れ
  • ポリシー適用方向が誤り … inbound / outbound の取り違え
  • キュー割り当てが誤り … 優先キューに流れていない
  • インターフェースで QoS が有効化されていない
  • ハードウェアキューに依存(特にスイッチ)
  • トラフィック量が足りず、キュー動作が確認できていない

■ 【ステップ別】QoS が効かない時の確認手順

STEP1:QoS ポリシーがインターフェースに適用されているか確認

show policy-map interface

結果例:

GigabitEthernet0/0

  Service-policy output: OUT-QOS-POLICY
    Class-map: VOICE (match-any)
      5000 packets, 400000 bytes
      Match: dscp ef
      Queueing
        Output Queue: priority
        Priority: 50% (500 kbps), bursts 1500 bytes
        (total drops 0)
    Class-map: BULK-DATA
      30000 packets, 4000000 bytes
      Match: access-group 101
      Queueing
        bandwidth 20%

確認ポイント:

  • 狙った class-map が当たっているか?
  • priority キューや帯域制御が適用されているか?

STEP2:トラフィック分類(class-map)が正しくマッチしているか

特に DSCP、ACL、ポート番号がズレているケースが多いです。

show class-map VOICE
Class Map: VOICE (match-any)
  Match dscp ef

DSCP ef のパケットが本当に流れているか確認:

show policy-map interface | include VOICE

もしカウンタが 0 の場合:

  • アプリ側が DSCP を付けていない
  • 途中の FW/ルータで DSCP が消されている
  • ACL が誤っている

STEP3:マーキング(DSCP)が正しく付与されているか確認

QoS は分類よりマーキングの問題が多いです。

show policy-map MARKING-POLICY

パケットキャプチャで DSCP を直接確認するのも有効:

tcpdump -vvv -i eth0

結果例:

IP tos 0xb8 (DSCP EF), TTL=63

→ EF が付いていれば OK

STEP4:キュー(queue)が正しく動作しているか確認

キューの使用状況やドロップ数を確認します。

show queuing interface g0/0

結果例:

Interface Gig0/0 queue stats:
  Priority queue: 200 packets, 0 drops
  Queue 1: 3000 packets, 20 drops
  Queue 2: 400 packets, 0 drops

ポイント:

  • priority queue が増えている → 優先制御が効いている
  • ドロップがあれば輻輳が発生している

STEP5:インターフェース設定の確認(QoS が有効か)

スイッチでは QoS をグローバルで有効にする必要があります。

show running-config | include qos

例:

mls qos
mls qos trust dscp

trust が無い場合、DSCP が 0 に書き換えられ QoS が効かない

STEP6:意図的に負荷をかけてキューの動作を検証

トラフィック量が少ないと QoS を確認できません。 iperf3 などで意図的に帯域を使用します。

iperf3 -c 192.168.1.10 -u -b 100M -t 30

この状態で再度下記を確認:

show policy-map interface
show queuing interface g0/0

キューのカウンタが動いていれば QoS が正しく機能しています。

■ よくある原因と対策(まとめ)

原因症状対策
DSCP が消されているclass-map がマッチしないFW / Switch の trust 設定を見直す
ACL の誤り別クラスに分類されるACL の方向と一致条件をチェック
ポリシー適用方向ミスカウンタが動かないout/in の方向を確認
トラフィックが少ないキュー動作が見えないiperf 等で意図的に負荷をかける

■ まとめ

QoS が効かない場合は、以下の順に確認すると最短で原因にたどり着けます。

  1. インターフェースにポリシーが正しく適用されているか
  2. class-map にマッチしているか(カウンタを確認)
  3. DSCP が適切に設定・維持されているか
  4. キューが想定通り動作しているか
  5. スイッチや FW の trust 設定
  6. 意図的な負荷をかけて再検証

これらを押さえておけば、現場で QoS トラブルに遭遇しても迅速に原因を特定し、解決へと導けます。

目次