アドレスフィールドに基づくファイアウォールフィルター一致条件
パケットアドレスフィールド(IPv4送信元と宛先アドレス、IPv6送信元と宛先アドレス、またはメディアアクセス制御(MAC)送信元と宛先アドレス)を、指定したアドレスまたはプレフィックス値に対して評価する ファイアウォールフィルター 一致条件を設定できます。
アドレスフィールドに基づくファイアウォールフィルター一致条件の「0/0 except」アドレスの暗黙一致
アドレスまたはアドレスプレフィックスのセットに基づくすべてのファイアウォールフィルター一致条件は、アドレス 0.0.0.0/0 except (IPv4またはVPLSトラフィックの場合)または 0:0:0:0:0:0:0:0/0 except (IPv6トラフィックの場合)の暗示的一致に関連付けられます。その結果、指定されたアドレスフィールドが指定されたアドレスまたはアドレスプレフィックスのいずれとも一致しないパケットは、条件全体と一致しません。
アドレス フィールドとサブネット マスクまたはプレフィックスの照合
単一の一致条件を指定して、指定したアドレスプレフィックス内にある送信元アドレスまたは宛先アドレスを照合できます。
IPv4サブネットマスク表記
IPv4 アドレスの場合、プレフィックス長ではなくサブネット マスク値を指定できます。たとえば、以下のように表示されます。
[edit firewall family inet filter filter_on_dst_addr term term3 from] user@host# set address 10.0.0.10/255.0.0.255
ポーランド記法
アドレス プレフィックスを指定するには、 prefix/prefix-length という表記を使用します。次の例では、宛先アドレスがプレフィックス 10.0.0.0/8と一致する場合、一致が発生します。
[edit firewall family inet filter filter_on_dst_addr term term1 from] user@host# set destination-address 10.0.0.0/8
IPv4アドレスのデフォルトのプレフィックス長
IPv4 アドレスに /prefix-length を指定しない場合、プレフィックス長はデフォルトで /32 になります。以下の例は、デフォルトのプレフィックス値を示しています。
[edit firewall family inet filter filter_on_dst_addr term term2 from] user@host# set destination-address 10 user@host# show destination-address { 10.0.0.0/32; }
IPv6アドレスのデフォルトのプレフィックス長
IPv6 アドレスに /prefix-length を指定しない場合、プレフィックス長はデフォルトで /128 になります。以下の例は、デフォルトのプレフィックス値を示しています。
[edit firewall family inet6 filter filter_on_dst_addr term term1 from] user@host# set destination-address ::10 user@host# show destination-address { ::10/128; }
MACアドレスのデフォルトのプレフィックス長
VPLS、レイヤー 2 CCC、またはレイヤー 2 ブリッジング パケットの MAC(メディア アクセス制御)アドレスに /prefix-length を指定しない場合、プレフィックス長はデフォルトで /48 になります。以下の例は、デフォルトのプレフィックス値を示しています。
[edit firewall family vpls filter filter_on_dst_mac_addr term term1 from] user@host# set destination-mac-address 01:00:0c:cc:cc:cd user@host# show destination-address { 01:00:0c:cc:cc:cd/48; }
住所フィールドと除外値との照合
アドレス フィールド一致条件では、 except キーワードを含めて、指定したアドレスまたはプレフィックスに一致しないアドレス フィールドに対して一致 が発生するように指定できます。
- IPv4またはIPv6トラフィックでのIPアドレスの除外
- VPLSまたはレイヤー2ブリッジングトラフィックのIPアドレスを除外する
- VPLSまたはレイヤー2ブリッジングトラフィックのMACアドレスを除外する
- すべてのアドレスを除外するには、「0/0」アドレスに明示的に一致する必要があります
IPv4またはIPv6トラフィックでのIPアドレスの除外
以下の IPv4 および IPv6 一致条件では、 except キーワードを含めて、指定した IP アドレスまたはプレフィックスに一致しない IP アドレス フィールドに対して一致 が発生するように指定できます。
address address except- 送信元 IP アドレスまたは宛先 IP アドレスのいずれかが、指定されたアドレスまたはプレフィックスと一致しない場合、一致が発生します。
source-address address except- 送信元 IP アドレスが指定されたアドレスまたはプレフィックスと一致しない場合、一致が発生します。
destination-address address except- 宛先 IP アドレスが指定されたアドレスまたはプレフィックスと一致しない場合、一致が発生します。
次の例では、172.16.0.0/16 に該当するアドレスを除き、172.0.0.0/8 プレフィックスに該当するすべての IPv4 宛先アドレスが一致します。他のすべてのアドレスは、暗黙的にこの条件に一致しません。
[edit firewall family inet filter filter_on_dst_addr term term1 from] user@host# set destination-address 172.16.0.0/16 except user@host# set destination-address 172.0.0.0/8 user@host# show destination-address { 172.16.0.0/16 except; 172.0.0.0/8; }
次の例では、プレフィックス 10.1.1.0/24内にない IPv4 宛先アドレスの一致が発生します。
[edit firewall family inet filter filter_on_dst_addr term term24 from] user@host# set destination-address 0.0.0.0/0 user@host# set destination-address 10.1.1.0/24 except user@host# show destination-address { 0.0.0.0/0; 10.1.1.0/24 except; }
VPLSまたはレイヤー2ブリッジングトラフィックのIPアドレスを除外する
以下の VPLS およびレイヤー 2 ブリッジング一致条件(MX シリーズ ルーターのみ)では、 except キーワードを含めて、指定された IP アドレスまたはプレフィックスに一致しない IP アドレス フィールドに対して一致 が発生するように指定できます。
ip-address address except- 送信元 IP アドレスまたは宛先 IP アドレスのいずれかが、指定されたアドレスまたはプレフィックスと一致しない場合、一致が発生します。
source-ip-address address except- 送信元 IP アドレスが指定されたアドレスまたはプレフィックスと一致しない場合、一致が発生します。
destination-ip-address address except- 宛先 IP アドレスが指定されたアドレスまたはプレフィックスと一致しない場合、一致が発生します。
以下の MX シリーズ ルーターで VPLS トラフィックをフィルタリングする例では、送信元 IP アドレスが例外範囲内の 55.0.1.0/255.0.255.0 にあり、宛先 IP アドレスが 5172.16.5.0/8一致する場合、一致が発生します。
[edit] firewall { family vpls { filter fvpls { term 1 { from { ip-address { 55.0.0.0/8; 55.0.1.0/255.0.255.0 except; } } then { count from-55/8; discard; } } } } }
VPLSまたはレイヤー2ブリッジングトラフィックのMACアドレスを除外する
以下の VPLS またはレイヤー 2 ブリッジング トラフィック一致条件では、 except キーワードを含めて、指定された MAC アドレスまたはプレフィックスに一致しない MAC アドレス フィールドに対して一致 が発生するように指定できます。
source-mac-address address except- 送信元 MAC アドレスが指定されたアドレスまたはプレフィックスと一致しない場合、一致が発生します。
destination-mac-address address except- 宛先MACアドレスのいずれかが指定されたアドレスまたはプレフィックスと一致しない場合、一致が発生します。
すべてのアドレスを除外するには、「0/0」アドレスに明示的に一致する必要があります
1 つ以上のアドレス例外 一致条件( except キーワードを使用するアドレス一致条件)で構成されるが、 一致可能な アドレス一致条件がないファイアウォールフィルター一致条件を指定した場合、設定されたどのプレフィックスに も一致しないパケットは全体的な一致操作に失敗します。プレフィックスリストにないアドレスと一致するように、アドレス例外一致条件のファイアウォールフィルター条件を設定するには、条件が一致するアドレスを含むように、 0/0 の明示的な一致を含めます。
以下のIPv4トラフィックのファイアウォールフィルターの例では、 from-trusted-addresses 条件は一致するトラフィックを破棄できず、 INTRUDERS-COUNT カウンターは show firewall 運用モードコマンドの出力から欠落しています。
[edit] user@host# show policy-options prefix-list TRUSTED-ADDRESSES { 10.2.1.0/24; 192.168.122.0/24; } [edit firewall family inet filter protect-RE] user@host# show term from-trusted-addresses { from { source-prefix-list { TRUSTED-ADDRESSES except; } protocol icmp; } then { count INTRUDERS-COUNT; discard; } } term other-icmp { from { protocol icmp; } then { count VALID-COUNT; accept; } } term all { then accept; }
[edit] user@host# run show firewall Filter: protect-RE Counters: Name Bytes Packets VALID-COUNT 2770 70 Filter: __default_bpdu_filter__
アドレス例外一致条件のフィルター項目がプレフィックスリストにないアドレスと一致するようにするには、一致条件のセットに 0/0 の明示的な一致を含めます。
[edit firewall family inet filter protect-RE] user@host# show term from-trusted-addresses from { source-prefix-list { 0.0.0.0/0; TRUSTED-ADDRESSES except; } protocol icmp; }
0.0.0.0/0送信元プレフィックスアドレスを一致条件に追加すると、from-trusted-addresses条件は一致するトラフィックを破棄し、show firewall 運用モードコマンドの出力にINTRUDERS-COUNTカウンターが表示されます。
[edit] user@host# run show firewall Filter: protect-RE Counters: Name Bytes Packets VALID-COUNT 2770 70 INTRUDERS-COUNT 420 5 Filter: __default_bpdu_filter__
いずれかの IP アドレス フィールドを 1 つの値に一致させる
MX シリーズ ルーターの IPv4 および IPv6 トラフィック、および VPLS とレイヤー 2 ブリッジング トラフィックの場合のみ、単一の一致条件を使用して、送信元または宛先 IP アドレス フィールドのいずれかに単一のアドレスまたはプレフィックス値を一致させることができます。
IPv4またはIPv6トラフィックのIPアドレスフィールドのいずれかに一致
IPv4 または IPv6 トラフィックの場合、単一の一致条件を使用して、送信元または宛先 IP アドレス フィールドの一致と同じアドレスまたはプレフィックス値を指定できます。source-address一致条件とdestination-address一致条件に同じアドレスを指定する個別のフィルター項目を作成する代わりに、address一致条件のみを使用します。送信元 IP アドレスまたは宛先 IP アドレスのいずれかが、指定されたアドレスまたはプレフィックスと一致する場合、一致が発生します。
address一致条件で except キーワードを使用すると、例外が適用される前に、送信元 IP アドレスと宛先 IP アドレスの両方が指定された値に一致すると一致が発生します。
source-address一致条件またはdestination-address一致条件を指定するファイアウォールフィルター条件では、address一致条件も指定できません。
VPLSのIPアドレスフィールドまたはレイヤー2ブリッジングトラフィックのいずれかに一致
MX シリーズ ルーター上の VPLS またはレイヤー 2 ブリッジング トラフィックの場合のみ、単一の一致条件を使用して、送信元または宛先 IP アドレス フィールドの一致と同じアドレスまたはプレフィックス値を指定できます。source-ip-address一致条件とdestination-ip-address一致条件に同じアドレスを指定する個別のフィルター項目を作成する代わりに、ip-address一致条件のみを使用します。送信元 IP アドレスまたは宛先 IP アドレスのいずれかが、指定されたアドレスまたはプレフィックスと一致する場合、一致が発生します。
ip-address一致条件で except キーワードを使用すると、例外が適用される前に、送信元 IP アドレスと宛先 IP アドレスの両方が指定された値に一致すると一致が発生します。
source-ip-address一致条件またはdestination-ip-address一致条件を指定するファイアウォールフィルター条件では、ip-address一致条件も指定できません。
住所フィールドと非連続プレフィックスの照合
IPv4トラフィックの場合のみ、IP送信元または宛先アドレスフィールドを指定された任意のプレフィックスに一致させる単一の一致条件を指定します。プレフィックスは連続している必要はありません。つまり、 source-address または destination-address 一致条件のプレフィックスは、互いに隣接または隣接している必要はありません。
次の例では、宛先アドレスが 10.0.0.0/8 プレフィックスまたは 192.168.0.0/32 プレフィックスのいずれかに一致する場合、一致が発生します。
[edit firewall family inet filter filter_on_dst_addr term term5 from] user@host# set destination-address 10.0.0.0/8 user@host# set destination-address 192.168.0.0/32 user@host# show destination-address { destination-address 10.0.0.0/8; destination-address 192.168.0.0/32; }
一致条件内でプレフィックスを指定する順序は重要ではありません。パケットは、一致条件のすべてのプレフィックスに対して評価され、一致が発生するかどうかを判断します。プレフィックスが重複する場合は、最長一致ルールを使用して一致が発生するかどうかが判断されます。非連続プレフィックスの一致条件には、暗黙的な 0/0 except ステートメントが含まれます。これは、一致条件に含まれるプレフィックスに一致しないプレフィックスは、明示的に一致しないとみなされることを意味します。
プレフィックスは順序に依存せず、最長一致ルールを使用するため、同じタイプである限り( except を指定するかどうかに関係なく)、長いプレフィックスは短いプレフィックスを包含します。これは、長いプレフィックスに一致するものはすべて短いプレフィックスにも一致するためです。
次の例を考えてみます。
[edit firewall family inet filter filter_on_src_addr term term1 from] source-address { 172.16.0.0/10; 172.16.2.0/24 except; 192.168.1.0; 192.168.1.192/26 except; 192.168.1.254; 172.16.3.0/24; # ignored 10.2.2.2 except; # ignored }
source-address一致条件内では、2 つのアドレスは無視されます。172.16.3.0/16値は、同じ型のアドレス 172.16.0.0/10に該当するため、無視されます。10.2.2.2 except値は、暗黙的な0.0.0.0/0 except一致値で包含されるため、無視されます。
次の送信元 IP アドレスがこのファイアウォール フィルターによって評価されるとします。
送信元 IP アドレス 172.16.1.2—このアドレスは 172.16.0.0/10 プレフィックスと一致するため、 then ステートメントのアクションが実行されます。
送信元 IP アドレス 172.16.2.2:このアドレスは、 172.16.2.0/24 プレフィックスと一致します。このプレフィックスは否定される (つまり、 except キーワードを含む) ため、明示的な 不一致 が発生します。フィルター内の次の項が評価されます(存在する場合)。これ以降条件がない場合、パケットは破棄されます。
送信元 IP アドレス 10.1.2.3:このアドレスは 、 source-address 条件に含まれるどのプレフィックスにも一致しません。代わりに、source-address一致条件下で設定されたプレフィックスリストの末尾にある暗黙的な0.0.0.0/0 exceptに一致し、不一致と見なされます。
172.16.3.0/24 ステートメントはアドレス 172.16.0.0/10に該当するため無視され、どちらも同じ型です。
10.2.2.2 except ステートメントは、source-address 一致条件下で設定されたプレフィックス リストの末尾にある暗黙的な 0.0.0.0/0 except ステートメントに含まれるため、無視されます。
ファイアウォールフィルターの条件に from address address 一致条件が含まれ、後続の条件に同じアドレスの from source-address address 一致条件が含まれる場合、パケットは、介在する条件によって評価される前に、後者の条件によって処理される可能性があります。その結果、中間の条件によって拒否されるべきパケットが代わりに受け入れられるか、受け入れられるべきパケットが代わりに拒否される可能性があります。
これを防ぐには、次の操作を行うことをお勧めします。from address address一致条件を含むすべてのファイアウォールフィルター条件について、その条件を 2 つの異なる条件に置き換えます。1 つは from source-address address 一致条件を含み、もう 1 つは from destination-address address 一致条件を含みます。
アドレスフィールドとプレフィックスリストの照合
IPv4またはIPv6アドレスプレフィックスのリストを定義して、ルーティングポリシーステートメント、またはパケットアドレスフィールドを評価するステートレスファイアウォールフィルター一致条件で使用できます。
IPv4またはIPv6アドレスプレフィックスのリストを定義するには、 prefix-list prefix-list ステートメントを記述します。
prefix-list name { ip-addresses; apply-path path; }
以下の階層レベルに ステートメントを含めることができます。
[edit policy-options]
[edit logical-systems logical-system-name policy-options]
プレフィックスリストを定義した後、IPv4またはIPv6アドレスプレフィックスに基づいてファイアウォールフィルターの一致条件を指定する際に、そのプレフィックスリストを使用できます。
[edit firewall family family-name filter filter-name term term-name] from { source-prefix-list { prefix-lists; } destination-prefix-list { prefix-lists; } }