DT Blog

クレスコDTのエンジニアが
IT基礎知識から最新トレンドまで、技術ノウハウを発信

catch-img

Cisco QoS機能の使用およびFlagsやLengthによる制限

こんにちは。クレスコ・デジタルテクノロジーズのT.Kです。複雑なネットワーク通信環境において、如何にして最適化を実現するかは常に課題となっています。CiscoのQoS(Quality of Service)機能は、通信を分類・制御し、パフォーマンスを確保するために非常に強力な機能です。今回は、QoS機能を使用した帯域制御の一般例と、帯域制御を行ったことにより生じる障害への対応策として、FlagsおよびLengthフィールドによる通信制御について紹介します。


■あわせて読まれている資料:
対応事例やネットワークサービス一覧を掲載!
ネットワークテクノロジーサービス

  ネットワークテクノロジー資料ダウンロード|株式会社クレスコ・デジタルテクノロジーズ 厳しい条件に縛られがちなネットワークのあり方に 多角的な視点から最適解を提示します。 クラウドサービスやスマートデバイスの有効活用はもとより、「通話・会議・共有」といったコミュニケーション基盤の導入など、各システムに最適なネットワーク環境をご提案。より高度化するIT利用に対応します。 株式会社クレスコ・デジタルテクノロジーズ


目次[非表示]

  1. 1.QoS機能とは
  2. 2.QoS機能を使用した帯域制御
    1. 2.1.ネットワークA側のルータ設定
    2. 2.2.ネットワークB側のルータ設定
  3. 3.帯域制御を行ったことにより生じる障害
  4. 4.障害に対する対応策
  5. 5.まとめ
  6. 6.引用元

QoS機能とは

CiscoのQoS(Quality of Service)機能は、ネットワーク内の異なる種類の通信に対して、優先順位やデータ量を調整することで、重要な通信を遅延なく処理するための技術です。


現代のネットワークでは、膨大な量のデータがさまざまなアプリケーションによって送受信されます。その中で、遅延に敏感なアプリケーション(例:音声通話やビデオ会議)の通信と、リアルタイム性を要求しないアプリケーション(例:データ転送やウェブブラウジング)の通信が同じネットワーク上で競合することがあります。QoS機能を使用することで、音声、ビデオ、データなどの異なる通信をネットワーク上で遅延なく処理できます。


以下、CiscoのQoS機能について説明します。

  • 分類とマーキング(Classification and Marking):
    「分類」とは、ネットワーク内の通信を「誰が」「どのアプリケーションで」「どんなデータを送っているか」を識別し、異なる通信に異なる優先度を与える最初のステップです。分類が完了したら、その通信に「マーキング」を行い、各パケットに対して優先度のラベル付けを行います。このラベルをもとに、ルータやスイッチはそのパケットを適切に処理するようにします。

  • ポリシングとシェーピング(Policing and Shaping):
    「ポリシング」は、ネットワーク上で設定された帯域幅の上限を超える通信をリアルタイムで破棄、またはリマークする機能です。「シェーピング」は、突発的な通信の流れを滑らかにします。設定された帯域幅の上限を超える通信をすぐに廃止するのではなく、一時的にバッファに蓄え、帯域幅が許す範囲内で送信します。

  • キューイングとスケジューリング(Queuing and Scheduing):
    「キューイング」は、複数の通信を受け取った際に、それらをどの順序で処理するかを決めます。各通信はキュー(待ち行列)に置かれ、キューイングメカニズムによって優先順位が決められます。「スケジューリング」は、キューイングされた通信をどの順序で送信するかを決めます。キューイングで優先度が付けられた通信をどのタイミングで処理するかを管理することで、重要な通信が適切に送信され、低優先度の通信も公平に処理されるようになります。

  • 遅延、ジッタ、パケット損失の管理:
    特に遅延に敏感なアプリケーションでは、遅延、ジッタ(遅延のばらつき)、パケットの損失が品質に大きく影響します。QoSはこれらを管理し、アプリケーションのパフォーマンスを維持します。



QoS機能を使用した帯域制御

QoS機能の帯域制御を実際にどのように使用するかについて、FTPプロトコルを例にご紹介します。


FTPはネットワーク上でファイルを転送するための標準的なプロトコルです。大量のデータを転送する際に利用され、FTPサーバを使用してファイルをアップロード・ダウンロードする業務も一般的です。しかし、FTP通信は大量の帯域幅を消費することも多く、他の重要な通信のパフォーマンスに悪影響を与える可能性があります。そこで、QoS機能を活用して、FTP通信を適切に制御し、他の通信を優先させることが求められます。


以下では、FTP(パッシブモード)を使用し、ネットワークAとネットワークB間で使用可能な帯域幅を、QoS機能により、10Mに制限する際の設定例を紹介します。


構成


ネットワークA側のルータ設定

アクセスリスト(ACL)を作成し、アウトバウンド時に通信可能な送信元・宛先IPアドレスとポート番号を定義します。 


1.アクセスリスト(ACL)を作成し、アウトバウンド時に通信可能な送信元・宛先IPアドレスと
     ポート番号を定義します。

ip access-list extended OUT_ACL
 permit tcp host 10.0.0.1 host 192.168.1.100 eq ftp
 permit tcp host 10.0.0.1 host 192.168.1.100 gt 1023


2.作成したアウトバウンド用アクセスリスト(ACL)を、クラスマップに適用します。

class-map match-all CLASS-OUT
 match access-group name OUT_ACL


3.ポリシーマップを作成し、FTP通信が使用可能な帯域幅を10Mに制限します。FTP以外の通信を
     均等に処理するよう設定します。

policy-map QOS_POLICY
 class CLASS-OUT
  shape average 10000000
 class class-default
  fair-queue


4.インターフェースG0/1にQoSポリシーを適用します。

interface GigaEthernet0/1
 service-policy output QOS_POLICY


ネットワークB側のルータ設定

1.ネットワークA側のルータと同様にアクセスリスト(ACL)を作成します。

ip access-list extended OUT_ACL
 permit tcp 192.168.1.100 host 10.0.0.1 eq ftp
 permit tcp 192.168.1.100 host 10.0.0.1 gt 1023


2.作成したアウトバウンド用アクセスリスト(ACL)をクラスマップに適用します。

class-map match-all CLASS-OUT
 match access-group name OUT_ACL


3.ポリシーマップを作成し、FTP通信が使用可能な帯域幅を10Mに制限します。FTP以外の通信を
     均等に処理するよう設定します。

policy-map QOS_POLICY
 class CLASS-OUT
  shape average 10000000
 class class-default
  fair-queue


4.インターフェースG0/1にQoSポリシーを適用します。

interface GigaEthernet0/1
 service-policy output QOS_POLICY



帯域制御を行ったことにより生じる障害

前述のようにQoS機能を用いて帯域制御設定を行うと、使用可能な帯域幅を大幅に超えるデータを送受信した際に、サーバ側でデータ受信完了を知らせるACKパケットやFINパケットが正常に受信できなくなるため、FTP通信がタイムアウトエラーとなる障害が発生することがあります。


対策としては、帯域幅を拡張する案もありますが、与えられた帯域幅(10M)から変更できない設計の場合、帯域幅拡張以外の対策を検討する必要があります。
QoSの「分類」機能で使われるFlagsフィールドおよびLengthフィールドを使い、ACK応答パケットやFINパケットを識別し、優先的に処理する設定を追加することで障害の発生を回避することが出来ます。

  • Flagsフィールドについて
     Flagsフィールドとは、ヘッダーに含まれるビットフラグを使用して、パケットを分類する方法です。 ヘッダーに「ACK」フラグ(受信側から送信側へのデータ受信確認のフラグ)が立てられた ACKパケットと、「FIN」フラグ(接続を終了するためのフラグ)が立てられたFINパケット を識別するために、Flagsフィールドを使用することが出来ます。

  • Lengthフィールドについて
    Lengthフィールドとは、ヘッダーに含まれるパケット全体の長さを示すフィールドを使用して、パケットを分類する方法です。通常、ACKパケットはデータ受信の確認にしか使われないため、パケット自体にデータは含まれず、パケットサイズは最小の64バイトとなりますが、FTPパッシブモードのACKパケットはデータ受信確認とデータ転送の両方で使われるので、パケットにデータが含まれるものと含まれないものが混在します。データ受信確認用のACKパケット(サイズが64バイトのもの)を識別するために、「Lengthフィールド」を使用することが出来ます。



障害に対する対応策

データ受信完了のACKパケットやFINパケットが確実に受信できるよう、ネットワークA側、B側のルータ設定にて、FlagsフィールドでACKパケットとFINパケットを分類し、Lengthフィールドでデータ受信完了のACKパケットを特定後、優先度を上げる設定を行います。


ネットワークA側、B側のルータ設定(共通)

1.データ受信確認用のACKパケットやFINパケットを識別するよう、アクセスリスト(ACL)とクラスマップを作成します。

2.Flagsフィールドを使用して、ACKパケットを識別するアクセスリスト(ACL)を作成します。

ip access-list extended ACK_ACL
permit tcp any any ack


3.Flagsフィールドを使用して、FINパケットを識別するアクセスリスト(ACL)を作成します。

ip access-list extended FIN_ACL
permit tcp any any fin


4.データ受信確認用のACKパケットは64バイトであるため、作成したACKパケットを識別するアクセスリスト(ACL)を更にLengthフィールドで制限を掛けるようクラスマップに適用します。

class-map match-all CLASS-ACK
 match packet length max 64
 match access-group name ACK_ACL


5.作成したFINパケットを識別するアクセスリスト(ACL)をクラスマップに適用します。

class-map match-all CLASS-FIN
 match access-group name FIN_ACL66.


6.QoSポリシーマップに設定を追加し、データ受信確認用のACKパケットとFINパケットにそれぞれ1Mの帯域幅を割り当て、FTP通信が使用可能な帯域幅を8Mに制限します。

※新たに追加したクラスマップを優先的に処理したい場合は、既存のクラスマップ「CLASS-OUT」を一旦削除する必要があります。

policy-map QOS_POLICY
 class CLASS-FIN
  shape average 1000000
 class CLASS-ACK
  shape average 1000000
 class CLASS-OUT
  shape average 8000000
 class class-default
  fair-queue


結果、FTP通信で使用可能な帯域幅を大幅に超えるデータを送受信する際も、タイムアウトエラーを発生させずに通信することができるようになります。



まとめ

今回は、CiscoのQoS機能について簡単にご紹介しました。
帯域幅が限られている環境でも、パケットを適切に処理することで、重要な通信がスムーズに行われるようになります。ネットワークを構築する際のご参考になれば幸いです。
最後までお読みいただき、ありがとうございました。


■サービス資料一覧はこちら↓

  資料ダウンロード一覧|株式会社クレスコ・デジタルテクノロジーズ クレスコ・デジタルテクノロジーズのサービスに関する資料の一覧ページです。 株式会社クレスコ・デジタルテクノロジーズ



引用元

T.K
T.K
部署名:プロフェッショナルサービス5部

おすすめ資料はこちら

ネットワークテクノロジー

厳しい条件に縛られがちなネットワークのあり方に多角的な視点から最適解を提示します。
クラウドサービスやスマートデバイスの有効活用はもとより、「通話・会議・共有」といったコミュニケーション基盤の導入など、各システムに最適なネットワーク環境をご提案。
より高度化するIT利用に対応します。

CONTACT

社内システムのお悩みを私たちだけで解決へと導きます

お役立ち資料は
こちらから

不明な点はお気軽に
お問い合わせください