Distributed Firewall (DFW) パケットが以前のルールではなくデフォルトのルールに抵触すると指定のトラフィックが許可/ブロックされる
search cancel

Distributed Firewall (DFW) パケットが以前のルールではなくデフォルトのルールに抵触すると指定のトラフィックが許可/ブロックされる

book

Article ID: 339128

calendar_today

Updated On:

Products

VMware NSX Networking

Issue/Introduction

Distributed Firewall (DFW) の動作の検証において、構成済みのルールで定義されているソース、ターゲット、およびプロトコル(サービス)を持つ一部のパケットが、ファイアウォール ルール リストの一番最後でデフォルト ルールに抵触するのが表示される場合があります。

dfwpktlogs または Loginsight で、SYN パケットおよび ACK パケットが、定義済みのトラフィックを許可/ブロックする構成済みのルールで処理されているのが表示される場合があります。

ただし、同じトラフィックで、デフォルトのブロック/許可ルールに抵触する RST および FIN ACK パケットが表示されます。つまり、これは前に構成されたルールに抵触しないことを意味します。

このため、DFW は、特定のルールで定義されているトラフィックのパケットを一貫して処理していないように見えます。

ただし、これは TCP パケットの DFW のステートフル ファイアウォールの想定される動作です。

TCP パケットの場合、状態は、SYN フラグの付いたパケットに対してのみ設定されます。ただし、プロトコル(サービス ANY)を指定しないルールは、あらゆる組み合わせのフラグの TCP パケットと一致する可能性があります。

このため、ソース A および B の間のトラフィック(およびその逆)を許可するルールでプロトコルが定義されている場合、フロー(または状態)は、最初の SYN パケットの受信時に生成されます。このフローは開いたままで、A と B 間でトラフィックの自由なフローを許可します。DFW は、(ルールのリストと比較して)既存のフローまたは接続のトラフィックを処理する必要はありません。

ただし、A または B が突然接続を終了した場合、RST パケットまたは FIN ACK パケットがいずれかの側から送信される可能性があります。フローがすでに切断されたため、DFW は構成済みのルールとトラフィックを比較することを開始する必要があります。RST または FIN ACK には SYN フラグが設定されていないため、フローが確立されておらず、残っているこれらのパケットはデフォルトのルール(またはサービスとしての「任意」の最初のルール - 通常はデフォルト ルール)に抵触します。

これも想定どおりの動作であり、アクティブな接続またはトラフィック コンテンツへの影響はありません。詳細については、『NSX Administration Guide』の「Distributed Firewall」セクションを参照してください。


Symptoms:
免責事項:これは英文の記事「Distributed Firewall (DFW) packets hitting Default Rule instead of previous Rule allowing/blocking designated traffic (2149818)」の日本語訳です。記事はベストエフォートで翻訳を進めているため、ローカライズ化コンテンツは最新情報ではない可能性があります。最新情報は英語版の記事で参照してください。

Environment

VMware NSX for vSphere 6.3.x
VMware NSX for vSphere 6.2.x

Resolution

特定の仮想マシンに対してアクティブなフローを表示するには、Flow Monitoring を確実に有効にしておきます。詳細については、『NSX Administration Guide』の「Flow Monitoring の構成」セクションを参照してください。
  1. 仮想マシンを実行している ESXi ホストへの SSH セッションを開きます。
  2. summarize-dvfilter | grep -A20 コマンドを実行して、仮想マシンの DFW フィルタ名を取得します。
  3. vsipioctl getflows -f コマンドを実行して、そのフィルタまたは仮想マシンに関連したアクティブまたは現在のフローを表示します。
フィルタまたは vNIC から得られるルールを確認するには、vsipioctl getrules -f コマンドを実行します。この出力から、構成済みのルールが想定どおりに仮想 NIC に適用されていることを確認できます。

ファイアウォールが意図したとおりに動作していることを確認する方法は、複数あります。
  • 同じソースとターゲットで許可ルールのすぐ下にある ANY というサービスに拒否ルールを追加できます。ログに、Default ルールではなく、新規の Deny ルールに抵触する非 SYN パケットが表示されるはずです。
  • また、トレース フローを使用して、DFW の仕組みを説明することができます。
以下の例では、ファイアウォール ルールが、web-01a と web-02a 間での TCP トラフィックを許可するようにセットアップされています。デフォルト値は Block に設定されています。トレース フローの [詳細] オプションでは、監視対象のパケット用に特定の TCP フラグを指定できます。

最初の例では、SYN パケットが指定されています。SYN パケットは配信され、デフォルト ブロック ルールに進む前に許可ルールに抵触します。



この例では、RST パケットが送信されます。
この場合、ファイアウォールは定義済みルールの SYN パケットにのみ一致するため、パケットはファイアウォールでドロップされます。



Additional Information

Distributed Firewall (DFW) packets hitting Default Rule instead of previous Rule allowing/blocking designated traffic