このページの目次
用語が一致した場合の競合の回避
高速更新フィルターには複数の用語を含めることができ、それぞれにさまざまな一致条件があります。ただし、フィルターに複数の用語を設定する場合は、用語が重複したり、互いに競合したりしないようにする必要があります。パケットが両方の条件のすべての条件に一致する可能性がある場合、2つの用語は重複していると見なされます。各用語は一致に対して異なるアクションを指定するため、ルーターは実行するアクションを決定できません。条件が重複すると、競合エラーが発生し、動的プロファイルがフィルターを適用しようとするとセッションが失敗します。エラー ログには、重複する用語が示されます。
ルーターがフィルター内の用語を評価する方法
ルーターは、用語を調べるときに一致条件のテーブルを作成します。このテーブルはルーティング テーブルに似ており、 match-order
ステートメントに含まれる条件に基づいています。ルーターがパケットを受信すると、ルーターは match-order
ステートメントで指定された順序でパケットの内容を調べます。
例えば、次の一致順序の例の設定例では、ルーターは最初にパケットの source-address
、次に destination-address
、最後に destination-port
を調べます。次の表に示すように、フィルター内の 2 つの用語は、各用語の destination-port
仕様が異なるため、重複しません。次に、ルーターは、パケットの destination-port
値に一致する条件に対して適切なフィルターアクションを実行します。
用語 |
送信元アドレス |
宛先アドレス |
宛先ポート |
アクション |
---|---|---|---|---|
T55 |
加入者のアドレス |
203.0.113.2/32 |
ティッカー |
t55_cntrを数える 受け入れる |
T999 |
加入者のアドレス |
203.0.113.2/32 |
ティッカー |
t999_cntrを数える 受け入れる |
一致順序の例
firewall { family inet { fast-update-filter psf1 { interface-specific; match-order [ source-address destination-address destination-port ]; term t55 { from { source-address $junos-subscriber-ip-address; destination-address 203.0.113.2/32; destination-port http; } then { count t55_cntr; accept; } } term t999 { from { source-address $junos-subscriber-ip-address; destination-address 203.0.113.2/32; destination-port https; } then { count t999_cntr; accept; } } } } }
暗黙のワイルドカードの使用
このセクションでは、match 設定で暗黙的なワイルドカード指定を使用する方法の例を示します。 match-order
ステートメントの条件は、フィルター内の項の from
仕様でその条件が設定されていない場合、暗黙のワイルドカードになります。
用語で範囲 (値の範囲やワイルドカードなど) を使用する場合、範囲が重複してはなりません。範囲が重複すると競合エラーが発生します。ただし、ある用語で範囲を設定し、別の用語で完全一致を設定できます。例えば、次のフィルター表では、http
とhttps
の値が完全に一致するため、用語t3
のワイルドカード宛先ポート値は、t55
とt999
の点で宛先ポートの仕様と重複しません。
暗黙のワイルドカードの設定例では、ルーターは、その条件にdestination-port
値が設定されていないため、match-order
ステートメントのdestination-port
条件を条件t3
の暗黙のワイルドカードと見なします。その結果、ワイルドカードは、term t3
に対して任意のdestination-port
値を受け入れることを指定します。フィルター テーブルは次のように表示されます。
用語 |
送信元アドレス |
宛先アドレス |
宛先ポート |
アクション |
---|---|---|---|---|
T3 |
加入者のアドレス |
203.0.113.2/32 |
any (ワイルドカード) |
t3_cntrを数える 受け入れる |
T55 |
加入者のアドレス |
203.0.113.2/32 |
ティッカー |
t55_cntrを数える 受け入れる |
T999 |
加入者のアドレス |
203.0.113.2/32 |
ティッカー |
t999_cntrを数える 受け入れる |
以下のフィルター構成では、宛先ポートが http
のトラフィックは用語 t55
に一致し、宛先ポートが https
のトラフィックは用語 t999
に一致します。宛先ポートが http
または https
以外のトラフィックは、暗黙のワイルドカードである条件 t3
に一致します。
暗黙のワイルドカードの例
firewall { family inet { fast-update-filter psf1 { interface-specific; match-order [ source-address destination-address dscp protocol destination-port ]; term t3 { from { source-address $junos-subscriber-ip-address; destination-address 203.0.113.2/32; } then { count t3_cntr; accept; } } term t55 { from { source-address $junos-subscriber-ip-address; destination-address 203.0.113.2/32; destination-port http; } then { count t55_cntr; accept; } } term t999 { from { source-address $junos-subscriber-ip-address; destination-address 203.0.113.2/32; destination-port https; } then { count t999_cntr; accept; } } } } }
範囲の重複による競合
このセクションでは、用語で重複する範囲の 2 つの例を示します。用語で範囲(ワイルドカードや値の範囲など)を使用する場合、範囲が重複してはなりません。範囲が重複すると競合エラーが発生し、セッションが失敗します。
次のフィルター構成では、2 つの項の destination-port
範囲が重複しています。50〜80の範囲のポートは、それぞれ異なるアクションを指定する用語 src0
と用語 src1
の両方と一致します。
ある用語で範囲を設定し、別の用語で完全一致を設定できます。ある用語の一致条件にワイルドカードを使用し、2 番目の用語の条件に完全一致を使用する例については、 暗黙のワイルドカードの使用のセクションを参照してください。
用語 |
送信元アドレス |
宛先アドレス |
宛先ポート |
アクション |
---|---|---|---|---|
src0 |
加入者のアドレス |
203.0.113.2/32 |
0–80 |
c1_cntrを数える 受け入れる |
src1 |
加入者のアドレス |
203.0.113.2/32 |
50–100 |
c2_cntrを数える 受け入れる |
重複する範囲の例 1
firewall { family inet { fast-update-filter fuf–src { interface-specific; match-order [ source-address destination-address destination-port ]; term src0 { from { source-address $junos-subscriber-ip-address; destination-address 203.0.113.2/32; destination-port 0–80; } then { count c1_cntr; accept; } } term src1 { from { source-address $junos-subscriber-ip-address; destination-address 203.0.113.2/32; destination-port 50–100; } then { count c2_cntr; accept; } } }
このフィルター構成では、src21
および src22
に関する protocol
仕様では、各用語の範囲を構成する暗黙のワイルドカードを使用します。範囲の重複は許可されないため、競合エラーが発生します。
用語 |
送信元アドレス |
宛先アドレス |
議定書 |
宛先ポート |
アクション |
---|---|---|---|---|---|
SRC20 |
加入者のアドレス |
203.0.113.2/32 |
UDP |
any (ワイルドカード) |
c20_cntrを数える 受け入れる |
SRC21 |
加入者のアドレス |
203.0.113.2/32 |
any (ワイルドカード) |
ティッカー |
c21_cntrを数える 受け入れる |
SRC21 |
加入者のアドレス |
203.0.113.2/32 |
any (ワイルドカード) |
ティッカー |
c22_cntrを数える 受け入れる |
重複する範囲の例 2
firewall { family inet { fast-update-filter fuf–src2 { interface-specific; match-order [ source-address destination-address protocol destination-port ]; term src20 { from { source-address $junos-subscriber-ip-address; destination-address 203.0.113.2/32; protocol udp; } then { count c20_cntr; accept; } } term src21 { from { source-address $junos-subscriber-ip-address; destination-address 203.0.113.2/32; destination-port http; } then { count c21_cntr; accept; } } term src22 { from { source-address $junos-subscriber-ip-address; destination-address 203.0.113.2/32; destination-port https; } then { count c22_cntr; accept; } } }