如果为防火墙规则启用了日志记录,则可以通过查看防火墙数据包日志,对问题进行故障排除。

不管是 ESXi 还是 KVM 主机,该日志文件都是 /var/log/dfwpktlogs.log

表 1. 防火墙日志文件变量
变量 可能值
筛选器哈希值 可用于获取筛选器名称和其他信息的数字。
AF 值 INET、INET6
原因
  • match:数据包与规则匹配。
  • bad-offset:在获取数据包时出现数据路径内部错误。
  • fragment:组合到第一个分段的后续分段。
  • short:数据包太短(例如,不太完整而不包括 IP 标头或 TCP/UDP 标头)。
  • normalize:不包含正确标头或负载的不正确格式的数据包。
  • memory:数据路径内存不足。
  • bad-timestamp:不正确的 TCP 时间戳。
  • proto-cksum:不正确的协议校验和。
  • state-mismatch:未通过 TCP 状态机检查的 TCP 数据包。
  • state-insert:发现重复的连接。
  • state-limit:已达到数据路径可跟踪的最大状态数。
  • SpoofGuard:SpoofGuard 丢弃的数据包。
  • TERM:已终止连接。
操作
  • PASS:接受数据包。
  • DROP:丢弃数据包。
  • NAT:SNAT 规则。
  • NONAT:与 SNAT 规则匹配,但无法转换地址。
  • RDR:DNAT 规则。
  • NORDR:与 DNAT 规则匹配,但无法转换地址。
  • PUNT:将数据包发送到在当前虚拟机的相同 Hypervisor 上运行的服务虚拟机。
  • REDIRECT:将数据包发送到从当前虚拟机的 Hypervisor 中运行的网络服务。
  • COPY:接受数据包,并将其复制到在当前虚拟机的相同 Hypervisor 上运行的服务虚拟机中。
  • REJECT:拒绝数据包。
规则集和规则 ID 规则集/规则 ID
方向 入站、出站
数据包长度 长度
协议 TCP、UDP、ICMP 或 PROTO(协议号)

对于 TCP 连接,将在 TCP 关键字后面指示终止连接的实际原因。

如果 TCP 会话终止是由 TERM 造成的,则会在 PROTO 行中显示额外的说明。终止 TCP 连接的可能原因包括:RST(TCP RST 数据包)、FIN(TCP FIN 数据包)和 TIMEOUT(空闲时间太长)

在上面的示例中,原因是 RST。因此,这意味着在必须重置的连接中具有 RST 数据包。

对于非 TCP 连接(UDP、ICMP 或其他协议),终止连接的原因只能是 TIMEOUT。

源 IP 地址和端口 IP 地址/端口
目标 IP 地址和端口 IP 地址/端口
TCP 标记 S (SYN)、SA (SYN-ACK)、A (ACK)、P (PUSH)、U (URGENT)、F (FIN)、R (RESET)
数据包数 数据包的数量。

22/14 - 入站/出站数据包数

字节数 字节的数量。

7684/1070 - 入站/出站字节数

以下是分布式防火墙规则的常规日志示例:
2018-07-03T19:44:09.749Z b6507827 INET match PASS mainrs/1024 IN 52 TCP 192.168.4.3/49627->192.168.4.4/49153 SEW

2018-07-03T19:46:02.338Z 7396c504 INET match DROP mainrs/1024 OUT 52 TCP 192.168.4.3/49676->192.168.4.4/135 SEW

2018-07-06T18:15:49.647Z 028cd586 INET match DROP mainrs/1027 IN 36 PROTO 2 0.0.0.0->224.0.0.1

2018-07-06T18:19:54.764Z 028cd586 INET6 match DROP mainrs/1027 OUT 143 UDP fe80:0:0:0:68c2:8472:2364:9be/546->ff02:0:0:0:0:0:1:2/547
DFW 日志文件格式的元素包括以下内容(以空格分隔):
  • 时间戳:
  • 接口的 VIF ID 的最后八位数字
  • INET 类型(v4 或 v6)
  • 原因(匹配)
  • 操作(通过、丢弃、拒绝)
  • 规则集名称/规则 ID
  • 数据包方向(入站/出站)
  • 数据包大小
  • 协议(TCP、UDP 或 PROTO #)
  • netx 规则命中的 SVM 方向
  • 源 IP 地址/源端口 > 目标 IP 地址/目标端口
  • TCP 标记 (SEW)
对于传递的 TCP 数据包,在会话结束时,会出现终止日志:
2018-07-03T19:44:30.585Z 7396c504 INET TERM mainrs/1024 OUT TCP RST 192.168.4.3/49627->192.168.4.4/49153 20/16 1718/76308
TCP 终止日志的元素包括以下内容(以空格分隔):
  • 时间戳:
  • 接口的 VIF ID 的最后 8 位数字
  • INET 类型(v4 或 v6)
  • 操作(终止)
  • 规则集名称/规则 ID
  • 数据包方向(入站/出站)
  • 协议(TCP、UDP 或 PROTO #)
  • TCP RST 标记
  • netx 规则命中的 SVM 方向
  • 源 IP 地址/源端口 > 目标 IP 地址/目标端口
  • 入站数据包计数/出站数据包计数(全部累计)
  • 入站数据包大小/出战数据包大小
以下是分布式防火墙规则的 FQDN 日志文件示例:
2019-01-15T00:34:45.903Z 7c607b29 INET match PASS 1031 OUT 48 TCP 10.172.178.226/32808->23.72.199.234/80 S www.sway.com(034fe78d-5857-0680-81e4-d8da6b28d1b4)
FQDN 日志的元素包括以下内容(以空格分隔):
  • 时间戳:
  • 接口的 VIF ID 的最后八位数字
  • INET 类型(v4 或 v6)
  • 原因(匹配)
  • 操作(通过、丢弃、拒绝)
  • 规则集名称/规则 ID
  • 数据包方向(入站/出站)
  • 数据包大小
  • 协议(TCP、UDP 或 PROTO #)- 对于 TCP 连接,在以下 IP 地址后面指示终止连接的实际原因
  • 源 IP 地址/源端口 > 目标 IP 地址/目标端口
  • TCP 标记 - S (SYN)、SA (SYN-ACK)、A (ACK)、P (PUSH)、U (URGENT)、F (FIN)、R (RESET)
  • 域名/UUID,其中 UUID 是域名的二进制内部表示形式
以下是分布式防火墙规则的第 7 层日志文件示例:
2019-01-15T00:35:07.221Z 82f365ae INET match REJECT 1034 OUT 48 TCP 10.172.179.6/49818->23.214.173.202/80 S APP_HTTP

2019-01-15T00:34:46.486Z 7c607b29 INET match PASS 1030 OUT 48 UDP 10.172.178.226/42035->10.172.40.1/53 APP_DNS
第 7 层日志的元素包括以下内容(以空格分隔):
  • 时间戳:
  • 接口的 VIF ID 的最后八位数字
  • INET 类型(v4 或 v6)
  • 原因(匹配)
  • 操作(通过、丢弃、拒绝)
  • 规则集名称/规则 ID
  • 数据包方向(入站/出站)
  • 数据包大小
  • 协议(TCP、UDP 或 PROTO #)- 对于 TCP 连接,在以下 IP 地址后面指示终止连接的实际原因
  • 源 IP 地址/源端口 > 目标 IP 地址/目标端口
  • TCP 标记 - S (SYN)、SA (SYN-ACK)、A (ACK)、P (PUSH)、U (URGENT)、F (FIN)、R (RESET)
  • APP_XXX 是发现的应用程序