NSX-T 3.0: DFW を VLAN セグメントで使用してみる。(後編)

NSX-T 3.0: DFW を VLAN セグメントで使用してみる。(後編)

NSX-T の分散ファイアウォール(DFW)を、VLAN セグメントで使用してみます。

前回は、簡単な動作確認をしてみました。

NSX-T 3.0: DFW を VLAN セグメントで使用してみる。(前編)

今回は、vNIC のポートグループを「VLAN セグメント」と「分散ポートグループ」に

それぞれ切りかえて、DFW ルール適用の様子を確認してみます。

今回の DFW ルール。

NSX Manager の「分散ファイアウォール」の画面を確認すると、

ID 3048 の DFW ルールが作成されて、有効になっています。

このルールは、適用先が「分散ファイアウォール (DFW)」となっており、

基本的には NSX 環境内のすべての VM、つまりホスト トランスポート ノード上で

NSX によるセグメントに接続されているすべて VM に適用されます。

(例外もありますが、今回は省略)

ちなみに、今回は DFW ルールの適用される様子を見るだけなので、

通信は遮断しない(アクション: 許可)ルールにしてあります。

nsxt-dfw-vnic-02.png

「VLAN セグメント」接続の vNIC と DFW ルール。

VM「vm01」の vNIC が、NSX-T による VLAN セグメント「seg-vlan-0006」に接続されています。

この VLAN セグメントは前回の投稿で作成したもので、VLAN ID 6 が設定されています。

nsxt-dfw-vnic-03.png

それでは、vm01 が起動されている ESXi ホストに SSH 接続して、

vNIC への DFW ルール適用の様子を確認します。

まず に、DFW のルールが作成されている vNIC を確認しておきます。

ESXi に SSH ログインした状態です。

[root@lab-nsx-esxi-21:~] vmware -vl

VMware ESXi 7.0.0 build-16324942

VMware ESXi 7.0 GA

vm01 が起動しています。

この VM の World ID(371855)を記録しておきます。

[root@lab-nsx-esxi-21:~] esxcli network vm list

World ID  Name  Num Ports  Networks

--------  ----  ---------  --------

  371855  vm01          1

summarize-dvfilter で、vm01 の vNIC に適用されている dvfilter を探します。

赤字の部分が、vm01 の vNIC にあたります。

[root@lab-nsx-esxi-21:~] summarize-dvfilter

Fastpaths:

agent: dvfilter-generic-vmware, refCount: 1, rev: 0x1010000, apiRev: 0x1010000, module: dvfilter-generic-fastpath

agent: vmware-si, refCount: 1, rev: 0x1010000, apiRev: 0x1010000, module: nsxt-vsip-15945874

agent: vmware-sfw, refCount: 4, rev: 0x1010000, apiRev: 0x1010000, module: nsxt-vsip-15945874

agent: nsx_bridgelearningfilter, refCount: 1, rev: 0x1010000, apiRev: 0x1010000, module: nsxt-vdrb-15945874

agent: ESXi-Firewall, refCount: 3, rev: 0x1010000, apiRev: 0x1010000, module: esxfw

agent: dvfilter-faulter, refCount: 1, rev: 0x1010000, apiRev: 0x1010000, module: dvfilter

ServiceVMs:

serviceVM: 1, agent vmware-sfw, refCount: 2, rev: 0x4, apiRev: 0x4, capabilities: csum,tso

serviceVM: 2, agent vmware-sfw, refCount: 1, rev: 0x4, apiRev: 0x4, capabilities: csum,tso

Filters:

world 0 <no world>

port 67108877 vmk0

  vNic slot 0

   name: nic-0-eth4294967295-ESXi-Firewall.0

   agentName: ESXi-Firewall

   state: IOChain Attached

   vmState: Detached

   failurePolicy: failOpen

   serviceVMID: none

   filter source: Invalid

   moduleName: esxfw

port 67108878 vmk1

  vNic slot 0

   name: nic-0-eth4294967295-ESXi-Firewall.0

   agentName: ESXi-Firewall

   state: IOChain Attached

   vmState: Detached

   failurePolicy: failOpen

   serviceVMID: none

   filter source: Invalid

   moduleName: esxfw

world 371855 vmm0:vm01 vcUuid:'50 07 76 2d a1 08 3d 62-94 8a 57 ce fd 77 9c aa'

port 67108883 vm01.eth0

  vNic slot 2

   name: nic-371855-eth0-vmware-sfw.2

   agentName: vmware-sfw

   state: IOChain Attached

   vmState: Attached

   failurePolicy: failClosed

   serviceVMID: 1

   filter source: Dynamic Filter Creation

   moduleName: nsxt-vsip-15945874

さきほど確認した、VM の World ID をもとにすると、

vm01 のフィルタの名前を見つけやすいかなと思います。

vm01 の 1つめの vNIC(ゲスト OS の種類に関係なく eth0)のフィルタ名

「nic-371855-eth0-vmware-sfw.2」を見つけました。

[root@lab-nsx-esxi-21:~] summarize-dvfilter | grep 371855

world 371855 vmm0:vm01 vcUuid:'50 07 76 2d a1 08 3d 62-94 8a 57 ce fd 77 9c aa'

   name: nic-371855-eth0-vmware-sfw.2

そしてフィルタ名を指定して「vsipioctl getrules」コマンドを実行すると、

DFW のルールが実際に設定されている様子がわかります。

さきほど NSX Manager でも確認できた、ID 3048 のルールが表示されており、

vm01 の vNIC に DFW ルールが適用されていることがわかります。

[root@lab-nsx-esxi-21:~] vsipioctl getrules -f nic-371855-eth0-vmware-sfw.2

ruleset mainrs {

  # generation number: 0

  # realization time : 2020-10-07T17:00:19

  # FILTER rules

  rule 3048 at 1 inout protocol any from any to any accept;

  rule 2 at 2 inout protocol any from any to any accept;

}

ruleset mainrs_L2 {

  # generation number: 0

  # realization time : 2020-10-07T17:00:19

  # FILTER rules

  rule 1 at 1 inout ethertype any stateless from any to any accept;

}

ちなみに、DFW が適用されていることは nsxcli コマンドでも確認できます。

この ESXi で起動されている VM(の vNIC)が 1つだけなので、Firewall VIF が 1件表示されています。

[root@lab-nsx-esxi-21:~] nsxcli -c "get firewall vifs"

                            Firewall VIFs

----------------------------------------------------------------------

VIF count: 1

1   1db50096-f1b8-44a2-8639-8ed6ac641446

「vDS の分散ポートグループ」接続の vNIC と DFW ルール。

続いて、NSX-T の VLAN セグメントと同じ VLAN ID の分散ポートグループを適用して、

DFW ルールの変化を確認してみます。(結果として DFW ルールは消えます)

vDS「vds-21」に作成されている、分散ポートグループの一覧です。

今回は NSX で利用している vDS に、VLAN セグメントと同様に、

VLAN ID 6 の分散ポートグループ「dvpg-vlan-0006」を作成しました。

nsxt-dfw-vnic-04.png

vm01 の vNIC のポートグループを、分散ポートグループである「dvpg-vlan-0006」に変更します。

nsxt-dfw-vnic-06.png

分散ポートグループに変更されました。

nsxt-dfw-vnic-07.png

このポートグループ変更より、DFW ルールが即時変更されます。

ESXi で summarize-dvfilter を実行してみると、

vm01 の「nic-371855-eth0-vmware-sfw.2」フィルタは存在したままです。

[root@lab-nsx-esxi-21:~] summarize-dvfilter | grep 371855

world 371855 vmm0:vm01 vcUuid:'50 07 76 2d a1 08 3d 62-94 8a 57 ce fd 77 9c aa'

   name: nic-371855-eth0-vmware-sfw.2

しかし、vsipioctl getrules コマンドで確認すると、DFW ルールが消えて「No rules」になりました。

[root@lab-nsx-esxi-21:~] vsipioctl getrules -f nic-371855-eth0-vmware-sfw.2

No rules.

nsxcli コマンドでも 1件表示されていた VIF がなくなり、

Firewall VIF のカウントがゼロになっています。

[root@lab-nsx-esxi-21:~] nsxcli -c "get firewall vifs"

                            Firewall VIFs

----------------------------------------------------------------------

VIF count: 0

このように、VM が起動する ESXi が NSX-T のホスト トランスポート ノードとして設定されていたとしても、

vSS の標準ポートグループや vDS の分散ポートグループに接続された vNIC には、DFW ルールが適用されません。

DFW はオーバーレイ ネットワークでなくても使用できますが、

VLAN ネットワークで使用する場合、vNIC には「VLAN セグメント」を割り当てる必要があります。

以上、DFW を VLAN セグメントで使用してみる話でした。

Tags (4)
Version history
Revision #:
1 of 1
Last update:
‎10-08-2020 06:18 AM
Updated by: