項目一覧
アクセス コントロール リスト(ファイアウォール フィルター)
概要 このトピックでは、Cloud-Native Routerのレイヤー3-レイヤー4アクセスコントロールリスト(ファイアウォールフィルター)について説明します。
Juniper Cloud-Native Routerリリースは、ステートレスファイアウォールフィルターをサポートします。ファイアウォールフィルターは、ルーターを通過してネットワークの宛先に向かう、またはルーティングエンジンに向かう過剰なトラフィックからクラウドネイティブルーターを保護する手段を提供します。ステートレスファイアウォールフィルターは、アクセスコントロールリスト(ACL)とも呼ばれ、トラフィックをステートフルに検査しません。代わりに、パケットの内容を静的に評価し、ネットワーク接続の状態を追跡しません。ステートレス ファイアウォール フィルターの基本的な目的は、パケット フィルタリングを使用してセキュリティを強化することです。パケットフィルタリングを使用すると、着信パケットまたは発信パケットのコンポーネントを検査し、指定した基準に一致するパケットに対して指定したアクションを実行できます。ステートレス ファイアウォール フィルターの一般的な用途は、悪意のあるパケットや信頼できないパケットからルーティングエンジンのプロセスとリソースを保護することです。
どのパケットがシステムを通過できるかに影響を与え、必要に応じてパケットに特別なアクションを適用するために、 フィルター条件と呼ばれる 1 つ以上のパケットフィルタリング規則のシーケンスを構成できます。フィルター項目は、一致を判断するために使用する 一致条件 と、一致したパケットに対して実行する アクション を指定します。ステートレス ファイアウォール フィルターを使用すると、レイヤー 3 およびレイヤー 4 ヘッダー フィールドの評価に基づいて、フラグメント パケットを含む特定のプロトコル ファミリーの任意のパケットを操作できます。詳細については、 ステートレス ファイアウォール フィルターの概要 のトピックを参照してください。
JCNR では、ステートレス ファイアウォール フィルターはイングレス インターフェイスにのみ適用できます。サポートされるインターフェイスのタイプには、ファブリック インターフェイス、サブインターフェイス、ポッド インターフェイス、インターフェイスが含まれます irb
。
JCNR は、ファミリーごとに最大 16 個のフィルター、フィルターごとに 16 個の条件をサポートします。
JCNRは、IPv4およびIPv6標準ファイアウォールフィルターを、表に示す一致条件とアクションでサポートしています。JCNR は、 レイヤー 2 アクセス コントロール リスト(ブリッジ ファミリー用のファイアウォール フィルター)もサポートしています。
一致条件 |
形容 |
---|---|
宛先アドレス address |
IPv4宛先アドレスフィールドに一致します。オプションのサブネットマスクでプレフィックスを指定できます。 |
宛先ポート number | UDPまたはTCP宛先ポート フィールドに一致します。 ポートベースの一致を設定する場合、同じフィルター条件内に または 数値の代わりに、以下のテキスト同義語(ポート番号も記載されています)のいずれかを指定します: |
送信元アドレス address |
パケットを送信する送信元ノードの IPv4 アドレスに一致します。オプションのサブネットマスクでプレフィックスを指定できます。 |
送信元ポート number |
UDPまたはTCP送信元ポート フィールドに一致します。 ポートベースの一致を設定する場合、同じフィルター条件内に または 数値の代わりに、一致条件で |
議定書 number |
IPプロトコルタイプフィールドに一致します。数値の代わりに、 |
TCPフラグ value |
TCPヘッダーの8ビットTCPフラグフィールドの下位6ビットの1つ以上に一致します。 個別のビットフィールドを指定するには、以下のテキスト同義語または16進数値を指定できます。
TCPセッションでは、SYNフラグは送信された最初のパケットのみで設定され、ACKフラグは最初のパケットの後に送信されたすべてのパケットに設定されます。 ビットフィールド論理演算子を使用して複数のフラグを結合できます。 この一致条件を設定した場合、ポートで使用されるプロトコルを指定するために、同じ条件で 一致ステートメントを設定する |
ICMPタイプ number |
ICMPメッセージタイプフィールドに一致します。 数値の代わりに、(0)、 |
一致条件 |
形容 |
---|---|
宛先アドレス address |
IPv6宛先アドレスフィールドに一致します。オプションのサブネットマスクでプレフィックスを指定できます。 |
宛先ポート number | UDPまたはTCP宛先ポート フィールドに一致します。 ポートベースの一致を設定する場合、同じフィルター条件内に または 数値の代わりに、以下のテキスト同義語(ポート番号も記載されています)のいずれかを指定します: |
送信元アドレス address |
パケットを送信する送信元ノードの IPv6 アドレスに一致します。オプションのサブネットマスクでプレフィックスを指定できます。 |
送信元ポート number |
UDPまたはTCP送信元ポート フィールドに一致します。 ポートベースの一致を設定する場合、同じフィルター条件内に または 数値の代わりに、一致条件で |
TCPフラグ value |
TCPヘッダーの8ビットTCPフラグフィールドの下位6ビットの1つ以上に一致します。 個別のビットフィールドを指定するには、以下のテキスト同義語または16進数値を指定できます。
TCPセッションでは、SYNフラグは送信された最初のパケットのみで設定され、ACKフラグは最初のパケットの後に送信されたすべてのパケットに設定されます。 ビットフィールド論理演算子を使用して複数のフラグを結合できます。 |
ICMPタイプ message-type |
ICMPメッセージタイプフィールドに一致します。 数値の代わりに、以下のテキストシノニム(フィールド値も記載されています)のいずれかを指定します。 |
アクションの種類 |
形容 |
サポートされているアクション |
---|---|---|
終了 |
特定のパケットに対するファイアウォールフィルターのすべての評価を停止します。ルーター(またはスイッチ)は指定されたアクションを実行し、パケットの検査に追加の用語は使用されません。 ファイアウォールフィルターの条件で指定できる終了アクションは 1 つだけです。フィルター条件内で複数の終了アクションを指定しようとすると、最新の終了アクションが既存の終了アクションに置き換わります。ただし、1 つの条件で 1 つの終了アクションと 1 つ以上の非終了アクションを指定できます。たとえば、項内では、 |
|
非終了 |
パケットに対して他の機能(カウンターのインクリメント、パケットヘッダーに関する情報のログ記録、パケットデータのサンプリング、システムログ機能を使用したリモートホストへの情報送信など)を実行しますが、追加の用語はパケットの検査に使用されます。 注: JCNR は、終了アクションとともに追加された場合にのみ、非終了アクションとしてサポート |
数える counter-name |
設定例
コンフィグレットリソースを使用して、cRPDポッドを設定します。
階層の下に firewall
、ステートレスファイアウォールフィルターを使用してJCNRコントローラを設定できます。IPv4ファミリーの設定例を以下に示します。
firewall { family inet { filter temp { term a { from { source-address { 10.0.0.1/32; } destination-address { 10.0.0.2/32; } protocol icmp; icmp-type echo-request; source-port http; destination-port bgp; tcp-flags fin; } then { count c1; accept; } } } } }
IPv6ファミリーの設定例を以下に示します。
firewall { family inet6 { filter temp6 { term a { from { source-address { 2001:db8::1/128; } destination-address { 2001:db8::1/128; } icmp-type echo-request; source-port http; destination-port bgp; tcp-flags fin; } then { count c1; discard; } } } } }
フィルターはイングレスインターフェイスに適用されます。サポートされるインターフェイスには、ファブリック インターフェイス、サブインターフェイス、ポッド インターフェイス、インターフェイスが含まれます irb
。フィルターは、インターフェイスの入力にのみ適用できます。
user@host > show interfaces enp4s0 unit 0 { family inet { filter { input temp; } address 10.0.0.1/24; } family inet6 { filter { input temp6; } } }
トラブルシューティング
JCNR コントローラー・コマンド
ファミリーinet(IPv4)のすべてのファイアウォールフィルターを表示します
user@host> show firewall family inet Filter: temp Counters: Name Bytes Packets c1 0 0 c2 1532909 22500 Filter: temp 2 Counters: Name Bytes Packets c3 0 0 c4 100 100
ファミリーinetの特定のファイアウォールフィルターを表示します
user@host> show firewall family inet filter temp Filter: temp Counters: Name Bytes Packets c1 0 0 c2 1532909 22500
ファミリーinetのファイアウォールフィルターの特定のカウンタを表示します
user@host> show firewall family inet filter temp counter c2 Filter: temp Counters: Name Bytes Packets c2 1532909 22500
ファミリーinet6(IPv6)のすべてのファイアウォールフィルターを表示します
user@host> show firewall family inet6 Filter: temp6 Counters: Name Bytes Packets c1 0 0 c2 1532909 22500 Filter: temp6_2 Counters: Name Bytes Packets c3 0 0 c4 100 100
以下のコマンドを使用して、カウンタ統計情報をクリアできます。
clear firewall family name >> clear all counter statistics for a family clear firewall family name filter name >> clear all counter statistics for a specific filter for a family clear firewall family name filter name count counter-name >> clear statistics for a specific counter for a specific filter for a family
vRouterコマンド
bash-5.1# acl --family inet --filter f4 --term t4 ======================================= Filter: f4 ======================================= Term: t4 ----- Priority: 268420555 Dest IP: 10.0.0.1/32 Src IP: 10.0.0.2/32 Dst ports: [179 - 179] Src ports: [179 - 179] Action: accept (n/a)
bash-5.1# acl --list-actions [1] inet filter "f1": Counter "c1" Rx Packets: 2 [2] inet filter "f1": Counter "c2" Rx Packets: 1
その他の acl
コマンドには、次のものがあります。
acl --list-filters --family <inet/inet6/mpls> >>Lists the full acl table acl --list-actions >>Shows the acl entry corresponding to filter name and term name acl --family <inet/inet6/mpls> --filter <name> [--list-terms] >>Shows the ACL term list acl --family <inet/inet6/mpls> --filter <name> [--term <name>] >>Shows the ACL term details acl --family <inet/inet6/mpls> --filter <name> [--action <name>] >>Shows the ACL action details acl --family <inet/inet6/mpls> --filter <name> [--action <name>] --clear >>Clears the ACL action details acl --help >>Prints the help messages
インターフェイスに関連付けられているフィルターを表示するには、コマンドを使用します vif --get
。
bash-5.1# vif --get 5 Vrouter Interface Table Flags: P=Policy, X=Cross Connect, S=Service Chain, Mr=Receive Mirror Mt=Transmit Mirror, Tc=Transmit Checksum Offload, L3=Layer 3, L2=Layer 2 D=DHCP, Vp=Vhost Physical, Pr=Promiscuous, Vnt=Native Vlan Tagged Mnp=No MAC Proxy, Dpdk=DPDK PMD Interface, Rfl=Receive Filtering Offload, Mon=Interface is Monitored Uuf=Unknown Unicast Flood, Vof=VLAN insert/strip offload, Df=Drop New Flows, L=MAC Learning Enabled Proxy=MAC Requests Proxied Always, Er=Etree Root, Mn=Mirror without Vlan Tag, HbsL=HBS Left Intf HbsR=HBS Right Intf, Ig=Igmp Trap Enabled, Ml=MAC-IP Learning Enabled, Me=Multicast Enabled vif0/5 PCI: 0000:07:00.0 NH: 10 MTU: 9000 Type:Physical HWaddr:02:8b:65:44:27:bd IPaddr:0.0.0.0 DDP: OFF SwLB: ON Vrf:0 Mcast Vrf:0 Flags:L3L2Vof QOS:0 Ref:9 RX device packets:8807 bytes:374638 errors:0 RX port packets:8806 errors:0 RX queue errors to lcore 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Fabric Interface: 0000:07:00.0 Status: UP Driver: 0000:07:00.0 RX packets:8806 bytes:374596 errors:0 TX packets:2 bytes:240 errors:0 Drops:0 TX queue packets:2 errors:0 TX port packets:2 errors:0 TX device packets:8 bytes:912 errors:0 inet acl f1 inet6 acl f1v6