要对 KVM 主机的防火墙问题进行故障排除,可以查看在主机上应用的防火墙规则。

获取 KVM 主机上的 VIF 列表

localhost.localdomain> get firewall vifs 
***sample output***
                            Firewall VIFs                             
----------------------------------------------------------------------VIF count: 3
 1   239140cf-6c6c-464f-96eb-dfb13203171e
 2   eb277d27-0d28-4fb0-82ce-f59d86ea5bee
 3   afb2aa98-85ee-4bb4-8318-d699fa84c7f0

发现适用于特定 VIF 的防火墙规则

按 UUID(在此示例中为: 239140cf-6c6c-464f-96eb-dfb13203171e)指定 VIF。
localhost.localdomain> get firewall 239140cf-6c6c-464f-96eb-dfb13203171e ruleset rules 
***sample output***
                            Firewall Rules                            
----------------------------------------------------------------------
VIF UUID : 239140cf-6c6c-464f-96eb-dfb13203171e
 Ruleset UUID : 7c5838e5-ab75-427d-b4dd-9452e5607805
 Rule count : 5345
 rule 3073 inout protocol any from any to any profile fbb4b84f-f6c1-40c5-a509-f7c6f81fe7d9 accept with log tag dns;
 rule 3072 inout protocol any from any to any profile 6bc09f62-a188-4e36-9708-291af7237039 accept with log tag youtube.com;
 rule 3072 inout protocol any from any to any profile 27b9a15b-8071-4d09-a7e8-71eecfca0779 accept with log tag youtube.com;
 rule 3075 inout protocol tcp from addrset 81d95211-ab77-4f2d-beaf-3e15b045fb5e to addrset 3d41a802-a899-4464-ba2b-da9240598552 port 5000 accept with log tag portlist1;
 rule 3075 inout protocol tcp from addrset 81d95211-ab77-4f2d-beaf-3e15b045fb5e to addrset 3d41a802-a899-4464-ba2b-da9240598552 port 4992/0xfff8 accept with log tag portlist1;
 rule 3075 inout protocol tcp from addrset 81d95211-ab77-4f2d-beaf-3e15b045fb5e to addrset 3d41a802-a899-4464-ba2b-da9240598552 port 4864/0xff80 accept with log tag portlist1;

获取特定 VIF 中使用的地址集列表

按 UUID(在此示例中为: 239140cf-6c6c-464f-96eb-dfb13203171e)指定 VIF。
localhost.localdomain> get firewall 239140cf-6c6c-464f-96eb-dfb13203171e addrsets 
***sample output***
                        Firewall Address Sets                         
----------------------------------------------------------------------
Address set count : 11
  UUID : 09f6da50-bcf2-4347-91a7-df00dca003a6
  Address count : 7
    mac 00:50:56:81:9b:2e
    mac 00:0c:29:03:4d:0d
    mac 00:0c:29:03:4d:03
    ip 10.172.177.231
    ip 10.172.177.111
    ip 192.168.1.11
    ip 192.168.2.11

获取特定 VIF 中使用的应用程序 ID 和 FQDN 列表

要检查 Hypervisor 上的 FQDN 配置文件,请运行 localhost.localdomain> get firewall <vif-id> profile 命令。

查找在策略 UI 上配置的 URL。

按 UUID(在此示例中为: 239140cf-6c6c-464f-96eb-dfb13203171e)指定 VIF。
localhost.localdomain> get firewall 239140cf-6c6c-464f-96eb-dfb13203171e profile 
***sample output***
                          Firewall Profiles                           
----------------------------------------------------------------------
Profiles count : 9
  UUID : 87de2b6b-bdf5-49b6-bae2-824f455a21a4
  Attribute count : 2
    FQDN : www\.youtube\.com
    FQDN : .*\.microsoft\.com

  UUID : 68dc8321-5cb5-4cd4-b1d1-14961d71c05e
  Attribute count : 1
    APP_ID : APP_SSL

获取特定 VIF 中使用的应用程序 ID 和 FQDN 列表

按 UUID(在此示例中为: 239140cf-6c6c-464f-96eb-dfb13203171e)指定 VIF。
localhost.localdomain> get firewall 239140cf-6c6c-464f-96eb-dfb13203171e profile 
***sample output***
                          Firewall Profiles                           
----------------------------------------------------------------------
Profiles count : 9
  UUID : 87de2b6b-bdf5-49b6-bae2-824f455a21a4
  Attribute count : 2
    FQDN : www\.youtube\.com
    FQDN : .*\.microsoft\.com

  UUID : 68dc8321-5cb5-4cd4-b1d1-14961d71c05e
  Attribute count : 1
    APP_ID : APP_SSL

发现特定 VIF 的 FQDN

localhost.localdomain> get firewall 239140cf-6c6c-464f-96eb-dfb13203171e fqdn 
                        Firewall Profile FQDN                         
----------------------------------------------------------------------
Profiles count  : 3
  Profile UUID  : 87de2b6b-bdf5-49b6-bae2-824f455a21a4
  FQDN count    : 2
    FQDN UUID   : 37efd4dd-961c-4756-afdd-ec04f44b6c10
    Value       : www\.youtube\.com
    IP set      : 172.217.6.46

检查通过 Linux Conntrack 模块的连接。

在此示例中,我们查找两个特定 IP 地址之间的流量。

ovs-appctl dpctl/dump-conntrack -m | grep 192.168.1.15 | grep 192.168.1.16
icmp,orig=(src=192.168.1.15,dst=192.168.1.16,id=7972,type=8,code=0),
reply=(src=192.168.1.16,dst=192.168.1.15,id=7972,type=0,code=0),
id=2901517888,zone=61437,status=SEEN_REPLY|CONFIRMED,mark=2083,labels=0x1f

检查 KVM 主机上的 FQDN 角色和配置文件

可以创建防火墙规则以使用 FQDN/URL 筛选特定的域。要检查 Hypervisor 上的 FQDN 配置文件,请运行 localhost.localdomain> get firewall <vif-id> profile 命令。查找在策略 UI 上配置的 URL。

具有 APP_ID 和 FQDN 条目的已发布上下文配置文件的示例 nsxcli 输出:
localhost.localdomain> get firewall 989bdcf6-c6fc-47cd-86a3-367e552dba32 profile 
 Firewall Profiles 
----------------------------------------------------------------------
Profiles count : 3
 UUID : b34b868e-f113-4463-84a6-14736e50168e
 Attribute count : 1
 APP_ID : APP_HTTP
UUID : c4689750-d5e1-41f5-ba2c-0bfc846ed494
 Attribute count : 1
 FQDN : www\.youtube\.com
UUID : 77a599db-b2d3-4510-bbff-fa2bb31aceae
 Attribute count : 1
 APP_ID : APP_DNS
localhost.localdomain> get firewall 989bdcf6-c6fc-47cd-86a3-367e552dba32 fqdn
Firewall Profile FQDN 
----------------------------------------------------------------------
Profiles count : 1
Profile UUID : c4689750-d5e1-41f5-ba2c-0bfc846ed494
FQDN count : 1
FQDN UUID : 1c9d612c-c398-409e-b6f0-f1ec49b778fe
Value : www\.youtube\.com
IP set : 172.217.6.46, 172.217.164.110, 172.217.5.110, 216.58.194.206, 172.217.6.78, 172.217.0.46, 216.58.195.78, 216.58.194.174