Chapter 1. 为公共云中的 Threat Defense Virtual

通过集群，您可以将多台 Threat Defense Virtual 组合成一个逻辑设备。集群具有单个设备的全部便捷性（管理、集成到一个网络中），同时还能实现吞吐量增加和多个设备的冗余性。使用以下公共云频台，您可以在公共云中部署 Threat Defense Virtual 集群：

- Amazon Web Services (AWS)

- Microsoft Azure

- Google 云平台 (GCP)

目前仅支持路由防火墙模式。

注

使用集群时，有些功能不受支持。请参阅不支持的功能和集群。

- 关于公共云中的 Threat Defense Virtual 群集

- Threat Defense Virtual 集群的许可证

- Threat Defense Virtual 集群的要求和前提条件

- Threat Defense Virtual 集群的准则

- 在 AWS 中部署集群

- 在 Azure 中部署集群

- 在 GCP 中部署集群

- 将集群添加到管理中心（手动部署）

- 配置集群运行状况监控设置

- 管理集群节点

- 监控集群

- 对集群进行故障排除

- 升级集群

- 集群参考

- 关于公共云中的 Threat Defense Virtual 集群的历史记录

关于公共云中的 Threat Defense Virtual 群集

本节介绍集群架构及其工作原理。

- 集群如何融入网络中

- 单个接口

- 控制和数据节点角色

- 集群控制链路

- 配置复制

- 管理网络

集群如何融入网络中

集群包含多台防火墙，作为单一设备工作。要用作集群，该防火墙需要以下基础设施：

- 独立的网络（称为集群控制链路），通过 VXLAN 接口用于集群内的通信。VXLAN 充当第 3 层物理网络上的第 2 层虚拟网络，让 Threat Defense Virtual 能够通过集群控制链路发送广播/组播消息。

- 负载均衡器 - 对于外部负载均衡，您有以下选择（具体取决于公共云）：

- AWS 网关负载均衡器

AWS 网关负载均衡器结合了透明网络网关和按需分配流量和扩展虚拟设备的负载均衡器。Threat Defense Virtual 支持使用 Geneve 接口单臂代理且具有分布式数据平面的网关负载均衡器集中控制平面（网关负载均衡器终端）。

- Azure 网关负载均衡器

在 Azure 服务链中， Threat Defense Virtual充当可以拦截互联网和客户服务之间的数据包的透明网关。 Threat Defense Virtual 通过已配对代理中的 VXLAN 网段在单个 NIC 上定义外部接口和内部接口。

- 本地 GCP 负载均衡器，内部和外部

- 使用内部和外部路由器（例如思科云服务路由器）的等价多路径路由 (ECMP)

ECMP 路由可以通过路由指标并列最优的多条“最佳路径”转发数据包。它与 EtherChannel 一样，也可以使用源和目标 IP 地址及/或源和目标端口的散列值将数据包发送到下一跃点。如果将静态路由用于 ECMP 路由，则 威胁防御 故障会导致问题；如果继续使用该路由，发往故障 威胁防御 的流量将丢失。因此，如果使用静态路由，请务必要使用静态路由监控功能，例如对象跟踪。我们还建议使用动态路由协议来添加和删除路由，在这种情况下，您必须配置每台 威胁防御 使之加入动态路由。

注

负载均衡不支持第 2 层跨区以太网通道。

单个接口

您可以将集群接口配置为独立接口。

独立接口是正常的路由接口，每个接口都有自己的本地 IP 地址。必须仅在控制节点上配置接口配置，并且每个接口都要使用 DHCP。

注

不支持第 2 层跨区以太网通道。

控制和数据节点角色

一个集群成员是控制节点。如果多个集群节点同时上线，则控制节点由中的优先级设置决定；优先级可设置为 1 到 100，其中 1 为最高优先级。所有其他成员都是数据节点。 首次创建集群时，您可以指定要成为控制节点的节点，因为它是添加到集群的第一个节点，所以它将成为控制节点。

集群中的所有节点共享同一个配置。您最初指定为控制节点的节点将在数据节点加入集群时覆盖数据节点上的配置，因此您只需在形成集群之前在控制节点上执行初始配置。

有些功能在集群中无法扩展，控制节点将处理这些功能的所有流量。

集群控制链路

每个节点必须将一个接口作为集群控制链路的 VXLAN (VTEP) 接口。

VXLAN 隧道端点

VXLAN 隧道终端 (VTEP) 设备执行 VXLAN 封装和解封。每个 VTEP 有两种接口类型：一个或多个虚拟接口称为 VXLAN 网络标识符 (VNI) 接口；以及称为 VTEP 源接口的常规接口，用于为 VTEP 之间的 VNI 接口建立隧道。VTEP 源接口连接到传输 IP 网络，进行 VTEP 至 VTEP 通信。

VTEP 源接口

VTEP 源接口是一个计划要将其与 VNI 接口相关联的常规threat defense virtual 接口。您可以将一个 VTEP 源接口配置为集群控制链路。源接口会被保留，以便仅供集群控制链路使用。每个 VTEP 源接口在同一子网上都有一个 IP 地址。此子网应与所有其他流量隔离，并且只包括集群控制链路接口。

VNI 接口

VNI 接口类似于 VLAN 接口：它是一个虚拟接口，通过使用标记，实现网络流量在给定物理接口上的分离。您只能配置一个 VNI 接口。每个 VNI 接口在同一子网上都有一个 IP 地址。

对等体 VTEP

与数据接口的常规 VXLAN 只允许单个 VTEP 对等体不同，threat defense virtual 集群允许您配置多个对等体。

- 集群控制链路流量概述

集群控制链路流量概述

集群控制链路流量包括控制流量和数据流量。

控制流量包括：

- 控制节点选举。

- 配置复制。

- 运行状况监控。

数据流量包括：

- 状态复制。

- 连接所有权查询和数据包转发。

配置复制

集群中的所有节点共享一个配置。您只能在控制节点上进行配置更改（引导程序配置除外），这些更改会自动同步到集群中的所有其他节点。

管理网络

您必须使用管理接口来管理每个节点；集群不支持从数据接口进行管理。

Threat Defense Virtual 集群的许可证

每个 threat defense virtual 集群节点都需要相同的性能层许可证。我们建议为所有成员使用相同数量的 CPU 和内存，否则将限制所有节点上的性能，以匹配功能最低的成员。吞吐量级别将从控制节点复制到每个数据节点，以便它们匹配。

您可以将功能许可证分配到整个集群，而不是单个节点。但是，对于每个功能，集群中的每个节点都会使用一个单独的许可证。集群功能本身不需要任何许可证。

在将控制节点添加到 管理中心时，您可以指定要用于该集群的功能许可证。您可以在 设备 > 设备管理 > 集群 > 许可证 区域中修改集群的许可证。

注

如果在 管理中心 获得许可（并在评估模式下运行）之前添加了集群，当您许可 管理中心 时，会在将策略更改部署到集群时遇到流量中断的情况。更改为许可模式会导致所有数据单元先退出集群，然后重新加入。

Threat Defense Virtual 集群的要求和前提条件

型号要求

- FTDv5, FTDv10, FTDv20, FTDv30, FTDv50, FTDv100

注

FTDv5 和 FTDv10 不支持 Amazon Web 服务 (AWS) 网关负载均衡器。

- 以下公共云服务：

- Amazon Web Services (AWS)

- Microsoft Azure

- Google 云平台 (GCP)

- 最多 16 个节点

另请参阅 Cisco Secure Firewall Threat Defense Virtual 入门指南中的 Threat Defense Virtual 一般要求。

用户角色

- 管理员

- 访问管理员

- 网络管理员

硬件和软件要求

集群中的所有设备：

- 必须在同一个性能层。我们建议对所有节点都使用相同数量的 CPU 和内存，否则所有节点上的性能将受到限制，以匹配性能最低的节点。

- 必须从管理接口访问 管理中心；不支持数据接口管理。

- 除在映像升级时以外，必须运行完全相同的软件。支持无中断升级。

- 集群中的所有设备都必须部署在同一可用性区域中。

- 所有设备的集群控制链路接口必须位于同一子网中。

MTU

确保连接到集群控制链路的端口配置了正确（更高）的 MTU。如果存在不匹配的 MTU，则集群形成将失败。默认情况下，集群控制链路 MTU 会被设置为比数据接口高 154 字节。由于集群控制链路流量包括数据包转发，因此集群控制链路需要能够容纳完整大小的数据包以及集群流量开销（100 字节）加上 VXLAN 开销（54 字节）。

对于具有 GWLB 的 AWS，数据接口使用 Geneve 封装。在这种情况下，整个以太网数据报将被封装，因此，新数据包更大，需要更大的 MTU。您应将源接口 MTU 设置为网络 MTU + 306 字节。因此，对于标准的 1500 MTU 网络路径，源接口 MTU 应为 1806，而集群控制链路 MTU 应为 +154, 1960。

对于具有 GWLB 的 Azure，数据接口使用 VXLAN 封装。在这种情况下，整个以太网数据报将被封装，因此，新数据包更大，需要更大的 MTU。您应将集群控制链路 MTU 设置为源接口 MTU + 80 字节。

下表显示了集群控制链路 MTU 和数据接口 MTU 的默认值。

注

我们不建议将集群控制链路 MTU 设置为介于 2561 和 8362 之间的值；由于块池处理，此 MTU 大小不是系统运行的最佳值。

默认 MTU

公共云

集群控制链路 MTU

数据接口 MTU

具有 GWLB 的 AWS

1980 年

1826

AWS

1654

1500

具有 GWLB 的 Azure

1454

1374

Azure

1454

1300

GCP

1554

1400

Threat Defense Virtual 集群的准则

高可用性

集群不支持高可用性。

IPv6

集群控制链路只有在使用 IPv4 时才受支持。

其他准则

- 当拓扑发生重大更改时（例如添加或删除 EtherChannel 接口、启用或禁用 威胁防御或交换机上的接口、添加其他交换机以形成 VSS 或 vPC），应禁用运行状况检查功能，另外还应为禁用的接口禁用接口监控。当拓扑更改完成且配置更改已同步到所有设备后，您可以重新启用接口运行状态检查功能。

- 将节点添加到现有集群时或重新加载节点时，会有限地暂时丢弃数据包/断开连接；这是预期的行为。有些时候，丢弃的数据包会挂起连接；例如，丢弃 FTP 连接的 FIN/ACK 数据包将使 FTP 客户端挂起。在此情况下，您需要重新建立 FTP 连接。

- 请勿在节点上禁用集群之前关闭该节点。

- 对于解密的 TLS/SSL 连接，解密状态不同步，如果连接所有者失败，则解密的连接将重置。需要与新节点建立新的连接。未解密的连接（它们匹配“不解密”规则）不受影响，并且可以正确复制。

- 不支持动态扩展。

- 如果您使用的是安全防火墙版本 7.2 或 7.3，则在 AWS 上部署集群时不支持状态目标故障切换。

- 在每个维护窗口完成后执行全局部署。

- 确保不要一次从自动扩展组 (AWS)/实例组 (GCP) /规模集 (Azure)中删除多个设备。我们还建议您先在设备上运行 cluster disable 命令，然后再从组东扩展组 (AWS) / 实例组 (GCP) / 规模集(Azure)中删除设备。

- 如果要禁用集群中的数据节点和控制节点，我们建议您在禁用控制节点之前先禁用数据节点。如果在集群中有其他数据节点时禁用了某个控制节点，则必须将其中一个数据节点升级为控制节点。请注意，角色更改可能会对集群造成干扰。

- 在本指南中提供的自定义 Day 0 配置脚本中，您可以根据需要更改 IP 地址，提供自定义接口名称，并更改 CCL-Link 接口的顺序。

- 如果在云平台上部署 Threat Defense Virtual 集群后遇到 CCL 不稳定问题（例如间歇性 ping 失败），我们建议您解决导致 CCL 不稳定的原因。此外，您可以增加保持时间，作为在一定程度上缓解 CCL 不稳定问题的临时解决方法。有关如何更改保持时间的详细信息，请参阅 编辑集群运行状况监控设置。

- 为管理中心虚拟配置安全防火墙规则或安全组时，必须在源 IP 地址范围中包括 Threat Defense Virtual 的专用和公共 IP 地址。此外，请确保在 Threat Defense Virtual的安全防火墙规则或安全组中指定 Management Center Virtual 的专用和公共 IP 地址。这对于确保在集群部署期间正确注册节点非常重要。

集群默认设置

- 将自动生成 cLACP 系统 ID 且系统优先级默认为 1。

- 默认情况下，集群运行状况检查功能处于启用状态，保持时间为 3 秒。默认情况下，在所有接口上启用接口运行状况监控。

- 用于发生故障的集群控制链路的集群自动重新加入功能为每 5 分钟尝试无限次。

- 用于发生故障的数据接口的集群自动重新加入功能为每 5 分钟尝试 3 次，增量间隔设置为 2。

- 对于 HTTP 流量，默认启用 5 秒的连接复制延迟。

在 AWS 中部署集群

要在 AWS 中部署集群，您可以手动部署或使用 CloudFormation 模板来部署堆栈。您可以将集群与 AWS 网关负载均衡器或非本地负载均衡器（例如思科云服务路由器）配合使用。

- AWS 网关负载均衡器和 Geneve 单臂代理

- 拓扑示例

- 在 AWS 上部署 Threat Defense Virtual 集群的端到端流程

- 模板

- 使用 CloudFormation 模板在 AWS 中部署堆栈

- 在 AWS 中手动部署集群

- 在 AWS 中使用 GWLB 配置 Cisco Secure Firewall Threat Defense Virtual 集群的目标故障转移

- 在 AWS 中启用 Cisco Secure Firewall Threat Defense Virtual 集群的目标故障转移

AWS 网关负载均衡器和 Geneve 单臂代理

注

这是 Geneve 接口当前唯一支持的使用案例。

AWS 网关负载均衡器结合了透明网络网关和按需分配流量和扩展虚拟设备的负载均衡器。Threat Defense Virtual 支持具有分布式数据平面的网关负载均衡器集中控制平面（网关负载均衡器终端）。下图显示了从网关负载均衡器终端转发到网关负载均衡器的流量。网关负载均衡器会在多个 Threat Defense Virtual 流量之间进行均衡 ，这些流量在丢弃流量或将其发送回网关负载均衡器之前对其进行检查（掉头流量）。然后，网关负载均衡器会将流量发送回网关负载均衡器终端和目的地。

注

AWS 上的 Geneve 单臂设置不支持传输层安全 (TLS) 服务器身份发现。

Geneve 单臂代理

拓扑示例

Threat Defense Virtual 在 AWS 区域的单个和多个可用性区域中使用自动缩放进行集群

可用性区域是指一个 AWS 区域内独立运行的独立数据中心或一组独立数据中心。每个区域都有自己的网络基础设施、连接和电源，从而确保一个区域的故障不会影响到其他区域。为了提高冗余和可靠性，公司在灾难恢复计划中使用多个可用性区域。

跨多个可用性区域部署 Threat Defense Virtual 并配置支持动态扩展的集群可以显着增强基础设施的可用性和可扩展性。此外，在同一区域利用多个可用性区域可以提供额外的冗余，并在发生故障时保证高可用性。

您可以修改集群控制链路 (CCL) 的 IP 分配机制，以支持 AWS 上 Threat Defense Virtual 群集的单可用性区域和多可用性区域部署。下面给出的拓扑结构描述了具有自动扩展能力的单个和多个可用性区域中的入站和出站流量。

Threat Defense Virtual 在单个可用性区域中使用自动缩放进行集群

集群中有两个连接到 GWLB 的 Threat Defense Virtual 实例。

来自互联网的入站流量会进入 GWLB 端点，然后由端点将流量传输到 GWLB。然后，流量被转发到 Threat Defense Virtual 集群。集群中的 Threat Defense Virtual 实例检测到流量后，将其转发到应用虚拟机 App1。

来自 App1 的出站流量将传输到 GWLB 终端 > GWLB > TDv > GWLB > GWLB 终端，然后由 GWLB 终端发送到互联网。

Threat Defense Virtual 在多个可用性区域中使用自动缩放进行集群

集群中有两个 Threat Defense Virtual 实例连接到 GWLB，它们位于不同的可用性区域。

注

从 Threat Defense Virtual 版本 7.6.0 及更高版本开始支持多可用性区域部署。

来自互联网的入站流量会进入 GWLB 端点，然后由端点将流量传输到 GWLB。然后，根据可用性区域将流量路由到 Threat Defense Virtual 集群。集群中的 Threat Defense Virtual 实例检测到流量后，将其转发到应用虚拟机 App1。

在 AWS 上部署 Threat Defense Virtual 集群的端到端流程

基于模板的部署

以下流程图说明了在 AWS 上基于模板部署 Threat Defense Virtual 集群的工作流程。

工作空间

步骤

本地主机

从 Github 克隆存储库

本地主机

修改 infrastructure.yaml 和 deploy_ngfw_cluster.yaml 模板。

本地主机

使用 FMC 对象名称更新 Configuration.json 文件。

Linux 主机

创建 cluster_layer.zip 文件。

本地主机

将 cluster_layer.zip 文件复制到 Lambda python files 文件夹。

本地主机

创建 cluster_manager.zip、custom_metrics_publisher.zip 和 cluster_lifecycle.zip 文件。

本地主机

从 Python 文件为 Lambda 函数构建 zip 文件，并复制到目标文件夹。

AWS 控制台

部署 Infrastructure.yaml 模板。

AWS 控制台

将 cluster_layer.zip、cluster_lifecycle.zip、custom_metrics_publisher.zip 和 cluster_manager.zip 上传到 S3 存储桶。

AWS 控制台

部署 deploy_ngfw_cluster.yaml 模板。

AWS 控制台

登录并验证集群部署。

手动部署

以下流程图说明了在 AWS 上手动部署 Threat Defense Virtual 集群的工作流程。

工作空间

步骤

本地主机

创建 Day 0 配置脚本。

AWS 控制台

部署 Threat Defense Virtual 实例。

AWS 控制台

将接口连接到实例。

AWS 控制台

验证节点是否已加入集群。

AWS 控制台

创建目标组和 GWLB；将目标组附加到 GWLB。

AWS 控制台

使用数据接口 IP 向目标组注册实例。

管理中心

注册控制节点。

模板

以下提供的模板可在 GitHub 中获取。参数值一目了然，包括模板中给出的参数名称、默认值、允许值和说明。

- Infrastructure.yaml - 基础设施部署模板。

- deploy_ngfw_cluster.yaml - 用于集群部署的模板。

注

在部署集群节点之前，请确保检查支持的 AWS 实例类型列表。此列表可在 deploy_ngfw_cluster.yaml 模板中的参数 InstanceType 的允许值下找到。

使用 CloudFormation 模板在 AWS 中部署堆栈

使用自定义 CloudFormation 模板在 AWS 中部署堆栈。

开始之前

- 您需要安装了 Python 3 的 Amazon Linux 虚拟机。

- 要允许集群自动注册到 管理中心，您需要在 管理中心 上创建两个具有管理权限且可以使用 REST API 的用户。请参阅《Cisco Secure Firewall Management Center 管理指南》。

- 在 管理中心 中添加与您在 Configuration.json 中指定的策略名称匹配的访问策略。

过程

步骤 1

准备模板。

1. 将 GitHub 存储库克隆到本地文件夹。请参阅https://github.com/CiscoDevNet/cisco-ftdv/tree/master/cluster/aws。

2. 使用所需的参数修改 infrastructure.yaml 和 deploy_ngfw_cluster.yaml。

3. 使用初始设置修改 cluster/aws/lambda-python-files/Configuration.json。

例如：

{
"licenseCaps": ["BASE", "MALWARE", "THREAT"],
"performanceTier": "FTDv50",
"fmcIpforDeviceReg": "DONTRESOLVE",
"RegistrationId": "cisco",
"NatId": "cisco",
"fmcAccessPolicyName": "AWS-ACL"
}

- 将 fmcIpforDeviceReg 设置保留为 DONTRESOLVE。

- fmcAccessPolicyName 需要与 管理中心 上的访问策略匹配。

注

不支持 FTDv5 和 FTDv10 层。

4. 创建名为 cluster_layer.zip 的文件，为 Lambda 函数提供必要的 Python 库。

我们建议使用安装了 Python 3.9 的 Amazon Linux 创建 cluster_layer.zip 文件。

注

如果您需要 Amazon Linux 环境，可以使用 Amazon Linux 2023 AMI 或运行最新版本的 Amazon Linux 的 AWS Cloudshell 创建 EC2 实例。

要创建 cluster-layer.zip 文件，您需要先创建包含 python 库软件包详细信息的 requirements.txt 文件，然后运行 shell 脚本。

1. 通过指定 python 软件包详细信息来创建 requirements.txt 文件。

以下是您在 requirements.txt 文件中提供的示例软件包详细信息：

$ cat requirements.txt
pycryptodome
paramiko
requests
scp
jsonschema
cffi
zipp
importlib-metadata

2. 运行以下 shell 脚本以创建 cluster_layer.zip文件。

$ pip3 install --platform manylinux2014_x86_64
--target=./python/lib/python3.9/site-packages
--implementation cp --python-version 3.9 --only-binary=:all:
--upgrade -r requirements.txt
$ zip -r cluster_layer.zip ./python

注

如果在安装期间遇到依赖项冲突错误（例如 urllib3 或加密），建议您在 requirements.txt 文件中包含冲突软件包及其建议版本。之后，您可以再次运行安装来解决冲突。

5. 将生成的 cluster_layer.zip 文件复制到 lambda python files 文件夹 - cluster/aws/lambda-python-files。

6. 创建 cluster_layer.zip、custom_metrics_publisher.zip、 cluster_manger.zip 和 lifecycle_ftdv.zip 文件。

可以在克隆存储库 (cluster/aws/make.py) 中找到 make.py 文件。这样会将 python 文件压缩为 Zip 文件并复制到目标文件夹。

python3 make.py build

步骤 2

部署 Infrastructure.yaml 并记下集群部署的输出值。 在部署基础设施堆栈之前，必须确定将使用的 AWS 区域和可用性区域。每个 AWS 区域都有一组不同的可用性区域和 VPC 基础设施，因此必须为部署选择正确的区域和可用性区域。

1. 在 AWS 控制台上，转到 CloudFormation 并点击创建堆栈 (Create stack)；选择使用新资源（标准）(With new resources [standard])。

2. 选择上传模板文件 (Upload a template file)，点击选择文件 (Choose file)，然后从目标文件夹中选择 infrastructure.yaml。

3. 点击下一步 (Next) 并提供所需的信息。

4. 为集群输入唯一的集群名称和集群编号。

5. 从可用性区域 (Availability Zone) 列表中选择可用性区域。此字段仅列出基于 AWS 区域的可用性区域，您选择该区域是为了使用 ClusterFormation 模板部署基础设施堆栈。

6. 点击下一步 (Next)，然后点击创建堆栈 (Create stack)。

7. 在部署完成后，转到输出 (Outputs) 并记下 S3 BucketName。

infrastructure.yaml 的输出

步骤 3

将 cluster_layer.zip、cluster_manager.zip、custom_metrics_publisher.zip 和 cluster_lifecycle.zip 上传到由 infrastructure.yaml 创建的 S3 存储桶。

S3 桶

步骤 4

部署 deploy_ngfw_cluster.yaml。

1. 转到 CloudFormation 并点击创建堆栈 (Create stack)；选择使用新资源（标准）(With new resources [standard])。

2. 选择上传模板文件 (Upload a template file)，点击选择文件 (Choose file)，然后从目标文件夹中选择 deploy_ngfw_cluster.yaml。

3. 点击下一步 (Next) 并提供所需的信息。

4. 提供以下集群和基础设施配置信息。

参数

允许的值/类型

说明

集群配置

ClusterGrpNamePrefix

字符串

这是集群名称前缀。集群编号将作为后缀添加。

ClusterNumber

字符串

这是集群编号。这将作为集群名称的后缀 (msa-ftdv-infra)。例如，如果此值为 1，则组名称将为 msa-ftdv-infra-1。

它应至少为 1 个数字，但不超过 3 个数字。默认值：1。

集群大小

数字

这是集群中 Threat Defense Virtual 节点的总数。

最小值：1

最大值：16

基础设施详细信息

NoOfAZs

字符串

这是部署 Threat Defense Virtual 的可用性区域总数。（根据地区的不同，可用性区域的数量从最少 1 个到最多 3 个不等）。

子网将在这些可用性区域内创建。

此列表中可用的可用性区域基于为部署集群而选择的区域。

注

根据此参数在三个可用性区域中创建管理、内部和集群控制链路 (CCL) 子网。

AZ

字符串

可用性区域列表基于您计划部署的区域。

在可用性区域列表中，选择有效的可用性区域（1 个或 2 个可用性区域或 3 个可用性区域）。

计数应与可用性区域数量参数的值匹配。

NotifyEmailID

字符串

集群事件邮件将发送到的邮件地址。您必须接受订用电子邮件请求，才能收到此电子邮件通知。

示例：admin@company.com

VpcId

字符串

集群组的 VPC ID。

类型：AWS::EC2::VPC::Id

S3BktName

字符串

包含已上传的 Lambda zip 文件的 S3 存储桶。您必须指定正确的存储桶名称。

MgmtSubnetIds

名单

每个可用性区域只能输入一个子网。

如果从同一可用性区域选择多个子网，则选择不正确的子网可能会导致部署 Threat Defense Virtual 实例时出现问题。

类型：List<AWS::EC2::Subnet::Id>

InsideSubnetIds

名单

为每个可用性区域至少输入一个子网。

如果选择来自同一可用性区域的多个子网，则选择不正确的子网可能会导致部署 Threat Defense Virtual 实例时出现问题。

类型：List<AWS::EC2::Subnet::Id>

LambdaSubnets

列表

为 Lambda 函数输入至少两个子网。您输入的两个子网必须具有 NAT 网关，以使 Lambda 函数能够与 AWS 服务（即公共 DNS）通信。

类型：List<AWS::EC2::Subnet::Id>

CCLSubnetIds

字符串

为每个可用性区域至少输入一个子网。

如果选择来自同一可用性区域的多个子网，则选择不正确的子网可能会导致部署 Threat Defense Virtual 实例时出现问题。

类型：List<AWS::EC2::Subnet::Id>

CCLSubnetRanges

字符串

输入不同可用性区域的 CCL 子网的 IP 地址范围。

排除前 4 个保留的 IP 地址。集群控制链路 (CCL) 的 IP 地址池。

IP 地址从 CCL IP 地址池分配给 Threat Defense Virtual 实例的 CCL 接口。

MgmtInterfaceSG

名单

为 Threat Defense Virtual 实例选择安全组 ID。

类型：List<AWS::EC2::SecurityGroup::Id>

InsideInterfaceSG

名单

为 Threat Defense Virtual 实例的内部接口选择安全组 ID。

类型：List<AWS::EC2::SecurityGroup::Id>

LambdaSG

列表

为 Lambda 函数选择一个安全组。

确保出站连接设置为 ANYWHERE。

类型：List<AWS::EC2::SecurityGroup::Id>

CCLInterfaceSG

名单

为 Threat Defense Virtual 实例的 CCL 接口选择安全组 ID。

GWLB 配置

DeployGWLBE

字符串

点击是 (Yes) 部署 GWLB 端点。

默认情况下，该值设置为否 (No)。

VpcIdLBE

字符串

输入 VPC 以部署网关负载均衡器终端。

注

如果不部署 GWLB 终端，请不要在此字段中输入任何值。

GWLBESubnetId

字符串

仅输入一个子网 ID。

注

如果不部署 GWLB 终端，请不要在此字段中输入任何值。

确保子网属于正确的 VPC 以及您指定的可用性区域。

TargetFailover

字符串

当目标发生故障或取消注册时，启用目标故障切换支持。（默认情况下，此参数的值设置为 rebalance）。

- no_rebalance：将现有流量导向故障目标，将新流量导向健康目标，从而确保向后兼容性。

- rebalance：重新分配现有流量，同时确保新流量流向正常运行的目标。

从 Threat Defense Virtual 版本7.4.1 及更高版本开始支持 rebalance。

TgHealthPort

字符串

输入 GWLB 的运行状况检查端口。

注

默认情况下，此端口不得用于流量。

确保您提供的值是有效的 TCP 端口。默认值：8080

思科 NGFWv 实例配置

InstanceType

字符串

思科 Threat Defense Virtual EC2 实例类型。

确保 AWS 区域支持您选择的实例类型。

默认情况下，c5.xlarge 处于选中状态。

LicenseType

字符串

选择思科 Threat Defense Virtual EC2 实例许可证类型。确保您在 AMI-ID 参数中输入的 AMI ID 的许可类型相同。

默认情况下，选择 BYOL。

AssignPublicIP

字符串

将该值设置为 true 可从 AWS IP 地址池为 Threat Defense Virtual 分配公共 IP 地址。

AmiID

字符串

根据地区、版本和许可证类型（BYOL 或 PAYG）选择正确的 AMI ID。

Threat Defense Virtual 7.2 及更高版本支持集群，Threat Defense Virtual 7.6 及更高版本支持自动缩放和多个可用性区域增强功能。

类型：AWS::EC2::Image::Id

ngfwPassword

字符串

Threat Defense Virtual 实例密码。

所有 Threat Defense Virtual 实例都提供一个默认密码，该密码位于启动模板（集群组）的 Userdata 字段中。

密码将在 Threat Defense Virtual 可访问后激活。

最小长度必须为 8 个字符。密码可以是纯文本密码，也可以是 KMS 加密密码。

KmsArn

字符串

输入现有 KMS（用于静态加密的 AWS KMS 密钥）的 ARN。

如果在此字段中指定值，则 Threat Defense Virtual 实例的管理员密码必须是加密密码。

生成加密密码示例：“aws kms encrypt --key-id <KMS ARN> --plaintext <password>”

密码加密必须仅使用指定的 ARN 进行。

FMC 自动化配置

fmcDeviceGrpName

字符串

在管理中心中输入集群组的唯一名称。

fmcPublishMetrics

字符串

选择 true 以创建 Lambda 函数以轮询管理中心，并将特定设备组指标发布到 AWS CloudWatch。

允许的值：

- true

- false

默认情况下，该值设置为 true。

fmcMetricsUsername

字符串

输入用于从管理中心轮询内存指标的唯一内部用户名。

用户必须具有网络管理员和维护用户权限或更高权限。

fmcMetricsPassword

字符串

输入密码。

如果您提到了 KMS 主密钥 ARN 参数，请确保提供加密密码。

确保输入正确的密码，因为输入错误的密码可能会导致指标收集失败。

fmcServer

字符串

IP 地址可以是外部 IP 地址，也可以是在 VPC 的 Threat Defense Virtual 管理子网中可访问的 IP 地址。

最小长度：7

最大长度：15

fmcOperationsUsername

字符串

为 CloudWatch 的 Management Center Virtual 提供唯一的内部用户名。

用户必须拥有管理员权限。

fmcOperationsPassword

字符串

输入密码。

如果您提到了 KMS 主密钥 ARN 参数，请确保提供加密密码。

扩展配置

CpuThresholds

CommaDelimitedList

（可选）指定非零的下阈值和上阈值将创建比例策略。如果选择 (0,0)，则不会创建 CPU 扩展警报或策略。评估点和数据点采用默认值或建议值。

默认情况下，此模板中启用自动缩放。部署后可以禁用自动缩放。

MemoryThresholds

CommaDelimitedList

指定非零下限和上限阈值将创建扩展策略。如果选择 (0,0)，则不会创建内存扩展警报或策略。评估点和数据点采用默认值或建议值。

5. 点击下一步。

6. 点击以确认所有 AWS CloudFormation 选项。

7. 点击提交 (Submit) 以部署集群。

8. 点击下一步 (Next)，然后点击创建堆栈 (Create stack)。

Lambda 函数将管理该过程的其余部分，并且 threat defense virtual 将自动注册到 管理中心。

已部署的资源

状态从 CREATE_IN_PROGRESS 更改为 CREATE COMPLETE ，表示部署成功。

步骤 5

通过登录到任何一个节点并使用 show cluster info 命令来验证集群部署。

集群节点

show cluster info

- 自动缩放参数配置

- 通过更新堆叠在 Threat Defense Virtual 集群中配置所需的 IMDSv2 模式

自动缩放参数配置

部署完成后，必须指定 Threat Defense Virtual Autoscale 组的最小 (Minimum)、最大 (Maximum) 和期望 (Desired) 容量。您必须验证自动缩放功能。

过程

步骤 1

在 AWS 控制台中，依次选择 服务 (Services) > EC2 > 自动扩展组 (Auto Scaling groups) > 已创建 ClusterAutoscale 组 (Created ClusterAutoscale group)。

步骤 2

选中自动缩放组复选框。

步骤 3

点击操作 (Actions) 以编辑自动扩展组容量。

步骤 4

配置所需容量 (Desired capacity)，然后设置扩展限制 (Scaling limits) 容量。

步骤 5

在 AWS Cloudwatch 警报中检查 CPU 和内存指标数据是否可用，缩放是否按预期进行。

通过更新堆叠在 Threat Defense Virtual 集群中配置所需的 IMDSv2 模式

您可以为 AWS 上已部署的 Threat Defense Virtual 个自动缩放组实例配置 IMDSv2 必需模式。

Before you begin

仅 Threat Defense Virtual 版本 7.6 及更高版本支持 IMDSv2 必需模式。在为部署配置 IMDSv2 模式之前，您必须确保现有实例版本与 IMDSv2 模式兼容（升级到版本 7.6）。

Procedure

Step 1

在 AWS 控制台上，转到 CloudFormation ，然后点击 堆栈。

Step 2

选择初始部署的集群实例的堆栈。

Step 3

点击更新。

Step 4

在 更新堆栈 页面上，点击 替换现有模板。

Step 5

在 指定模板 部分下，点击 上传模板文件。

Step 6

选择并上传支持 IMDSv2 的模板。

Step 7

为模板中的输入参数提供值。

Step 8

更新堆栈。

在 AWS 中手动部署集群

要手动部署集群，请准备 day 0 配置，部署每个节点，然后将控制节点添加到 管理中心。

- 创建 AWS 的 Day0 配置

- 部署集群节点

创建 AWS 的 Day0 配置

您可以使用固定配置或自定义配置。我们建议使用固定配置。

- 使用 AWS 的固定配置创建 Day0 配置

使用 AWS 的固定配置创建 Day0 配置

固定配置将自动生成集群引导程序配置。

单个可用性区域 - 第 0 天配置与 AWS 的固定配置

{
"AdminPassword": "password",
"Hostname": "hostname",
"FirewallMode": "Routed",
"ManageLocally": "No",
"Cluster": {
"CclSubnetRange": "ip_address_start ip_address_end",
"ClusterGroupName": "cluster_name",
[For Gateway Load Balancer] "Geneve": "{Yes | No}",
[For Gateway Load Balancer] "HealthProbePort": "port"
}
}

例如：

{
"AdminPassword": "Sup3rnatural",
"Hostname": "ciscoftdv",
"FirewallMode": "Routed",
"ManageLocally": "No",
"Cluster": {
"CclSubnetRange": "10.5.90.4 10.5.90.30",
"ClusterGroupName": "ftdv-cluster",
"Geneve": "Yes",
"HealthProbePort": "7777"
}
}

多个可用性区域 - 第 0 天配置与 AWS 的固定配置

{
"AdminPassword": "password",
"Hostname": "hostname",
"FirewallMode": "Routed",
"ManageLocally": "No",
"Cluster": {
"CclSubnetRange":[
"ip_address_start_AZ1 ip_address_end_AZ1",
"ip_address_start_AZ2 ip_address_end_AZ2",
"ip_address_start_AZ3 ip_address_end_AZ3"
],
"ClusterGroupName": "cluster_name",
[For Gateway Load Balancer] "Geneve": "{Yes | No}",
[For Gateway Load Balancer] "HealthProbePort": "port"
}
}

例如：两个可用性区域

{
"AdminPassword": "Sup4rnatural",
"Hostname": "ftdvcluster",
"FirewallMode": "Routed",
"ManageLocally": "No",
"Cluster": {
"CclSubnetRange": [
"10.5.90.4  10.5.90.30",
"10.5.91.4  10.5.91.30"
],
"ClusterGroupName": "ftdv-cluster",
"Geneve": "Yes",
"HealthProbePort": "8080"
}
}

例如：三个可用性区域

{
"AdminPassword": "Sup4rnatural",
"Hostname": "ftdvcluster",
"FirewallMode": "Routed",
"ManageLocally": "No",
"Cluster": {
"CclSubnetRange": [
"10.5.90.4  10.5.90.30",
"10.5.91.4  10.5.91.30",
"10.5.92.4  10.5.92.30"
],
"ClusterGroupName": "ftdv-cluster",
"Geneve": "Yes",
"HealthProbePort": "8080"
}
}

对于 CclSubnetRange 变量，请指定从 xxx4 开始的 IP 地址范围。确保您至少有 16 个可用于集群的 IP 地址。下面给出了开始 (ip_address_start) 和结束 (ip_address_end) IP 地址的一些示例。

开始和结束 IP 地址示例

CIDR

起始 IP 地址

结束 IP 地址

10.1.1.0/27

10.1.1.4

10.1.1.30

10.1.1.32/27

10.1.1.36

10.1.1.62

10.1.1.64/27

10.1.1.68

10.1.1.94

10.1.1.96/27

10.1.1.100

10.1.1.126

10.1.1.128/27

10.1.1.132

10.1.1.158

10.1.1.160/27

10.1.1.164

10.1.1.190

10.1.1.192/27

10.1.1.196

10.1.1.222

10.1.1.224/27

10.1.1.228

10.1.1.254

10.1.1.0/24

10.1.1.4

10.1.1.254

部署集群节点

部署集群节点，以便它们形成集群。

过程

步骤 1

使用具有所需数量的接口的集群 Day 0 配置部署 Threat Defense Virtual 实例 - 如果使用网关负载均衡器 (GWLB)，则为四个接口；如果使用非本地负载均衡器，则为五个接口。在 配置实例详细信息 > 高级详细信息 部分中，粘贴您的 day0 配置。

注

确保按以下顺序将接口连接到实例。

- AWS 网关负载均衡器 - 四个接口 - 管理、诊断、内部和集群控制链路。

- 非本地负载均衡器 - 五个接口 - 管理、诊断、内部、外部和集群控制链路。

有关在 AWS 上部署 Threat Defense Virtual 的更多信息，请参阅 在 AWS 上部署威胁繁育虚拟。

步骤 2

重复步骤 1 以部署所需数量的其他节点。

步骤 3

使用 Threat Defense Virtual 控制台上的 show cluster info 命令验证是否所有节点都已成功加入集群。

步骤 4

配置 AWS 网关负载均衡器。

1. 创建目标组和 GWLB。

2. 将目标组连接到 GWLB。

注

确保将 GWLB 配置为使用正确的安全组、侦听程序配置和运行状况检查设置。

3. 使用 IP 地址向目标组注册数据接口（内部接口）。

有关详细信息，请参阅创建网关负载均衡器。

步骤 5

将控制节点添加到管理中心。请参阅将集群添加到管理中心（手动部署）。

在 AWS 中使用 GWLB 配置 Cisco Secure Firewall Threat Defense Virtual 集群的目标故障转移

AWS 中的 Threat Defense Virtual 集群利用网关负载均衡器 (GWLB) 来均衡网络数据包并将其转发到指定的 Threat Defense Virtual 节点。GWLB 用于在目标节点发生故障切换或取消注册的情况下，继续向该节点发送网络数据包。

AWS 中的目标故障切换功能使 GWLB 能够在计划维护期间取消注册或目标节点发生故障的情况下将网络数据包重定向到正常运行的目标节点。它利用集群的状态故障切换。

在 AWS 中，您可以通过 AWS 弹性负载均衡 (ELB) API 或 AWS 控制台来配置目标故障转移。

注

如果目标节点在 GWLB 使用某些协议（例如 SSH、SCP、CURL 等）路由流量时发生故障，则将流量重定向到正常目标可能会出现延迟。此延迟是由于流量的重新平衡和重新路由造成的。

在 AWS 中，您可以通过 AWS ELB API 或 AWS 控制台来配置目标故障转移。

- AWS API - 在 AWS 弹性负载均衡 (ELB) API - modify-target-group-attributes 中，您可以通过修改以下两个新参数来定义流量处理行为。

- target_failover.on_unhealthy - 定义当目标变得运行不正常时 GWLB 如何处理网络流量。

- target_failover.on_deregistration - 定义当目标取消注册时 GWLB 如何处理网络流量。

以下命令显示了定义这两个参数的 API 参数配置示例。

aws elbv2 modify-target-group-attributes \
--target-group-arn arn:aws:elasticloadbalancing:…/my-targets/73e2d6bc24d8a067 \
--attributes \
Key=target_failover.on_unhealthy, Value=rebalance[no_rebalance] \
Key=target_failover.on_deregistration, Value=rebalance[no_rebalance]

有关详细信息，请参阅 AWS 文档中的 TargetGroupAttribute。

- AWS 控制台 – 在 EC2 控制台中，您可以通过配置以下选项来启用目标组页面上的目标故障转移选项。

- 编辑目标组属性

- 启用目标故障转移

- 验证再平衡流量

有关如何启用目标故障转移的详细信息，请参阅 在 AWS 中启用 Cisco Secure Firewall Threat Defense Virtual 集群的目标故障转移。

在 AWS 中启用 Cisco Secure Firewall Threat Defense Virtual 集群的目标故障转移

threat defense virtual 的数据接口已注册到 AWS 中的 GWLB 目标组。在 threat defense virtual 集群中，每个实例都与一个目标组关联。GWLB 进行负载平衡，并将流量发送到该运行状况正常的实例，而该实例已被识别或注册为目标组中目标节点。

开始之前

您必须已通过手动方法或使用 CloudFormation 模板在 AWS 中部署集群。

如果您使用 CloudFormation 模板部署集群，您还可以通过分配集群部署文件 deploy_ftdv_clustering.yaml 的 GWLB 配置部分下提供的 rebalance 属性来启用 Target Failover 参数。在模板中，默认情况下，此参数的值设置为 rebalance。但在 AWS 控制台上，此参数的默认值设置为 no_rebalance。

其中，

- no_rebalance - GWLB 继续将网络流量发送到发生故障或已取消注册的目标。

- 重新平衡- 当现有目标发生故障或取消注册时，GWLB 将网络流量发送到另一个正常运行的目标。

有关在 AWS 中部署堆栈的信息，请参阅：

- 在 AWS 中手动部署集群

- 使用 CloudFormation 模板在 AWS 中部署堆栈

过程

步骤 1

在 AWS 控制台上，转到 服务 > EC2

步骤 2

点击目标组 (Target Groups) 以查看目标组页面。

步骤 3

选择向其注册 threat defense virtual 数据接口 IP 的目标组。系统将显示目标组详细信息页面，您可以在其中启用目标故障转移属性。

步骤 4

转到属性 (Attributes) 菜单。

步骤 5

点击编辑 (Edit) 以编辑属性。

步骤 6

将 重新平衡流量 滑块按钮切换到右侧，以便启用目标故障转移，从而将 GWLB 配置为在发生故障转移或取消注册时重新平衡现有网络数据包，并将其转发到正常运行的目标节点。

在 Azure 中部署集群

您可以将集群与 Azure 网关负载均衡器 (GWLB) 或非本地负载均衡器配合使用。要在 Azure 中部署集群， 可使用 Azure 资源管理器 (ARM) 模板来部署虚拟机规模集。

- 基于 GWLB 的集群部署的拓扑示例

- Azure 网关负载均衡器和配对代理

- 使用 GWLB 在 Azure 中部署 Threat Defense Virtual 集群的端到端流程

- 模板

- 前提条件

- 使用 GWLB 在 Azure 中部署 Threat Defense Virtual 集群的端到端流程

- 基于 NLB 的集群部署拓扑示例

- 使用 NLB 在 Azure 中部署 Threat Defense Virtual 集群的端到端流程

- 模板

- 前提条件

- 使用 Azure 资源管理器模板通过 NLB 在 Azure 上部署集群

- 在 Azure 中手动部署集群

- 手动部署集群节点 - 基于 NLB 的部署

- Azure 中的集群部署故障排除

基于 GWLB 的集群部署的拓扑示例

GWLB 的入站流量使用案例和拓扑

GWLB 的出站流量使用案例和拓扑

Azure 网关负载均衡器和配对代理

在 Azure 服务链中，Threat Defense Virtual 充当可以拦截互联网和客户服务之间的数据包的透明网关。Threat Defense Virtual 通过利用成对代理中的 VXLAN 网段在单个 NIC 上定义外部接口和内部接口。

下图显示了从外部 VXLAN 网段上的公共网关负载均衡器转发到 Azure 门户负载均衡器的流量。网关负载均衡器会在多个 Threat Defense Virtual 流量之间进行均衡 ，这些流量在丢弃流量或将其发送回在内部 VXLAN 部分的网关负载均衡器之前对其进行检查。然后，Azure 网关负载均衡器会将流量发送回公共网关负载均衡器和目的地。

Azure 网关负载均衡器和配对代理

使用 GWLB 在 Azure 中部署 Threat Defense Virtual 集群的端到端流程

基于模板的部署

以下流程图说明使用 GWLB 在 Azure 中基于模板部署 Threat Defense Virtual 集群的工作流程。

工作空间

步骤

本地主机

从 GitHub 下载模板和文件。

本地主机

使用所需的参数来修改 azure_ftdv_gwlb_cluster.json 和 azure_ftdv_gwlb_cluster_parameters.json。

Azure Cloud

创建资源组、虚拟网络和子网。

Azure Cloud

部署自定义模板。

Azure Cloud

配置实例详细信息。

集群节点

验证集群部署。

Azure Cloud

使用函数应用向管理中心注册集群。

Azure Cloud

创建 FTPS 凭证。

本地主机

将 Cluster_Function.zip 文件上传到 Function 应用。

手动部署

以下流程图说明了使用 GWLB 在 Azure 中手动部署 Threat Defense Virtual 集群的工作流程。

工作空间

步骤

本地主机

从市场映像创建 VMSS。

本地主机

连接接口。

本地主机

在 customData 字段中添加 Day 0 配置。

本地主机

更新扩展实例计数。

本地主机

配置 GWLB。

管理中心

添加控制节点。

模板

以下提供的模板可在 GitHub 中获取。参数值是不言自明的，参数名称和值在模板中给出。

从 Cisco Secure Firewall 版本 7.4.1 开始，您可以在没有诊断接口的情况下部署集群。要仅使用“外部”、“内部”、“管理”和“CCL”接口部署集群，请使用无诊断模板 - azure_withoutDiagnostic_ftdv_gwlb_cluster_parameters.json 和 azure_withoutDiagnostic_ftdv_gwlb_cluster.json 文件。

使用诊断接口部署的模板：

- azure_ftdv_gwlb_cluster_parameters.json - 用于为具有 GWLB 的 Threat Defense Virtual 集群输入参数的模板

- azure_ftdv_gwlb_cluster.json - 使用 GWLB 部署 Threat Defense Virtual 集群的模板。

无需诊断接口即可部署的模板：

- azure_withoutDiagnostic_ftdv_gwlb_cluster_parameters.json - 用于为部署有 GWLB 且无诊断接口的 Threat Defense Virtual 集群输入参数的模板。

- azure_withoutDiagnostic_ftdv_gwlb_cluster.json - 用于部署具有 GWLB 且无诊断接口的 Threat Defense Virtual 集群的模板。

前提条件

- 要允许集群自动注册到管理中心，请在管理中心创建具有网络管理员和维护用户权限的用户。具有这些权限的用户可以使用 REST API。请参阅 Cisco Secure Firewall Management Center 管理指南。

- 在管理中心添加与您将在模板部署期间指定的策略名称匹配的访问策略。

- 确保虚拟管理中心已获得适当许可。

- 将集群添加到虚拟管理中心后，执行以下步骤：

1. 使用管理中心中的运行状况检查端口号配置平台设置。有关配置此功能的详细信息，请参阅 平台设置。

2. 为数据流量创建静态路由。有关创建静态路由的详细信息，请参阅 添加静态路由。

静态路由配置示例：

Network: any-ipv4
Interface: vxlan_tunnel
Leaked from Virtual Router: Global
Gateway: vxlan_tunnel_gw
Tunneled: false
Metric: 2

注

vxlan_tunnel_gw 是数据子网的网关 IP 地址。

使用 GWLB 在 Azure 中部署 Threat Defense Virtual 集群的端到端流程

使用自定义的 Azure 资源管理器 (ARM) 模板为 Azure GWLB 部署虚拟机规模集。

过程

步骤 1

准备模板。

1. 将 github 存储库克隆到本地文件夹。请参阅https://github.com/CiscoDevNet/cisco-ftdv/tree/master/cluster/azure。

2. 使用所需的参数来修改 azure_ftdv_gwlb_cluster.json 和 azure_ftdv_gwlb_cluster_parameters.json 。

或
使用部署不带诊断接口的集群所需的参数，修改无诊断模板 azure_withoutDiagnostic_ftdv_gwlb_cluster_parameters.json 和 azure_withoutDiagnostic_ftdv_gwlb_cluster.json。

步骤 2

登录到 Azure 门户：https://portal.azure.com。

步骤 3

创建一个资源组。

1. 在基本 (Basics) 选项卡中，从下拉列表中选择订用 (Subscription) 和资源组 (Resource Group)。

2. 选择所需的区域 (Region)。

步骤 4

创建具有四个子网的虚拟网络：管理、诊断、外部和集群控制链路 (CCL)。

从 Cisco Secure Firewall 版本 7.4.1 开始，您可以在没有诊断接口的情况下部署集群。要仅使用“外部”、“内部”、“管理”和“CCL”接口部署集群，请使用无诊断模板 - azure_withoutDiagnostic_ftdv_gwlb_cluster_parameters.json 和 azure_withoutDiagnostic_ftdv_gwlb_cluster.json 文件。

1. 创建虚拟网络。

1. 在基本 (Basics) 选项卡中，从下拉列表中选择订用 (Subscription) 和资源组 (Resource Group)。

2. 选择所需的区域 (Region)。点击 下一个：IP 地址。

在 IP 地址 选项卡中，点击 添加子网 ，然后添加以下子网 - 管理、诊断、数据和集群控制链路。

如果要部署没有诊断接口的 Threat Defense Virtual 7.4.1 集群，则必须跳过诊断子网创建。

2. 添加子网。

步骤 5

部署自定义模板。

1. 点击 创建 > 模板部署（使用自定义模板部署）。

2. 点击 在编辑器中生成自己的模板。

3. 点击加载文件 (Load File)，然后上传 azure_ftdv_gwlb_cluster.json 或 azure_withoutDiagnostic_ftdv_gwlb_cluster.json（如果您选择不部署诊断接口）。

4. 点击保存 (Save)。

步骤 6

配置实例详细信息。

1. 输入所需的值，然后点击查看 + 创建 (Review + create)。

2. 在验证通过后，点击创建 (Create)。

步骤 7

在实例开始运行后，通过登录到任何一个节点并输入 show cluster info 命令来验证集群部署。

show cluster info

步骤 8

在 Azure 门户中，点击函数应用以将集群注册到 管理中心。

注

如果您不想使用函数应用，也可以使用 添加 > 设备（而不是添加 > 集群）直接将控制节点注册到 管理中心 。其余集群节点将自动注册。

步骤 9

通过点击 部署中心 > FTPS 凭证 > 用户范围 > 配置用户名和密码 来创建 FTPS 凭证，然后点击 保存。

步骤 10

通过在本地终端中执行以下 curl 命令，将 Cluster_Function.zip 文件上传到 Function 应用。

curl -X POST -u username --data-binary @"Cluster_Function.zip" https:// Function_App_Name.scm.azurewebsites.net/api/zipdeploy

注

curl 命令可能需要几分钟（约 2 到 3 分钟）才能完成命令执行。

函数将被上传到函数应用。功能将启动，而您可以在存储帐户的出站队列中看到日志。系统将向管理中心发起设备注册。

功能

队列

出站队列

基于 NLB 的集群部署拓扑示例

此拓扑描述入站和出站流量。Threat Defense Virtual 集群夹在内部和外部负载均衡器之间。Management Center Virtual 实例用于管理集群。

来自互联网的入站流量会进入外部负载均衡器，然后该负载均衡器会将流量传输到 Threat Defense Virtual 集群。集群中的 Threat Defense Virtual 实例检测到流量后，会将其转发到应用虚拟机。

来自应用虚拟机的出站流量将传输到内部负载均衡器。然后，流量会被转发到 Threat Defense Virtual 集群，然后再发送到互联网。

使用 NLB 在 Azure 中部署 Threat Defense Virtual 集群的端到端流程

基于模板的部署

以下流程图说明了使用 NLB 在 Azure 中部署基于模板的 Threat Defense Virtual 集群的工作流程。

工作空间

步骤

本地主机

从 GitHub 下载模板和文件。

本地主机

使用所需的参数来修改 azure_ftdv_nlb_cluster.json 和 azure_ftdv_nlb_cluster_parameters.json 。

Azure Cloud

创建资源组、虚拟网络和子网。

Azure Cloud

部署自定义模板。

Azure Cloud

配置实例详细信息。

集群节点

验证集群部署。

Azure Cloud

使用函数应用向管理中心注册集群。

Azure Cloud

创建 FTPS 凭证。

本地主机

将 Cluster_Function.zip 文件上传到 Function 应用。

手动部署

以下流程图说明了使用 NLB 在 Azure 中手动部署 Threat Defense Virtual 集群的工作流程。

工作空间

步骤

本地主机

从市场映像创建 VMSS。

本地主机

连接接口。

本地主机

在 customData 字段中添加 Day 0 配置。

本地主机

更新扩展实例计数。

本地主机

配置 NLB。

管理中心

添加控制节点。

模板

以下提供的模板可在 GitHub 中获取。参数值是不言自明的，参数名称和值在模板中给出。

从 Cisco Secure Firewall 版本 7.4.1 开始，您可以在没有诊断接口的情况下部署集群。要仅使用“外部”、“内部”、“管理”和“CCL”接口部署集群，请使用无诊断模板 - azure_withoutDiagnostic_ftdv_nlb_cluster_parameters.json 和 azure_withoutDiagnostic_ftdv_nlb_cluster.json 文件。

使用诊断 接口部署的模板：

- azure_ftdv_nlb_cluster_parameters.json - 用于为具有 NLB 的 Threat Defense Virtual 集群输入参数的模板。

- azure_ftdv_nlb_cluster.json - 用于部署具有 NLB 的 Threat Defense Virtual 集群的模板。

无需诊断 接口即可部署的模板：

- azure_withoutDiagnostic_ftdv_nlb_cluster_parameters.json - 用于为部署有 NLB 且无诊断接口的 Threat Defense Virtual 集群输入参数的模板。

- azure_withoutDiagnostic_ftdv_nlb_cluster.json - 使用无诊断接口的 NLB 部署 Threat Defense Virtual 集群的模板。

前提条件

- 要允许集群自动注册到管理中心，请在管理中心创建具有网络管理员和维护用户权限的用户。具有这些权限的用户可以使用 REST API。请参阅 Cisco Secure Firewall Management Center 管理指南。

- 在管理中心添加与您将在模板部署期间指定的策略名称匹配的访问策略。

- 确保虚拟管理中心已获得适当许可。

- 将集群添加到虚拟管理中心后：

1. 使用管理中心中的运行状况检查端口号配置平台设置。有关配置此功能的详细信息，请参阅 平台设置。

2. 为来自外部和内部接口的流量创建静态路由。有关创建静态路由的详细信息，请参阅 添加静态路由。

外部接口的静态路由配置示例：

Network: any-ipv4
Interface: outside
Leaked from Virtual Router: Global
Gateway: ftdv-cluster-outside
Tunneled: false
Metric: 10

注

ftdv-cluster-outside 是外部子网的网关 IP 地址。

内部接口的静态路由配置示例：

Network: any-ipv4
Interface: inside
Leaked from Virtual Router: Global
Gateway: ftdv-cluster-inside-gw
Tunneled: false
Metric: 11

注

ftdv-cluster-inside-gw 是内部子网的网关 IP 地址。

3. 为数据流量配置 NAT 规则。有关配置 NAT 规则的详细信息，请参阅 网络地址转换。

使用 Azure 资源管理器模板通过 NLB 在 Azure 上部署集群

使用自定义的 Azure 资源管理器 (ARM) 模板为 Azure NLB 部署集群。

过程

步骤 1

准备模板。

1. 将 github 存储库克隆到本地文件夹。请参阅https://github.com/CiscoDevNet/cisco-ftdv/tree/master/cluster/azure。

2. 使用所需的参数来修改 azure_ftdv_nlb_cluster.json 和 azure_ftdv_nlb_cluster_parameters.json。

使用在无诊断接口的情况下部署集群所需的参数，修改无诊断模板 azure_withoutDiagnostic_ftdv_nlb_cluster_parameters.json 和 azure_withoutDiagnostic_ftdv_nlb_cluster.json。

步骤 2

登录到 Azure 门户：https://portal.azure.com。

步骤 3

创建一个资源组。

1. 在基本 (Basics) 选项卡中，从下拉列表中选择订用 (Subscription) 和资源组 (Resource Group)。

2. 选择所需的区域 (Region)。

步骤 4

创建具有四个子网的虚拟网络：管理、诊断、内部、外部和集群控制链路。

从 Cisco Secure Firewall 版本 7.4.1 开始，您可以在没有诊断接口的情况下部署集群。要部署仅包含“外部”、“内部”、“管理”和“集群控制链路”接口的集群，请使用无诊断模板 - azure_withoutDiagnostic_ftdv_nlb_cluster_parameters.json 和 azure_withoutDiagnostic_ftdv_nlb_cluster.json 文件。

1. 创建虚拟网络。

1. 在基本 (Basics) 选项卡中，从下拉列表中选择订用 (Subscription) 和资源组 (Resource Group)。

2. b) 选择所需的 区域。点击 下一个：IP 地址。

2. 添加子网。

在 IP 地址 选项卡中，点击 添加子网 并添加以下子网 - 管理、诊断、内部、外部和集群控制链路。

如果要部署没有诊断接口的 Threat Defense Virtual 7.4.1 集群，则必须跳过诊断子网创建。

步骤 5

部署自定义模板。

1. 点击 创建 > 模板部署（使用自定义模板部署）。

2. 点击 在编辑器中生成自己的模板。

3. 点击加载文件 (Load File)，然后上传 azure_ftdv_nlb_cluster.json 或 azure_withoutDiagnostic_ftdv_nlb_cluster.json（如果您选择不部署诊断接口）。

4. 点击保存 (Save)。

步骤 6

配置实例详细信息。

1. 输入所需的值，然后点击查看 + 创建 (Review + create)。

注

对于集群控制链路的起始地址和结束地址，仅指定所需数量的地址（最多 16 个）。较大的范围可能会影响性能。

2. 在验证通过后，点击创建 (Create)。

步骤 7

在实例开始运行后，通过登录到任何一个节点并使用 show cluster info 命令来验证集群部署。

show cluster info

步骤 8

在 Azure 门户中，点击函数应用以将集群注册到 管理中心。

注

如果您不想使用函数应用，也可以使用 添加 > 设备 （而不是 添加 > 集群）直接将控制节点注册到管理中心。其余集群节点将自动注册。

步骤 9

通过点击 部署中心 > FTPS 凭证 > 用户范围 > 配置用户名和密码 来创建 FTPS 凭证，然后点击 保存。

步骤 10

通过在本地终端中执行以下 curl 命令，将 Cluster_Function.zip 文件上传到 Function 应用。

curl -X POST -u username --data-binary @"Cluster_Function.zip" https:// Function_App_Name.scm.azurewebsites.net/api/zipdeploy

注

curl 命令可能需要几分钟（约 2 到 3 分钟）才能完成命令执行。

函数将被上传到函数应用。功能将启动，而您可以在存储帐户的出站队列中看到日志。系统将向管理中心发起设备注册。

在 Azure 中手动部署集群

要手动部署集群，请准备 day0 配置，部署每个节点，然后将控制节点添加到 管理中心。

- 创建 Azure 的 Day0 配置

- 手动部署集群节点 - 基于 GWLB 的部署

创建 Azure 的 Day0 配置

您可以使用固定配置或自定义配置。

- 使用 Azure 的固定配置创建 Day0 配置

- 使用 Azure 的自定义配置创建 Day0 配置

使用 Azure 的固定配置创建 Day0 配置

固定配置将自动生成集群引导程序配置。

{
"AdminPassword": "password",
"FirewallMode": "Routed",
"ManageLocally": "No",
"Diagnostic": "OFF",    //For deployment of version 7.4.1 and later without Diagnostics template, set this parameter to OFF.
.    "FmcIp": "<FMC_IP>",
"FmcRegKey": "<REGISTRATION_KEY>",
"FmcNatId": "<NAT_ID>",
"Cluster": {
"CclSubnetRange": "ip_address_start ip_address_end",
"ClusterGroupName": "cluster_name",
"HealthProbePort": "port_number",
"GatewayLoadBalancerIP": "ip_address",
"EncapsulationType": "vxlan",
"InternalPort": "internal_port_number",
"ExternalPort": "external_port_number",
"InternalSegId": "internal_segment_id",
"ExternalSegId": "external_segment_id"
}
}

示例

下面给出了第 0 天的配置示例。

{
"AdminPassword": "password",
"FirewallMode": "routed",
"ManageLocally": "No",
"Diagnostic": "OFF",    //For deployment of version 7.4.1 and later without Diagnostics template, set this parameter to OFF.
"FmcIp":"<FMC_IP>",
"FmcRegKey":"<REGISTRATION_KEY>",
"FmcNatId":"<NAT_ID>",
"Cluster": {
"CclSubnetRange": "10.45.3.4 10.45.3.30",    //mandatory user input
"ClusterGroupName": "ngfwv-cluster",         //mandatory user input
"HealthProbePort": "7777",                   //mandatory user input
"GatewayLoadBalanceIP": "10.45.2.4",         //mandatory user input
"EncapsulationType": "vxlan",
"InternalPort": "2000",
"ExternalPort": "2001",
"InternalSegId": "800",
"ExternalSegId": "801"
}
}

注

如果要复制并粘贴上面给出的配置，请确保从配置中删除 //mandatory user input

对于 Azure 运行状况检查设置，请务必指定您在此处设置的 HealthProbePort 。

对于 CclSubnetRange 变量，请指定从 xxx4 开始的 IP 地址范围。确保您至少有 16 个可用于集群的 IP 地址。下面给出了开始和结束 IP 地址的一些示例。

开始和结束 IP 地址示例

CIDR

起始 IP 地址

结束 IP 地址

10.1.1.0/27

10.1.1.4

10.1.1.30

10.1.1.32/27

10.1.1.36

10.1.1.62

10.1.1.64/27

10.1.1.68

10.1.1.94

10.1.1.96/27

10.1.1.100

10.1.1.126

10.1.1.128/27

10.1.1.132

10.1.1.158

10.1.1.160/27

10.1.1.164

10.1.1.190

10.1.1.192/27

10.1.1.196

10.1.1.222

10.1.1.224/27

10.1.1.228

10.1.1.254

使用 Azure 的自定义配置创建 Day0 配置

您可以使用命令来输入整个集群引导程序配置。

{
"AdminPassword": "password",
"FirewallMode": "Routed",
"ManageLocally": "No",
"Diagnostic": "OFF",    //For deployment of version 7.4.1 and later without Diagnostics template, set this parameter to OFF.
"FmcIp": "<FMC_IP>",
"FmcRegKey": "<REGISTRATION_KEY>",
"FmcNatId": "<NAT_ID>",
"Cluster": {
"CclSubnetRange": "ip_address_start ip_address_end",
"ClusterGroupName": "cluster_name",
"HealthProbePort": "port_number",
"GatewayLoadBalancerIP": "ip_address",
"EncapsulationType": "vxlan",
"InternalPort": "internal_port_number",
"ExternalPort": "external_port_number",
"InternalSegId": "internal_segment_id",
"ExternalSegId": "external_segment_id"
}
}

示例

下面给出了第 0 天的 版本 7.4 和更新版本 配置示例。

{
"AdminPassword": "Sup3rnatural",
"Hostname": "clusterftdv",
"FirewallMode": "routed",
"ManageLocally": "No",
"Diagnostic": "OFF",    //For deployment of version 7.4.1 and later without Diagnostics template, set this parameter to OFF.
"FmcIp": "<FMC_IP>",
"FmcRegKey": "<REGISTRATION_KEY>",
"FmcNatId": "<NAT_ID>",
"run_config": [
"cluster interface-mode individual force",
"policy-map global_policy",
"class inspection_default",
"no inspect h323 h225",
"no inspect h323 ras",
"no inspect rtsp",
"no inspect skinny",
"interface Management0/0",
"management-only",
"nameif management",
"security-level 0",
"ip address dhcp",
"interface GigabitEthernet0/0",
"no shutdown",
"nameif vxlan_tunnel",
"security-level 0",
"ip address dhcp",
"interface GigabitEthernet0/1",
"no shutdown",
"nve-only cluster",
"nameif ccl_link",
"security-level 0",
"ip address dhcp",
"interface vni1",
"description Clustering Interface",
"segment-id 1",
"vtep-nve 1",
"interface vni2",
"proxy paired",
"nameif GWLB-backend-pool",
"internal-segment-id 800",
"external-segment-id 801",
"internal-port 2000",
"external-port 2001",
"security-level 0",
"vtep-nve 2",
"object network ccl#link",
"range 10.45.3.4 10.45.3.30",                         //mandatory user input
"object-group network cluster#group",
"network-object object ccl#link",
"nve 1 ",
"encapsulation vxlan",
"source-interface ccl_link",
"peer-group cluster#group",
"nve 2 ",
"encapsulation vxlan",
"source-interface vxlan_tunnel",
"peer ip <GatewayLoadbalancerIP>",
"cluster group ftdv-cluster",                         //mandatory user input
"local-unit 1",
"cluster-interface vni1 ip 1.1.1.1 255.255.255.0",
"priority 1",
"enable",
"mtu vxlan_tunnel 1454",
"mtu ccl_link 1454"
]
}

下面给出了第 0 天的 版本 7.3 和更早版本 配置示例。

{
"AdminPassword": "Sup3rnatural",
"Hostname": "clusterftdv",
"FirewallMode": "routed",
"ManageLocally": "No",
"FmcIp": "<FMC_IP>",
"FmcRegKey": "<REGISTRATION_KEY>",
"FmcNatId": "<NAT_ID>",
"run_config": [
"cluster interface-mode individual force",
"policy-map global_policy",
"class inspection_default",
"no inspect h323 h225",
"no inspect h323 ras",
"no inspect rtsp",
"no inspect skinny",
"interface Management0/0",
"management-only",
"nameif management",
"security-level 0",
"ip address dhcp",
"interface GigabitEthernet0/0",
"no shutdown",
"nameif vxlan_tunnel",
"security-level 0",
"ip address dhcp",
"interface GigabitEthernet0/1",
"no shutdown",
"nve-only cluster",
"nameif ccl_link",
"security-level 0",
"ip address dhcp",
"interface vni1",
"description Clustering Interface",
"segment-id 1",
"vtep-nve 1",
"interface vni2",
"proxy paired",
"nameif GWLB-backend-pool",
"internal-segment-id 800",
"external-segment-id 801",
"internal-port 2000",
"external-port 2001",
"security-level 0",
"vtep-nve 2",
"object network ccl#link",
"range 10.45.3.4 10.45.3.30",                         //mandatory user input
"object-group network cluster#group",
"network-object object ccl#link",
"nve 1 ",
"encapsulation vxlan",
"source-interface ccl_link",
"peer-group cluster#group",
"nve 2 ",
"encapsulation vxlan",
"source-interface vxlan_tunnel",
"peer ip <GatewayLoadbalancerIP>",
"cluster group ftdv-cluster",                         //mandatory user input
"local-unit 1",
"cluster-interface vni1 ip 1.1.1.1 255.255.255.0",
"priority 1",
"enable",
"mtu vxlan_tunnel 1454",
"mtu ccl_link 1554"
]
}

注

如果要复制并粘贴上面给出的配置，请确保从配置中删除 //mandatory user input。

手动部署集群节点 - 基于 GWLB 的部署

部署集群节点，以便它们形成集群。

过程

步骤 1

使用 az vmss create CLI 从实例计数为 0 的市场映像创建虚拟机规模集。

az vmss create --resource-group <ResourceGroupName> --name <VMSSName> --vm-sku <InstanceSize> --image <FTDvImage> --instance-count 0 --admin-username <AdminUserName> --admin-password <AdminPassword> --plan-name <ftdv-azure-byol/ftdv-azure-payg> --plan-publisher cisco --plan-product cisco-ftdv --plan-promotion-code <ftdv-azure-byol/ftdv-azure-payg> --vnet-name <VirtualNetworkName> --subnet <MgmtSubnetName>

步骤 2

连接三个接口 - 诊断、数据和集群控制链路。

步骤 3

转到已创建的虚拟机规模集并执行以下步骤：

1. 在 操作系统部分下，在 customData 字段中添加 day 0 配置。

2. 点击保存 (Save)。

3. 在 扩展 部分下，使用所需的集群节点更新实例计数。您可以将实例计数范围设置为最小值 1 和最大值 16。

步骤 4

配置 Azure 网关负载均衡器。有关详细信息，请参阅 Auto Scale 与 Azure 网关负载均衡器使用案例 。

步骤 5

将控制节点添加到 管理中心。请参阅将集群添加到管理中心（手动部署）。

手动部署集群节点 - 基于 NLB 的部署

部署集群节点，以便它们形成集群。

过程

步骤 1

使用 az vmss create CLI 从实例计数为 0 的市场映像创建虚拟机规模集。

az vmss create --resource-group <ResourceGroupName> --name <VMSSName> --vm-sku <InstanceSize> --image <FTDvImage> --instance-count 0 --admin-username <AdminUserName> --admin-password <AdminPassword> --plan-name <ftdv-azure-byol/ftdv-azure-payg> --plan-publisher cisco --plan-product cisco-ftdv --plan-promotion-code <ftdv-azure-byol/ftdv-azure-payg> --vnet-name <VirtualNetworkName> --subnet <MgmtSubnetName>

步骤 2

连接 4 个接口 - 诊断、内部、外部和集群控制链路。

步骤 3

转到已创建的虚拟机规模集并执行以下操作：

1. 在 操作系统 部分下，在 customData 字段中添加 day0 配置。

2. 点击保存 (Save)。

3. 在 扩展 部分下，使用所需的集群节点更新实例计数。您可以将实例计数范围设置为最小值 1 和最大值 16。

步骤 4

将控制节点添加到管理中心。请参阅将集群添加到管理中心（手动部署）。

Azure 中的集群部署故障排除

- 问题：无流量

故障排除：

- 检查使用 GWLB 部署的 Threat Defense Virtual 实例的运行状况探测状态是否正常。

- 如果 Threat Defense Virtual 实例的运行状况探测状态为不正常 -

- 检查是否在 Management Center Virtual 中配置了静态路由。

- 验证默认网关是否为数据子网的网关 IP。

- 检查 Threat Defense Virtual 实例是否正在接收运行状况探测流量。

- 检查在 Management Center Virtual 中配置的访问列表是否允许运行状况探测流量。

- 问题：集群未组建

故障排除：

- 检查 nve-only 集群接口的 IP 地址。确保您可以 ping 其他节点的仅 NVE 集群接口。

- 检查仅 NVE 集群接口的 IP 地址是对象组的一部分。

- 确保通过对象组来配置 NVE。

- 集群组中的集群接口具有正确的 VNI 接口。此 VNI 接口具有相应对象组的 NVE。

- 确保节点之间可相互 ping 通。由于每个节点都有自己的集群接口 IP，因此应该可以相互 ping 通。

- 验证模板部署期间提及的 CCL 子网的开始地址和结束地址是否正确。起始地址必须以子网中的第一个可用的 IP 地址开头。例如，如果子网是 192.168.1.0/24。那么起始地址应为 192.168.1.4（前三个 IP 地址由 Azure 保留）

- 检查 Management Center Virtual 是否具有有效的许可证。

- 问题：在同一资源组中再次部署资源时出现任何与角色相关的错误。

故障排除：在终端上使用以下命令删除下面给出的角色。

错误消息：

"error": {
"code": "RoleAssignmentUpdateNotPermitted",
"message": "Tenant ID, application ID, principal ID, and scope are not allowed to be
updated.”}

- az role assignment delete --resource-group <资源组名称 > --role "Storage Queue Data Contributor"

- az role assignment delete --resource-group <资源组名称 > --role "Contributor"

在 GCP 中部署集群

要在 GCP 中部署集群，您可以手动部署，或者使用实例模板来部署实例组。您可以将集群与本地 GCP 负载均衡器或非本地负载均衡器（例如思科云服务路由器）配合使用。

注

出站流量需要使用接口 NAT 并被限制为 64K 连接。

- 拓扑示例

- 在 GCP 中部署威胁防御虚拟集群的端到端流程

- 模板

- 使用实例模板在 GCP 中部署实例组

- 在 GCP 中手动部署集群

- 允许对 GCP 网络负载均衡器进行运行状况检查

拓扑示例

此拓扑描述入站和出站流量。Threat Defense Virtual 集群夹在内部和外部负载均衡器之间。Management Center Virtual 实例用于管理集群。

来自互联网的入站流量会进入外部负载均衡器，然后该负载均衡器会将流量传输到 Threat Defense Virtual 集群。集群中的 Threat Defense Virtual 实例检测到流量后，会将其转发到应用虚拟机。

来自应用虚拟机的出站流量将传输到内部负载均衡器。然后，流量会被转发到 Threat Defense Virtual 集群，然后再发送到互联网。

在 GCP 中部署威胁防御虚拟集群的端到端流程

基于模板的部署

以下流程图说明了在 GCP 上基于模板部署威胁防御虚拟集群的工作流程。

工作空间

步骤

本地主机

从 GitHub 下载模板和文件。

本地主机

编辑模板参数。

Google 云平台

创建 GCP 存储桶。

本地主机

创建 Google Cloud 函数源存档文件 ftdv_cluster_function.zip。

Google 云平台

上传 Google 函数源存档文件。

Google 云平台

部署 infrastructure.yaml。

Google 云平台

如果使用私有 IP 地址，请创建 VPC 连接器。

Google 云平台

如果使用外部 IP 地址，请在 cluster_function_infra.yaml 中将 deployWithExternalIP 设置为 True。

Google 云平台

部署集群功能基础设施模板。

Google 云平台

部署集群。

手动部署

以下流程图说明了在 GCP 上手动部署威胁防御虚拟集群的工作流程。

工作空间

步骤

本地主机

创建 Day 0 配置脚本。

Google 云平台

使用 Day 0 配置创建实例模板。

Google 云平台

配置接口。

Google 云平台

创建实例组并附加实例模板。

Google 云平台

创建 NLB 并附加到实例组。

Google 云平台

创建 NLB 的防火墙规则。

管理中心

创建运行状况检查流量的访问规则。

管理中心

添加控制节点。

模板

以下提供的模板可在 GitHub 中获取。参数值是不言自明的，参数名称和值在模板中给出。

- 东西流量的集群部署模板 - deploy_ngfw_cluster_yaml

- 南北流量的集群部署模板 - deploy_ngfw_cluster.yaml

使用实例模板在 GCP 中部署实例组

使用实例模板在 GCP 中部署实例组。

开始之前

- 使用 Google Cloud Shell 进行部署。或者，您可以在任何 macOS/Linux/Windows 计算机上使用 Google SDK。

- 要允许集群自动向管理中心注册，您需要在管理中心创建一个具有管理权限的用户，该用户可以使用 REST API。请参阅《Cisco Secure Firewall Management Center 管理指南》。

- 在管理中心中添加与您在 cluster_function_infra.yaml中指定的策略名称匹配的访问策略。

过程

步骤 1

将模板从 GitHub 下载到本地文件夹。

步骤 2

使用所需的 resourceNamePrefix 参数（例如 ngfwvcls）和其他所需的用户输入来编辑 infrastructure.yaml、cluster_function_infra.yaml 和 deploy_ngfw_cluster.yaml。

从 Cisco Secure Firewall 版本 7.4.1 开始，您可以在没有诊断接口的情况下部署集群。要部署仅具有外部、内部、管理和 CCL 接口的集群，请在 Infrastructure.yaml 和 deploy_ngfw_cluster.yaml 文件中将 withDiagnostic 变量设置为 False 。

请注意，GitHub 的 east-west 和 north-south 文件夹中都有一个 deploy_ngfw_cluster.yaml 文件。根据流量要求下载相应的模板。

步骤 3

使用 Google Cloud Shell 创建存储桶，以上传 Google 云函数源存档文件 ftdv_cluster_function.zip。

gsutil mb --pap enforced gs://resourceNamePrefix-ftdv-cluster-bucket/

确保此处的 resourceNamePrefix 变量与您在 cluster_function_infra.yaml中指定的 resourceNamePrefix 变量匹配。

步骤 4

为集群基础设施创建一个存档文件。

示例:

zip -j ftdv_cluster_function.zip ./cluster-function/*

步骤 5

上传您之前创建的 Google 源存档。

gsutil cp ftdv_cluster_function.zip gs://resourceNamePrefix-ftdv-cluster-bucket/

步骤 6

部署集群的基础设施。

gcloud deployment-manager deployments create cluster_name --config infrastructure.yaml

步骤 7

如果您使用的是专用 IP 地址，请执行以下步骤：

1. 使用威胁防御虚拟管理 VPC 启动并设置管理中心。

2. 创建 VPC 连接器，以将 Google Cloud 功能与 Threat Defense Virtual 管理 VPC 连接。

gcloud compute networks vpc-access connectors create vpc-connector-name --region us-central1 --subnet resourceNamePrefix-ftdv-mgmt-subnet28

步骤 8

如果管理中心相对于 Threat Defense Virtual 是远程，并且 Threat Defense Virtual 需要外部 IP 地址，请确保在 cluster_function_infra.yaml 中将 deployWithExternalIP 设置为 True 。

步骤 9

部署集群功能基础设施。

gcloud deployment-manager deployments create cluster_name --config cluster_function_infra.yaml

步骤 10

部署集群。

1. 对于北-南拓扑部署：

gcloud deployment-manager deployments create cluster_name --config north-south/deploy_ngfw_cluster.yaml

2. 对于东-西拓扑部署：

gcloud deployment-manager deployments create cluster_name --config east-west/deploy_ngfw_cluster.yaml

在 GCP 中手动部署集群

要手动部署集群，请准备 day0 配置，部署每个节点，然后将控制节点添加到 管理中心。

- 为 GCP 创建 Day0 配置

- 手动部署集群节点

为 GCP 创建 Day0 配置

您可以使用固定配置或自定义配置。

- 使用 GCP 的固定配置来创建 Day0 配置

- 使用 GCP 的自定义配置来创建 Day0 配置

使用 GCP 的固定配置来创建 Day0 配置

固定配置将自动生成集群引导程序配置。

{
"AdminPassword": "password",
"Hostname": "hostname",
"FirewallMode": "Routed",
"ManageLocally": "No",
"Diagnostic": "OFF",       //Optional user input from version 7.4.1 - use to deploy cluster without Diagnostic interface
"Cluster": {
"CclSubnetRange": "ip_address_start ip_address_end",
"ClusterGroupName": "cluster_name"
}
}

例如：

{
"AdminPassword": "DeanW1nche$ter",
"Hostname": "ciscoftdv",
"FirewallMode": "Routed",
"ManageLocally": "No",
"Cluster": {
"CclSubnetRange": "10.10.55.2 10.10.55.253",     //mandatory user input
"ClusterGroupName": "ftdv-cluster"               //mandatory user input
}
}

注

如果要复制并粘贴上面给出的配置，请确保从配置中删除 //mandatory user input 。

请注意，对于 CclSubnetRange 变量，不能使用子网中的前两个 IP 地址和后两个 IP 地址。有关详细信息，请参阅 IPv4 子网中的保留 IP 地址 。确保您至少有 16 个可用于集群的 IP 地址。下面给出了开始和结束 IP 地址的一些示例。

开始和结束 IP 地址示例

CIDR

起始 IP 地址

结束 IP 地址

10.1.1.0/27

10.1.1.2

10.1.1.29

10.1.1.32/27

10.1.1.34

10.1.1.61

10.1.1.64/27

10.1.1.66

10.1.1.93

10.1.1.96/27

10.1.1.98

10.1.1.125

10.1.1.128/27

10.1.1.130

10.1.1.157

10.1.1.160/27

10.1.1.162

10.1.1.189

10.1.1.192/27

10.1.1.194

10.1.1.221

10.1.1.224/27

10.1.1.226

10.1.1.253

10.1.1.0/24

10.1.1.2

10.1.1.253

使用 GCP 的自定义配置来创建 Day0 配置

您可以使用命令来输入整个集群引导程序配置。

{
"AdminPassword": "password",
"Hostname": "hostname",
"FirewallMode": "Routed",
"ManageLocally": "No",
"run_config": [comma_separated_threat_defense_configuration]
}

以下是为集群控制链路创建包含管理接口、内部接口和外部接口的配置的示例。请注意，每个节点需要设置唯一的粗体值。

{
"AdminPassword": "W1nch3sterBr0s",
"Hostname": "ftdv1",
"FirewallMode": "Routed",
"ManageLocally": "No",
"run_config": [
"cluster interface-mode individual force",
"interface Management0/0",
"management-only",
"nameif management",
"ip address dhcp",
"interface GigabitEthernet0/0",
"no shutdown",
"nameif outside",
"ip address dhcp",
"interface GigabitEthernet0/1",
"no shutdown",
"nameif inside",
"ip address dhcp",
"interface GigabitEthernet0/2",
"nve-only cluster",
"nameif ccl_link",
"ip address dhcp",
"no shutdown",
"interface vni1",
"description Clustering Interface",
"segment-id 1",
"vtep-nve 1",
"object network ccl#link",
"range 10.1.90.2 10.1.90.17",
"object-group network cluster#group",
"network-object object ccl#link",
"nve 1",
"encapsulation vxlan",
"source-interface ccl_link",
"peer-group cluster#group",
"cluster group ftdv-cluster",
"local-unit 1",
"cluster-interface vni1 ip 10.1.1.1 255.255.255.0",
"priority 1",
"enable",
"mtu outside 1400",
"mtu inside 1400"
]
}

注

对于集群控制链路网络对象，仅指定所需数量的地址（最多 16 个）。较大的范围可能会影响性能。

手动部署集群节点

部署集群节点，以便它们形成集群。对于 GCP 上的集群，您不能使用 4 vCPU 机器类型。4 vCPU 机器类型仅支持 4 个接口，但需要 5 个接口。使用支持五个接口的机器类型，例如 c2-standard-8。

过程

步骤 1

使用 day 0 配置（在元数据 > 启动脚本 部分中）创建具有 5 个接口的实例模板：外部、内部、管理、诊断和集群控制链路。

请参阅Cisco Secure Firewall Threat Defense Virtual 入门指南。

步骤 2

创建实例组，然后附加实例模板。

步骤 3

创建 GCP 网络负载均衡器（内部和外部），然后附加实例组。

步骤 4

对于 GCP 网络负载均衡器，允许在管理中心上的安全策略中进行运行状况检查。请参阅 允许对 GCP 网络负载均衡器进行运行状况检查。

步骤 5

将控制节点添加到管理中心。请参阅将集群添加到管理中心（手动部署）。

允许对 GCP 网络负载均衡器进行运行状况检查

Google Cloud 可提供运行状况检查，以确定后端是否对流量做出响应。

请参阅https://cloud.google.com/load-balancing/docs/health-checks，以便为网络负载均衡器创建防火墙规则。然后，在管理中心中创建访问规则以允许运行状况检查流量。有关所需的网络范围，请参阅https://cloud.google.com/load-balancing/docs/health-check-concepts。

您还需要配置动态手动 NAT 规则，以便将运行状况检查流量重定向到位于 169.254.169.254 的 Google 元数据服务器。

北-南 NAT 规则示例配置

nat (inside,outside) source dynamic GCP-HC ILB-SOUTH destination static ILB-SOUTH METADATA
nat (outside,outside) source dynamic GCP-HC ELB-NORTH destination static ELB-NORTH METADATA

nat (outside,inside) source static any interface destination static ELB-NORTH Ubuntu-App-VM
nat (inside,outside) source dynamic any interface destination static obj-any obj-any

object network Metadata
host 169.254.169.254

object network ILB-SOUTH
host <ILB_IP>
object network ELB-NORTH
host <ELB_IP>

object-group network GCP-HC
network-object 35.191.0.0 255.255.0.0
network-object 130.211.0.0 255.255.252.0
network-object 209.85.204.0 255.255.252.0
network-object 209.85.152.0 255.255.252.0

东-西 NAT 规则示例配置

nat (inside,outside) source dynamic GCP-HC ILB-East destination static ILB-East Metadata
nat (outside,outside) source dynamic GCP-HC ILB-West destination static ILB-West Metadata

object network Metadata
host 169.254.169.254

object network ILB-East
host <ILB_East_IP>
object network ILB-West
host <ILB_West_IP>

object-group network GCP-HC
network-object 35.191.0.0 255.255.0.0
network-object 130.211.0.0 255.255.252.0
network-object 209.85.204.0 255.255.252.0
network-object 209.85.152.0 255.255.252.0

将集群添加到管理中心（手动部署）

如果您手动部署了集群，请使用此程序将集群添加到 管理中心 。如果您使用模板，则集群会自动注册到 管理中心。

将集群设备之一作为新设备添加到 管理中心；管理中心 会自动检测所有其他集群成员。

开始之前

- 所有集群设备必须位于成功建立的集群中，才能将集群添加到 管理中心。还应检查哪个是控制单元。使用 威胁防御 show cluster info 命令。

过程

步骤 1

在 管理中心中，选择 设备 (Devices) > 设备管理 (Device Management)，然后选择 添加 (Add) > 添加设备 (Add Device) 以使用管理 IP 来添加控制设备。

添加设备

1. 在 主机 字段中，输入控制单元的 IP 地址或主机名。

虽然您可以添加任何集群单元，但我们建议添加控制单元备以获得最佳性能。

如果在设备设置期间使用了 NAT ID，则可能不需要输入此字段。

2. 在 显示名称 字段中，输入要在 管理中心中显示的控制单元名称。

此显示名称不适用于集群；它仅适用于要添加的控制单元。您可以稍后更改其他集群成员的名称和集群显示名称。

3. 在注册密钥 (Registration Key) 字段中，输入在设备设置时所使用的同一注册密钥。注册密钥是一个一次性的共享密钥。

4. (可选) 将设备添加到设备 组。

5. 选择初始访问控制策略以在注册时部署到设备，或创建一个新策略。

如果创建新策略，则仅创建基本策略。您可以稍后根据需要自定义策略。

6. 选择要应用到设备的许可证。

7. 如果在设备安装过程中使用了 NAT ID，请展开高级部分，并在唯一 NAT ID 字段中输入相同的 NAT ID。

8. 选中传输数据包复选框以允许设备将数据包传输到 管理中心。

默认情况下，此选项已启用。如果在启用此选项时触发了 IPS 或 Snort 等事件，设备会将事件元数据信息和数据包数据发送到 管理中心进行检测。如果禁用此选项，则仅发送事件信息到 管理中心，不发送数据包数据。

9. 点击 Register。

管理中心 会识别并注册控制单元，接着注册所有数据单元。如果控制单元未注册成功，则不会添加集群。如果集群未运行或存在其他连接问题，则注册会失败。在这种情况下，我们建议尝试重新添加集群设备。

集群名称显示在 设备 > 设备管理页面上；展开集群可查看集群设备。

集群管理

当前正在注册的设备会显示加载图标。

节点注册

您可以通过点击 通知 图标并选择 任务来监控集群设备的注册情况。管理中心 会在每个设备注册时更新“集群注册”任务。如有任何设备无法注册，请参阅调整集群节点。

步骤 2

通过点击集群的 编辑 () ，配置设备特定设置。

大多数配置可以应用于整个集群，而不适用于集群中的节点。例如，可以更改每个节点的显示名称，但只能配置整个集群的接口。

步骤 3

在 设备 > 设备管理 > 集群 屏幕上，可以查看 常规、许可证、系统和 运行状况 设置。

请参阅以下集群特定项：

- 常规 (General) > 名称 (Name) - 通过点击 编辑 ()更改集群显示名称。

然后设置 名称 字段。

- 常规 (General) > 查看集群状态 (View cluster status) - 点击 查看 (View) 链接来打开 集群状态 (Cluster Status) 对话框。

还可在集群状态 (Cluster Status) 对话框中点击协调 (Reconcile) 以重新注册数据单元。您还可以从节点 ping 通集群控制链路。请参阅在集群控制链路上执行 Ping。

- 常规 > 故障排除- 可以生成和下载故障排除日志，还可以查看集群 CLI。请参阅对集群进行故障排除。

故障排除

- 许可证 - 点击 编辑 () 可设置许可证授权。

步骤 4

在 设备 > 设备管理 > 设备上，可从右上方的下拉菜单中选择集群中的每个成员并配置以下设置。

- 常规 (General) > 名称 (Name) - 通过点击 编辑 ()更改集群成员显示名称。

然后设置 名称 字段。

- 管理 > 主机-如果在设备配置中更改了管理 IP 地址，则必须在 管理中心 中匹配新的地址以便管理 IP 地址访问网络上的设备；编辑 管理 区域中的 主机 地址。

配置集群运行状况监控设置

集群 (Cluster) 页面的集群运行状况监控设置 (Cluster Health Monitor Settings) 部分会显示下表所述信息。

集群运行状况监控设置

集群运行状况监控设置部分表格字段

字段

说明

超时

保持时间

0.3 到 45 秒之间；默认值为 3 秒。为了确定节点系统运行状况，集群节点会在集群控制链路上将 heartbeat 消息发送到其他节点。如果节点在保持期内未接收到来自对等节点的任何 heartbeat 消息，则对等节点被视为无响应或无法工作。

接口防退回时间

介于 300 和 9000 毫秒之间。默认值为 500 毫秒。接口防退回时间是节点将接口视为发生故障并将节点从集群中删除之前经过的时间。

受监控接口

接口运行状态检查将监控链路故障。如果特定逻辑接口的所有物理端口在特定节点上发生故障，但在其他节点上的同一逻辑接口下仍有活动端口，则会从集群中删除该节点。节点在多长时间后从集群中删除成员取决于接口的类型以及该节点是既定节点还是正在加入集群的设备。

服务应用

显示是否对 Snort 和磁盘已满进程进行监控。

不受监控的接口

显示不受监控的接口。

自动重新加入设置

集群接口

显示集群控制链路故障的自动重新加入设置。

尝试次数

介于 1 和 65535 之间。默认值为 1（不受限制）。设置尝试重新加入的次数。

尝试之间的间隔

介于 2 和 60 之间。默认值为 5 分钟。定义两次重新加入尝试之间的间隔持续时间（以分钟为单位）。

间隔变化

介于 1 和 3 之间。默认值为间隔持续时间的 1 倍。定义是否增加每次尝试的间隔持续时间。

数据接口

显示数据接口故障的自动重新加入设置。

尝试次数

介于 1 和 65535 之间。默认值为 3。设置尝试重新加入的次数。

尝试之间的间隔

介于 2 和 60 之间。默认值为 5 分钟。定义两次重新加入尝试之间的间隔持续时间（以分钟为单位）。

间隔变化

介于 1 和 3 之间。默认值为间隔持续时间的 2 倍。定义是否增加每次尝试的间隔持续时间。

系统

显示内部错误的自动重新加入设置。内部故障包括：应用程序同步超时、不一致的应用程序状态等。

尝试次数

介于 1 和 65535 之间。默认值为 3。设置尝试重新加入的次数。

尝试之间的间隔

介于 2 和 60 之间。默认值为 5 分钟。定义两次重新加入尝试之间的间隔持续时间（以分钟为单位）。

间隔变化

介于 1 和 3 之间。默认值为间隔持续时间的 2 倍。定义是否增加每次尝试的间隔持续时间。

注

如果禁用系统运行状况检查，则在禁用系统运行状况检查时不适用的字段将不会显示。

您可以从此部分更改这些设置。

您可以监控任何端口通道 ID、单个物理接口 ID，以及 Snort 和磁盘已满进程。运行状况监控不在 VLAN 子接口或虚拟接口（例如，VNI 或 BVI）上执行。您不能为集群控制链路配置监控；它始终处于被监控状态。

过程

步骤 1

选择 设备 > 设备管理。

步骤 2

在要修改的集群旁边，点击 编辑 ()。

步骤 3

点击集群 (Cluster)。

步骤 4

在集群运行状况监控器设置 (Cluster Health Monitor Settings) 部分，点击 编辑 ()。

步骤 5

通过点击运行状况检查 (Health Check) 滑块禁用系统运行状况检查。

禁用系统运行状况检查

当拓扑发生任何更改时（例如添加或删除数据接口、启用或禁用节点、或交换机上的接口、或者添加额外的交换机形成 VSS 或 vPC），您应禁用系统运行状态检查功能，还要禁用对已禁用接口的接口监控。当拓扑结构更改完成且配置更改已同步到所有节点后，您可以重新启用系统运行状况检查功能和被监控的接口。

步骤 6

配置保持时间和接口防反跳时间。

- 保持时间 (Hold Time) - 设置保持时间以确定两次节点心跳状态消息之间的时间间隔，其值介于 0.3 到 45 秒；默认值为 3 秒。

- 接口防反跳时间 (Interface Debounce Time) - 将防反跳时间设置为 300 到 9000 毫秒之间。默认值为 500 毫秒。较小的值可以加快检测接口故障的速度。请注意，如果配置的防反跳时间较低，会增加误报几率。在发生接口状态更新时，节点会等待指定的毫秒数，然后才将接口标记为发生故障，并将节点从集群中删除。对于从故障状态转换为正常运行状态的 EtherChannel（例如，交换机重新加载或交换机启用 EtherChannel）而言，更长的防反跳时间可以防止集群节点上的接口仅仅因为另一个集群节点在绑定端口时的速度更快便显示为故障状态。

步骤 7

自定义在运行状况检查发生故障后的自动重新加入集群设置。

配置自动重新加入设置

为集群接口 (Cluster Interface)、数据接口 (Data Interface) 和系统 (System) 设置以下值（内部故障包括：应用同步超时、应用状态不一致等）：

- 尝试次数 (Attempts) - 设置重新加入尝试次数，介于 -1 和 65535 之间。0 将禁用自动重新加入。集群接口 (Cluster Interface) 的默认值为 -1（无限制）。数据接口 (Data Interface) 和系统 (System) 的默认值为 3。

- 尝试之间的间隔 (Interval Between Attempts) - 定义两次重新加入尝试之间的间隔持续时间（以分钟为单位），介于 2 和 60 之间。默认值为 5 分钟。节点尝试重新加入集群的最大总时间限制为自上次失败之时起 14400 分钟（10 天）。

- 间隔变化 (Interval Variation) - 定义是否增加间隔持续时间。设置介于 1 和 3 之间的值：1（无更改）；2（2 倍于上一次持续时间）或 3（3 倍于上一次持续时间）。例如，如果您将间隔持续时间设置为 5 分钟，并将变化设置为 2，则在 5 分钟后进行第 1 次尝试；在 10 分钟 (2 x 5) 后进行第 2 次尝试；在 20 分钟 (2 x 10) 后进行第 3 次尝试。集群接口 (Cluster Interface) 的默认值为 1，数据接口 (Data Interface) 和系统 (System) 的默认值为 2。

步骤 8

通过移动受监控接口 (Monitored Interfaces)或不受监控接口 (Unmonitored Interfaces) 窗口中的接口来配置受监控接口。您还可以选中或取消选中启用服务应用监控 (Enable Service Application Monitoring)，以启用或禁用对 Snort 和磁盘已满进程的监控。

配置受监控的接口

接口运行状态检查将监控链路故障。如果特定逻辑接口的所有物理端口在特定节点上发生故障，但在其他节点上的同一逻辑接口下仍有活动端口，则会从集群中删除该节点。节点在多长时间后从集群中删除成员取决于接口的类型以及该节点是既定节点还是正在加入集群的设备。默认情况下，为所有接口以及 Snort 和磁盘已满进程启用运行状况检查。

您可能想禁用不重要的接口的运行状况检查。

当拓扑发生任何更改时（例如添加或删除数据接口、启用或禁用节点、或交换机上的接口、或者添加额外的交换机形成 VSS 或 vPC），您应禁用系统运行状态检查功能，还要禁用对已禁用接口的接口监控。当拓扑结构更改完成且配置更改已同步到所有节点后，您可以重新启用系统运行状况检查功能和被监控的接口。

步骤 9

点击保存。

步骤 10

部署配置更改。

管理集群节点

- 禁用集群

- 重新加入集群

- 调整集群节点

- 取消注册集群或节点并注册到新管理中心

禁用集群

您可能需要停用节点，以准备删除节点，或临时进行维护。此程序旨在暂时停用节点；节点仍将显示在 管理中心 设备列表中。当节点变为非活动状态时，所有数据接口都将关闭。

注

在禁用集群之前，请勿关闭节点。

过程

步骤 1

对于要禁用的设备，请选择设备 (Devices) > 设备管理 (Device Management)，点击 更多 ()，然后选择禁用节点集群 (Disable Node Clustering)。

步骤 2

确认要在节点上禁用集群。

节点将在设备 (Devices) > 设备管理 (Device Management) 列表中的节点名称旁边显示（已禁用）([Disabled])。

步骤 3

重新启用集群，请参阅 重新加入集群。

重新加入集群

如果从集群中删除了某个节点（例如对于出现故障的接口），或者如果您手动禁用集群，必须手动将其重新加入集群。确保故障已解决，再尝试重新加入集群。有关可从集群中删除节点的原因的更多信息，请参阅重新加入集群。

过程

步骤 1

对于要重新激活的设备，请选择设备 (Devices) > 设备管理 (Device Management)，点击 更多 ()，然后选择启用节点集群 (Enable Node Clustering)。

步骤 2

确认要在节点上启用集群。

调整集群节点

如果集群节点注册失败，则可将集群成员身份从设备协调至 管理中心。例如，数据节点在 管理中心 被占用或存在网络问题时注册失败的情况下。

过程

步骤 1

选择集群的 设备 > 设备管理 > 更多 () ，然后选择 集群实时状态 来打开 集群状态 对话框。

步骤 2

点击协调全部 (Reconcile All)。

协调全部

有关集群状态的详细信息，请参阅监控集群。

取消注册集群或节点并注册到新管理中心

您可以从 管理中心 中取消注册集群，从而使集群保持不变。如果要将集群添加到新的 管理中心，则可能需要取消注册该集群。

您还可以从 管理中心 取消注册节点，而不会中断集群中的节点。虽然该节点不会显示在 管理中心 中，但它仍然是集群的一部分，并且它会继续传递流量，甚至可能成为控制节点。您无法取消注册当前的控制节点。如果无法再从管理中心访问该节点，您可能会希望将其取消注册，但在排除管理连接故障时，您仍希望将其作为集群的一部分。

取消注册集群：

- 会切断 管理中心和该集群之间的所有通信。

- 从 设备管理 页面删除集群。

- 如果集群的平台设置策略配置为使用 NTP 从 管理中心 接收时间，则将集群返回本地时间管理。

- 保持配置不变，以便集群继续处理流量。

NAT 和 VPN、ACL 等策略以及接口配置保持不变。

将集群再次注册到相同或不同的 管理中心 会导致配置被删除，因此集群将在该点停止处理流量；集群配置保持不变，因此您可以将集群作为一个整体添加。您可以在注册时选择访问控制策略，但必须在注册后重新应用其他策略，然后在再次处理流量之前部署配置。

开始之前

此过程需要 CLI 对一个节点拥有访问权限。

过程

步骤 1

选择设备 (Devices) > 设备管理 (Device Management)，点击集群或节点的 更多 ()，然后选择取消注册 (Unregister)。

步骤 2

系统会提示您取消注册集群或节点；点击是 (Yes)。

步骤 3

您可以通过将其中一个集群成员添加为新设备来将集群注册到新的（或相同的） 管理中心 集群。

您只用将其中一个集群节点添加为设备，然后便可发现其余集群节点。

1. 连接到一个集群节点的 CLI，并使用 configure manager add 命令识别新 管理中心。

2. 选择设备 (Devices) > 设备管理 (Device Management)，然后点击 添加设备 (Add Device)。

步骤 4

要重新添加已删除的节点，请参阅调整集群节点。

监控集群

您可以在 管理中心 中和 威胁防御 CLI 上监控集群。

- 集群状态 (Cluster Status) 对话框，可通过设备 (Devices) > 设备管理 (Device Management) > 更多 () 图标或从设备 (Devices) > 设备管理 (Device Management) > 集群 (Cluster) 页面 > 常规 (General) 区域 > 集群实时状态 (Cluster Live Status) 链接打开。

集群状态

控制节点有一个标识其角色的图形指示器。

集群成员 状态 包括以下状态：

- 正在同步 (In Sync.) - 节点已向 管理中心 注册。

- ⁪待处理注册 (Pending Registration) - 节点是集群的一部分，但尚未向 管理中心 注册。如果节点注册失败，则可点击协调所有 (Reconcile All) 以重试注册。

- 集群已禁用 (Clustering is disabled) - 节点已向 管理中心 注册，但它是集群的非活动成员。如果您打算稍后重新启用集群配置，集群配置将保持不变，或者您可以从集群中删除节点。

- “正在加入集群...”(Joining cluster...) - 节点正在加入机箱上的集群，但尚未完成加入。设备将在加入集群后向 管理中心 注册。

对于每个节点，您可以查看摘要 (Summary) 或历史记录 (History)。

节点摘要

节点历史记录

- 系统 () > 任务 页面。

任务 (Tasks) 页面会在每个节点注册时更新“集群注册”(Cluster Registration) 任务。

- 设备 (Devices) > 设备管理 (Device Management) > cluster_name。

展开设备列表页面上的集群时，您可以看到所有成员节点，包括 IP 地址旁显示其角色的控制节点。对于仍在注册的节点，则可看到加载图标。

- show cluster {access-list [acl_name] | conn [count] | cpu [usage] | history | interface-mode | memory | resource usage | service-policy | traffic | xlate count}

要查看整个集群的聚合数据或其他信息，请使用 show cluster 命令。

- show cluster info [auto-join | clients | conn-distribution | flow-mobility counters | goid [options] | health | incompatible-config | loadbalance | old-members | packet-distribution | trace [options] | transport { asp | cp}]

要查看集群信息，请使用 show cluster info 命令。

- 集群运行状况监控器控制面板

集群运行状况监控器控制面板

- 查看集群运行状况

- 集群指标

集群运行状况监控器

当 威胁防御 是集群的控制节点时， 管理中心 会定期从设备指标数据收集器收集各种指标。集群运行状况监控器由以下组件组成：

- 概述控制面板 - 显示有关集群拓扑、集群统计信息和指标图表的信息：

- 拓扑部分显示集群的实时状态、单个威胁防御的运行状况、威胁防御节点类型（控制节点或数据节点）以及设备的状态。设备的状态可以是 已禁用 （当设备离开集群时）、 已添加 （在公共云集群中，不属于 管理中心的其他节点）或 正常 （节点的理想状态）。

- 集群统计信息部分显示集群的当前指标，包括 CPU 使用率、内存使用率、输入速率、输出速率、活动连接和 NAT 转换。

注

CPU 和内存指标显示数据平面和 snort 使用情况的单个平均值。

- 指标图表（即 CPU 使用情况、内存使用情况、吞吐量和连接）以图形方式显示指定时间段内的集群统计信息。

- 负载分布控制面板 - 在两个构件中显示集群节点的负载分布：

- “分布”构件显示整个集群节点在整个时间范围内的平均数据包和连接分布情况。此数据描述节点如何分配负载。使用此构件，您可以轻松识别负载分布中的任何异常并进行纠正。

- “节点统计信息”构件以表格格式显示节点级别指标。它显示有关 CPU 使用率、内存使用率、输入速率、输出速率、活动连接以及跨集群节点的 NAT 转换的指标数据。此表视图使您能够关联数据并轻松识别任何差异。

- 成员性能控制面板 - 显示集群节点的当前指标。您可以使用选择器来过滤节点并查看特定节点的详细信息。指标数据包括 CPU 使用率、内存使用率、输入速率、输出速率、活动连接和 NAT 转换。

- CCL 控制面板 - 以图形方式显示集群控制链路数据，即输入和输出速率。

- 故障排除和链接 - 提供常用故障排除主题和程序的便捷链接。

- 时间范围 - 用于限制各种设备指标窗口中显示的信息的可调时间窗口。

- 自定义控制面板 - 显示有关集群范围指标和节点级指标的数据。但是，节点选择仅适用于威胁防御指标，不适用于节点所属的整个集群。

查看集群运行状况

您必须是管理员、运维或安全分析师用户才能执行此程序。

集群运行状况监控器提供集群和其节点的运行状态的详细视图。此集群运行状况监控器在一系列控制面板中提供集群的运行状况和趋势。

开始之前

- 确保您已从管理中心中的一个或多个设备创建集群。

过程

步骤 1

选择系统 () > 运行状况 > 监控。

使用监控导航窗格访问节点特定的运行状况监控器。

步骤 2

在设备列表中，点击 展开（） 和 折叠（） 以展开和折叠受管集群设备列表。

步骤 3

要查看集群运行状况统计信息，请点击集群名称。默认情况下，集群监控器会在多个预定义的控制面板中报告这些运行状况和性能。指标控制面板包括：

- 概述 ― 突出显示其他预定义控制面板中的关键指标，包括其节点、CPU、内存、输入和输出速率、连接统计信息；以及 NAT 转换信息。

- 负载分布 ― 跨集群节点的流量和数据包分布。

- 成员性能 - 有关 CPU 使用率、内存使用率、输入吞吐量、输出吞吐量、活动连接和 NAT 转换的节点级统计信息。

- CCL - 接口状态和汇聚流量统计信息。

您可以通过点击标签浏览各种指标控制面板。有关受支持的集群指标的完整列表，请参阅 Cisco Secure Firewall Threat Defense 运行状况指标。

步骤 4

您可以从右上角的下拉列表中配置时间范围。您可以更改时间范围以反映短至前一小时（默认），或长至前一年的时间周期信息。从下拉列表中选择自定义 (Custom) 以配置自定义开始和结束日期。

点击刷新图标可将自动刷新设置为 5 分钟或关闭自动刷新。

步骤 5

点击“部署”图标，在趋势图上根据所选时间范围显示部署重叠。

部署图标指示所选时间范围内的部署数量。垂直条带表示部署开始和结束时间。对于多个部署，将显示多个频段/行。点击虚线顶部的图标可查看部署详细信息。

步骤 6

（对于特定节点运行状况监控器）在设备名称右侧的页面顶部的警报通知中查看节点的 运行状况警报 。

将鼠标指针悬停在 运行状况警报 上可查看节点的运行状况摘要。弹出窗口显示前五个运行状况警报的截断摘要。点击弹出窗口可打开运行状况警报摘要的详细视图。

步骤 7

（对于特定节点运行状况监控器）默认情况下，设备监控器会在多个预定义的控制面板中报告这些运行状况和性能。指标控制面板包括：

- 概述 ― 突出显示其他预定义控制面板中的关键指标，包括 CPU、内存、接口、连接统计信息；以及磁盘使用情况和关键进程信息。

- CPU - CPU 利用率，包括按进程和物理核心划分的 CPU 使用情况。

- 内存 - 设备内存使用率，包括数据平面和 Snort 内存使用率。

- 接口 - 接口状态和汇聚流量统计信息。

- 连接 - 连接统计信息（例如大象流、活动连接、峰值连接等）和 NAT 转换计数。

- Snort - 与 Snort 进程相关的统计信息。

- ASP 丢弃 ― 与因各种原因而丢弃的数据包相关的统计信息。

您可以通过点击标签浏览各种指标控制面板。有关受支持设备指标的完整列表，请参阅 Cisco Secure Firewall Threat Defense 运行状况指标。

步骤 8

点击运行状况监控器右上角的加号 (+)，通过从可用指标组构建您自己的变量集来创建自定义控制面板。

对于集群范围的控制面板，选择集群指标组，然后选择指标。

集群指标

集群运行状况监控器跟踪与集群及其节点相关的统计信息，以及负载分布、性能和 CCL 流量统计信息的汇总。

集群指标

指标

说明

格式

CPU

集群节点上的 CPU 指标平均值（分别针对数据平面和 snort）。

percentage

Memory

集群节点上的平均内存指标（分别用于数据平面和 snort）。

percentage

数据吞吐量

集群的传入和传出数据流量统计信息。

bytes

CCL 吞吐量

集群的传入和传出 CCL 流量统计信息。

bytes

连接

集群中的活动连接计数。

数字

NAT 转换

集群的 NAT 转换计数。

数字

分布

集群中每秒的连接分布计数。

数字

数据包数

集群中每秒的数据包分发计数。

数字

对集群进行故障排除

您可以使用 CCL Ping 工具确保集群控制链路正常运行。 您还可以使用以下适用于设备和集群的工具：

- 故障排除文件-如果节点未能加入集群，系统将自动生成故障排除文件。您还可以从 设备 > 设备管理 > 集群 > 常规 区域生成和下载故障排除文件。

您还可以通过点击 更多 () 并选择 文件故障排除 ，从 设备管理页面生成文件。

- CLI 输出-从 设备 > 设备管理 > 集群 > 常规区域，您可以查看一组预定义的 CLI 输出，帮助您排除集群的故障。系统会自动为集群运行以下命令：

- show running-config cluster

- show cluster info

- show cluster info health

- show cluster info transport cp

- show version

- show asp drop

- show counters

- show arp

- show int ip brief

- show blocks

- show cpu detailed

- show interface ccl_interface

- ping ccl_ip size ccl_mtu repeat 2

- show nve

- show route

- show tech-support

您还可以在命令字段中输入任何 show 命令。

- 在集群控制链路上执行 Ping

在集群控制链路上执行 Ping

您可以通过执行 ping 来检查是否所有集群节点都能通过集群控制链路相互连接。节点无法加入集群的一个主要原因是集群控制链路配置不正确，例如，集群控制链路 MTU 设置可能高于连接交换机的 MTU。

过程

步骤 1

选择 设备 (Devices) > 设备管理 (Device Management)，点击集群的 更多 () 图标，然后选择 > 集群实时状态 (Cluster Live Status)。

集群状态

步骤 2

展开其中一个节点，然后点击 CCL Ping。

CCL Ping

节点使用与最大 MTU 匹配的数据包大小在集群控制链路上向每个其他节点发送 ping 命令。

升级集群

要升级 threat defense virtual 集群，请执行以下步骤。

过程

步骤 1

将目标映像版本上传到云映像存储。

步骤 2

使用更新后的目标映像版本来更新集群的云实例模板。

1. 使用目标映像版本来创建实例模板的副本。

2. 将新创建的模板附加到集群实例组。

步骤 3

将目标映像版本升级包上传到 管理中心。

步骤 4

对要升级的集群执行就绪性检查。

步骤 5

成功进行就绪性检查后，开始安装升级包。

步骤 6

管理中心 会一次升级一个集群节点。

步骤 7

成功升级集群后，管理中心 会显示通知。

升级后，实例的序列号和 UUID 不会变化。

注

- 如果从管理中心启动集群升级，请确保在升级后重新启动过程中没有 Threat Defense Virtual 设备意外终止或被自动扩展组替换。要防止这种情况发生，请转到 AWS 控制台，点击 自动扩展组 (Auto scaling group) -> 高级配置 (Advanced configurations)，然后暂停运行状况检查和替换不正常的进程。升级完成后，再次转至高级配置 (Advanced configurations) 并删除所有暂停的进程，以检测运行状况不佳的实例。

- 如果将 AWS 上部署的集群从主要版本升级到补丁版本，然后向上扩展集群，则新节点将提供主要版本而不是补丁版本。然后，您必须从管理中心手动将每个节点升级到修补程序版本。

或者，您也可以从已应用修补程序且没有 Day 0 配置的独立 Threat Defense Virtual 实例的快照来创建 Amazon 系统映像 (AMI)。在集群部署模板中使用此 AMI。扩展集群时出现的任何新节点都将具有补丁版本。

集群参考

本部分包括有关集群工作原理的详细信息。

- 威胁防御功能和集群

- 性能换算系数

- 控制节点选择

- 集群中的高可用性

- 集群管理连接的方式

威胁防御功能和集群

部分 威胁防御 功能不受集群支持，还有部分功能仅在控制设备上受支持。其他功能可能对如何正确使用规定了注意事项。

- 不支持的功能和集群

- 集群集中化功能

- 思科 TrustSec 和集群

- 连接设置和集群

- 动态路由和集群

- FTP 和集群

- NAT 和集群

- SIP 检测和集群

- SNMP 和集群

- 系统日志和集群

- VPN 和集群

不支持的功能和集群

以下功能在启用集群的情况下无法配置，相关命令会被拒绝。

注

要查看集群不支持的 FlexConfig 功能（例如 WCCP 检测），请参阅 《ASA常规操作配置指南》。FlexConfig 允许您配置 管理中心 GUI 中不存在的许多 ASA 功能。

- 远程访问 VPN（SSL VPN 和 IPsec VPN）

- DHCP 客户端、服务器和代理。支持 DHCP 中继。

- 虚拟隧道接口 (VTIs)

- 高可用性

- 集成路由和桥接

- FMC UCAPL/CC 模式

集群集中化功能

以下功能只有在控制节点上才受支持，且无法为集群扩展。

注

集中功能的流量从成员节点通过集群控制链路转发到控制节点。

如果使用再均衡功能，则会先将集中功能的流量再均衡到非控制节点的设备，然后再将该流量归类为集中功能；如果发生此情况，该流量随后将被发送回控制节点。

对集中功能而言，如果控制节点发生故障，则所有连接都将断开，而您必须在新的控制节点上重新建立连接。

注

要查看也通过集群进行集中化的 FlexConfig 功能（例如 RADIUS 检测），请参阅 《ASA 常规操作配置指南》。FlexConfig 允许您配置 管理中心 GUI 中不存在的许多 ASA 功能。

- 以下应用检查：

- DCERPC

- ESMTP

- NetBIOS

- PPTP

- RSH

- SQLNET

- SUNRPC

- TFTP

- XDMCP

- 静态路由监控

思科 TrustSec 和集群

只有控制节点学习安全组标记 (SGT) 信息。然后，控制节点将 SGT 填充到数据节点，数据节点可以根据安全策略对 SGT 做出匹配决策。

连接设置和集群

连接限制在集群范围强制实施。每个节点都有根据广播消息估计的集群范围的计数器值。出于效率考虑，在集群中配置的连接限制可能不会严格按限制数量实施。每个节点在任何指定时间都可能高估或低估集群范围内的计数器值。不过，在负载均衡的集群中，该信息将随时间而更新。

动态路由和集群

在独立接口模式下，每个节点作为独立的路由器运行路由协议，且每个节点独立获知路由。

独立接口模式下的动态路由

在上图中，路由器 A 获知有 4 条等价路径通往路由器 B，每条路径都要经过一个节点。ECMP 用于在这 4 条路径之间对流量执行负载均衡。每个节点在与外部路由器通信时，都会挑选不同的路由器 ID。

您必须为路由器 ID 配置一个集群池，使每个节点都有单独的路由器 ID。

FTP 和集群

- 如果 FTP 数据通道和控制通道流量由不同的集群成员所有，则数据通道所有者会将空闲超时更新定期发送到控制通道所有者并更新空闲超时值。但是，如果重新加载控制流量所有者并重新托管控制流量，则不会再保持父/子流量关系；控制流量空闲超时不会更新。

NAT 和集群

对于 NAT 用途，请参阅以下限制。

NAT 可能会影响集群的总吞吐量。入站和出站 NAT 数据包可被发送到集群中不同的 威胁防御，因为负载均衡算法取决于 IP 地址和端口，NAT 会导致入站和出站数据包具有不同的 IP 地址和/或端口。当数据包到达并非 NAT 所有者的 威胁防御时，会通过集群控制链路转发到所有者，导致集群控制链路上存在大量流量。请注意，接收节点不会创建流向所有者的转发流量，因为 NAT 所有者最终可能不会根据安全和策略检查结果为数据包创建连接。

如果您仍想在集群中使用 NAT，请考虑以下准则：

- 不使用代理 ARP - 对于独立接口，切勿为映射的地址发送代理 ARP 回复。这可以防止邻接路由器与可能已经不在集群中的 ASA 保持对等关系。对于指向主集群 IP 地址的映射地址，上游路由器需要静态路由或带对象跟踪的 PBR。

- PAT 采用端口块分配 - 请参阅该功能的以下准则：

- 每主机最大流量限制并不针对整个集群，而是单独应用于每个节点。因此，在每主机最大流量限制配置为 1 的包含 3 个节点的集群中，如果在全部 3 个节点上对来自主机的流量实行负载均衡，则可以分配 3 个端口块，每个节点 1 个。

- 在执行每主机最大流量限制时，在备份池中的备份节点上创建的端口块不计算在内。

- 如果进行即时 PAT 规则修改（对 PAT 池改用全新的 IP 地址范围），会导致在新的池生效时仍在传输的转换项备份请求的转换项备份创建失败。此行为并非端口块分配功能所特有，它是一个暂时性 PAT 池问题，只发现于在集群节点之间分配池并执行流量负载均衡的集群部署。

- 在集群中操作时，不能直接更改块分配大小。只有在集群中重新加载每个设备后，新的大小才会生效。为避免重新加载每个设备，我们建议您删除所有块分配规则并清除与这些规则相关的所有转换。然后，您可以更改块大小并重新创建块分配规则。

- 对动态 PAT 使用 NAT 池地址分配 - 配置 PAT 池时，集群将池中的每个 IP 地址划分为端口块。默认情况下，每个块都是 512 个端口，但如果配置端口块分配规则，则使用块设置。这些块在集群中的各个节点之间均匀分配，因此每个节点都有一个或多个块对应 PAT 池中的每个 IP 地址。因此，在一个集群的 PAT 池中可以最少拥有一个 IP 地址，只要这足以支持您预期的 PAT 连接数即可。端口块覆盖的端口范围为 1024-65535，除非您在 PAT 池 NAT 规则中配置该选项以包含保留的端口 1-1023。

- 在多个规则中重复使用 PAT 池 - 要在多条规则中使用同一 PAT 池，必须注意规则中的接口选择。必须在所有规则中使用特定接口，或者在所有规则中使用“任意”接口。不能在规则中混合使用特定接口和“任意”接口，否则系统可能无法将返回流量与集群中的正确节点进行匹配。每条规则使用唯一的 PAT 池是最可靠的方案。

- 不使用轮询 - 集群不支持 PAT 池轮询。

- 无扩展 PAT - 集群不支持扩展 PAT。

- 控制节点管理的动态 NAT 转换 - 控制节点保留转换表并复制到数据节点。当数据节点收到需要动态 NAT 的连接并且转换不在表中时，它将请求从控制节点转换。数据节点拥有该连接。

- 过时 xlate - 连接所有者上的 xlate 空闲时间不会更新。因此，空闲时间值可能会超过空闲超时值。如果空闲计时器值高于配置的超时值（refcnt 为 0），则表示 xlate 过时。

- 对以下检查不使用静态 PAT：

- FTP

- RSH

- SQLNET

- TFTP

- XDMCP

- SIP

- 如果您有大量 NAT 规则（超过一万条），则应使用设备 CLI 中的 asp rule-engine transactional-commit nat 命令启用事务提交模型。否则，节点可能无法加入集群。

SIP 检测和集群

控制流可以在任何节点上创建（由于负载均衡），但其子数据流必须位于同一节点上。

SNMP 和集群

您应始终使用本地地址而非主集群 IP 地址进行 SNMP 轮询。如果 SNMP 代理轮询主集群 IP 地址，则当选举出新的控制节点时，对新控制节点的轮询将失败。

当使用 SNMPv3 进行集群时，如果您在初始集群形成后添加新的集群节点，则 SNMPv3 用户不会复制到新节点。您必须删除用户并重新添加，然后重新部署配置，以强制用户复制到新节点。

系统日志和集群

- 集群中的每个节点都会生成自己的系统日志消息。您可以配置日志记录，使每个节点在系统日志消息的报头字段中使用相同或不同的设备 ID。例如，集群中的所有节点都会复制和共享主机名配置。如果将日志记录配置为使用主机名作为设备 ID，则所有节点生成的系统日志消息都会看似来自一个节点。如果将日志记录配置为使用集群引导程序配置中指定的本地节点名称作为设备 ID，系统日志消息就会看似来自不同节点。

VPN 和集群

站点间 VPN 是集中功能；只有控制节点支持 VPN 连接。

注

集群不支持远程访问 VPN。

VPN 功能仅限控制节点使用，且不能利用集群的高可用性功能。如果控制节点发生故障，所有现有的 VPN 连接都将断开，VPN 用户将遇到服务中断。选择新的控制节点后，必须重新建立 VPN 连接。

对于使用 PBR 或 ECMP 时与独立接口的连接，您必须始终连接到主集群 IP 地址而非本地地址。

与 VPN 相关的密钥和证书将被复制到所有节点。

性能换算系数

将多台设备组成一个集群时，预计可以达到近似 80% 最大组合吞吐量的集群总体性能。

例如，如果您的型号在单独运行时可以处理大约 10 Gbps 的流量，则对于 8 台设备的集群，最大组合吞吐量约为 80 Gbps（8 台设备 x 10 Gbps）的 80%：64 Gbps。

控制节点选择

集群节点通过集群控制链路通信，如下选举控制节点：

1. 当为节点启用集群（或当节点首次启动时已启用集群）时，设备会每 3 秒广播一个选举请求。

2. 具有较高优先级的任何其他设备都会响应选举请求；优先级设置在 1 和 100 之间，其中 1 为最高优先级。

3. 如果某节点在 45 秒后未收到另一个具有较高优先级的节点的响应，则该设备会成为控制节点。

注

如果多个节点并列获得最高优先级，则使用集群节点名称和序列号确定控制节点。

4. 如果节点稍后加入具有更高优先级的集群，它不会自动成为控制节点；现有控制节点始终保持为控制节点，除非它停止响应，此时会选择新的控制节点。

5. 在“裂脑”场景中，当临时存在多个控制节点时，具有最高优先级的节点将会保留角色，而其他节点则恢复为数据节点角色。

注

您可以手动强制节点成为控制节点。对集中功能而言，如果强制更改控制节点，则所有连接都将断开，而您必须在新的控制节点上重新建立连接。

集群中的高可用性

集群通过监控节点和接口的运行状况并在节点之间复制连接状态来提供高可用性。

- 节点运行状况监控

- 接口监控

- 发生故障后的状态

- 重新加入集群

- 数据路径连接状态复制

节点运行状况监控

每个节点通过集群控制链路定期发送广播保持连接心跳数据包。如果控制节点在可配置的超时期限内未从数据节点接收任何keepalive心跳数据包或其他数据包，则控制节点会从集群中删除该数据节点。如果数据节点未从控制节点接收数据包，则从其余节点中选择新的控制节点。

如果节点因为网络故障而不是因为节点实际故障而无法通过集群控制链路相互访问，则集群可能会进入“裂脑”场景，其中隔离的数据节点将选择自己的控制节点。例如，如果路由器在两个集群位置之间发生故障，则位于位置1的原始控制节点将从集群中删除位置2数据节点。同时，位置2的节点将选择自己的控制节点并形成自己的集群。请注意，在这种情况下，非对称流量可能会失败。恢复集群控制链路后，优先级较高的控制节点将保留控制节点的角色。

接口监控

每个节点都会监控使用中的所有已命名的硬件接口的链路状态，并向控制节点报告状态更改。

监控所有物理接口；只能监控已命名的接口。 可以选择性地禁用对每个接口的监控。

如果某个节点被监控的接口发生故障，则将从集群中删除该设备。节点将在 500 毫秒后删除。

发生故障后的状态

如果控制节点发生故障，则优先级最高（数字最小）的另一个集群成员将成为控制节点。

威胁防御将自动尝试重新加入集群，具体取决于故障事件。

注

当 威胁防御 变成不活动状态且无法自动重新加入集群时，所有数据接口都会关闭，仅管理接口可以发送和接收流量。

重新加入集群

当集群成员从集群中删除之后，如何才能重新加入集群取决于其被删除的原因：

- 集群控制链路在最初加入时出现故障 - 在解决集群控制链路存在的问题后，您必须通过重新启用集群来手动重新加入集群。

- 加入集群后出现故障的集群控制链路 - FTD 无限期地每 5 分钟自动尝试重新加入。

- 数据接口发生故障 - 威胁防御 会依次在第 5 分钟、第 10 分钟和第 20 分钟时自动尝试重新加入。如果在 20 分钟后未成功加入，则 威胁防御应用会禁用集群。在解决数据接口的问题之后，必须手动启用集群。

- 节点存在故障 - 如果节点因节点运行状况检查失败而从集群中删除，则如何重新加入集群取决于失败的原因。例如，临时电源故障意味着节点会在重新启动后重新加入集群，只要集群控制链路开启即可。威胁防御应用会每隔 5 秒尝试一次重新加入集群。

- 内部错误 - 内部故障包括：应用同步超时；应用状态不一致等。 当您解决此问题后，必须通过重新启用集群来手动重新加入集群。

- 失败的配置部署-如果从 FMC 部署新配置，并且在某些集群成员上部署失败，但在其他集群成员上成功部署，则从集群中删除失败的节点。您必须通过重新启用集群来手动重新加入集群。如果控制节点上的部署失败，则会回滚部署，并且不会删除任何成员。如果在所有数据节点上部署失败，则会回滚部署，并且不会删除成员。

数据路径连接状态复制

每个连接在集群中都有一个所有者和至少一个备用所有者。备用所有者在发生故障时不会接管连接；而是存储 TCP/UDP 状态信息，使连接在发生故障时可以无缝转移到新的所有者。备用所有者通常也是导向器。

有些流量需要 TCP 或 UDP 层以上的状态信息。请参阅下表了解支持或不支持此类流量的集群。

在集群中复制的功能

流量

状态支持

备注

运行时间

是

跟踪系统运行时间。

ARP 表

是

-

MAC 地址表

是

-

用户标识

是

—

IPv6 邻居数据库

是

—

动态路由

是

—

SNMP 引擎 ID

否

-

集群管理连接的方式

连接可以负载平衡到集群的多个节点。连接角色决定了在正常操作中和高可用性情况下处理连接的方式。

- 连接角色

- 新连接所有权

- TCP 的数据流示例

- ICMP 和 UDP 的数据流示例

连接角色

请参阅为每个连接定义的下列角色：

- 所有者 - 通常为最初接收连接的节点。所有者负责维护 TCP 状态并处理数据包。一个连接只有一个所有者。如果原始所有者发生故障，则当新节点从连接接收到数据包时，导向器会从这些节点中选择新的所有者。

- 备用所有者 - 存储从所有者接收的 TCP/UDP 状态信息的节点，以便在出现故障时可以无缝地将连接转移到新的所有者。在发生故障时，备用所有者不会接管连接。如果所有者处于不可用状态，从该连接接收数据包的第一个节点（根据负载均衡而定）联系备用所有者获取相关的状态信息，以便成为新的所有者。

只要导向器（见下文）与所有者不是同一节点，导向器也可以是备用所有者。如果所有者选择自己作为导向器，则选择一个单独的备用所有者。

对于 Firepower 9300 上的在一个机箱中包括多达 3 个集群节点的集群，如果备用所有者与所有者在同一机箱上，则将从另一个机箱中选择一个额外的备用所有者来保护流量免受机箱故障的影响。

- 导向器 - 处理来自转发器的所有者查找请求的节点。当所有者收到新连接时，会根据源/目的 IP 地址和端口的散列值（有关 ICMP 散列详细信息，请参见下文）选择导向器，然后向导向器发送消息来注册该新连接。如果数据包到达除所有者以外的任何其他节点，该节点会向导向器查询哪一个节点是所有者，以便转发数据包。一个连接只有一个导向器。如果导向器发生故障，所有者会选择一个新的导向器。

只要导向器与所有者不是同一节点，导向器也可以是备用所有者（见上文）。如果所有者选择自己作为导向器，则选择一个单独的备用所有者。

ICMP/ICMPv6 散列详细信息：

- 对于 Echo 数据包，源端口为 ICMP 标识符，目的端口为 0。

- 对于 Reply 数据包，源端口为 0，目的端口为 ICMP 标识符。

- 对于其他数据包，源端口和目的端口均为 0。

- 转发器 - 向所有者转发数据包的节点。如果转发者收到并非其所有的连接的数据包，则会向导向器查询所有者，然后为其收到的此连接的任何其他数据包建立发往所有者的流量。导向器也可以是转发者。请注意，如果转发者收到 SYN-ACK 数据包，它可以从数据包的 SYN Cookie 直接获知所有者，因此无需向导向器查询。（如果禁用 TCP 序列随机化，则不会使用 SYN Cookie；必须向导向器查询。）对于 DNS 和 ICMP 等持续时间极短的流量，转发者不会查询，而是立即将数据包发送到导向器，然后由其发送到所有者。一个连接了可以有多个转发器；采用良好的负载均衡方法可以做到没有转发器，让一个连接的所有数据包都由所有者接收，从而实现最高效率的吞吐量。

注

不建议您在使用集群时禁用 TCP 序列随机化。由于 SYN/ACK 数据包可能会被丢弃，因此少数情况下可能无法建立某些 TCP 会话。

- 分段所有者 - 对于分段的数据包，接收分段的集群节点使用分段源 IP 地址、目的 IP 地址和数据包 ID 的散列确定分段所有者。然后，所有片段都通过集群控制链路转发给片段所有者。片段可能均衡分发给不同的集群节点，因为只有第一个分段包含交换机负载均衡散列中使用的 5 元组。其他片段不包含源端口和目的端口，可能会均衡分发给其他集群节点。片段所有者临时重组数据包，以便根据源/目标 IP 地址和端口的散列来确定导向器。如果是新连接，则片段所有者将注册为连接所有者。如果是现有连接，则片段所有者将所有片段转发给集群控制链路上提供的连接所有者。然后，连接所有者将重组所有片段。

新连接所有权

通过负载均衡将新连接定向到集群节点时，该连接的两个方向都由此节点所有。如果该连接有任何数据包到达其他节点，这些数据包都会通过集群控制链路被转发到所有者节点。如果反向流量到达其他节点，会被重定向回原始节点。

TCP 的数据流示例

以下图例显示了新连接的建立。

1. SYN 数据包从客户端发出，被传送到一台 威胁防御（基于负载均衡方法），该设备将成为所有者。所有者创建一个流量，将所有者信息编码为 SYN Cookie，然后将数据包转发到服务器。

2. SYN-ACK 数据包从服务器发出，被传送到一台不同的 威胁防御（基于负载均衡方法）。此 威胁防御是转发者。

3. 由于转发器不是该连接的所有者，因此它将解码 SYN Cookie 中的所有者信息，然后创建发往所有者的转发流量，并将 SYN-ACK 数据包转发到所有者。

4. 所有者将状态更新发送到导向器，然后将 SYN-ACK 数据包转发到客户端。

5. 导向器接收来自所有者的状态更新，创建发往所有者的流量，并记录 TCP 状态信息以及所有者。导向器将充当该连接的备用所有者。

6. 传送到转发器的任何后续数据包都会被转发到所有者。

7. 如果数据包被传送到任何其他节点，它将向导向器查询所有者并建立一个流量。

8. 该流量的任何状态更改都会导致所有者向导向器发送状态更新。

ICMP 和 UDP 的数据流示例

以下图例显示了新连接的建立。

1. ICMP 和 UDP 数据流

第一个 UDP 数据包从客户端发出，被传送到一个威胁防御（基于负载均衡方法）。

2. 收到第一个数据包的节点查询基于源/目的 IP 地址和端口的散列值选择的导向器节点。

3. 导向器找不到现有流，创建导向器流并将数据包转发回前一个节点。换句话说，导向器已为此流选择了所有者。

4. 所有者创建流，向导向器发送状态更新，然后将数据包转发到服务器。

5. 第二个 UDP 数据包从服务器发出，并被传送到转发器。

6. 转发器向导向器查询所有权信息。对于 DNS 等持续时间极短的流量，转发者不会查询，而是立即将数据包发送到导向器，然后由其发送到所有者。

7. 导向器向转发器回复所有权信息。

8. 转发器创建转发流以记录所有者信息，并将数据包转发给所有者。

9. 所有者将数据包转发到客户端。

关于公共云中的 Threat Defense Virtual 集群的历史记录

功能

管理中心最低版本

威胁防御最低版本

详情

集群控制链路 ping 工具。

7.4.1

任意

您可以通过执行 ping 来检查是否所有集群节点都能通过集群控制链路相互连接。节点无法加入集群的一个主要原因是集群控制链路配置不正确，例如，集群控制链路 MTU 设置可能高于连接交换机的 MTU。

新增/修改的屏幕：设备 (Devices) > 设备管理 (Device Management) > 更多 () > 集群实时状态 (Cluster Live Status)

其他版本限制：不支持管理中心版本 7.3.x 或 7.4.0。

故障排除文件生成和下载可从“设备”(Device) 和“集群”(Cluster) 页面获取。

7.4.1

7.4.1

您可以在“设备”(Device) 页面上为每个设备以及在“集群”(Cluster) 页面上为所有集群节点生成和下载故障排除文件。对于集群，您可以将所有文件下载为一个压缩文件。您还可以为集群节点添加集群的集群日志。您也可以从设备 (Devices) > 设备管理 (Device Management) > 更多 () > 故障排除文件 (Troubleshoot Files) 菜单中触发文件生成。

新增/修改的菜单项：

- 设备 (Devices) > 设备管理 (Device Management) > 设备 (Device) > 常规 (General)

- 设备 (Devices) > 设备管理 (Device Management) > 集群 (Cluster) > 常规 (General)

查看设备或设备集群的 CLI 输出。

7.4.1

任意

您可以查看一组预定义的 CLI 输出，帮助您排除设备或集群的故障。您还可以输入任何 show 命令并查看输出。

新增/修改的屏幕： 设备 (Devices) > 设备管理 (Device Management) > 集群 (Cluster) > 常规 (General)

集群运行状况监控设置

7.3.0

任意

您现在可以编辑集群运行状况监控设置。

新增/修改的屏幕：设备 (Devices) > 设备管理 (Device Management) > 集群 (Cluster) > 集群运行状况监控设置 (Cluster Health Monitor Settings)

注

如果您之前使用 FlexConfig 配置了这些设置，务必要在部署之前删除 FlexConfig 配置。否则，FlexConfig 配置将覆盖管理中心配置。

集群运行状况监控器控制面板

7.3.0

任意

您现在可以在集群运行状况监控控制面板上查看集群运行状况。

新增/修改的屏幕：系统 () > 运行状况 > 监控

Azure 中的 threat defense virtual 集群

7.3.0

7.3.0

现在，您可以在 Azure 中为 Azure 网关负载均衡器或外部负载均衡器配置最多 16 个节点 threat defense virtual 的集群。

新增/修改的屏幕：

- 设备 > 设备管理 > 添加集群

- 设备 > 设备管理 > 更多 菜单

- 设备 (Devices) > 设备管理 (Device Management) > 集群 (Cluster)

支持的平台：Azure 中的 Threat Defense Virtual

公共云（Amazon Web 服务和 Google 云平台）上 Threat Defense Virtual 的集群

7.2.0

7.2.0

threat defense virtual 支持公共云（AWS 和 GCP）上最多 16 个节点的单个接口集群。

新增/修改的屏幕：

- 设备 (Devices) > 设备管理 (Device Management) > 添加设备 (Add Device)

- 设备 > 设备管理 > 更多 菜单

- 设备 (Devices) > 设备管理 (Device Management) > 集群 (Cluster)

支持的平台：AWS 和 GCP 上的 Threat Defense Virtual

通知