はじめに
NEC の UNIVERGE IX シリーズで QoS を設定する場合、class-map(分類)→ policy-map(動作)→ service-policy(適用)という体系を用います。これは Cisco の MQC によく似ており、Cisco を扱ったことがあれば全体像はつかみやすい構成です。
一方で、IX には固有の作法があります。優先制御・帯域制御を働かせるにはインタフェースで service-policy enable による有効化が必要で、class-map や policy-map を変更したあとは反映のための操作が必要になります。これらを押さえないまま設定すると、設定したのに QoS が効かない、という状況になりがちです。本記事では、IX の QoS の全体像を整理したうえで、設定方法と、効かないときの確認までを扱います。
なお、QoS そのものの全体像(分類・マーキング・キューイング・帯域制御の役割や、優先制御の設計の考え方)は、関連記事『QoS とは|優先制御の仕組みと製品共通で押さえる設計のポイント』で扱っています。本記事は、その考え方を IX の設定に落とし込む位置づけです。
- IX の QoS の構成(
class-map/policy-map/service-policyの関係)と、Cisco(MQC)との違い・共通点 class-mapとmatchによるトラフィックの分類- 優先制御(PQ)とシェーピングの設定方法
service-policyによる適用と、DSCP / ToS のマーキング- QoS が効かないときの確認ポイントと
showでの確認
NEC IX の QoS(優先制御)の全体像
IX の QoS は、「分類(class-map)→ 動作の定義(policy-map)→ インタフェースへの適用(service-policy)」という 3 段階で構成されます。加えて、優先制御・帯域制御を働かせるための有効化が必要になる点が特徴です。

class-map / policy-map / service-policy の関係
各要素の役割は次のとおりです。
class-map-
match条件によって通信をクラスに分類します。宛先ネットワークやトンネル、IP アクセスリストなどで分類できます。 policy-map-
分類したクラスごとに、優先制御(PQ)やシェーピング、帯域制御(CBQ)といった動作を定義します。
service-policy-
定義したポリシーをインタフェースに適用します。
参考: NEC — UNIVERGE IX シリーズ FAQ(QoS)
「宛先ネットワークアドレスやトンネル毎にクラスマップを定義して、各クラスマップに帯域制御と優先制御の設定を行うことにより、実現することができます」
https://jpn.nec.com/univerge/ix/faq/qos.html
ここで押さえておきたいのが、IX 固有の 2 つの作法です。1 つは、キューイングやシェーピングを行うインタフェースで service-policy enable(優先/帯域制御の有効化)が必要な点です。もう 1 つは、class-map や policy-map を変更したあとは、clear policy-map interface <インタフェース> で変更を装置に反映させる点です。これらを忘れると、設定が反映されず QoS が効かない原因になります。
なお、service-policy enable は仮想インタフェース(Tunnel、BVI)には設定できず、FastEthernet / GigaEthernet 以外のインタフェースでは反映に再起動が必要になる場合があります。
また、QoS は UFS キャッシュによる高速化処理の対象となるため、QoS を利用する際は UFS キャッシュの有効化が案内されています。対応や制限は機種・バージョンにより異なるため、対象機種の公式ドキュメントでの確認を推奨します。
Cisco(MQC)との違い・共通点
Cisco の MQC を知っていると、IX の QoS は理解しやすい構成です。共通点と違いを整理します。
共通点は、class-map(分類)・policy-map(動作)・service-policy(適用)という 3 段構成と、match による分類の考え方です。クラスを部品として定義し、ポリシーで動作を与え、インタフェースに適用する流れは、Cisco の MQC とほぼ同じです。MQC 側の考え方は、関連記事『Cisco の QoS 設定|MQC で構成する優先制御の設計のポイント』で扱っています。
一方で、IX では service-policy enable による有効化が別途必要で、変更後は clear policy-map interface での反映が要る点が、Cisco との大きな違いです。加えて、適用できるインタフェースに制限がある点や、class-map 内の条件ごとに PQ の優先度を設定できる点なども、IX 固有の作法です。Cisco の感覚でそのまま設定すると、「有効化」と「反映」の 2 点でつまずきやすいため、この違いを意識しておくことを推奨します。
トラフィックの分類(class-map / match)
QoS の起点は、class-map による分類です。match 条件の組み合わせ方(match-all / match-any)と、IX 固有の「条件ごとの優先度(PQ)指定」を押さえると、以降の設定が整理しやすくなります。


class-map と match による分類
class-map は、match 条件で通信をクラスに分類します。複数の条件を指定する場合、すべてに一致させる match-all(AND)と、いずれかに一致すればよい match-any(OR)を選びます。
参考: NEC — IX-R/IX-V 機能説明書(QoS の設定)
「match-allを設定した場合、マッチ条件をandにより判定します」
https://support.necplatforms.co.jp/ix-nrv/manual/fd/02_router/24_qos.html
match で指定できる条件には、ANY、入力インタフェース、IPv4 / IPv6 アクセスリスト(ToS 値を含む)、CoS 値、ルータ内生成パケット、RTP 使用ポートなどがあります。アクセスリストで分類する例は次のとおりです。
ip access-list voip-list permit ip src 192.168.0.0/24 dest any
!
class-map match-all voip-class
match ip access-list voip-listなお、IX では class-map の判定条件を省略でき、省略した場合は match-all で動作します。
条件ごとの優先度(PQ)と match の扱い
IX 固有の点として、match-any の class-map では、match 条件ごとに優先度(PQ)を指定できます。優先度は high / medium / normal / low から指定し、match-any では上から順に判定して、合致した時点でその優先度のキューに分類されます。
class-map match-any pq-class
match ip access-list voip-list high
match input-interface GigaEthernet1.0 normal
match any lowmatch-any は上から順に評価されるため、match any low のような広い条件を上位に置くと、それ以降の条件が評価されなくなる点に注意します。優先したい通信の条件を上位に並べることを推奨します。
優先制御と帯域制御の設定(policy-map)
分類したクラスに動作を与えるのが policy-map です。優先制御(PQ)はクラスの優先度に従って送出し、帯域制御はシェーピングや CBQ(最小予約帯域)で行います。
優先制御(PQ)
PQ は、class-map 側で決めた優先度に従って動作します。policy-map では対象のクラスを並べ、インタフェースに service-policy で適用します。
policy-map pq-map
class pq-class
class class-default
!
interface GigaEthernet0.1
service-policy enable
service-policy output pq-mapここで、service-policy enable(優先/帯域制御の有効化)を忘れると動作しません。また、class-map や policy-map を変更したあとは、clear policy-map interface <インタフェース> で反映させる必要があります。
シェーピングと CBQ(帯域制御)
帯域制御には、シェーピングと CBQ があります。シェーピングは policy-map のクラスで shape を指定する方法と、インタフェース全体に traffic-shape rate を指定する方法があります。
policy-map shape-map
class site1-class
shape mbps 300
class site2-class
shape mbps 200interface GigaEthernet0.1
service-policy enable
traffic-shape rate mbps 300CBQ は、クラスごとに最小予約帯域を確保する方式です。policy-map のクラスで bandwidth を指定します。
参考: NEC — IX-R/IX-V コマンドリファレンス(ポリシーマップ)
「CBQを利用するクラスの最小予約帯域割合を設定します」
https://support.necplatforms.co.jp/ix-nrv/manual/crm/cli/qos/cli_policymap.html
policy-map cbq-map
class cbq-class1
bandwidth percent 50
class cbq-class2
bandwidth percent 30
class class-defaultbandwidth は割合(bandwidth percent、1〜98%)のほか、bandwidth 128(Kbps)や bandwidth mbps 10(Mbps)のように絶対値でも指定できます(既定は bandwidth percent 10)。CBQ で指定した割合は最小予約帯域として確保されるため、割り当ての小さいクラスでも通信できなくなることはありません。整理すると、優先順位をつけたい場合は PQ、通信ごとに帯域の上限や最小保証を与えたい場合はシェーピングや CBQ、という使い分けになります。
なお、コマンドやオプションは UNIVERGE IX シリーズと IX-R / IX-V、また機種・バージョンにより異なる場合があるため、対象機種の公式リファレンスでの確認を推奨します。
適用・マーキングと確認
作成した policy-map は、service-policy でインタフェースに適用します。DSCP / ToS のマーキング(カラーリング)もこの段階で設定し、動作は show policy-map interface で確認します。


service-policy enable / output による適用
適用には 2 つの設定が必要です。優先制御・帯域制御を働かせる service-policy enable(有効化)と、ポリシーを方向に関連付ける service-policy output(送信方向)または service-policy input(受信方向)です。
参考: NEC — UNIVERGE IX シリーズ 障害切り分けガイドライン(QoS)
「設定したインタフェースで優先制御や帯域制御を有効化する設定です。マーキング・カラーリングのみ設定される場合、本設定は不要です」
https://jpn.nec.com/univerge/ix/Support/Troubleshooting/qos-1.html
interface GigaEthernet0.1
service-policy enable
service-policy output out-map優先制御(PQ)・シェーピング・CBQ は送信方向に適用します。マーキングやクラス分け(qos-group)は受信方向にも設定できます。service-policy enable を忘れると優先制御・帯域制御は動作せず、class-map や policy-map を変更したあとは clear policy-map interface <インタフェース> で反映する点が、IX でつまずきやすいポイントです。なお、service-policy enable は仮想インタフェース(Tunnel、BVI)には設定できません。
DSCP / ToS のマーキング(カラーリング・ip type-of-service)
カラーリングは、パケットに DSCP・IP precedence・CoS の値を付与する機能で、クラス単位で設定します。policy-map のクラスで set ip precedence や set cos を指定します。
policy-map mark-in
class voip-class
set ip precedence 5
class class-default
set ip precedence 0
!
interface GigaEthernet2.0
service-policy input mark-inCoS の付与は set cos(Ver5.2 以降)で行い、DSCP も同様にクラス単位で付与できます。これにより、信頼境界となる IX で値を付け直し、ネットワーク内部のマーキングを一貫させられます(設定事例: https://support.necplatforms.co.jp/ix-nrv/manual/ex/Section1/11_qos.html )。
また、IX ルータ自身が生成するパケットに ToS 値を付与する場合は、ip type-of-service [機能] [dscp / precedence / tos] [値](Ver8.0 以降)を用います。
show コマンドでの確認
QoS の動作状態は show policy-map interface、設定内容は show running-config で確認します。show policy-map interface の表示行数で、関連付けの状態を切り分けられます。
Router# show policy-map interface
Interface GigaEthernet0.0
Traffic shaping is active, activated 429617 times
CIR 8 Kbps, Bc 8 bits, Be 8 bits, Tc 1 ms
Output policy-map outmap attached
Class class-pq
Bandwidth 10 percent, weight 512
Queued 9 packets, 10314 bytes, peak 38 packets
Output 285 packets, 317482 bytes
10 tail drops, 0 excess bandwidth, 0 buffer exhausted確認の着眼点は次のとおりです。何も表示されない場合は QoS が関連付いていない、2 行(インタフェースとポリシー名)のみの場合は service-policy enable の入力漏れ(ただしマーキング・カラーリングのみの場合は 2 行で問題なし)、複数行が表示されれば QoS が動作中、と判断できます。各クラスの tail drops(オーバーフローによる廃棄)、excess bandwidth(LLQ で帯域超過のため廃棄)、buffer exhausted(バッファ枯渇による廃棄)を見て、どこで廃棄が起きているかを把握します。
よくあるトラブルと対処
設定したのに QoS が効かない場合、設定値そのものより、有効化・反映の漏れや、シェーピングの設計に原因があることが少なくありません。
QoS が効かないときの確認(シェーピング超過・バースト・反映漏れ)
代表的な原因は次のとおりです。
service-policy enableの入力漏れ-
show policy-map interfaceが 2 行のみの表示になります。 - 変更の反映漏れ
-
class-mapやpolicy-mapを変更したら、clear policy-map interface <インタフェース>で反映します。 - アクセスリストと
class-mapの関連付けの誤り -
アクセスリスト名の指定順などを
show running-configで確認します。 - 適用インタフェースの制限
-
仮想インタフェース(Tunnel、BVI)には適用できず、FastEthernet / GigaEthernet 以外では反映に再起動が必要な場合があります。
- そもそも輻輳していない
-
優先制御は輻輳時にはじめて効くため、平常時の確認では差が現れません。
シェーピングに関しては、設定したレートを超えた通信で廃棄が発生します。
参考: NEC — UNIVERGE IX シリーズ 障害切り分けガイドライン(QoS 事例)
「トラフィックがシェーピング設定で指定した帯域(シェーピングレート)を超えている場合、QoSによる廃棄が発生します」
https://jpn.nec.com/univerge/ix/Support/Troubleshooting/qos-3.html
動画のように変動の大きい通信では、平均レートが上限以下でも、一時的なバーストでキューが輻輳し廃棄が生じることがあります。この場合、送信側のレートやバーストの調整に加え、Bc(バーストサイズ)を大きくして Tc を広げ、一時的に送信できる量を増やす対処が有効です。あわせて、実際にパケットへ付与された DSCP / CoS 値をパケットキャプチャで確認すると、マーキングと配分のどちらに原因があるかを切り分けられます。キャプチャでの絞り込み方法は、関連記事『Wireshark のフィルタ書き方と複数条件の使い分け|TCP 再送と HTTP エラーの追跡』で扱っています。
まとめ
- NEC IX の QoS は、
class-map(分類)→policy-map(動作)→service-policy(適用)という Cisco の MQC に近い体系です。 - 分類は
class-mapとmatchで行い、match-anyでは条件ごとに PQ の優先度(high / medium / normal / low)を指定できます。 - 優先制御は PQ、帯域制御はシェーピング(
shape/traffic-shape)と CBQ(bandwidthによる最小予約帯域)で行います。 - マーキング(カラーリング)は
set ip precedence/set cosなどでクラス単位に付与し、自生成パケットはip type-of-serviceで付与します。 - 適用には
service-policy enable(有効化)とservice-policy output/inputが必要です。 class-mapやpolicy-mapを変更したら、clear policy-map interfaceで反映します。- 効かないときは有効化・反映・関連付けを確認し、
show policy-map interfaceで廃棄を確認します。
以上、最後までお読みいただきありがとうございました。

