この製品のマニュアルセットは、偏向のない言語を使用するように配慮されています。このマニュアルセットでの偏向のない言語とは、年齢、障害、性別、人種的アイデンティティ、民族的アイデンティティ、性的指向、社会経済的地位、およびインターセクショナリティに基づく差別を意味しない言語として定義されています。製品ソフトウェアのユーザーインターフェイスにハードコードされている言語、RFP のドキュメントに基づいて使用されている言語、または参照されているサードパーティ製品で使用されている言語によりドキュメントに例外が存在する場合があります。シスコのインクルーシブランゲージに対する取り組みの詳細は、こちらをご覧ください。
このドキュメントは、米国シスコ発行ドキュメントの参考和訳です。リンク情報につきましては、日本語版掲載時点で、英語版にアップデートがあり、リンク先のページが移動/変更されている場合がありますことをご了承ください。あくまでも参考和訳となりますので、正式な内容については米国サイトのドキュメントを参照ください。
Flexible Packet Matching(FPM)は、アクセス コントロール リスト(ACL)パターン マッチング ツールです。より詳細でカスタマイズされたパケット フィルタが用意されています。FPM を使用すると、パケットの任意のビット、パケット ヘッダーおよびペイロードの任意の深さでマッチングできます。FPM は、パケット インスペクションが制限された特定のフィールドに対する制約を取り除きます。
FPM が便利なのは、独自のステートレス パケットの分類基準を作成し、複数のアクション(インターネット制御メッセージ プロトコル(ICMP)unreachable のドロップ、ログ、送信など1)についてのポリシーを定義して、新しいウイルス、ワーム、および攻撃をただちにブロックできるためです。
ご使用のソフトウェア リリースでは、このモジュールで説明されるすべての機能がサポートされているとは限りません。最新の機能情報および警告については、Bug Search Tool およびご使用のプラットフォームおよびソフトウェア リリースのリリース ノートを参照してください。このモジュールで説明される機能に関する情報、および各機能がサポートされるリリースの一覧については、機能情報の表を参照してください。
プラットフォームのサポートおよびシスコ ソフトウェア イメージのサポートに関する情報を検索するには、Cisco Feature Navigator を使用します。Cisco Feature Navigator にアクセスするには、www.cisco.com/go/cfn に移動します。Cisco.com のアカウントは必要ありません。
XML エディタへのアクセスは必要ありませんが、XML によって、プロトコル ヘッダー記述ファイル(PHDF)の作成は容易になります。
FPM では、パケットの先頭 256 バイト以内で、最大 32 バイトの長さまでのパターンを検索できます。
policy-map では最大 32 クラスがサポートされます。
IP オプション パケットの場合、FPM はレイヤ 2 ヘッダーのフィールドと IP ヘッダーの先頭 20 バイトのみを検査します。
非初期 IP フラグメントの場合、FPM はレイヤ 2 ヘッダーのフィールドと IP ヘッダーの先頭 20 バイトのみを検査します。
FPM は、ステートフル分類が必要な攻撃の軽減には使用できません。
FPM はステートレスなので、ダイナミックにポートをネゴシエートするプロトコルで使用されているポート番号は追跡できません。そのため、FPM を使用する場合は、ポート番号を明示的に指定する必要があります。
FPM は、IP フラグメンテーションまたは TCP フローの再アセンブリを実行できません。
FPM は、IPv4 ユニキャスト パケットのみを検査します。
FPM は、IP オプションを使用してパケットを分類できません。
FPM はマルチキャスト パケット インスペクションをサポートしません。
FPM はトンネルおよび MPLS インターフェイスでサポートされません。
FPM エンジンでは非初期フラグメントがマッチングされません。
マッチング開始構造体では、オフセットに定数のみを使用できます。
FPM は複数のパケットにわたるマッチングを実行できません。
コントロール プレーンに対する FPM ポリシーのマッピングはサポートされません。
FPM を使用すると、新しいウイルスや攻撃をただちに検出してブロックできる独自のフィルタリング ポリシーを作成できます。
フィルタリング ポリシーは次の作業で定義されます。
PHDF をロードします(プロトコル ヘッダー フィールド マッチングの場合)
クラス マップを定義し、プロトコル スタック チェーン(トラフィック クラス)を定義します
サービス ポリシー(トラフィック ポリシー)を定義します
サービス ポリシーをインターフェイスに適用します
プロトコル ヘッダーは、PHDF という個別のファイルで定義されます。PHDF 内に定義されているフィールド名は、パケット フィルタの定義に使用されます。PHDF は、XML の柔軟性を利用して、ほぼすべてのプロトコル ヘッダーを記述できるファイルです。PHDF の重要なコンポーネントは、バージョン、XML ファイル スキーマの場所、およびプロトコル フィールド定義です。プロトコル フィールド定義では、プロトコル ヘッダーの適切なフィールドに名前を付け、フィールドを説明するコメントを考慮し、ヘッダーのプロトコル ヘッダー フィールドの場所を提供し(オフセットはプロトコル ヘッダーの開始に相対的です)、フィールドの長さを提供します。バイト単位またはビット単位を指定できます。
(注) |
ヘッダーの合計の長さは、各 PHDF の末尾で指定する必要があります。 |
(注) |
冗長 sup PHDF ファイルが FPM ポリシーで使用される場合、ファイルはスタンバイ sup の対応するディスク上にも存在する必要があります。ファイルが使用できない場合、FPM ポリシーはスイッチオーバー後に動作しません。 |
既存または専用のプロトコルの場合、XML を介して独自のカスタム PHDF を作成できます。ただし、load protocol コマンドを介して、ip.phdf、ether.phdf、tcp.phdf、および udp.phdf の標準 PHDF もルータに読み込むことができます。
(注) |
PHDF は XML を介して定義するため、実行コンフィギュレーションでは表示されません。ただし、show protocol phdf コマンドを使用して、読み込まれた PHDF を確認できます。 |
標準 PHDF は、Cisco.com(URL:http://www.cisco.com/cgi-bin/tablebuild.pl/fpm)で入手できます。
フィルタ記述は、(matchfield コマンドを使用して)PHDF に定義するヘッダー フィールドを含むことができるトラフィック クラスの定義です。PHDF が読み込まれていない場合、トラフィック クラスは、(matchstart コマンドを使用して)データグラム ヘッダーの開始(レイヤ 2)またはネットワーク ヘッダーの開始(レイヤ 3)を介して定義します。PHDF がルータに読み込まれた場合、クラスの指定は、パケット内のプロトコル ヘッダーのリストから始まります。
また、フィルタ定義にはポリシー マップも含まれます。つまり、クラス マップを定義した後は、一致をアクションにバインドするためにポリシー マップが必要です。ポリシー マップは、順序が指定されたクラスと関連するアクション(ICMP unreachable のドロップ、ログ、送信など)のセットです。
FPM のクラス マップとポリシー マップの設定方法については、セクション「How to Configure a Flexible Packet Matching Traffic Class and Traffic Policy」を参照してください。
(注) |
PHDF プロトコル フィールドがアクセス コントロール クラスマップで参照されない場合、FPM が適切に動作するには、スタック クラスマップが必要です。 |
1. enable
2. configureterminal
3. load protocollocation:filename
4. class-map [type {stack | access-control}] class-map-name [match-all | match-any]
5. descriptioncharacter-string
6. match fieldprotocol protocol-field {eq [mask] | neq | [mask] | gt | lt | rangerange | regexstring} value [nextnext-protocol]
7. match start {l2-start | l3-start} offsetnumbersizenumber {eq | neq | gt | lt | rangerange | regexstring} {value [value2] | [string]}
8. match classclass-name [packet-rangelow high | byte-rangelow high] session
9. exit
10. exit
11. show class-map [type {stack | access-control} | class-map-name]
すべての FPM イベントを追跡するには、debug fpm event コマンドを発行します。
次に、debug fpm event コマンドの出力例を示します。
*Jun 21 09:22:21.607: policy-classification-inline(): matches class: class-default *Jun 21 09:22:21.607: packet-access-control(): policy-map: fpm-policy, dir: input, match. retval: 0x0, ip-flags: 0x80000000
ネットワークに 1 つ以上のクラス マップを定義したら、次のタスク「Flexible Packet Matching のトラフィック ポリシーの作成」に示すように、トラフィック ポリシーを作成し、そのポリシーをインターフェイスに適用する必要があります。
1. enable
2. configure terminal
3. policy-map type access-controlpolicy-map-name
4. descriptioncharacter-string
5. classclass-nameinsert-beforeclass-name
6. drop [all]
7. log [all]
8. service-policypolicy-map-name
9. exit
10. interfacetype number
11. service-policy type access-control {input | output} policy-map-name
12. exit
13. exit
14. show policy-map [type access-control | interfacetypenumber | input | output]
コマンドまたはアクション | 目的 | |||
---|---|---|---|---|
ステップ 1 | enable 例: Router> enable |
特権 EXEC モードをイネーブルにします。 |
||
ステップ 2 | configure terminal 例: Router# configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
||
ステップ 3 | policy-map type access-controlpolicy-map-name 例: Router(config)# policy-map type access-control fpm-udp-policy |
サービス ポリシーを指定するために 1 つ以上のインターフェイスに対応付けることができるポリシー マップを作成または修正し、policy-map コンフィギュレーション モードを開始します。 |
||
ステップ 4 | descriptioncharacter-string 例: Router(config-pmap)# description “policy for UDP based attacks” |
(任意)説明をポリシー マップに追加します。 |
||
ステップ 5 | classclass-nameinsert-beforeclass-name 例: Router(config-pmap)# class slammer |
class-map コマンドを使用して設定された、事前定義済みトラフィック クラスの名前を指定します。また、class コマンドは、トラフィックをトラフィック ポリシーに合わせて分類し、ポリシー マップ クラス コンフィギュレーション モードを開始します。 |
||
ステップ 6 | drop [all] 例: Router(config-pmap-c)# drop all |
(任意)トラフィック クラスを、特定のクラスに属するパケットを廃棄するよう設定します。 all キーワードは、そのトラフィック クラスに属するパケットのストリーム全体を廃棄するのに使用します。 このコマンドを発行する場合、次の制約事項に注意してください。 |
||
ステップ 7 | log [all] 例: Router(config-pmap-c)# log all |
(任意)トラフィック クラスのログ メッセージを生成します。 all キーワードは、そのトラフィック クラスに属する廃棄されたパケットのストリーム全体を記録するのに使用します。このキーワードは、class-map type access-control コマンドで作成したクラス マップでのみ使用可能です。 |
||
ステップ 8 | service-policypolicy-map-name 例: Router(config-pmap-c)# service policy fpm-udp-policy |
階層的なサービス ポリシーを作成します。 |
||
ステップ 9 | exit 例: Router(config-pmap-c)# exit 例: Router(config-pmap)# exit |
ポリシー マップ クラス コンフィギュレーション モードおよびポリシー マップ コンフィギュレーション モードを終了します。 |
||
ステップ 10 | interfacetype number 例: Router(config)# interface gigabitEthernet 0/1 |
インターフェイス タイプを設定し、インターフェイス コンフィギュレーション モードを開始します。 |
||
ステップ 11 | service-policy type access-control {input | output} policy-map-name 例: Router(config-if)# service-policy type access-control input fpm-policy |
インターフェイスの入力方向または出力方向に対応付けるトラフィック ポリシーの種類と名前を指定します。 |
||
ステップ 12 | exit 例: Router(config-if)# exit |
インターフェイス コンフィギュレーション モードを終了します。 |
||
ステップ 13 | exit 例: Router(config)# exit |
グローバル コンフィギュレーション モードを終了します。 |
||
ステップ 14 | show policy-map [type access-control | interfacetypenumber | input | output] 例: Router# show policy-map type access-control interface gigabitethernet 0/1 |
(任意)FPM コンフィギュレーションを確認します。
|
次に、ASR プラットフォームで FPM を設定する例を示します。
load protocol bootflash:ip.phdf load protocol bootflash:tcp.phdf class-map type stack match-all ip_tcp match field IP protocol eq 6 next TCP class-map type access-control match-all test_class match field TCP dest-port gt 10 match start l3-start offset 40 size 32 regex "ABCD" policy-map type access-control child class test_class drop policy-map type access-control parent class ip_tcp service-policy child interface GigabitEthernet0/3/0 ip address 10.1.1.1 255.0.0.0 service-policy type access-control input parent
次の出力例では、すべての TCP パケットは class-map「ip_tcp」の下に表示され、特定のパターンに一致するすべてのパケットは class-map「test_class」の下に表示されます。特定のパターンのない TCP パケットは子ポリシーの「class-default」の下に表示され、すべての非 TCP パケットは親ポリシーの「class-default」の下に表示されます。(この例では、カウンタは 0 です)。
Router# show policy-map type access-control interface GigabitEthernet0/3/0 GigabitEthernet0/3/0 Service-policy access-control input: parent Class-map: ip_tcp (match-all) 2024995578 packets, 170099628552 bytes 5 minute offered rate 775915000 bps Match: field IP version eq 4 Match: field IP ihl eq 5 Match: field IP protocol eq 6 next TCP Service-policy access-control : child Class-map: test_class (match-all) 1598134279 packets, 134243279436 bytes 5 minute offered rate 771012000 bps, drop rate 771012000 bps Match: field TCP dest-port gt 10 Match: start l3-start offset 40 size 32 regex "ABCD" drop Class-map: class-default (match-any) 426861294 packets, 35856348696 bytes 5 minute offered rate 4846000 bps, drop rate 0 bps Match: any Class-map: class-default (match-any) 0 packets, 0 bytes 5 minute offered rate 0 bps, drop rate 0 bps Match: any Router#
関連項目 |
マニュアル タイトル |
---|---|
Cisco IOS コマンド |
|
セキュリティ コマンド |
『Cisco IOS Security Command Reference』 |
トラフィック分類定義ファイルを使用した FPM の設定 |
『Cisco IOS Security Configuration Guide: Securing the Data Plane』の「Flexible Packet Matching XML Configuration」モジュール |
Quality of Service(QoS)コマンド群 |
『Cisco IOS Quality of Service Solutions Command Reference』 |
MIB |
MIB のリンク |
---|---|
なし |
選択したプラットフォーム、Cisco IOS XE ソフトウェア リリース、およびフィーチャ セットの MIB の場所を検索しダウンロードするには、次の URL にある Cisco MIB Locator を使用します。 |
説明 |
リンク |
---|---|
右の URL にアクセスして、シスコのテクニカル サポートを最大限に活用してください。これらのリソースは、ソフトウェアをインストールして設定したり、シスコの製品やテクノロジーに関する技術的問題を解決したりするために使用してください。この Web サイト上のツールにアクセスする際は、Cisco.com のログイン ID およびパスワードが必要です。 |
次の表に、このモジュールで説明した機能に関するリリース情報を示します。この表は、ソフトウェア リリース トレインで各機能のサポートが導入されたときのソフトウェア リリースだけを示しています。その機能は、特に断りがない限り、それ以降の一連のソフトウェア リリースでもサポートされます。
プラットフォームのサポートおよびシスコ ソフトウェア イメージのサポートに関する情報を検索するには、Cisco Feature Navigator を使用します。Cisco Feature Navigator にアクセスするには、 www.cisco.com/go/cfn に移動します。Cisco.com のアカウントは必要ありません。 機能名 |
リリース |
機能情報 |
---|---|---|
Flexible Packet Matching |
Cisco IOS XE Release 2.2 |
FPM は、標準のマッチング演算子とユーザ定義のプロトコル ヘッダー フィールドを組み合わせることで、1 つまたは複数のネットワーク トラフィック クラスを定義できるパケット分類機能です。 導入された、または変更されたコマンドは、class (policy-map) class-map debug fpm event、description(class-map) load protocol matchfield matchstart、policy-map、service-policy、show class-map、show policy-map interface、showprotocolphdf です。 |