このドキュメントでは、Network Based Application Recognition(NBAR)を使用して、Cisco IOS® ルータが内部ネットワークからインターネットへのピアツーピア(P2P)トラフィックをブロックするように設定する方法について説明します。
NBAR は、ネットワークに使用される特定のネットワーク プロトコルとネットワーク アプリケーションを認識します。 NBAR によってプロトコルまたはアプリケーションが認識されると、モジュラ QoS コマンドライン インターフェイス(MQC)を使用して、そのプロトコルまたはアプリケーションに関連付けられているパケットをクラスにグループ化できます。 これらのクラスは、パケットが特定の基準に準拠しているかどうかに基づいてグループ化されます。
NBAR の場合は、NBAR に認識される特定のプロトコルまたはアプリケーションにパケットが一致するかどうかという基準になります。 MQC を使用すると、1 つのネットワーク プロトコル(citrix など)を使用するネットワーク トラフィックを 1 つのトラフィック クラスに配置し、異なるネットワーク プロトコル(gnutella など)に一致するトラフィックを別のトラフィック クラスに配置できます。 その後、各クラス内のネットワーク トラフィックには、トラフィック ポリシー(ポリシー マップ)を使用して適切な QoS 処理を適用できます。 NBAR の詳細については、『Cisco IOS QoS ソリューション コンフィギュレーション ガイド』(英語)の「NBAR を使用したネットワーク トラフィックの分類」セクション(英語)を参照してください。
NBAR が P2P トラフィックをブロックするように設定する前に、シスコ エクスプレス フォワーディング(CEF)を有効にする必要があります。
CEF を有効にするには、グローバル コンフィギュレーション モードで ip cef を使用します。
Hostname(config)#ip cef
このドキュメントの情報は、次のソフトウェアとハードウェアのバージョンに基づくものです。
Cisco 2801 ルータ(Cisco IOS® ソフトウェア リリース 12.4(15)T 搭載)
Cisco Security Device Manager(SDM)バージョン 2.5
注: ルータを SDM で設定できるようにするには、『SDM を使用した基本的なルータ設定』を参照してください。
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されたものです。 このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。 ネットワークが稼働中の場合は、コマンドが及ぼす潜在的な影響を十分に理解しておく必要があります。
ドキュメント表記の詳細は、『シスコ テクニカル ティップスの表記法』を参照してください。
Network-Based Application Recognition(NBAR)は、多様なプロトコルとアプリケーションを認識および分類する分類エンジンです。 プロトコルまたはアプリケーションが NBAR に認識および分類されると、そのアプリケーションまたはそのプロトコルによるトラフィックに適した Quality of Service(QoS)を適用するようにネットワークを設定できるようになります。
NBAR は次の機能を実行します。
アプリケーションおよびプロトコルの識別(レイヤ 4 ~レイヤ 7)
NBAR では、次を使用するアプリケーションを分類できます。
スタティックに割り当てられた伝送制御プロトコル(TCP)およびユーザ データグラム プロトコル(UDP)のポート番号。
非 UDP および非 TCP IP プロトコル。
接続の確立時にネゴシエートされる、動的に割り当てられた TCP および UDP のポート番号。 アプリケーションおよびプロトコルの分類には、ステートフル インスペクションが必要です。 ステートフル インスペクションは、割り当てが行われるデータ接続ポート上で制御接続を受け渡すことによって分類されるデータ接続を検出する機能です。
サブポート分類: 発行済みのアプリケーションの名前に基づいた、HTTP(URL、MIME またはホスト名)と Citrix アプリケーション Independent Computing Architecture(ICA)トラフィックの分類。
ディープ パケット インスペクションと複数のアプリケーション固有の属性に基づいた分類。 リアルタイム転送プロトコル(RTP)のペイロード分類はこのアルゴリズムに基づいており、パケットは RTP ヘッダーの複数の属性に基づいて RTP として分類されます。
プロトコル ディスカバリ
プロトコル ディスカバリは一般的に使用される NBAR 機能で、インターフェイスごとにアプリケーションおよびプロトコルの統計情報(パケット数、バイト数、およびビット レート)を収集します。 GUI ベースの管理ツールは、NBAR PD 管理情報ベース(MIB)からの SNMP の統計をポーリングして、この情報をグラフィカルに表示します。 ネットワーキング機能と同様に、実稼働ネットワークにこの機能を導入する前にパフォーマンスとスケーラビリティの特性を理解することが重要です。 ソフトウェア ベースのプラットフォームで、この機能を有効にすると、CPU 使用率の低減と持続可能なデータ レートを実現します。 NBAR を、特定のインターフェイスの NBAR に対して既知であるすべてのプロトコルのトラフィックを検出するように設定するには、インターフェイス コンフィギュレーション モードまたは VLAN コンフィギュレーション モードで ip nbar protocol-discovery コマンドを使用します。 トラフィックの検出を無効にするには、no ip nbar protocol-discovery コマンドを使用します。
この項では、このドキュメントで説明する機能の設定に必要な情報を提供します。
注: 一部の P2P トラフィックは、その P2P プロトコルの特性のために完全にブロックされない場合があります。 これらの P2P プロトコルはそのシグニチャを動的に変更し、そのトラフィックを完全にブロックしようとする DPI エンジンをバイパスします。 そのため、それらを完全にブロックする代わりに帯域幅を制限することを推奨します (このトラフィックの帯域幅を絞ります。 ただし、接続が維持される ぎりぎりの値にしてください)。
注: このセクションで使用されているコマンドの詳細を調べるには、Command Lookup Tool(登録ユーザ専用)を使用してください。
このドキュメントでは、次のネットワーク構成を使用しています。
Cisco IOS ルータが P2P トラフィックをブロックするように設定する |
---|
R1#show run Building configuration... Current configuration : 4543 bytes ! version 12.4 service timestamps debug datetime msec service timestamps log datetime msec service password-encryption ! hostname R1 ! logging buffered 4096 enable secret 5 $1$bKq9$AHOxTgk6d3hcMGn6jTGxs/ ! aaa new-model ! ! ! ! aaa session-id common !--- IP CEF should be enabled at first to block P2P traffic. !--- P2P traffic cannot be blocked when IPC CEF is disabled. ip cef ! !--- Configure the user name and password with Privilege level 15 !--- to get full access when using SDM for configuring the router. username cisco123 privilege 15 password 7 121A0C0411045D5679 secure boot-image secure boot-config archive log config hidekeys ! ! ! !--- Configure the class map named p2p to match the P2P protocols !--- to be blocked with this class map p2p. class-map match-any p2p !--- Mention the P2P protocols to be blocked in order to block the !--- P2P traffic flow between the required networks. edonkey, !--- fasttrack, gnutella, kazaa2, skype are some of the P2P !--- protocols used for P2P traffic flow. This example !--- blocks these protocols. match protocol edonkey match protocol fasttrack match protocol gnutella match protocol kazaa2 match protocol winmx match protocol skype !--- The access list created is now mapped with the class map P2P !--- to specify the interesting traffic. match access-group 102 ! ! !--- Here the policy map named SDM-QoS-Policy-2 is created, and the !--- configured class map p2p is attached to this policy map. !--- Drop is the command to block the P2P traffic. policy-map SDM-QoS-Policy-2 class p2p drop ! ! ! !--- Below is the basic interface configuration on the router. interface FastEthernet0/0 ip address 10.77.241.109 255.255.255.192 duplex auto speed auto ! interface FastEthernet0/1 ip address 10.10.10.2 255.255.255.0 !--- The command ip nbar protocol-discovery enables NBAR !--- protocol discovery on this interface where the QoS !--- policy configured is being used. ip nbar protocol-discovery duplex auto speed auto !--- Use the service-policy command to attach a policy map to !--- an input interface so that the interface uses this policy map. service-policy input SDM-QoS-Policy-2 ! ip route 10.77.241.0 255.255.255.0 10.10.10.2 ip route 10.77.0.0 255.255.0.0 10.77.241.65 ! !--- Configure the below commands to enable SDM !--- access to the Cisco routers. ip http server ip http authentication local no ip http secure-server ! !--- Configure the access lists and map them to the configured class map. !--- Here the access list 102 is mapped to the class map p2p. The access !--- lists are created for both Incoming and outgoing traffic through !--- the inside network interface. access-list 102 remark SDM_ACL Category=256 access-list 102 remark Outgoing Traffic access-list 102 permit ip 10.10.10.0 0.0.0.255 10.77.241.0 0.0.0.255 access-list 102 remark Incoming Traffic access-list 102 permit ip 10.77.241.0 0.0.0.255 10.10.10.0 0.0.0.255 ! ! line con 0 exec-timeout 0 0 line aux 0 password 7 02250C520807082E01165E41 line vty 0 4 exec-timeout 0 0 password 7 05080F1C22431F5B4A transport input all ! ! webvpn cef end |
Cisco IOS ルータが P2P トラフィックをブロックするように設定するには、次の手順を実行します。
注: NBAR を、特定のインターフェイスの NBAR に対して既知であるすべてのプロトコルのトラフィックを検出するように設定するには、インターフェイス コンフィギュレーション モードまたは VLAN コンフィギュレーション モードで ip nbar protocol-discovery コマンドを使用して、トラフィック ディスカバリを有効にする必要があります。 必要なインターフェイス(設定された QoS ポリシーを使用)上でプロトコル ディスカバリを設定した後は、SDM 設定に進みます。
Hostname#config t Hostname(config)#interface fastEthernet 0/1 Hostname(config-if)#ip nbar protocol-discovery Hostname(config-if)#end
ブラウザを開き、SDM アクセス用に設定されたルータの IP アドレスを入力します。 例:https://<SDM_Router_IP_Address>
SSL 証明書の信憑性に関連してブラウザから出力されるすべての警告を認可します。 デフォルトのユーザ名とパスワードは、両方とも空白です。
ルータがこのウィンドウを表示するのは、SDM アプリケーションのダウンロードを許可するためです。 次の例の場合、アプリケーションはローカル コンピュータにロードされ、Java アプレットでは動作しません。
SDM のダウンロードが開始されます。
SDM Launcher がダウンロードされたら、ソフトウェアをインストールし、Cisco SDM Launcher を実行するために、プロンプトに従って一連の手順を完了します。
ユーザ名とパスワード(指定した場合)を入力し、[OK] をクリックします。
次の例では、ユーザ名として cisco123、パスワードとして cisco123 を使用しています。
[Configure] > [Quality of Service] を選択し、SDM ホームページの [Edit QoS Policy] タブをクリックします。
インターフェイスのドロップダウン リストの [View Policy] からインターフェイス名を選択し、次に [In Direction] ドロップダウン リストからトラフィック フローの方向(インバウンドまたはアウトバウンドのいずれか)を選択します。
この例では、インターフェイスは [FastEthernet 0/1] で、方向は [inbound] です。
インターフェイスに新しい QoS クラスを追加するには、[Add] をクリックします。
[Add a QoS Class] ダイアログボックスが表示されます。
新しいクラスを作成する場合は、[Class Name] オプション ボタンをクリックし、クラスの名前を入力します。 デフォルト クラスを使用する場合は、[Class Default] オプション ボタンをクリックします。
この例では、p2p という名前の新しいクラスを作成します。
[Classification] 領域で、[Match] オプションの [Any] オプション ボタンまたは [All] オプション ボタンのいずれかをクリックします。
この例では、ルータで class-map match-any p2p コマンドを実行する [Match] オプションは [Any] を使用しています。
[Classifcation] のリストで [Protocol] を選択し、[Edit] をクリックしてプロトコル パラメータを編集します。
[Edit Match Protocol Values] ダイアログボックスが表示されます。
[Available Protocol Values] リストから、ブロックする各 P2P プロトコルを選択し、右矢印(>>)ボタンをクリックして各プロトコルを [Selected Protocol Values] リストに移動します。
注: P2P トラフィックと NBAR を分類するには、Software Download ページに移動し、最新の P2P Protocol Description Language Module(PDLM)ソフトウェアと Readme ファイルをダウンロードします。 ダウンロードに使用できる P2P PDLM には、WinMx、Bittorrent、Kazaa2、Gnutella、eDonkey、Fasttrack、および Napster などがあります。 IOS によっては、これらの一部が統合されているものもあり(Fasttrack や Napster など)、最新の PDLM のバージョンを必要としない場合があります。 ダウンロードしたら、PDLM をルータのフラッシュにコピーし、ip nbar pdlm <flash_device>: <filename>.pdlm を設定して、それらを IOS にロードします。 正常にロードされたことを確認するには、show ip nbar pdlm コマンドを発行します。 ロードされた後は、クラス マップ コンフィギュレーションの下の match protocol 文でそれらを使用できます。
[OK] をクリックします。
[Add a QoS Class] ダイアログボックスで、[Classification] リストから [Access Rules] を選択し、[Edit] をクリックして新しいアクセス ルールを作成します。 p2p クラス マップには既存のアクセス ルールをマッピングすることもできます。
[Edit Match ACL] ダイアログボックスが表示されます。
[Access Rule] ボタン(...)をクリックし、適切なオプションを選択します。 この例では、新しい ACL を作成します。
[Add a Rule] ダイアログ ボックスが表示されます。
[Add a Rule] ダイアログボックスに、ACL の [Name/Number] フィールドに作成される ACL の名前または番号を入力します。
[Type] ドロップダウン リストから、作成する ACL のタイプを選択します([Extended Rule] または [Standard Rule] のいずれか)。
[Add] をクリックして、ACL 102 に詳細を追加します。
[Add an Extended Rule Entry] ダイアログボックスが表示されます。
[Add an Extended Rule Entry] ダイアログボックスで、[Select an action] ドロップダウン リストからアクション([Permit] または [Deny] のいずれか)を選択します。これにより、ACL ルールが、送信元と宛先のネットワーク間のトラフィックを許可するのか拒否するのかが決定されます。 このルールは、内部ネットワークから外部ネットワークへの発信トラフィックに適用されます。
[Source Host/Network] 領域および [Destination Host/Network] 領域にそれぞれ送信元および宛先ネットワークの情報を入力します。
[Protocol and Service] 領域で、適切なオプション ボタンをクリックします。 この例では IP を使用しています。
この ACL ルールに対する一致パケットを記録する場合は、[Log Matches against this entry] チェックボックスをオンにします。
[OK] をクリックします。
[Add a Rule] ダイアログボックスで、[OK] をクリックします。
[Edit Match ACL] ダイアログボックスで、[OK] をクリックします。
[Add a QoS Class] ダイアログボックスで、[Drop] チェックボックスをオンにし、ルータが P2P トラフィックをブロックするよう強制します。
[OK] をクリックします。
QoS ポリシーがインターフェイスにマッピングされないので、次の警告メッセージがデフォルトで表示されます。
SDM は QoS ポリシーを自動的に生成し、設定されたクラス マップをポリシーに追加します。 この SDM の設定手順と同等のコマンドライン インターフェイス(CLI)は次のとおりです。
R1(config)#policy-map SDM-QoS-Policy-2 R1(config-pmap)#class p2p R1(config-pmap-c)#drop R1(config-pmap-c)#end R1#
[Edit QoS Policy] タブで、[Apply Changes] をクリックしてルータに設定を反映させます。
アプリケーション ファイアウォール:インスタント メッセージのトラフィック強制機能により、ネットワークで許可されるインスタント メッセンジャー トラフィックのタイプを特定するポリシーを定義および強制することができます。 application im の下の appfw policy に設定されている場合、複数のメッセンジャー(AOL、YAHOO、MSN など)を同時に制御できます。 そのため、次の追加機能も強制することができます。
ファイアウォール インスペクション ルールの設定
ペイロードのディープ パケット インスペクション(テキスト チャットなどのサービスを探す)
注: アプリケーション ファイアウォール:インスタント メッセージのトラフィック強制機能は Cisco IOS バージョン 12.4(4) 以降でサポートされています。
アプリケーション ファイアウォールは、アプリケーション ポリシー(スタティック シグニチャの集合で構成)を使用してセキュリティ違反を検出します。 スタティック シグニチャは、パラメータの集合で構成されます。このパラメータは、アクションを実行する前に満たす必要のあるプロトコル条件を指定します。 これらのプロトコル条件と応答は、CLI を介してアプリケーション ポリシーを形成するようにエンド ユーザによって定義されます。
Cisco IOS アプリケーション ファイアウォールは、インスタント ネイティブ メッセンジャー アプリケーション ポリシーをサポートするために拡張を続けてきました。 そのため、Cisco IOS ファイアウォールは、AOL Instant Messenger(AIM)、Yahoo! Messenger、MSN Messenger のインスタント メッセージ サービス用のインスタント メッセンジャー サーバへのユーザによる接続を検出し、禁止できます。 この機能は、テキスト、音声、ビデオ、ファイル転送機能など、サポートされているすべてのサービスの接続を制御します。 この 3 つのアプリケーションは個別に拒否または許可することができます。 各サービスは、テキスト チャット サービスを許可して、音声、ファイル転送、ビデオ、およびその他のサービスを制限するなど、個別に制御できます。 この機能により、既存のアプリケーション インスペクション機能が向上し、HTTP(Web)トラフィックに偽装したインスタント メッセンジャー(IM)アプリケーション トラフィックを制御することができます。 詳細については、『アプリケーション ファイアウォール:インスタント メッセージのトラフィック強制』(英語)を参照してください。
注: IM アプリケーションがブロックされると、接続がリセットされ、必要に応じて syslog メッセージが生成されます。
ここでは、設定が正常に動作していることを確認します。
Output Interpreter Tool(OIT)(登録ユーザ専用)では、特定の show コマンドがサポートされています。 OIT を使用して、show コマンド出力の解析を表示できます。
show ip nbar pdlm:使用中の PDLM を NBAR によって表示するには、特権 EXEC モードで show ip nbar pdlm コマンドを使用します。
Router#show ip nbar pdlm The following PDLMs have been loaded: flash://edonkey.pdlm flash://fasttrack.pdlm flash://gnutella.pdlm flash://kazaa2.pdlm
show ip nbar version:Cisco IOS リリースの NBAR ソフトウェアのバージョンまたは Cisco IOS ルータの NBAR PDLM のバージョンに関する情報を表示するには、特権 EXEC モードで show ip nbar version コマンドを使用します。
R1#show ip nbar version NBAR software version: 6 1 base Mv: 2 2 ftp Mv: 2 3 http Mv: 9 4 static Mv: 6 5 tftp Mv: 1 6 exchange Mv: 1 7 vdolive Mv: 1 8 sqlnet Mv: 1 9 rcmd Mv: 1 10 netshow Mv: 1 11 sunrpc Mv: 2 12 streamwork Mv: 1 13 citrix Mv: 10 14 fasttrack Mv: 2 15 gnutella Mv: 4 16 kazaa2 Mv: 7 17 custom-protocols Mv: 1 18 rtsp Mv: 4 19 rtp Mv: 5 20 mgcp Mv: 2 21 skinny Mv: 1 22 h323 Mv: 1 23 sip Mv: 1 24 rtcp Mv: 2 25 edonkey Mv: 5 26 winmx Mv: 3 27 bittorrent Mv: 4 28 directconnect Mv: 2 29 skype Mv: 1 {<No.>}<PDLM name> Mv: <PDLM Version>, {Nv: <NBAR Software Version>; <File name> }{Iv: <PDLM Interdependency Name> - <PDLM Interdependency Version>}
show policy-map interface:特定のインターフェイスまたはサブインターフェイスまたはインターフェイス上の特定の相手先固定回線接続(PVC)のいずれかのすべてのサービス ポリシーに設定されたすべてのクラスのパケット統計情報を表示するには、特権 EXEC モードで show policy-map interface コマンドを使用します。
R1#show policy-map interface fastEthernet 0/1 FastEthernet0/1 Service-policy input: SDM-QoS-Policy-2 Class-map: p2p (match-any) 0 packets, 0 bytes 5 minute offered rate 0 bps, drop rate 0 bps Match: protocol edonkey 0 packets, 0 bytes 5 minute rate 0 bps Match: protocol fasttrack 0 packets, 0 bytes 5 minute rate 0 bps Match: protocol gnutella 0 packets, 0 bytes 5 minute rate 0 bps Match: protocol kazaa2 0 packets, 0 bytes 5 minute rate 0 bps Match: protocol winmx 0 packets, 0 bytes 5 minute rate 0 bps Match: access-group 102 0 packets, 0 bytes 5 minute rate 0 bps Match: protocol skype 0 packets, 0 bytes 5 minute rate 0 bps drop Class-map: class-default (match-any) 0 packets, 0 bytes 5 minute offered rate 0 bps, drop rate 0 bps Match: any
show running-config policy-map:すべてのポリシー マップ コンフィギュレーション、またはデフォルトのポリシー マップ コンフィギュレーションを表示するには、show running-config policy-map コマンドを使用します。
R1#show running-config policy-map Building configuration... Current configuration : 57 bytes ! policy-map SDM-QoS-Policy-2 class p2p drop ! end
show running-config class-map:クラス マップ コンフィギュレーションに関する情報を表示するには、show running-config class-map コマンドを使用します。
R1#show running-config class-map Building configuration... Current configuration : 178 bytes ! class-map match-any p2p match protocol edonkey match protocol fasttrack match protocol gnutella match protocol kazaa2 match protocol winmx match access-group 102 ! end
ここでは、設定のトラブルシューティングに役立つ情報について説明します。
Output Interpreter Tool(OIT)(登録ユーザ専用)では、特定の show コマンドがサポートされています。 OIT を使用して、show コマンド出力の解析を表示できます。
注: debug コマンドを使用する前に、『debug コマンドの重要な情報』を参照してください。
show access-list:Cisco IOS ルータで稼働するアクセスリスト コンフィギュレーションを表示するには、show access-list コマンドを使用します。
R1#show access-lists Extended IP access list 102 10 permit ip 10.10.10.0 0.0.0.255 10.77.241.0 0.0.0.255 20 permit ip 10.77.241.0 0.0.0.255 10.10.10.0 0.0.0.255