VMware NSX 4.2 : NSXセグメントにおけるVMパケットキャプチャの取得について

VMware NSX 4.2の環境において、NSXセグメント（VLAN、オーバーレイともに）は、vSphere Distributed Switchのように「プロミスキャスモード」はサポートしていません。
その為、<font color="blue">**VDSのポートグループを「プロミスキャスモード」にして、仮想マシンでパケットキャプチャを実施していた場合**</font>に、<font color="red">**NSXセグメントにて同様の手段でパケットキャプチャを取得する**</font>には、<font color="red">**VMware NSXにおける「Port Mirroring」機能**</font> を使用する必要があります。　

※ [NSX Port Mirroring](https://www.ryandran.com/post/nsx-t-port-mirroring-span/): トラブルシュート目的で、トラフィックを複製かつリダイレクトする機能

# 検証構成について
今回はVMware NSX 4.2 のNSXセグメントに、今回は以下の仮想マシンを接続します。
* VDI VM（VDI01、VDI02）：VDI間で接続を、Firewallによりブロックします。
* Non-VDI：Firewallによる通信のブロックは発生しないVMです。
* Win2019： Wiresharkによるパケットキャプチャを実施するVMです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/251519/8ad9f6f0-9e0f-bb4e-7b36-e46ab48c5b91.png)


# NSX ポートミラーリングの設定について
[NSX ポートミラーリング](https://techdocs.broadcom.com/jp/ja/vmware-cis/nsx/vmware-nsx/4-2/monitor-port-mirroring-sessions-in-manager-mode.html)について、NSX ManagerのUIより、[プランとトラブルシューティング] > [ポートミラーリング] より、[セッションの追加] > [論理SPAN] を選択します。 (今回は同一のL2オーバーレイセグメントにおけるポートミラーリングの為、[論理SPAN] を選択します。）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/251519/c3ddb4c5-03c5-d073-d59a-1d2dc5fab968.png)

ポートミラーリングに名前をつけ、送信元にVDI01、VDI02、Non-VDIを指定し、これらの３つのVMのトラフィックを転送する先として宛先に、Win2019のWireshark稼働VMを指定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/251519/002b95c8-06ee-1f51-3a2f-4bf7cd60e958.png)

# 分散Firewallの構成
パケットキャプチャの取得にあたり、分散Firewallの動作を確認する為、事前に分散Firewallルールを作成します。
分散Firewallルール：VDI01とVDI02間の通信をドロップする。（Non-VDIとVDI01及びVDI02の通信は拒否されない）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/251519/77b7e168-902b-e3d5-a122-99aa80534062.png)

一旦分散Firewallルールを無効化し、デフォルトの動きを確認していきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/251519/657bf44f-0649-00a2-6fbd-97564b1b0a86.png)


# パケットキャプチャの実施
分散Firewallルールはまだ無効化されている為、VDI01及びVDI02間のPingは通ります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/251519/9131d6ca-ba8c-5dd4-0c1a-d8cbd5ca57bc.png)

Win2019 VMのWiresharkによるパケットキャプチャ結果は以下のようになり、VDI01及びVDI02間の通信も実行出来、またNon-VDI及びVDI01間の通信も実施可能です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/251519/d33b5cb5-70f0-c9f6-a5e3-994fedca89d9.png)

ここで、上記で作成したVDI VM間の通信をドロップする分散Firewallルールを有効化します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/251519/6d108784-7099-35e6-3492-cc0df7d5fca3.png)

VDI01及びVDI02の間のPingはドロップされ、実行できません。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/251519/04e8e5a9-2f65-72ad-741a-c33a1b976269.png)

再度パケットキャプチャを確認すると、VDI01及びVDI02間の通信はドロップされている為、表示されませんが、Non-VDI及びVDI01間の通信は分散Firewallの対象外となるため確認出来ます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/251519/4da78c17-58db-3802-188e-0317edcde2e7.png)

同様に、分散Firewallにおける禁止のアクションが「却下」の場合についても見ていきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/251519/ac87e3e7-1e61-11fe-abde-1fd1796f61c9.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/251519/557dd3aa-eb5e-a7b0-355d-61b514ffeccc.png)

パケットキャプチャの取得結果として、VDI01及びVDI02間の通信が却下される様子が確認出来ます。（Non-VDI及びVDI01間の通信には影響しません）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/251519/d0ed233b-6cff-fd10-aaec-5e85448dc54e.png)