ADC

データセットの構成

データセットを構成するには、パターンとして処理する文字列を指定し、タイプ (数値、IPv4 アドレス、または IPv6 アドレス) を割り当て、データセット範囲を構成する必要があります。パターンには一意のインデックス値を手動で割り当てることも、インデックス値を自動的に割り当てることもできます。データセットは HTTP や 7 層プロトコルとは関係ありません。テキストまたは文字列に対してのみ機能します。Num、ULONG、IPv4、IPv6、MAC、DOUBLE など、さまざまなタイプのデータセットがあります。タイプを選択し、指定したタイプに基づいてデータセットの範囲を定義できます。

注:

ポリシーデータセットでは大文字と小文字が区別されます (大文字と小文字を無視する式を指定しない限り)。したがって、たとえば MAC アドレス ff: ff: ff: ff: ff: ff: ff は MAC アドレス FF: FF: FF: FF: FF: FF と同じではありません。

データセットのインデックス値に適用されるルールは、パターンセットに似ています。インデックス値の詳細については、 パターンセットの構成を参照してください

データセットの構成

データセットを設定するには、次の手順を実行します。

  1. ポリシーデータセットの追加
  2. パターンをポリシーデータセットにバインドする
  3. ポリシー式を追加する
  4. ポリシー設定の検証

ポリシーデータセットの追加

コマンドプロンプトで、次の操作を行います。

add policy dataset <name> <type>

例:

add policy dataset ds1 ipv4 -comment numbers

パターンをデータセットにバインドする

コマンドプロンプトで入力します。

bind policy dataset <name> <value> [-index <positive_integer>] [-endRange <string>] [-comment <string>]

例:

bind policy dataset ds1 1.1.1.1 -endRange 1.1.1.10 -comment short description about the pattern bound to the data set

注:

データセットにバインドするすべてのパターンに対して、この手順を繰り返す必要があります。1 つのデータセットにバインドできるパターンは 5000 個までです。

また、データセット範囲は、データセットにバインドされた他の範囲と重複してはならず、データセットにバインドされた単一の値を含めることはできません。範囲が重複するデータセットをバインドすると、エラーが発生します。

例:

add policy dataset ip_set ipv4
 Done
bind policy dataset ip_set 2.2.2.25
 Done
bind policy dataset ip_set 2.2.2.20 -endRange 2.2.2.30
ERROR: The range overlaps an existing range or includes a value bound to the dataset.
<!--NeedCopy-->

データセットにバインドされた範囲で、その値がデータセットにバインドされた単一の値と等しいか、小さい値と大きい値 (小さい値 <= 値 && 値 <-上限値) の間にある場合、その値はデータセット内にあると見なされます。

ポリシーデータセットでポリシー式を使用する

コマンドプロンプトで入力します。

add policy expression exp1 http.req.body(100).contains_any("ds1")

ここで、 式は、データセット ds1 にバインドされたパターン (または範囲内のパターン) が HTTP リクエスト本文の最初の 100 バイトに存在するかどうかをチェックします。

データセット設定の検証

コマンドプロンプトで入力します。

show policy dataset ds1 > show policy dataset ds1

例:

       Dataset:        ds1
        Type:   IPV4
1)      Bound Dataset Range from: 1.1.1.1       through: 1.1.1.10       Index:  1
<!--NeedCopy-->

構成ユーティリティを使用してデータセットを構成する

ポリシーデータセットを設定するには、以下の手順に従います。

  1. AppExpert > データセットに移動します
  2. 詳細ウィンドウの [データセット] で、[ 追加] をクリックします。
  3. [データセットの構成 ] ページで、次のパラメーターを設定します。

    1. [名前]。ポリシーデータセットの名前。
    2. 種類。データセットにバインドする値の型。

    データセットの構成

  4. [ 挿入 ] をクリックして、特定のタイプのデータセット値をバインドします。
    1. 価値。データセットに関連付けられた、指定された型の値。
    2. インデックス。データセットのインデックス値。
    3. 終了範囲。データセットエントリ。これは<value>から<end_range>への範囲です。
    4. [コメント]。データセットに関する簡単な説明。

    データセットバインディング

  5. [ **挿入して閉じる**] をクリックします。
  6. コメントを入力します。
  7. [作成]して[閉じる] をクリックします。

ポリシーデータセットの IPv4 および IPv6 アドレスにおける CIDR サブネット表記

IPv4 および IPv6 アドレスのポリシーデータセットでは、バインドされた値を CIDR 表記法を使用してサブネットにすることができます。CIDR 表記法では、サブネットのアドレスと範囲を指定します。CIDR 表記<address>/<n><address> はサブネット内の最初のアドレス、 <n> はサブネットの範囲を定義するサブネットマスクに設定された左端のビット数を指定する整数です。

たとえば、192.128.0.0/10 は、アドレス 192.129.0.0 から始まり、マスク 0xFFC0000 (255.192.0.0) を持つ IPv4 サブネットを表します。

例:


add policy dataset ds1 ipv4
bind policy dataset ds1 192.128.0.0/10
show policy dataset ds1
    Dataset: ds1
    Type: IPV4
Bound Dataset Value: 192.128.0.0/10 Index: 1 Comment: Subnet range from 192.128.0.0 through 192.191.255.255

<!--NeedCopy-->

このデータセットを式で使用する例を次に示します。

add responder policy resp_ipv4_pol client.ip.src.typecast_text_t.equals_any("ds1") drop
<!--NeedCopy-->

IPv6 サブネットの例:

IPv6 サブネットの例としては 2001: db 8:123:: /56 があります。このサブネットはアドレス 2001: db 8:123:: から始まり、マスク FFFF: FFFF: FFFF: FF00::


add policy dataset ds2 ipv6
bind policy dataset ds2 2001:db8:123::/56
show policy dataset ds2
    Dataset: ds2
    Type: IPV61
Bound Dataset Value: 2001:db8:123::/56 Index: 1 Comment: Subnet range from 2001:db8:123:: through 2001:db8:123:ff:ffff:ffff:ffff:ffff

<!--NeedCopy-->

サブネットの開始アドレスは、サブネットマスクでマスクされた指定アドレスによって決定されます。指定したアドレスが結果の開始アドレスと一致しない場合、警告が発行されます。

例:


bind policy dataset ds1 192.168.0.0/10
Warning: Starting subnet address masked using subnet mask to create new starting address [192.128.0.0]
show policy dataset ds1
    Dataset: ds1
    Type: IPV4
Bound Dataset Value:192.168.0.0/10 Index: 1 Comment: Subnet range from 192.128.0.0 through 192.191.255.255

<!--NeedCopy-->

このデータセットを式で使用する例を次に示します。

add responder policy resp_ipv6_pol client.ipv6.src.typecast_text_t.equals_any("ds2") drop
<!--NeedCopy-->
データセットの構成