# QoS

## 1. 機能概要

QoS ( Quality of Service ) とは、ネットワーク上で、ある特定の通信のための帯域を予約し、一定の通信速度を保証する技術です。
アプリケーションデータを分類・グループ化し、IPヘッダ内の DSCP や、IEEE802.1Q タグ内の CoS を参照してグループ毎の優先度に従い、データを転送します。

## 2. 用語の定義

CoS (IEEE 802.1p Class of Service)

VLANタグヘッダ内にある3ビットのフィールドで優先度を表現し、0 ～ 7 の値をとる。
802.1p ユーザープライオリティとも呼ぶ。

IP Precedence

IPヘッダの TOS フィールド内にある 3 ビットのフィールドで優先度を表現し、0 ～ 7 の値をとる。
フレームを受信した機器に対して、該当フレームのトラフィッククラスを示すために使われる。

DSCP (Diffserv Code Point)

IP ヘッダの TOS フィールド内にある 6 ビットのフィールドで優先度を表現し、0 ～ 63 の値をとる。
DSCP は IP Precedence と同じ TOS フィールドを使用しているため、IP-Precedence と互換性がある。
フレームを受信した機器に対して、該当フレームのトラフィッククラスを示すために使われる。

デフォルト CoS

タグなしフレームに対して内部処理のために付与する CoS 値のこと。

送信キュー

本製品は、ポート毎に 8 個の送信キューをもつ。送信キューには、ID 0 ～ 7 が割り振られており、IDの数値が大きいほど、優先度が高いキューとなる。

トラストモード

送信キューID の決定を何に基づいて(信頼して)行うかを表す。
受信フレームの CoS 値や DSCP 値を使用して振り分けたり、受信ポート毎に設定された優先度を適用させることができる。
LAN/SFPポートおよび論理インターフェース単位で設定が可能である。ただし、論理インターフェースに所属しているLAN/SFPポートは設定変更できない。
初期状態(QoS を有効化したとき)は CoS に設定されている。

送信キューID変換テーブル

CoS 値や DSCP 値から、送信キューID を決定するための変換テーブル。
CoS - 送信キューID変換テーブルと DSCP - 送信キューID変換テーブルの 2 種類があり、それぞれのトラストモードで使用される。
マッピングは、ユーザーが自由に変更することができる。

ポート優先度

受信ポート毎に設定された優先度。トラストモードが"ポート優先"の場合、そのポートで受信したフレームは、ポート優先度の設定に基づいて送信キューへ格納される。

クラスマップ

パケットをトラフィッククラスに分類するための条件を定義したもの。
ポリシーマップに関連付けて使用し、トラフィッククラス毎の QoS 処理(プレマーキング、送信キュー指定、メータリング・ポリシング・リマーキング)を定義することができる。

ポリシーマップ

受信ポートに対する一連の QoS 処理を行うための要素。単体では使用せず、1つ ～ 8つのクラスマップを関連付けて使用する。
ポリシーマップを LAN/SFP ポートおよび論理インターフェースに適用すると、該当ポートで受信したパケットに対し、ポリシーマップに関連付けられたクラスマップ単位でトラフィック分類が行われる。
また、トラフィッククラス毎に設定されたQoS処理(プレマーキング、送信キュー指定、メータリング・ポリシング・リマーキング)が行われるようになる。

ポリサー

メータリング、ポリシング、リマーキングの一連の設定の集まり。
1 つのトラフィッククラスを対象としてメータリングを行う個別ポリサーと、複数のトラフィッククラスをひとまとめにしてメータリングを行う集約ポリサーの2種類がある。

## 3. 機能詳細

### 3.1. QoS の有効・無効制御

本製品の QoS 制御は、工場出荷時、 無効 となっています。
QoS 制御の有効化は、 qos enable コマンドで行います。無効化する場合は、 no qos コマンドで行います。
QoS 制御コマンドのほとんどは、QoS が有効化されていないと実行することができません。
また、QoS 機能の状態は、 show qos コマンドで確認することができます。
QoS 制御を有効化するにはシステムのフロー制御が無効である必要があります。

### 3.2. QoS 処理フロー

QoSの処理フローは以下のようになります。

### 3.3. 送信キューの割り当て

本製品はフレームを受信すると、フレーム内の CoS 値や DSCP 値 、受信ポートの ポート優先度 に基づいて、送信キューID の初期値を決定します。
フレームの CoS 値やDSCP 値、ポートの優先度のうち、何に基づいて送信キューを決定するかは、ポートの トラストモード によって決まります。
トラストモード は、 qos trust コマンドで変更することができ、初期設定(QoS 有効化時)は CoS に設定されています。

送信キューの割り当ては、 トラストモード 毎に以下のルールで行われます。

- トラストモードが "CoS" の場合

  - 受信フレームが VLAN タグ付きフレームの場合、タグ内の CoS 値を使用して、送信キューID を決定します。

  - 受信フレームが VLAN タグ無しフレームの場合、本製品で管理する デフォルト CoS を使用して、送信キューID を決定します。
    初期設定(QoS 有効化時)、 デフォルト CoS は 0 に設定されています。 qos cos コマンドで変更することができます。

  - CoS値から送信キューIDへの変換は、CoS-送信キューID変換テーブルによって行われます。
    本テーブルはシステムで一つ保有し、初期設定(QoS 有効化時)では、以下が設定されています。 qos cos-queue コマンドで変更することができます。

    CoS 値 | 送信キューID | Traffic Type
    --- | --- | ---
    0 | 2 | Best Effort
    1 | 0 | Background
    2 | 1 | Standard(spare)
    3 | 3 | Excellent Effort(Business Critical)
    4 | 4 | Controlled Load(Streaming Multimedia)
    5 | 5 | Video(Interactive Media) less than 100 msec latency and jitter
    6 | 6 | Voice(Interactive Media) less than 10 msec latency and jitter
    7 | 7 | Network Control(Reserved Traffic)

- トラストモードが "DSCP" の場合

  - IPヘッダ内の DSCP 値を使用して、送信キューID を決定します。

  - DSCP値から送信キューIDへの変換は、DSCP-送信キューID変換テーブルによって行われます。
    本テーブルはシステムで一つ保有し、初期設定(QoS 有効化時)では、以下が設定されています。 qos dscp-queue コマンドで変更することができます。

    DSCP 値 | 送信キューID | Traffic Type
    --- | --- | ---
    0 - 7 | 2 | Best Effort
    8 –15 | 0 | Background
    16 - 23 | 1 | Standard(spare)
    24 - 31 | 3 | Excellent Effort(Business Critical)
    32 - 39 | 4 | Controlled Load(Streaming Multimedia)
    40 - 47 | 5 | Video(Interactive Media) less than 100 msec latency and jitter
    48 - 55 | 6 | Voice(Interactive Media) less than 10 msec latency and jitter
    56 - 63 | 7 | Network Control(Reserved Traffic)

- トラストモードが "ポート優先" の場合

  - ポート優先度 に従って送信キューID を決定します。

  - 初期設定(QoS 有効化時)では、 ポート優先度 は 2 に設定されています。設定は qos port-priority-queue コマンドで変更することができます。

トラストモードが "CoS" または "DSCP" の場合、ポリシーマップによる QoS 処理 (以下) により、送信キューID の再割り当てが行われる場合があります。
この場合は、ポートのトラストモードに対応する送信キューID変換テーブルに基づいて、新しい送信キューID が再度割り当てられます。

- プレマーキング

  - 詳細は プレマーキング を参照

- 送信キュー指定

  - トラストモードが "CoS" の場合、 set cos-queue コマンドにて送信キューID に対応した CoS 値を指定します。

  - トラストモードが "DSCP" の場合、 set dscp-queue コマンドにて送信キューID に対応した DSCP 値を指定します。

- リマーキング

  - 詳細は メータリング・ポリシング・リマーキング を参照

トラストモードが "ポート優先" の場合は、ポリシーマップの QoS 処理によって送信キューID を変更することはできません。(プレマーキング、送信キュー指定、リマーキングの設定を含むポリシーマップを適用することはできません)

### 3.4. 送信キューの割り当て(スイッチ本体から送信されるフレーム)

送信キューの割り当ての例外として、スイッチ本体(CPU)から送信されるフレームは、 システムで決められた送信キュー が自動的に割り当てられます。( トラストモード に基づく送信キュー割り当てはされません)
どの送信キューを割り当てるかは、 qos queue sent-from-cpu コマンドで変更することができ、初期設定では送信キューID は 7 が設定されています。

### 3.5. トラフィック分類

トラフィックの分類は、IP ヘッダや TCP ヘッダなどの条件を定義した クラスマップ に基づいて、受信フレームを分類する機能です。
分類可能な条件と、設定コマンドは下表のとおりです。

- 分類可能な条件と、設定コマンド

  分類条件 | 条件設定コマンド | クラスマップ設定コマンド | クラスマップあたりの登録可能数
  --- | --- | --- | ---
  送信元／宛先 MAC アドレス | access-list (*注3) | match access-list | 1
  送信元／宛先 IP アドレス | 1
  IP プロトコルタイプ (*注1) | 1
  Ethernet フレームタイプ番号 | match ethertype | 1
  VLAN タグヘッダの CoS 値 | match cos | 8
  IP ヘッダの Precedence 値 | match ip-precedence | 8
  IP ヘッダの DSCP 値 | match ip-dscp | 8
  VLAN ID (*注2) | match vlan, match vlan-range | 30

  (*注1) IP プロトコルタイプによる分類は、IPv6 は対象外となります。
  (*注2) プライベート VLAN のアイソレート VLAN 、コミュニティ VLAN は対象外となります。
  (*注3) トラフィックの分類でアクセスリストに設定できる条件は 最大39件 までとなります。

- トラフィックの分類は クラスマップ 単位で行います。

- 分類条件は 1 つの クラスマップ に対して 1 種類 設定することができ、条件にマッチしたフレームは、ポリサーによる QoS 処理（メータリング・ポリシング・リマーキング）やプレマーキング、送信キューの指定を行うことができます。

- 分類条件を指定しなかった場合は、すべてのフレームが該当のトラフィッククラスに分類されます。

- CoS, IP Precedence, DSCP, VLAN ID による分類は、1 つのクラスマップで複数個を登録することができます。

- ポリシーマップ に複数の クラスマップ を関連付けることで、受信ポートに対して複合的なトラフィックの分類を実現することができます。1 つの ポリシーマップ に関連付けられる クラスマップ は、 最大で 8 個 です。

- 設定されている クラスマップ の情報は、 show class-map コマンドで確認できます。

- 設定されている ポリシーマップ の情報は、 show policy-map コマンドで確認できます。

- ポリシーマップ がどのポートに適用されているか、 クラスマップ がどのポリシーマップに関連付けられているかは、 show qos map-status コマンドで確認できます。

### 3.6. プレマーキング

プレマーキングとは、トラフィッククラスに分類された受信フレームに対して、CoS 値、IP Precedence 値、DSCP 値を変更する（割り当てる）機能です。
プレマーキングは、ポリシーマップ・クラスモードの以下のコマンドで設定します。

- プレマーキング設定コマンド

  プレマーキング対象 | 設定コマンド
  --- | ---
  CoS | set cos
  IP Precedence | set ip-precedence
  DSCP | set ip-dscp

- プレマーキング可能な DSCP 値は、 RFCで推奨されている値 とそれ以外に 4 個まで を扱うことができます。( リマーキングで扱う DSCP 値についても、本ルールが適用されます。 )

- プレマーキングの設定は、 クラスマップ に対して 1 つだけ 設定することができます。また、送信キュー指定 ( set cos-queue, set ip-dscp-queue ) との併用はできません。

- プレマーキングを行うと、変更後の値とトラストモードに対応する 送信キューID変換テーブル に基づいて、送信キューの再割り当てが行われます。

### 3.7. メータリング・ポリシング・リマーキング

帯域使用量を計測し、得られた結果に応じてパケットの破棄や優先度の変更を行うことにより、帯域制御を実現します。
メータリング、ポリシング、リマーキングの一連の処理は ポリサー と呼ばれる単位で行います。

- 帯域制御の処理概要

  処理名 | 概要
  --- | ---
  メータリング | トラフィックレートとバーストサイズを基準に、分類したトラフィックがどの程度帯域を占有しているかを計測し、 3 つの帯域クラス(Green, Yellow, Red)に分類します。 分類された帯域クラス毎に、破棄(ポリシング)やリマーキングなどの動作を指定することができます。
  ポリシング | 帯域クラスの情報を用いて、フレームを破棄することで、帯域使用量を一定量に抑止します。
  リマーキング | 帯域クラスの情報を用いて、フレームの CoS 値、IP Precedence 値、DSCP 値を変更します。

メータリング、ポリシング、リマーキングは、以下の論理インターフェースに対して動作させることはできません。

1. スタックを構成するメンバースイッチを跨いでグルーピングした論理インターフェース(下図、緑のI/F)

#### 3.7.1. ポリサーの種類

ポリサーには、メータリング・ポリシング・リマーキングを 1 つのトラフィッククラスを対象として行う 個別ポリサー と、複数のトラフィッククラスをひとまとめにして行う 集約ポリサー の2種類があります。

- 個別ポリサー
  トラフィッククラス毎にメータリング・ポリシング・リマーキングを行います。
  設定は、ポリシーマップ・クラスモードの police コマンドと remark-map コマンドを使用します。

- 集約ポリサー
  複数のトラフィッククラスをひとまとめにして、メータリング・ポリシング・リマーキングを行います。
  集約ポリサーは、 aggregate-police コマンドで生成し、集約ポリサーモードの police コマンドと remark-map コマンドで内容を設定します。
  生成した集約ポリサーをトラフィッククラスに適用するには、 police-aggregate コマンドを使用します。

- 個別ポリサー と 個別ポリサー それぞれの設定において使用するコマンドは以下のとおりです。

  設定内容 | 個別ポリサー | 集約ポリサー
  --- | --- | ---
  ポリサーの生成 | - | aggregate-police
  ポリサーの設定 (メータリング・ポリシング・リマーキング) | police single-rate, police twin-rate (ポリシーマップ・クラスモード) | police single-rate, police twin-rate (集約ポリサーモード)
  トラフィッククラスへのポリサーの適用 | police-aggregate
  リマーキングの詳細設定 | remark-map (ポリシーマップ・クラスモード) | remark-map (集約ポリサーモード)

#### 3.7.2. メータリングの設定

メータリングには、 シングルレートポリサー (RFC2697)と ツインレートポリサー (RFC2698)の2種類があります。
使用するメータリングの種類と制御パラメータは、 police コマンド(ポリシーマップ・クラスモードまたは集約ポリサーモード)で設定します。

- シングルレートポリサー(RFC2697)
  シングルレートポリサーは、 トラフィックレート(CIR) と バーストサイズ(CBS, EBS) に基づいて、トラフィッククラス内のフレームを Green(適合) 、 Yellow(超過) 、 Red(違反) の 3 つの帯域クラスに分類します。

  - シングルレートポリサー 制御パラメータ
    バーストサイズが適切に設定されていない場合、スループットが低下することがあります。

    パラメータ | 説　明
    --- | ---
    CIR (Committed Information Rate) | 定期的にバケットに貯められるトークンの流量。 1 ～ 102,300,000 kbps で指定することができます。
    CBS (Committed Burst Size) | 一つ目のトークンバケット(適合トークンバケット)から一度に取り除けるトークンのトラフィック量。 11 ～ 2,097,120 kByteで指定することができます。
    EBS (Exceed Burst Size) | 二つ目のトークンバケット(超過トークンバケット)から一度に取り除けるトークンのトラフィック量。 11 ～ 2,097,120 kByteで指定することができます。

- ツインレートポリサー(RFC2698)
  ツインレートポリサーは、 トラフィックレート(CIR, PIR) と バーストサイズ(CBS, PBS) に基づいて、トラフィッククラス内のフレームを Green(適合) 、 Yellow(超過) 、 Red(違反) の 3 つの帯域クラスに分類します。

  - ツインレートポリサー 制御パラメータ
    バーストサイズが適切に設定されていない場合、スループットが低下することがあります。

    パラメータ | 説　明
    --- | ---
    CIR (Committed Information Rate) | 二つ目のトークンバケット(適合トークンバケット) に定期的に貯められるトークンの流量。 1 ～ 102,300,000 kbps で指定することができます。
    PIR (Peak Information Rate) | 一つ目のトークンバケット(ピークトークンバケット) に定期的に貯められるトークンの流量。 1 ～ 102,300,000 kbps で指定することができます。 ただし、CIR より小さな値は設定できません。
    CBS (Committed Burst Size) | 適合トークンバケットから一度に取り除けるトークンのトラフィック量。 11 ～ 2,097,120 kByteで指定することができます。
    PBS (Peak Burst Size) | ピークトークンバケットから一度に取り除けるトークンのトラフィック量。 11 ～ 2,097,120 kByteで指定することができます。

#### 3.7.3. メータリングアクション(ポリシング・リマーキング)の設定

メータリングで分類された帯域クラスに対する動作の指定は、 police コマンド(ポリシーマップ・クラスモードまたは集約ポリサーモード)で行います。
本製品では、帯域クラス毎に以下の動作を定義することができます。

- 帯域クラスに対する動作の指定

  帯域クラス | 転送 | 破棄 | リマーキング
  --- | --- | --- | ---
  Green | ○ | × | ×
  Yellow | ○ | ○ | ○ (どちらか 片方のみ)
  Red | × | ○

- リマーキングの詳細の設定に関しては、 remark-map コマンド(ポリシーマップ・クラスモードまたは集約ポリサーモード)で行います。
  DSCP 値へのリマーキングは、プレマーキングと同じく、 RFCで推奨されている値 (別表1. 標準 PHB (RFC 推奨値)参照) とそれ以外に 4 個まで を扱うことができます。
  また、リマーキングを行うと、変更後の値とトラストモードに対応する 送信キューID変換テーブル に基づいて、送信キューの再割り当てが行われます。

- メータリングを行わない場合、トラフィッククラスに分類された全てのフレームは、帯域クラス Green として扱われます。

### 3.8. 送信キューへの格納

一連の QoS 処理によって最終的に決定した送信キューへ、フレームを格納します。
本製品では、送信キュー混雑状況を解消するために、フレームを選択し、破棄する仕組みを提供します。

- テールドロップ
  本製品では、送信キューの溢れ対策として、 テールドロップ 方式を採用します。
  メータリングで分類された帯域クラスに対して、以下のしきい値を超えた場合に、該当フレームの破棄を行います。
  テールドロップによって破棄されたフレームは、フレームカウンターによってカウントされます。

  帯域クラス | テールドロップしきい値(%)
  --- | ---
  Green + Yellow | 100%
  Red | 60%

- しきい値を変更することはできません。

- 送信キューの混雑度合いは、 show qos queue-counters コマンドで確認することができます。

- テールドロップによって破棄されたパケット数は show interface, show frame-counter コマンドで確認することができます。

### 3.9. スケジューリング

スケジューリングにより、送信キューに格納されたフレームをどのような規則で送出するかを決定します。
輻輳制御の仕組みと合わせて、スケジューリングを適切に制御することによって、QoS を保証するのに役立ちます。(不適切なスケジューリングは QoS を劣化させます。)

本製品は、送信キューのスケジューリング方式として、 絶対優先方式(SP) と 重み付きラウンドロビン方式(WRR) の2種類をサポートします。
また、SP と WRR をインターフェース内で組み合わせて使用することも可能です。(この場合、SPが優先的に処理されます。)

- 絶対優先方式 (SP : Strict Priority)
  キューの優先度の高いものから優先的に送信します。
  優先度の高いキューにフレームが格納されている場合には、それより優先度の低いキューからは全く送信することができなくなります。

- 重み付きラウンドロビン方式 (WRR : Weighted Round Robin)
  各キューに 重み を設定し、その比率によってフレームを送信します。重みは、 1～32 の範囲で設定することができます。
  優先度の低いキューからも、ある一定の割合にて送信をすることができます。

送信キューに対するスケジューリングの設定は、インターフェース単位ではなく、システムで一つの設定となります。
重みの設定は、 qos wrr-weight コマンドを使用します。
初期設定(QoS 有効化時)、スケジューリング設定は全てのキューで SP となっています。

### 3.10. シェーピング

帯域の異なるネットワークを接続している場合、広帯域のネットワークから狭帯域のネットワークにそのままの転送速度でフレームを転送すると、フレームが転送しきれなくなり、帯域不足を招きます。
シェーピングは、フレーム送信時の速度を監視し、速度超過を見つけた場合にフレームを一時的にバッファリングしてから送信することにより、転送レートを一定に抑止する機能です。
本製品のシェーピングは、シングルトークンバケットにより実現されています。

- シングルトークンバケット

- シェーピングは、ポート単位とキュー単位で設定することができ、それぞれ以下のコマンドを使用します。

  シェーピング対象 | 設定コマンド
  --- | ---
  ポート単位 | traffic-shape rate
  送信キュー単位 | traffic-shape queue rate

- 送信レートの上限(CIR)とバーストサイズ(BC)を指定します。

  - 送信レートの上限(CIR) : 50 - 100,000,000 kbps で指定可能。

  - バーストサイズ(BC) : 16 - 4,000 kbyte で指定可能。ただし、4Kbyte単位での設定となります。

  - キュー単位とポート単位のシェーピングを併用した場合、キュー単位のシェーピングの後にポート単位のシェーピングが適用されます。

- 初期設定(QoS 有効化時)、シェーピング設定はすべてのポート、すべてのキューで 無効 となっています。

### 3.11. Web会議アプリケーション向け最適設定

Web GUIから、Web会議アプリケーション向けのQoS設定を簡単に行うことができます。
使用するWeb会議アプリケーションを選択するだけの簡単な操作で、「Zoom Meetings」や「Microsoft Teams」といったWeb会議アプリケーションの通信を優先させることができます。

- Web 会議アプリケーション向け最適設定ページ

Web 会議アプリケーション向け最適設定では以下の設定を行います。

- QoS を有効にします。

- すべてのポートのトラストモードを DSCP に設定します。

- 最適化対象の Web 会議アプリケーションで使用する DSCP値を、優先度の高い送信キューに割り当てます。Web会議アプリケーションで使用するDSCP値は以下のとおりです。
  Web会議アプリケーションの設定により、Web会議アプリケーションで使用するDSCP値をデフォルト値から変更している場合は、 qos dscp-queue コマンドでDSCP値と送信キューの紐づけを変更してください。

  - Zoom Meetings

    - 56 (Audio)

    - 40 (Video/Screen sharing)

  - Microsoft Teams

    - 46 (Audio)

    - 34 (Video)

    - 18 (Application/Screen sharing)

- 最適化対象の Web 会議アプリケーションで使用しない DSCP 値を、最も優先度の低い送信キューに割り当てます。

- すべての送信キューのスケジューリングを絶対優先方式に設定します。

本Web会議アプリケーション向け最適設定機能は、スイッチ単体のQoS設定を行う機能です。QoSの効果を最大限に活かすには、ルーターを含むネットワーク全体で一貫したQoS設定を行う必要があります。
また、Web会議アプリケーションのDSCP値をデフォルトから変更している場合は、別途、DSCPの送信キュー割り当ての設定を変更してください。

別表1. 標準 PHB (RFC 推奨値)

PHB | DSCP値 | RFC
--- | --- | ---
Default | 0 | RFC2474
CS (Class Selector) | CS0 | 0 | RFC2474
CS1 | 8
CS2 | 16
CS3 | 24
CS4 | 32
CS5 | 40
CS6 | 48
CS7 | 56
AF (Assured Forwarding) | AF11 | 10 | RFC2597
AF12 | 12
AF13 | 14
AF21 | 18
AF22 | 20
AF23 | 22
AF31 | 26
AF32 | 28
AF33 | 30
AF41 | 34
AF42 | 36
AF43 | 38
EF (Expedited Forwarding) | 46 | RFC2598

## 4. 関連コマンド

関連コマンドについて、以下に示します。
詳細は、コマンドリファレンスを参照願います。

操作項目 | 操作コマンド
--- | ---
QoS の有効・無効制御 | qos enable
デフォルト CoS の設定 | qos cos
トラストモードの変更 | qos trust
受信フレームに対するポリシーマップの生成 | policy-map
受信フレームに対するポリシーマップの適用 | service-policy input
QoS 機能の設定状態の表示 | show qos
LAN/SFP ポートの QoS 情報の表示 | show qos interface
送信キュー使用率の表示 | show qos queue-counters
ポリシーマップ情報の表示 | show policy-map
マップステータスの表示 | show qos map-status
CoS - 送信キューID 変換テーブルの設定 | qos cos-queue
DSCP - 送信キューID 変換テーブルの設定 | qos dscp-queue
ポート優先度の設定 | qos port-priority-queue
スイッチ本体から送信されるフレームの優先度設定 | qos queue sent-from-cpu
クラスマップ(トラフィックの分類条件)の生成 | class-map
クラスマップの関連付け | class
トラフィック分類条件の設定(access-group) | match access-list
トラフィック分類条件の設定(CoS) | match cos
トラフィック分類条件の設定(TOS優先度) | match ip-precedence
トラフィック分類条件の設定(DSCP) | match ip-dscp
トラフィック分類条件の設定(Ethernet Type) | match ethertype
トラフィック分類条件の設定(VLAN ID) | match vlan
トラフィック分類条件の設定(VLAN ID レンジ指定) | match vlan-range
クラスマップ情報の表示 | show class-map
プレマーキングの設定(CoS) | set cos
プレマーキングの設定(TOS優先度) | set ip-precedence
プレマーキングの設定(DSCP) | set ip-dscp
個別ポリサー/集約ポリサーの設定(シングルレート) | police signle-rate
個別ポリサー/集約ポリサーの設定(ツインレート) | police twin-rate
個別ポリサー/集約ポリサーのリマーキングの設定 | remark-map
集約ポリサーの作成 | aggregate-police
集約ポリサーの表示 | show aggregate-police
集約ポリサーの適用 | police-aggregate
メータリングカウンターの表示 | show qos metering-counters
メータリングカウンターのクリア | clear qos metering-counters
送信キューの指定(CoS-Queue) | set cos-queue
送信キューの指定(DSCP-Queue) | set ip-dscp-queue
送信キューのスケジューリング設定 | qos wrr-weight
トラフィックシェーピング(ポート単位)の設定 | traffic-shape rate
トラフィックシェーピング(キュー単位)の設定 | traffic-shape queue rate

## 5. コマンド実行例

### 5.1. DSCP 値を使用した優先制御(SP)

フレームの DSCP 値に基づき送信キューを振り分け、優先制御(SP)を行います。
DSCP = 56, 46, 8, 0 のフレームを受信するとき、SP 優先制御により、LANポート#3 からは DSCP 値の大きなフレームが優先的に処理されるようにします。

- DSCP 優先制御 (SP) 設定例

- 入力フレームの優先度付けは以下とします。

  - DSCP = 56 のフレームを優先度 7 に設定

  - DSCP = 46 のフレームを優先度 5 に設定

  - DSCP = 8 のフレームを優先度 1 に設定

  - DSCP = 0 のフレームを優先度 0 に設定

1. QoS の有効化と受信ポート ( LAN ポート #1, #2 ) のトラストモードの設定をする。

       Yamaha(config)#qos enable (1)
       Yamaha(config)#interface port1.1 (2)
       Yamaha(config-if)#qos trust dscp (3)
       Yamaha(config-if)#exit
       Yamaha(config)#interface port1.2 (4)
       Yamaha(config-if)#qos trust dscp (5)
       Yamaha(config-if)#exit

   1 | QoS を有効にする
   2 | LAN ポート #1 に対する設定
   3 | トラストモードを DSCP に変更
   4 | LAN ポート #2 に対する設定
   5 | トラストモードを DSCP に変更

2. DSCP - 送信キューID変換テーブルの設定をする。
   DSCP値 = 46, 56 に対応する送信キューID はデフォルト値のため、特に設定の必要はありませんが、明示的に記載しています。

       Yamaha(config)#qos dscp-queue 56 7 (1)
       Yamaha(config)#qos dscp-queue 46 5 (2)
       Yamaha(config)#qos dscp-queue 8 1 (3)
       Yamaha(config)#qos dscp-queue 0 0 (4)

   1 | DSCP = 56 のフレームを送信キュー#7 へ格納
   2 | DSCP = 46 のフレームを送信キュー#5 へ格納
   3 | DSCP = 8 のフレームを送信キュー#1 へ格納
   4 | DSCP = 0 のフレームを送信キュー#0 へ格納

3. 送信キューごとのスケジューリング方式を設定する。
   デフォルト値のため、特に設定の必要はありませんが、明示的に記載しています。

       Yamaha(config)# no qos wrr-weight 7 (1)
       Yamaha(config)# no qos wrr-weight 5 (2)
       Yamaha(config)# no qos wrr-weight 1 (3)
       Yamaha(config)# no qos wrr-weight 0 (4)

   1 | Queue:7 SP 方式
   2 | Queue:5 SP 方式
   3 | Queue:1 SP 方式
   4 | Queue:0 SP 方式

### 5.2. アクセスリストを使用した優先制御(SP+WRR)

送信元 IP アドレスを使用してトラフィックを分類し、優先制御(WRR)を設定します。

- 優先制御 (SP+WRR) 設定例

- 入力フレームの分類条件と優先度付け

  - 192.168.10.2 からのパケットを トラフィックA に分類し、パケット送信時の 優先順位 7 に設定する

  - 192.168.20.2 からのパケットを トラフィックB に分類し、パケット送信時の 優先順位 6 に設定する

  - 192.168.30.2 からのパケットを トラフィックC に分類し、パケット送信時の 優先順位 5 に設定する

  - 192.168.40.2 からのパケットを トラフィックD に分類し、パケット送信時の 優先順位 4 に設定する

  - 192.168.50.2 からのパケットを トラフィックE に分類し、パケット送信時の 優先順位 3 に設定する

  - 192.168.60.2 からのパケットを トラフィックF に分類し、パケット送信時の 優先順位 2 に設定する

  - 192.168.70.2 からのパケットを トラフィックG に分類し、パケット送信時の 優先順位 1 に設定する

  - 192.168.80.2 からのパケットを トラフィックH に分類し、パケット送信時の 優先順位 0 に設定する

- スケジューリング方式
  SP と WRR を組み合わせた設定を行う。

  キューID | 方式 | 重み(%)
  --- | --- | ---
  7 | SP | -
  6 | SP | -
  5 | SP | -
  4 | WRR | 8 (40.0%)
  3 | WRR | 6 (30.0%)
  2 | WRR | 3 (15.0%)
  1 | WRR | 2 (10.0%)
  0 | WRR | 1 (5.0%)

1. QoS を有効にして、トラフィック A～H のアクセスリストを定義し、LAN ポートに設定するトラフィッククラスを定義します。

       Yamaha(config)#qos enable (1)
       Yamaha(config)#access-list 1 permit any 192.168.10.2 0.0.0.0 any (2)
       Yamaha(config)#class-map cmap-A
       Yamaha(config-cmap)#match access-list 1
       Yamaha(config-cmap)#exit
       Yamaha(config)#access-list 2 permit any 192.168.20.2 0.0.0.0 any (3)
       Yamaha(config)#class-map cmap-B
       Yamaha(config-cmap)#match access-list 2
       Yamaha(config-cmap)#exit
       Yamaha(config)#access-list 3 permit any 192.168.30.2 0.0.0.0 any (4)
       Yamaha(config)#class-map cmap-C
       Yamaha(config-cmap)#match access-list 3
       Yamaha(config-cmap)#exit
       Yamaha(config)#access-list 4 permit any 192.168.40.2 0.0.0.0 any (5)
       Yamaha(config)#class-map cmap-D
       Yamaha(config-cmap)#match access-list 4
       Yamaha(config-cmap)#exit
       Yamaha(config)#access-list 5 permit any 192.168.50.2 0.0.0.0 any (6)
       Yamaha(config)#class-map cmap-E
       Yamaha(config-cmap)#match access-list 5
       Yamaha(config-cmap)#exit
       Yamaha(config)#access-list 6 permit any 192.168.60.2 0.0.0.0 any (7)
       Yamaha(config)#class-map cmap-F
       Yamaha(config-cmap)#match access-list 6
       Yamaha(config-cmap)#exit
       Yamaha(config)#access-list 7 permit any 192.168.70.2 0.0.0.0 any (8)
       Yamaha(config)#class-map cmap-G
       Yamaha(config-cmap)#match access-list 7
       Yamaha(config-cmap)#exit
       Yamaha(config)#access-list 8 permit any 192.168.80.2 0.0.0.0 any (9)
       Yamaha(config)#class-map cmap-H
       Yamaha(config-cmap)#match access-list 8
       Yamaha(config-cmap)#exit

   1 | QoS を有効にする
   2 | トラフィックA
   3 | トラフィックB
   4 | トラフィックC
   5 | トラフィックD
   6 | トラフィックE
   7 | トラフィックF
   8 | トラフィックG
   9 | トラフィックH

2. CoS - 送信キューID変換テーブルを初期設定に戻します。

       Yamaha(config)#no qos cos-queue 0
       Yamaha(config)#no qos cos-queue 1
       Yamaha(config)#no qos cos-queue 2
       Yamaha(config)#no qos cos-queue 3
       Yamaha(config)#no qos cos-queue 4
       Yamaha(config)#no qos cos-queue 5
       Yamaha(config)#no qos cos-queue 6
       Yamaha(config)#no qos cos-queue 7

3. LAN ポート #1 (port1.1) に対するポリシーを生成し、適用します。
   Traffic-A に対して CoS 値 7 の送信キューを、Traffic-B に対して CoS 値 6 の送信キューを設定します。

       Yamaha(config)#policy-map pmap1
       Yamaha(config-pmap)#class cmap-A
       Yamaha(config-pmap-c)#set cos-queue 7 (1)
       Yamaha(config-pmap-c)#exit
       Yamaha(config-pmap)#class cmap-B
       Yamaha(config-pmap-c)#set cos-queue 6 (2)
       Yamaha(config-pmap-c)#exit
       Yamaha(config-pmap)#exit
       Yamaha(config)#interface port1.1 (3)
       Yamaha(config-if)#service-policy input pmap1 (4)
       Yamaha(config-if)# exit

   1 | Traffic-A はローカル優先順位 7
   2 | Traffic-B はローカル優先順位 6
   3 | LAN ポート #1
   4 | 受信フレームに対しポリシーを適用

4. LAN ポート #2 (port1.2) に対するポリシーを生成し、適用します。
   Traffic-C に対して CoS 値 5 の送信キューを、Traffic-D に対して CoS 値 4 の送信キューを設定します。

       Yamaha(config)#policy-map pmap2
       Yamaha(config-pmap)#class cmap-C
       Yamaha(config-pmap-c)#set cos-queue 5 (1)
       Yamaha(config-pmap-c)#exit
       Yamaha(config-pmap)#class cmap-D
       Yamaha(config-pmap-c)#set cos-queue 4 (2)
       Yamaha(config-pmap-c)#exit
       Yamaha(config-pmap)#exit
       Yamaha(config)#interface port1.2 (3)
       Yamaha(config-if)#service-policy input pmap2 (4)
       Yamaha(config-if)# exit

   1 | Traffic-C はローカル優先順位 5
   2 | Traffic-D はローカル優先順位 4
   3 | LAN ポート #2
   4 | 受信フレームに対しポリシーを適用

5. LAN ポート #3 (port1.3) に対するポリシーを生成し、適用します。
   Traffic-E に対して CoS 値 3 の送信キューを、Traffic-F に対して CoS 値 0 の送信キューを設定します。

       Yamaha(config)#policy-map pmap3
       Yamaha(config-pmap)#class cmap-E
       Yamaha(config-pmap-c)#set cos-queue 3 (1)
       Yamaha(config-pmap-c)#exit
       Yamaha(config-pmap)#class cmap-F
       Yamaha(config-pmap-c)#set cos-queue 0 (2)
       Yamaha(config-pmap-c)#exit
       Yamaha(config-pmap)#exit
       Yamaha(config)#interface port1.3 (3)
       Yamaha(config-if)#service-policy input pmap3  (4)
       Yamaha(config-if)# exit

   1 | Traffic-E はローカル優先順位 3
   2 | Traffic-F はローカル優先順位 2
   3 | LAN ポート #3
   4 | 受信フレームに対しポリシーを適用

6. LAN ポート #4 (port1.4) に対するポリシーを生成し、適用します。
   Traffic-G に対して CoS 値 2 の送信キューを、Traffic-H に対して CoS 値 1 の送信キューを設定します。

       Yamaha(config)#policy-map pmap4
       Yamaha(config-pmap)#class cmap-G
       Yamaha(config-pmap-c)#set cos-queue 2 (1)
       Yamaha(config-pmap-c)#exit
       Yamaha(config-pmap)#class cmap-H
       Yamaha(config-pmap-c)#set cos-queue 1 (2)
       Yamaha(config-pmap-c)#exit
       Yamaha(config-pmap)#exit
       Yamaha(config)#interface port1.4 (3)
       Yamaha(config-if)#service-policy input pmap4 (4)
       Yamaha(config-if)#exit

   1 | Traffic-G はローカル優先順位 1
   2 | Traffic-H はローカル優先順位 0
   3 | LAN ポート #4
   4 | 受信フレームに対しポリシーを適用

7. 送信キューのスケジューリング方式を設定します。
   キューID 5, 6, 7 は、デフォルト設定のため、特に設定の必要はありませんが、明示的に記載しています。

       Yamaha(config)#qos wrr-weight 0 1 (1)
       Yamaha(config)#qos wrr-weight 1 2 (2)
       Yamaha(config)#qos wrr-weight 2 3 (3)
       Yamaha(config)#qos wrr-weight 3 6 (4)
       Yamaha(config)#qos wrr-weight 4 8 (5)
       Yamaha(config)#no qos wrr-weight 5 (6)
       Yamaha(config)#no qos wrr-weight 6 (7)
       Yamaha(config)#no qos wrr-weight 7 (8)

   1 | 送信キュー0: WRR 方式、重み付け 1
   2 | 送信キュー1: WRR 方式、重み付け 2
   3 | 送信キュー2: WRR 方式、重み付け 3
   4 | 送信キュー3: WRR 方式、重み付け 6
   5 | 送信キュー4: WRR 方式、重み付け 8
   6 | 送信キュー5: SP 方式
   7 | 送信キュー6: SP 方式
   8 | 送信キュー7: SP 方式

### 5.3. ポート優先トラストモードを使用した優先制御

受信ポート毎に指定したポート優先度に基づいて、送信キューを決定します。

- ポート優先度による優先制御 設定例

- 受信ポートごとの優先度の設定

  - LAN ポート #1 (port1.1) の優先度を 6 に設定する。

  - LAN ポート #2 (port1.2) の優先度を 4 に設定する。

  - LAN ポート #3 (port1.3) の優先度を 2 に設定する。

1. QoS の有効化と受信ポート( LAN ポート #1, #2, #3 ) のトラストモードの設定をする

       Yamaha(config)#qos enable (1)
       Yamaha(config)#interface port1.1 (2)
       Yamaha(config-if)#qos trust port-priority (3)
       Yamaha(config-if)#qos port-priority-queue 6 (4)
       Yamaha(config-if)#exit
       Yamaha(config)#interface port1.2 (5)
       Yamaha(config-if)#qos trust port-priority (6)
       Yamaha(config-if)#qos port-priority-queue 4 (7)
       Yamaha(config-if)#exit
       Yamaha(config)#interface port1.3 (8)
       Yamaha(config-if)#qos trust port-priority (9)
       Yamaha(config-if)#qos port-priority-queue 2 (10)
       Yamaha(config-if)#exit

   1 | QoS を有効にする
   2 | LAN ポート #1 に対する設定
   3 | トラストモードを "ポート優先" に変更
   4 | ポート優先度を 6 に設定
   5 | LAN ポート #2 に対する設定
   6 | トラストモードを "ポート優先" に変更
   7 | ポート優先度を 4 に設定
   8 | LAN ポート #3 に対する設定
   9 | トラストモードを "ポート優先" に変更
   10 | ポート優先度を 2 に設定

### 5.4. アクセスリストを使用した帯域制御(ツインレート・個別ポリサー)

送信元 IP アドレスを使用して帯域制御を設定します。メータリングはツインレートポリサー、個別ポリサーを使用します。

- 帯域制御 設定例

- 入力フレームの分類条件と帯域制限の設定

  - 192.168.10.2 からのパケットを トラフィックA に分類し、受信レート (CIR) 25Mbps を保証する

  - 192.168.20.2 からのパケットを トラフィックB に分類し、受信レート (CIR) 15Mbps を保証する

  - 192.168.30.2 からのパケットを トラフィックC に分類し、受信レート (CIR) 10Mbps を保証する

1. QoS を有効にして、トラフィック A～C のアクセスリストを定義し、LAN ポートに設定するトラフィッククラスを定義します。

       Yamaha(config)#qos enable (1)
       Yamaha(config)#access-list 1 permit any 192.168.10.2 0.0.0.0 any (2)
       Yamaha(config)#class-map cmap-A
       Yamaha(config-cmap)#match access-list 1
       Yamaha(config-cmap)#exit
       Yamaha(config)#access-list 2 permit any 192.168.20.2 0.0.0.0 any (3)
       Yamaha(config)#class-map cmap-B
       Yamaha(config-cmap)#match access-list 2
       Yamaha(config-cmap)#exit
       Yamaha(config)#access-list 3 permit any 192.168.30.2 0.0.0.0 any (4)
       Yamaha(config)#class-map cmap-C
       Yamaha(config-cmap)#match access-list 3
       Yamaha(config-cmap)#exit

   1 | QoS を有効にする
   2 | トラフィックA
   3 | トラフィックB
   4 | トラフィックC

2. LAN ポート #1 (port1.1) に対するポリシーを生成し、適用します。
   トラフィックA から トラフィックC に対して、個別にメータリングを設定します。
   ツインレートポリサーにおいて Yellow, Red を破棄することにより、Green の帯域を確保（保証）することができます。

       Yamaha(config)#policy-map pmap1
       Yamaha(config-pmap)#class cmap-A (1)
       Yamaha(config-pmap-c)#police twin-rate 25000 25000 156 50 yellow-action drop red-action drop
       Yamaha(config-pmap-c)#exit
       Yamaha(config-pmap)#class cmap-B (2)
       Yamaha(config-pmap-c)#police twin-rate 15000 15000 93 50 yellow-action drop red-action drop
       Yamaha(config-pmap-c)#exit
       Yamaha(config-pmap)#class cmap-C (3)
       Yamaha(config-pmap-c)#police twin-rate 10000 10000 62 50 yellow-action drop red-action drop
       Yamaha(config-pmap-c)#exit
       Yamaha(config-pmap)#exit
       Yamaha(config)#interface port1.1 (4)
       Yamaha(config-if)#service-policy input pmap1 (5)
       Yamaha(config-if)#exit

   1 | Traffic-A メータリング設定
   2 | Traffic-B メータリング設定
   3 | Traffic-C メータリング設定
   4 | LAN ポート 1
   5 | 受信フレームに対しポリシーを適用 メータリングの設定値は、以下となります。 メータリング種別: ツインレートポリサー Traffic-A：CIR, PIR ( 25,000 kbps ) 、CBS ( 156 kbyte ) 、PBS ( 50 kbyte ) Traffic-B：CIR, PIR ( 15,000 kbps )、CBS ( 93 kbyte )、PBS ( 50 kbyte ) Traffic-C：CIR, PIR ( 10,000 kbps )、CBS ( 62 kbyte )、PBS ( 50 kbyte ) CBS は 往復時間を 0.05 秒とし、以下の算出式により求めています。 CBS = CIR ( bps ) ÷ 8 ( bit ) × 0.05 ( second )

### 5.5. アクセスリストを使用した帯域制御(シングルレート・集約ポリサー)

送信元 IP アドレスを使用して帯域制御を設定します。メータリングはシングルレートポリサー、集約ポリサーを使用します。

- 帯域制御 設定例

- 入力フレームの分類条件と帯域制限の設定

  - 192.168.10.2 からのパケットを トラフィックA に分類する。

  - 192.168.20.2 からのパケットを トラフィックB に分類する。

  - 192.168.30.2 からのパケットを トラフィックC に分類する。

  - トラフィックA, B, C の受信レートを、併せて 25Mbps に制限する。

  - 帯域クラス Yellow は DSCP = 0 にリマーキングして、低優先度で送信する。

1. QoS を有効にして、トラフィック A～C のアクセスリストを定義し、LAN ポートに設定するトラフィッククラスを定義します。

       Yamaha(config)#qos enable (1)
       Yamaha(config)#access-list 1 permit any 192.168.10.2 0.0.0.0 any (2)
       Yamaha(config)#class-map cmap-A
       Yamaha(config-cmap)#match access-list 1
       Yamaha(config-cmap)#exit
       Yamaha(config)#access-list 2 permit any 192.168.20.2 0.0.0.0 any (3)
       Yamaha(config)#class-map cmap-B
       Yamaha(config-cmap)#match access-list 2
       Yamaha(config-cmap)#exit
       Yamaha(config)#access-list 3 permit any 192.168.30.2 0.0.0.0 any (4)
       Yamaha(config)#class-map cmap-C
       Yamaha(config-cmap)#match access-list 3
       Yamaha(config-cmap)#exit

   1 | QoS を有効にする
   2 | トラフィックA
   3 | トラフィックB
   4 | トラフィックC

2. DSCP-送信キューID変換テーブルを設定します。
   Yellow のリマーキングで使用する DSCP値 (0) に対して、最低優先度の送信キューを割り当てます。

       Yamaha(config)#qos dscp-queue 0 0

3. 集約ポリサーを作成します。

       Yamaha(config)#aggregate-police agp1 (1)
       Yamaha(config-agg-policer)#police single-rate 25000 156 50 yellow-action remark red-action drop
       Yamaha(config-agg-policer)#remark-map yellow ip-dscp 0
       Yamaha(config-agg-policer)#exit

   1 | 集約ポリサーを作成 集約ポリサーのメータリングの設定値は、以下となります。 メータリング種別: シングルレートポリサー Yellow は DSCP値 = 0 にリマーキング CIR ( 25,000 kbps ) 、CBS ( 156 kbyte ) 、EBS ( 50 kbyte ) CBS は 往復時間を 0.05 秒とし、以下の算出式により求めています。 CBS = CIR ( bps ) ÷ 8 ( bit ) × 0.05 ( second )

4. LAN ポート #1 (port1.1) に対するポリシーを生成し、適用します。
   トラフィックA から トラフィックC を一つに集約したメータリング (集約ポリサー) を設定します。

       Yamaha(config)#policy-map pmap1
       Yamaha(config-pmap)#class cmap-A (1)
       Yamaha(config-pmap-c)#police-aggregate agp1
       Yamaha(config-pmap-c)#exit
       Yamaha(config-pmap)#class cmap-B (2)
       Yamaha(config-pmap-c)#police-aggregate agp1
       Yamaha(config-pmap-c)#exit
       Yamaha(config-pmap)#class cmap-C (3)
       Yamaha(config-pmap-c)#police-aggregate agp1
       Yamaha(config-pmap-c)#exit
       Yamaha(config-pmap)#exit
       Yamaha(config)#interface port1.1 (4)
       Yamaha(config-if)#service-policy input pmap1 (5)
       Yamaha(config-if)#exit

   1 | Traffic-A メータリング設定
   2 | Traffic-B メータリング設定
   3 | Traffic-C メータリング設定
   4 | LAN ポート 1
   5 | 受信フレームに対しポリシーを適用

## 6. 注意事項

- 以下の設定が異なるLAN/SFPポートは論理インターフェースとして束ねることはできません。

  - トラストモード

  - デフォルトCoS

  - ポート優先度

- ポリシーマップが適用されたLAN/SFPポートは、論理インターフェースに所属できません。

- ポリシーマップは論理インターフェースに所属しているLAN/SFPポートに対して適用できません。

- フラグメントパケットは正しく条件判定できない場合があります。具体的には、条件にレイヤー 4 の情報（送信元ポート番号、宛先ポート番号、TCP の各種フラグ）が含まれる場合、2 番目以降のフラグメントパケットにそれらの情報が含まれないため正しい判定ができません。フラグメントパケットを処理する可能性がある場合には条件にレイヤー 4 の情報を含めないようにしてください。

## 7. 関連文書

特になし

## 8. 商標名称について

- Zoom はZoom Video Communications,Incの米国及びその他の国における登録商標または商標です。

- Microsoft Teams は、米国 Microsoft Corporation の米国及びその他の国における登録商標または商標です。

Search result
No more search results.
There are no topics that match your search query.