可以使用 UI 和 API 创建、更新和删除 DFW 规则。

安全管理员需要了解任何安全策略操作的实现时间。实现时间是在传输节点上实现安全策略/规则所用的时间。安全策略/规则上的任何创建/更新/删除操作都会在传输节点上根据规则的应用位置来实现。

UI 上的规则实现状态

您可以查看 DFW 和网关防火墙策略的规则实现状态,方法是导航到安全 > 分布式防火墙安全网关防火墙,然后检查传输节点报告的规则实现状态。

共有 4 个可能的规则实现状态值:
  • 成功
  • 错误
  • 正在进行中
  • 未知

通过 API 的规则实现状态

如果在相关节点上创建和实施了规则,可以通过以下 Policy Manager API 检查实现状态。

在 NSX 4.1.1 中,出现了两个新字段:
  • publish_time - 跟踪发布状态的更新时间。每当更新意向时,状态跟踪器会在将发布状态推送到传输节点后对其进行修改。由于此操作基于轮询机制,因此这不是在数据路径上发布意向的准确时间。值 -1 表示发布仍在进行中,或者运行时状态为“未知”且不可用。如果一个或多个主机已关闭,且无法将规则发送到这些主机,则运行时状态可能为“未知”。主机启动后,运行时状态将更改为“成功”,但 publish_time 将显示上次实现时间的值。如果此后进行了任何新的配置更改,则会开始反映 publish_time 的正确值。
  • time_taken_for_realization - 实现数据路径意向的大致时间。实际花费的时间可能少于此处报告的时间。值 -1 表示发布仍在进行中,或者运行时状态为“未知”且因此不可用。如果一个或多个主机已关闭,且无法将规则发送到这些主机,则运行时状态可能为“未知”。主机启动时,运行时状态将更改为“成功”,但 time_taken_for_realization 将显示上次实现时间的值。如果此后进行了任何新的配置更改,则会开始反映 time_taken_for_realization 的正确值。
例如:
"publish_status": "REALIZED",
    "publish_time":  1668599137109, <====================== Newly added
    "time_taken_for_realization": 1563 <============ in milliseconds 
    "intent_version": "1"

要检查在 Policy Manager 中创建的所有实体的实现状态,请运行以下命令:GET: https://<Policy Appliance IP>/policy/api/v1/infra/realized-state/realized-entities。对象的实现状态应该为“REALIZED”,“runtime_status”应该为“SUCCESS”。

例如,在 Policy Manager 级别检查安全策略的 <e2d4c010-96c8-11e9-8c0a-f7581ab92530> 实现状态的查询为 GET https://10.172.121.219/policy/api/v1/infra/realized-state/realized-entities?intent_path=/infra/domains/default/security-policies/f96f27c0-92b8-11e9-96af-b5e746a259e7/rules/e2d4c010-96c8-11e9-8c0a-f7581ab92530

{
"results": [
{
"extended_attributes": [],
"entity_type": "RealizedFirewallRule",
"intent_paths": [
"/infra/domains/default/security-policies/1-communication-560"
],
"resource_type": "GenericPolicyRealizedResource",
"id": "default.1-communication-560.3-communication-110",
"display_name": "default.1-communication-560.3-communication-110",
"description": "default.1-communication-560.3-communication-110",
"path": "/infra/realized-state/enforcement-points/default/firewalls/firewall-sections/default.1-communication-560/firewall-rules/default.1-communication-560.3-communication-110",
"relative_path": "default.1-communication-560.3-communication-110",
"parent_path": "/infra/realized-state/enforcement-points/default/firewalls/firewall-sections/default.1-communication-560",
"intent_reference": [],
"realization_specific_identifier": "1028",
"state": "REALIZED",  
"alarms": [],
"runtime_status": "IN_PROGRESS",
"_create_user": "system",
"_create_time": 1561673625030,
"_last_modified_user": "system",
"_last_modified_time": 1561674044534,
"_system_owned": false,
"_protection": "NOT_PROTECTED",
"_revision": 6
}
],
"result_count": 1
}

要在 Hypervisor 上检查每个规则的某个部分的总体实现状态,请运行以下命令:GET https://<policy-mgr>/policy/api/v1/infra/realized-state/status?include_enforced_status=true&intent_path=<Security_policy_path>

共有 4 个可能的合并状态值:
  • 成功
  • 错误
  • 正在进行中
  • 未知
表 1. 合并状态
传输节点 1 总体状态 传输节点 2 总体状态 合并状态
ERROR ERROR ERROR
ERROR IN_PROGRESS ERROR
ERROR UNKNOWN ERROR
IN_PROGRESS IN_PROGRESS IN_PROGRESS
IN_PROGRESS UNKNOWN IN_PROGRESS
SUCCESS SUCCESS SUCCESS
SUCCESS ERROR ERROR
SUCCESS IN_PROGRESS IN_PROGRESS
SUCCESS UNKNOWN UNKNOWN
UNKNOWN UNKNOWN UNKNOWN