サービス品質(QoS) : QoS パケット マーキング

NBAR によって認識されないトラフィックの識別

2005 年 8 月 10 日 - ライター翻訳版
その他のバージョン: PDFpdf | 機械翻訳版 (2013 年 8 月 21 日) | 英語版 (2008 年 2 月 15 日) | フィードバック

目次

概要
前提条件
      要件
      使用するコンポーネント
      表記法
カスタム PDLM について
「未分類」ポートの分類
カスタム PDLM による Gnutella のブロッキング
関連するシスコ サポート コミュニティ ディスカッション
関連情報

概要

この文書では、Network-Based Application Recognition(NBAR)のカスタム Packet Description Language Module(PDLM)機能を使用して、未分類のトラフィックや match protocol 文として明確にサポートされていないトラフィックを照合する方法について説明します。

前提条件

要件

この文書の読者は次の項目に関する知識が必要です。

  • 基本的な QoS の方法論

  • NBAR に関する基本的な知識

使用するコンポーネント

この文書の情報は、次のソフトウェアとハードウェアのバージョンに基づいています。

  • Cisco IOS(R) ソフトウェア リリース 12.2(2)T

  • Cisco 7206 ルータ

この文書の情報は、特定のラボ環境にあるデバイスに基づいて作成されています。この文書内で使用されているデバイスはすべて、クリアな状態(デフォルト)から設定作業を始めています。対象のネットワークが実稼動中である場合には、すべてのコマンドによる潜在的な影響について確実に理解しておく必要があります。

表記法

文書表記の詳細は、『シスコ テクニカル ティップスの表記法』を参照してください。

カスタム PDLM について

NBAR では、スタティックおよびステートフルなさまざまなプロトコルをサポートしています。 PDLM により、IOS のリリースのアップグレードやルータのリロードを行わずに、新しいプロトコルで NBAR をサポートできるようになります。 これに続く IOS リリースには、これらの新しいプロトコルのサポートが組み込まれています。

カスタム PDLM を使用すると、現在は NBAR において match protocol 文でサポートされていないプロトコルに対して、スタティックな User Datagram Protocol(UDP; ユーザ データグラム プロトコル)ポートや TCP ポートを割り当てることができます。 言い換えれば、NBAR によって認識されるプロトコルのリストが拡張されることになります。

ルータにカスタム PDLM を追加する手順は次のとおりです。

  1. ソフトウェアのダウンロード ページ登録ユーザ専用)から NBAR PDLM の検索とダウンロードを行います。具体的には、ファイル custom.pdlm をダウンロードすることになります。
    一部ツールについては、ゲスト登録のお客様にはアクセスできない場合がありますことを、ご了承ください。

  2. 次のコマンドを使用して、PDLM をフラッシュ メモリ デバイス(スロット 0 または 1 の PCMCIA など)に読み込みます。

    7206-15(config)# ip nbar pdlm slot0:custom.pdlm
      
  3. show ip nbar port-map | include custom コマンド(以下参照)または show ip nbar pdlm コマンドを使用して、カスタム プロトコルのサポートを確認します。

      7206-16# show ip nbar port-map | include custom 
      port-map custom-01            udp 0 
      port-map custom-01            tcp 0 
      port-map custom-02            udp 0 
      port-map custom-02            tcp 0 
      port-map custom-03            udp 0 
      port-map custom-03            tcp 0 
      port-map custom-04            udp 0 
      port-map custom-04            tcp 0 
      port-map custom-05            udp 0 
      port-map custom-05            tcp 0 
      port-map custom-06            udp 0 
      port-map custom-06            tcp 0 
      port-map custom-07            udp 0 
      port-map custom-07            tcp 0 
      port-map custom-08            udp 0 
      port-map custom-08            tcp 0 
      port-map custom-09            udp 0 
      port-map custom-09            tcp 0 
      port-map custom-10            udp 0 
      port-map custom-10            tcp 0
  4. ip nbar port-map custom-XY {tcp|udp} {port1 port2 ...} コマンドを使用して、ポートをカスタム プロトコルに割り当てます。 たとえば、TCP ポート 8877 でトラフィックを照合するには、ip nbar port-map custom-01 tcp 8877 コマンドを使用します。

「未分類」ポートの分類

ネットワークのトラフィックによっては、NBAR で特別な分類メカニズムを使用する必要があります。 このトラフィックを分類すると、カスタム PDLM を使用して、UDP および TCP ポートの番号をカスタム ポートマップと照合できます。

デフォルトでは、NBAR の unclassified のメカニズムはイネーブルになっていません。 show ip nbar unclassified-port-stats コマンドからは、次のエラー メッセージが返されます。

  d11-5-7206-16# show ip nbar unclassified-port-stats 
  Port Statistics for unclassified packets is not turned on.

慎重に管理された環境で、debug ip nbar unclassified-port-stats コマンドを使用して、どのポートにパケットが着信するかについてのトラッキングをルータが開始するよう設定します。 次に show ip nbar unclassified-port-stats コマンドを使用して、収集された情報を確認します。 この出力には、最も一般的に使用されるポートのヒストグラムが表示されます。

注:debug コマンドを使用する前に、『デバッグ コマンドの重要な情報』を参照してください。  debug ip nbar コマンドは、慎重に制御されている環境でだけイネーブルにするようにしてください。

この情報が十分でない場合は、キャプチャ機能をイネーブルにできます。これは、新しいプロトコルのパケットのトレースをキャプチャする簡単な方法です。 次の debug コマンドを下記のように使用します。

  debug ip nbar filter destination_port tcp XXXX 
  debug ip nbar capture 200 10 10 10
  

最初のコマンドでは、キャプチャの対象とするパケットを定義します。 2 番目のコマンドでは、NBAR をキャプチャ モードにします。 capture コマンドの引数は次のとおりです。

  • パケットごとにキャプチャするバイト数。

  • キャプチャする最初のパケット数。つまり、TCP/IP SYN パケットの後で何パケットをキャプチャするか。

  • キャプチャする最後のパケット数。つまり、スペースを予約しておく必要がある、フローの最後の部分のパケット数。

  • キャプチャする総パケット数。

注:最初と最後のパケットのパラメータを指定すると、長いフローの中の関連するパケットだけがキャプチャされます。 

収集した情報を表示するには show ip nbar capture コマンドを使用します。 デフォルトでは、キャプチャ モードは SYN パケットが着信するのを待機し、次に双方向のフローに対してパケットのキャプチャを開始します。

カスタム PDLM による Gnutella のブロッキング

カスタム PDLM を使用する例を見てみましょう。 分類するトラフィックとして Gnutella を使用して、次のこのトラフィックをブロックする QoS ポリシーを適用します。

Gnutella では、よく知られている 6 つの TCP ポート(6346、6347、6348、6349、6355、および 5634)を使用します。他のポートは ping の受信で検出されます。 ユーザが他のポートを Gnutella ファイル共有で使用するよう指定した場合は、これらのポートをカスタム化した match protocol 文に追加できます。

Gnutella トラフィックを照合して、廃棄させる QoS サービス ポリシーの作成手順は次のとおりです。

  1. 上記のように、show ip nbar unclassified-port-stats コマンドを使用して、NBAR の「未分類」トラフィックを表示します。 使用しているネットワークで Gnutella トラフィックが搬送されている場合は、次のような出力が表示されます。

      Port    Proto    # of Packets 
      ------- -------- ------- 
      6346    tcp      347679 
      27005   udp      55043 
  2. ip nbar port-map custom コマンドを使用して、Gnutella ポートに対応するカスタム ポートマップを定義します。

      ip nbar port-map custom-02 tcp 5634 6346 6347 6348 6349 6355 

    注:現在では、custom-xx のような名前を使用する必要があります。  カスタム PDLM の名前のユーザ定義は、Cisco IOS ソフトウェアの今後のリリースでサポートされる予定です。

  3. show ip nbar protocol stats コマンドを使用して、カスタム文に一致することを確認します。

      2620# show ip nbar protocol stats byte-count 
      FastEthernet0/0 
                     Input               Output 
      Protocol       Byte Count          Byte Count 
      ------------------------------------------------ 
      custom-02      43880517            52101266
  4. モジュラ QoS CLI(MQC)のコマンドを使用して、QoS サービス ポリシーを作成します。

      d11-5-7206-16(config)# class-map gnutella 
      d11-5-7206-16(config-cmap)# match protocol custom-02 
      d11-5-7206-16(config-cmap)# exit 
      d11-5-7206-16(config)# policy-map sample 
      d11-5-7206-16(config-pmap)# class gnutella 
      d11-5-7206-16(config-pmap-c)# police 1000000 31250 31250 conform-action 
                   drop exceed-action drop violate-action drop
      

    Gnutella および他の不要なトラフィックをブロックするための他の設定コマンドについては、『ネットワークの入口で「Code Red」ワームをブロックするための NBAR および ACL の使用方法』を参照してください。


関連するシスコ サポート コミュニティ ディスカッション

シスコ サポート コミュニティは、どなたでも投稿や回答ができる情報交換スペースです。


関連情報


Document ID: 21628