作成するファイアウォール フィルター数の計画
ファイアウォール フィルターの数を増やす方法
デバイス上のファイアウォール フィルターの数を増やすには、いくつかの方法があります。
-
(QFX5220)512 を超えるエグレス VLAN フィルターを作成するには、最初の VLAN ID を 6、2 番目の VLAN ID を 7、3 番目の VLAN ID を 8 と指定します。設定した VLAN ごとに、数は 1 増え、VLAN ID 1029 まで続行されます。作成するエグレスVLANフィルターの数を512未満にし、それらのフィルターの条件の総数を512以上にする場合は、VLAN IDに同じ方法で番号を付ける必要があります。それ以外の場合、許可される条件またはフィルターの総数は 1024 未満になり、512 のままとなります。
-
Junos OSリリース19.1R1以降、 オプションを使用
egress-to-ingress
することで、QFX5110のエグレスVLANファイアウォールフィルターの数を1024から2048まで増やすことができます。このオプションは、 階層の ステートメントのfrom
下に[edit firewall]
含めます。Junos OS Evolved リリース 19.4R2 以降、 階層レベルの ステートメントの下
eracl-profile
に オプションを含egress-scale
めることで、QFX5220 で最大 2,000 のエグレス ファイアウォール フィルターを[edit system packet-forwarding-option firewall]
設定できます。この機能は、エグレス方向(デバイスから出るルーティングされたトラフィック)でのみサポートされています。この機能を設定する際には、次の点を考慮してください。
-
異なるエグレス VLAN またはレイヤー 3 インターフェイスに、同じ一致条件を持つフィルターを適用することはできません。
-
GREインターフェイスにエグレススケーリングを適用することはできません。
-
パケットが異なる修飾子を持つ複数のフィルターに一致し、異なるエグレスインターフェイスに適用すると、予期しない動作につながる可能性があります。
-
オプションは
egress-scale
、グローバルモードでのみ設定できます。新しい cli 設定はグローバル モードで提供されます。ユーザーがEGressスケール(egress to ingress)モードでERACLグループを設定すると、IFP tcamスペースを使用せずに、古い方法でERACLを設定することはできません。つまり、混合モードでのERACLはサポートされません。
-
TCAM
ファイアウォール フィルター用の 3 つの TCAM(コンテンツ アドレッシング可能メモリ)は、256 の条件に対応するスライスに分割されます。ファイアウォールフィルターを設定する場合、メモリスライス内のすべての条件が同じタイプのフィルターにある必要があり、同じ方向に適用されます。フィルターをコミットするとすぐにメモリスライスが予約されます。例えば、ポートフィルターを作成して入力方向に適用すると、メモリスライスはイングレスポートフィルターのみを保存する予約済みです。1つのイングレスポートフィルターのみを作成して適用し、そのフィルターに1つの条件しか持っていない場合、このスライスの残りの部分は使用されず、他のフィルタータイプでは利用できません。
EVPN 環境では、QFX5200 シリーズ スイッチは最大 512 個の TCAM エントリーをサポートします。
たとえば、256 個のイングレス ポート フィルターを、それぞれ 1 つの条件で作成して適用し、1 つのメモリ スライスを満たしているとします。これにより、イングレスフィルターで利用できるメモリスライスが2つ増えます。(この場合、イングレス条件の最大数は768です。その後、1つの条件でイングレスレイヤー3フィルターを作成して適用すると、別のメモリスライスがイングレスレイヤー3フィルター用に予約されます。以前と同様に、残りのスライスは使用されず、異なるフィルタタイプでは使用できません。現在、任意のイングレスフィルタータイプに使用可能なメモリスライスが1つあります。
次に、VLAN イングレス フィルターを作成して適用することを想定しています。最後のメモリ スライスは、VLAN イングレス フィルター用に予約されています。イングレスフィルターのメモリ割り当て(フィルターごとに1つの条件を再び想定)は次のとおりです。
-
スライス1: 256 個のイングレス ポート フィルターで満杯。これ以上イングレスポートフィルターをコミットすることはできません。
-
スライス2: 1つのイングレスレイヤー3フィルターと1つの条件が含まれます。イングレスレイヤー3フィルターでは、さらに255の条件をコミットできます。
-
スライス3: 1 つの条件を持つ 1 つのイングレス VLAN フィルターが含まれます。イングレス VLAN フィルターでは、さらに 255 の条件をコミットできます。
別の例を紹介します。257 のイングレス ポート フィルターをフィルターごとに 1 つの条件で作成することを想定しています。つまり、単一のメモリ スライスに対応できる条件よりも 1 つ多くの条件を作成します。フィルターを適用し、設定をコミットすると、フィルター メモリの割り当ては次のようになります。
-
スライス1: 256 個のイングレス ポート フィルターで満杯。これ以上イングレスポートフィルターを適用することはできません。
-
スライス2: 1 つのイングレス ポート フィルターが含まれています。イングレスポートフィルターでは、さらに255の条件を適用できます。
-
スライス3: このスライスは割り当てされていません。任意のタイプ(ポート、レイヤー3、またはVLAN)のイングレスフィルターで256条件を作成して適用できますが、すべてのフィルターは同じタイプでなければなりません。
上記の例はすべて、エグレスフィルターにも適用されます。違いは、IPv4とIPv6のレイヤー3フィルターが別々のスライスに保存されるため、4つのメモリスライスが使用されていることです。エグレスフィルターのメモリスライスは、イングレスフィルターのメモリスライスと同じサイズであるため、フィルターの最大数は同じです(1024)。
多すぎるフィルターを設定しないようにする
これらの制限のいずれかに違反し、コンプライアンスではない設定をコミットした場合、Junos OS は過度のフィルターを拒否します。例えば、300 個のイングレス ポート フィルターと 300 個のイングレス レイヤー 3 フィルターを設定し、設定をコミットしようとすると、Junos OS は以下を実行します(フィルターごとに 1 つの条件を仮定します)。
-
300 個のイングレス ポート フィルターを受け入れます(2 つのメモリ スライスに格納)。
-
処理する最初の 256 イングレス レイヤー 3 フィルターを受け入れます(3 つ目のメモリ スライスに格納)。
-
残りの 44 イングレス レイヤー 3 フィルターを拒否します。
デバイスを再起動する前に、設定から過剰なフィルター(残りの44イングレスレイヤー3フィルターなど)を削除してください。準拠していない設定のデバイスを再起動した場合、再起動後にどのフィルターがインストールされたかを予測することは困難です。上記の例を使用すると、最初に拒否された 44 のイングレス レイヤー 3 フィルターがインストールされ、最初に受け入れられたポート フィルターのうち 44 個が拒否される場合があります。
TCAMエラーメッセージの設定
TCAM スペースがなく、ファイアウォール フィルターをインストールできない場合は、次の方法でエラー メッセージを送信するようにスイッチを構成できます。
-
syslog ファイルにエラー メッセージを送信するには、 を入力
set system syslog file filename pfe emergency
します。 -
を入力
set system syslog console pfe emergency
して、コンソールにエラーメッセージを送信します。 -
を入力
set system syslog user user-login pfe emergency
して、SSHターミナルセッションにエラーメッセージを送信します。
プロファイルを使用してファイアウォール フィルターの拡張性を向上する方法
ファイアウォールフィルターを設定する場合、ファイアウォールフィルター設定の条件ステートメントは、幅広い一致条件セットを提供します。一致条件は、一致と見なされるためにパケットに含める必要があるフィールドと値です。要件に基づいて、単一または複数の照合条件を定義できます。パケットがフィルターに一致すると、デバイスは条件で指定されたアクションを実行します。一般的に、ファイアウォール フィルターの拡張性は、使用する一致条件の数によって異なります。
一般的な導入シナリオでは、一致条件のサブセットのみを使用する必要があります。プロファイルの導入により、利用可能なファイアウォール フィルター プロファイルの 1 つを事前に定義された一致条件で使用して、最大スケールを実現するために使用するファイアウォール フィルターの数を増やすことができます。
ファミリーinetおよびイーサネットベーススイッチングのファイアウォールフィルタープロファイルを設定できます。[システム パケット転送オプション ファイアウォールの編集] 階層レベルでプロファイル設定ステートメントを使用して、ファイアウォール フィルター プロファイルを設定します。
プロファイルを選択するか、あるプロファイルから別のプロファイルに移動することによってファイアウォール フィルター プロファイルを変更すると、パケット転送エンジンが再起動され、トラフィック フローが中断されます。
次の表に、ファイアウォール フィルター プロファイルと、inet およびイーサネットベーススイッチングの定義済みの一致条件を示します。
ファミリー タイプ | ファイアウォール フィルター プロファイル | 一致条件(事前定義) | 設定階層 |
---|---|---|---|
inet(IPv4/IPv6) | profile1 |
ip-source-prefix-list protocol ネクストヘッダー source-port destination-port first-fragment is-fragment icmp-code icmp-type tcp-established tcp-initial tcp-flags |
[edit system packet-forwarding-options firewall profiles inet profile1 ] |
profile2 |
ip-source-address ip6-source-address ip-source-prefix-list ip6-source-prefix-list protocol ネクストヘッダー source-port destination-port first-fragment is-fragment icmp-code icmp-type tcp-established tcp-initial tcp-flags dscp precedence トラフィッククラス Ttl ホップ制限 |
[edit system packet-forwarding-options firewall profiles inet profile2 ] |
|
イーサネット スイッチング | profile1 |
送信元 mac アドレス 宛先 mac アドレス |
[edit system packet-forwarding-options firewall profiles ethernet-switching profile1 ] |
profile2 |
送信元 mac アドレス 宛先 mac アドレス ether-type ip-source-address ip-source-prefix-list IPプロトコル source-port destination-port ネクストヘッダー |
[edit system packet-forwarding-options firewall profiles ethernet-switching profile2 ] |
|
ファイアウォールフィルタープロファイルを選択する場合、事前定義された一致条件サブセットの一部である一致条件を適用する必要があります。ファイアウォールフィルタープロファイルの事前定義された一致条件サブセットに含まれていない一致条件を適用すると、コミットエラーが発生します。例えば、inet フィルターを選択profile1
し、定義済みの一致条件の一部ではない 一致条件 を 、 としてip-destination-address
適用すると、コミット操作中に、一致が inet フィルターのprofile1
一部ではないことを示すip-destination-address
エラーが表示されます。
CLI コマンドを show pfe filter hw profile-info
使用して、ファイアウォール フィルター プロファイルの詳細を表示できます。
ファイアウォール モジュールは、ACX EVO プラットフォームでのみ 2 つの異なるプロファイル(プロファイル 1 とプロファイル 2)をサポートします。デフォルトでは、pfe には profile-2 が表示され、ユーザーには CLI オプションが与えられ、ユーザーは他のプロファイルに切り替えることができます。プロファイルを cli で切り替えると、pfe は再起動されます。
IPV6 IFFフィルター: Profile-one は sip6 を 128 ビットまでサポートします。Profile-2は、sip6を最大64ビットまでサポートしています。
Ipv6 lo0 フィルター: Profile-one は dip6 最大 128bit をサポートします。Profile-2 は dip6 最大 64 ビットをサポートします。
Ipv6-Bgp-flow-specフィルターとIPv6-FTFフィルターは、プロファイル2でのみサポートされます。
カテゴリー | PMF 機能 | プロファイル 2 | プロファイル 1 |
---|---|---|---|
ファミリー エ |
IPv6 IFLフィルター |
はい |
はい |
IPv6 IFL フィルター - ログ/syslog/Reject アクション |
× |
× |
|
ファミリー フィルター |
IPv6 IFFフィルター |
はい |
はい |
IPv6 IFF フィルター - SIP6=128 ビット一致 |
× |
はい |
|
IPv6 IFF フィルター - L4 一致 |
はい |
はい |
|
IPv6 IFF フィルター - ログ/syslog/Reject アクション |
はい |
はい |
|
Lo0フィルター |
IPv6 Lo0 フィルター - Hw サポート |
はい |
はい |
IPv6 Lo0 フィルター - VRF 添付ファイル |
はい |
× |
|
IPv6 Lo0フィルター - Swサポート |
はい |
はい |
|
dip6 128ビットマッチ |
× |
はい |
ファイアウォール フィルターの拡張性を最大限に高めるために、インターフェイス レベル(レイヤー 2 またはレイヤー 3)フィルターを適用し、フィルターを異なるパケット処理パイプラインのインターフェイス全体に均等に分散することをお勧めします。各インターフェイスのセットは、そのインターフェイスで受信したパケットを処理するパケット処理パイプラインにマッピングされます。この場合、ファイアウォールフィルターは、対応するインターフェイスにマッピングされたパケット処理パイプラインのTCAMメモリスペースにインストールされます。
パケットがインターフェイスに入ると、ファイアウォールフィルターは、エグレスインターフェイスを出る前に、一致条件に基づいて、パケット処理パイプライン内のパケットに対してフィルタリングアクションを実行します。複数のパケット処理パイプラインの場合、パケットが複数のインターフェイスを介してデバイスに入ると、ファイアウォールフィルターは、対応するパケット処理パイプラインを通過するパケットのフィルタリングアクションを実行します。異なるパケット処理パイプラインのインターフェイス全体に均等に分散されたインターフェイスレベルフィルターを使用すると、より優れた拡張性が得られます。
CLI コマンドを show pfe filter hw port-pipe-info
使用して、各物理インターフェイスがマッピングされているパケット処理パイプラインの詳細を表示できます。この CLI コマンドの出力は、パケット処理パイプラインにインストールされたファイアウォール フィルターに関する情報も提供します。この情報を使用して、パイプライン全体にファイアウォールフィルターを計画し、分散させ、最大限の規模を達成することができます。
CLI コマンドの show pfe filter hw port-pipe-info
出力例は、各物理インターフェイスがマッピングされているパケット処理パイプラインの詳細を示しています。
user@host> show pfe filter hw port-pipe-info IFD Pipe et-0/0/0 1 et-0/0/1 1 ... et-0/0/10 0
ポリサーがエグレス フィルターを制限する方法
一部のスイッチでは、設定するエグレス ポリサーの数は、許可されるエグレス ファイアウォール フィルターの総数に影響する可能性があります。すべてのポリサーには、1024 エントリ TCAM で 2 つのエントリを取る 2 つの暗黙的なカウンターがあります。これらは、ファイアウォールフィルター条件でアクション修飾子として設定されたカウンターを含む、カウンターに使用されます。(ポリサーは、1 つはグリーン パケットに使用され、もう 1 つはポリサー タイプに関係なく非グリーン パケットに使用されるため、2 つのエントリーを消費します。TCAM がフルになった場合、カウンター付きの条件を持つエグレス ファイアウォール フィルターをこれ以上コミットすることはできません。例えば、512 個のエグレス ポリサー(2 色、3 色、または両方のポリサー タイプの組み合わせ)を設定してコミットすると、カウンターのすべてのメモリ エントリーが使い尽くされます。設定ファイルの後半にカウンターも含まれる条件を含むエグレスファイアウォールフィルターを追加挿入する場合、カウンターに使用可能なメモリスペースがないため、これらのフィルターの条件はコミット されなくなります 。
その他の例を以下に示します。
-
合計 512 個のポリサーとカウンターを含めないエグレス フィルターを設定することを想定しています。設定ファイルの後半には、10個の条件を持つ別のエグレスフィルターが含まれており、そのうちの1つはカウンターアクション修飾子を持っています。カウンターのための十分な TCAM スペースがないため、このフィルター内の条件のいずれもコミットされません。
-
合計 500 個のポリサーを含むエグレス フィルターを設定し、1,000 の TCAM エントリが占有されると仮定します。設定ファイルの後半には、以下の2つのエグレスフィルターが含まれます。
-
20個の条件と20個のカウンターでAをフィルタリングします。すべてのカウンターに十分な TCAM スペースがあるため、このフィルターのすべての条件がコミットされます。
-
フィルターBはフィルターAの後に来て、5つの条件と5つのカウンターがあります。すべてのカウンターに十分なメモリ領域がないため、このフィルター内の条件のいずれもコミットされません。(TCAM エントリは 5 つ必要ですが、利用できるのは 4 つだけです)。
-
この問題が発生するのを防ぐには、カウンターアクションを持つエグレスファイアウォールフィルター条件が、ポリサーを含む条件よりも設定ファイルの前に配置されるようにします。この状況では、Junos OS は暗示的なカウンターのための十分な TCAM スペースがない場合でもポリサーをコミットします。例えば、以下を想定します。
-
カウンターアクションを持つ1024エグレスファイアウォールフィルター条件があります。
-
設定ファイルの後半には、10の条件を持つエグレスフィルターがあります。どの用語にもカウンターはありませんが、ポリサーアクション修飾子があります。
ポリサーの暗示的なカウンターのための十分なTCAMスペースがないにもかかわらず、10条件でフィルターを正常にコミットすることができます。ポリサーは、カウンターなしでコミットされます。
フィルター固有ポリサーの計画
ポリサーをフィルター固有に設定できます。つまり、ポリサーがいくつ参照されたとしても、Junos OS は 1 つのポリサー インスタンスのみを作成します。これを行うと、レート制限が集約されて適用されるため、1 Gbps を超えるトラフィックを破棄し、3 つの異なる条件でポリサーを参照するようにポリサーを設定すると、フィルターで許可される総帯域幅は 1 Gbps になります。ただし、フィルター固有のポリサーの動作は、ポリサーを参照するファイアウォール フィルター条件が 3 次コンテンツ アドレス可能メモリ(TCAM)にどのように格納されるかによって影響されます。フィルター固有のポリサーを作成し、複数のファイアウォール フィルター条件で参照すると、条件が異なる TCAM スライスに格納されている場合、ポリサーは予想よりも多くのトラフィックを許可します。例えば、1 Gbpsを超えるトラフィックを破棄し、3つの個別のメモリスライスに格納されている3つの異なる条件でポリサーを参照するようにポリサーを設定した場合、フィルターで許容される総帯域幅は1 Gbpsではなく3 Gbpsになります。
この予期しない動作が発生しないようにするには、上記の TCAM スライスに関する情報を使用して設定ファイルを整理し、特定のフィルター固有のポリサーを参照するすべてのファイアウォール フィルタ条件が同じ TCAM スライスに保存されるようにします。
フィルターベース転送の計画
ファイアウォールフィルターと仮想ルーティングインスタンスを併用して、ネットワークで転送するパケットに異なるルートを指定できます。フィルターベース転送と呼ばれるこの機能を設定するには、フィルターと一致条件を指定し、パケットを送信する仮想ルーティング インスタンスを指定します。この方法で使用されるフィルターは、追加の TCAM でメモリも消費します。詳細については、 FIPスヌーピング、FBF、MVRフィルターの拡張性 についてを参照してください。このトピックの 「FBF フィルター VFP TCAM の消費 」セクションでは、フィルターベースの転送を使用する場合にサポートされるフィルターの数に特に対処します。
一部のジュニパースイッチでは、フィルターベースの転送はIPv6インターフェイスでは機能しません。
eracl-profile
に オプションを含egress-scale
めることで、QFX5220 で最大 2,000 のエグレス ファイアウォール フィルターを[edit system packet-forwarding-option firewall]
設定できます。egress-to-ingress
することで、QFX5110のエグレスVLANファイアウォールフィルターの数を1024から2048まで増やすことができます。