分類(Classification)
分類は、ネットワークトラフィックを特定のクラスやカテゴリに分けるプロセスです。これにより、異なる種類のトラフィックに対して、適切なQoSポリシーを適用できるようになります。
- 目的: トラフィックの種類(音声、ビデオ、データなど)や重要度に基づいて、どのようにトラフィックを扱うべきかを決定する。
- 手法:
- ACL(アクセスコントロールリスト): IPアドレスやポート番号などに基づいてトラフィックを分類。
- DSCP/CoS値: 既にマーキングされているパケットの値を基にトラフィックを分類。
- NBAR(Network-Based Application Recognition): アプリケーションレイヤーのプロトコルを認識して分類。
- 結果: 分類されたトラフィックは、その分類に応じたQoSポリシー(帯域幅の割り当て、優先順位の設定、遅延管理など)を適用される。
マーキング(Marking)
「マーキング(Marking)」とは、ネットワークトラフィックに対して特定のQoS(Quality of Service)情報を付与するプロセスです。このプロセスにより、ネットワークデバイス(ルーターやスイッチ)がトラフィックを適切に処理できるようにします。マーキングは、パケットのヘッダー内にある特定のフィールドにQoS情報を設定することを意味します。
主なマーキングの種類
- DSCP(Differentiated Services Code Point)マーキング
- 概要: IPv4およびIPv6パケットのヘッダー内にあるDSCPフィールド(6ビット)にQoS情報を設定します。これにより、トラフィックを異なるクラスに分類し、ネットワーク全体で一貫したサービス品質を適用します。
- 例: 音声トラフィックに対して
EF (Expedited Forwarding)のDSCP値を設定することで、低遅延での処理が保証されます。
- CoS(Class of Service)マーキング
- 概要: Ethernetフレーム内の802.1Q VLANタグの一部である3ビットのフィールドにQoS情報を設定します。主にレイヤ2(データリンク層)で使用されます。
- 例: VLAN上のトラフィックに対して異なるCoS値を設定し、スイッチがトラフィックを優先的に処理するようにします。
- IPP(IP Precedence)マーキング
- 概要: IPパケットのヘッダー内にあるIP Precedenceフィールド(3ビット)にQoS情報を設定します。DSCPが登場する前に使用されていた方法で、現在も一部のレガシーシステムで使用されています。
- 例: トラフィックに対してIP Precedence 5を設定することで、高優先度で処理されるようになります。
信頼境界(Trust Boundary)
信頼境界は、どのデバイスやインターフェースが受信するトラフィックのQoSマーキングを信頼するかを決定する概念です。これは、トラフィック分類の一環として、どのデバイスからのマーキングをそのまま受け入れるか、再分類するかを判断するために使われます。
- 目的: トラフィックのQoSマーキングが正しく行われているかどうかを確認し、ネットワーク全体でのQoSポリシーの一貫性を保つ。
- 設定場所:
- 通常、信頼境界はネットワークのエッジに設定されます。例えば、エンドユーザーのデバイスからのトラフィックがネットワークに入る際に、そのマーキングを信頼するかどうかを決定します。
- エンタープライズ環境では、IP電話機や信頼されたスイッチからのトラフィックはそのマーキングが信頼される一方で、PCや外部ネットワークからのトラフィックは信頼されない場合があります。
- 処理:
- 信頼されるデバイス: そのままマーキングを受け入れて処理します。
- 信頼されないデバイス: 再分類して新たにマーキングを行い、適切なQoSポリシーを適用します。
分類と信頼境界の関係
- 分類と信頼境界は密接に関連しています。信頼境界を設定することで、どのトラフィックがそのまま分類され、QoSポリシーを適用されるかを決定します。信頼されるトラフィックは、そのままのマーキングで処理されるため、効率的なトラフィック管理が可能になります。一方、信頼されないトラフィックは再分類され、適切なマーキングとポリシーが適用されます。
MQCを使用したエンド・ツー・エンドのL3 QoS
MQC(Modular QoS CLI)を使用したL3 QoSは、Ciscoルーターやスイッチで広く使われる手法で、以下のステップで設定されます。
- Class Map: トラフィックを特定のクラスに分類します。
- Policy Map: 各クラスに対して適用するQoSのアクション(マーキング、シェーピング、ポリシングなど)を定義します。
- Service Policy: インターフェースにポリシーを適用します。
クラス マップの作成
クラス マップを作成し、クラス マップ コンフィギュレーション モードを開始します。
Router(config)#class-map class-map-name [match-all | match-any ]
コマンド 内容 match-all すべての条件に一致すれば分類されます。 match-any いずれかの条件に一致すれば分類されます。
クラス マップに一致基準を指定します。
matchの後に指定できる一致基準は数多くあるので、一例を記載します。
Router(config-cmap)#match [ access-group | protocol | ip dscp | ip precedence | class-map |等…]
コマンド 内容 access-group 特定のアクセスリスト(ACL)に基づいてトラフィックを分類します。 protocol 特定のプロトコル(NBARが識別するアプリケーションプロトコル)に基づいてトラフィックを分類します。 ip dscp パケットのDSCP値に基づいてトラフィックを分類します。 ip precedence IP Precedence値に基づいてトラフィックを分類します。 class-map 既存のclass-mapを基にトラフィックを分類します。階層型の分類を行う場合に使用します。
ポリシー マップの作成
作成されるポリシー マップの名前を指定し、ポリシー マップ コンフィギュレーション モードを開始します。
Router(config)#policy-map policy-map-name
クラス名を入力するか、class-default キーワードを入力します。
Router(config-pmap)#class {class-name | class-default }
(任意)ポリシー マップに属するクラスに割り当てる帯域幅を指定または変更します。
Router(config-pmap-c)#bandwidth {bandwidth-kbps | remaining percent percentage | percent percentage }
(任意)トラフィックに対して優先的に割り当てる帯域幅を指定します。
Router(config-pmap-c)#priority kbps
(任意)マーキングするQoS情報を指定します。
Router(config-pmap-c)#set [dscp | cos | ip precedence]
ポリシー マップのインターフェイスへの適用
作成したポリシーマップをインターフェイスに適用します。
Router(config)#interface interface-id
Router(config-if)#service-policy {input | output }policy-map-name
信頼境界の設定
QoS(Quality of Service)の信頼境界を設定する場合、通常はスイッチポートやルーターポートでトラフィックのCoS (Class of Service) やDSCP (Differentiated Services Code Point) の値を信頼するかどうかを指定します。これにより、ネットワーク機器が受信したパケットのQoSラベルをそのまま信頼して処理するか、または再マークして別の値に変更するかが決まります。
QoSの設定を行う前に、必要なmls qosコマンドを有効にしておく必要があります。
Switch(config)#mls qos
cosまたはdscpまたは ip-precedence値を信頼します。
Switch(config)# interface interface-id
Switch(config-if)# mls qos trust [cos | dscp | ip-precedence ]
設定例、動作確認
GigabitEthernet0/1インターフェースの出力方向に、DSCP値がEF、IP Precedenceが5のトラフィックに対して1000kbpsの帯域幅を優先的に割り当てる設定
DSCP値がEFまたはIP Precedenceが5のトラフィックは非常に高い優先度で扱われるトラフィックで音声トラフィックやビデオ会議の通信などに割り当てられます。
Switch(config)#mls qos
Switch(config)#class-map match-any VOICE
Switch(config-cmap)#match ip dscp ef
Switch(config-cmap)#match ip precedence 5
Switch(config-cmap)#exit
Switch(config-pmap)#class VOICE
Switch(config-pmap)#priority 1000
Switch(config-pmap)#class class-default
Switch(config-pmap)#fair-queue
Switch(config-pmap)#exit
Switch(config)#interface GigabitEthernet0/1
Switch(config-if)#service-policy output QOS_POLICY
宛先が192.168.1.1の通信に対してIP Precedence 5をマーキングする設定
Switch(config)#mls qos
Switch(config)#access-list 101 permit ip any host 192.168.1.1
Switch(config)#class-map match-any VOICE-MARK
Switch(config-cmap)#match access-group 101
Switch(config-cmap)#exit
Switch(config)#policy-map QOS_POLICY
Switch(config-pmap)#class VOICE-MARK
Switch(config-pmap)#set dscp ef
Switch(config)#interface GigabitEthernet0/1
Switch(config-if)#service-policy output QOS_POLICY