集群允许您将多个 Threat Defense Virtual 作为单一逻辑设备组合到一起。集群具有单个设备的全部便捷性(管理、集成到一个网络中),同时还能实现吞吐量增加和多个设备的冗余性。
目前仅支持路由防火墙模式。
注 |
使用集群时,有些功能不受支持。请参阅。 |
关于 GCP 上的 Threat Defense Virtual 集群
本节介绍集群架构及其工作原理。
集群如何融入网络中
集群包含多台防火墙,作为单一设备工作。要用作集群,该防火墙需要以下基础设施:
-
独立的网络(称为集群控制链路),通过 VXLAN 接口用于集群内的通信。VXLAN 充当第 3 层物理网络上的第 2 层虚拟网络,让 Threat Defense Virtual 能够通过集群控制链路发送广播/组播消息。
-
负载均衡器 - 对于外部负载均衡,您有以下选择:
-
本地 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
-
最多 16 个节点
另请参阅 Cisco Secure Firewall Threat Defense Virtual 入门指南中的 Threat Defense Virtual 一般要求。
用户角色
-
管理员
-
访问管理员
-
网络管理员
硬件和软件要求
集群中的所有设备:
-
必须在同一个性能层。我们建议对所有节点都使用相同数量的 CPU 和内存,否则所有节点上的性能将受到限制,以匹配性能最低的节点。
-
必须从管理接口访问 管理中心;不支持数据接口管理。
-
除在映像升级时以外,必须运行完全相同的软件。支持无中断升级。
-
集群中的所有设备都必须部署在同一可用性区域中。
-
所有设备的集群控制链路接口必须位于同一子网中。
MTU
确保连接到集群控制链路的端口配置了正确(更高)的 MTU。如果存在不匹配的 MTU,则集群形成将失败。默认情况下,集群控制链路 MTU 会被设置为比数据接口高 154 字节。由于集群控制链路流量包括数据包转发,因此集群控制链路需要能够容纳完整大小的数据包以及集群流量开销(100 字节)加上 VXLAN 开销(54 字节)。
下表显示了集群控制链路 MTU 和数据接口 MTU 的默认值。
公共云 |
集群控制链路 MTU |
数据接口 MTU |
---|---|---|
GCP |
1554 |
1400 |
Threat Defense Virtual 集群的准则
高可用性
集群不支持高可用性。
IPv6
集群控制链路只有在使用 IPv4 时才受支持。
其他准则
-
当拓扑发生重大更改时(例如添加或删除 EtherChannel 接口、启用或禁用 威胁防御或交换机上的接口、添加其他交换机以形成 VSS 或 vPC),应禁用运行状况检查功能,另外还应为禁用的接口禁用接口监控。当拓扑更改完成且配置更改已同步到所有设备后,您可以重新启用接口运行状态检查功能。
-
将节点添加到现有集群时或重新加载节点时,会有限地暂时丢弃数据包/断开连接;这是预期的行为。有些时候,丢弃的数据包会挂起连接;例如,丢弃 FTP 连接的 FIN/ACK 数据包将使 FTP 客户端挂起。在此情况下,您需要重新建立 FTP 连接。
-
请勿在节点上禁用集群之前关闭该节点。
-
对于解密的 TLS/SSL 连接,解密状态不同步,如果连接所有者失败,则解密的连接将重置。需要与新节点建立新的连接。未解密的连接(它们匹配“不解密”规则)不受影响,并且可以正确复制。
-
不支持动态扩展。
-
在每个维护窗口完成后执行全局部署。
-
确保一次不要从实例组中删除多个设备。我们还建议您先在设备上运行 cluster disable 命令,然后再从实例组中删除设备。
-
如果要禁用集群中的数据节点和控制节点,我们建议您在禁用控制节点之前先禁用数据节点。如果在集群中有其他数据节点时禁用了某个控制节点,则必须将其中一个数据节点升级为控制节点。请注意,角色更改可能会对集群造成干扰。
-
在本指南中提供的自定义 Day 0 配置脚本中,您可以根据需要更改 IP 地址,提供自定义接口名称,并更改 CCL-Link 接口的顺序。
-
如果在云平台上部署 Threat Defense Virtual 集群后遇到 CCL 不稳定问题(例如间歇性 ping 失败),我们建议您解决导致 CCL 不稳定的原因。此外,您可以增加保持时间,作为在一定程度上缓解 CCL 不稳定问题的临时解决方法。有关如何更改保持时间的详细信息,请参阅 编辑集群运行状况监控设置。
集群默认设置
-
将自动生成 cLACP 系统 ID 且系统优先级默认为 1。
-
默认情况下,集群运行状况检查功能处于启用状态,保持时间为 3 秒。默认情况下,在所有接口上启用接口运行状况监控。
-
用于发生故障的集群控制链路的集群自动重新加入功能为每 5 分钟尝试无限次。
-
用于发生故障的数据接口的集群自动重新加入功能为每 5 分钟尝试 3 次,增量间隔设置为 2。
-
对于 HTTP 流量,默认启用 5 秒的连接复制延迟。
在 GCP 中部署集群
要在 GCP 中部署集群,您可以手动部署,或者使用实例模板来部署实例组。您可以将集群与本地 GCP 负载均衡器或非本地负载均衡器(例如思科云服务路由器)配合使用。
注 |
出站流量需要使用接口 NAT 并被限制为 64K 连接。 |
拓扑示例
此拓扑描述入站和出站流量。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 |
为集群基础设施创建一个存档文件。 示例:
|
步骤 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 地址,请执行以下步骤: |
步骤 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 |
部署集群。
|
在 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 地址的一些示例。
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 个接口的实例模板:外部、内部、管理、诊断和集群控制链路。 |
步骤 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 |
在 管理中心中,选择 ,然后选择 以使用管理 IP 来添加控制设备。 |
步骤 2 |
通过点击集群的 编辑() ,配置设备特定设置。 大多数配置可以应用于整个集群,而不适用于集群中的节点。例如,可以更改每个节点的显示名称,但只能配置整个集群的接口。 |
步骤 3 |
在 常规、许可证、系统和 运行状况 设置。 屏幕上,可以查看请参阅以下集群特定项:
|
步骤 4 |
在 上,可从右上方的下拉菜单中选择集群中的每个成员并配置以下设置。
|
配置集群运行状况监控设置
集群 (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 倍。定义是否增加每次尝试的间隔持续时间。 |
System |
显示内部错误的自动重新加入设置。内部故障包括:应用程序同步超时、不一致的应用程序状态等。 |
尝试次数 |
介于 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 |
配置保持时间和接口防反跳时间。
|
步骤 7 |
自定义在运行状况检查发生故障后的自动重新加入集群设置。
为集群接口 (Cluster Interface)、数据接口 (Data Interface) 和系统 (System) 设置以下值(内部故障包括:应用同步超时、应用状态不一致等):
|
步骤 8 |
通过移动受监控接口 (Monitored Interfaces)或不受监控接口 (Unmonitored Interfaces) 窗口中的接口来配置受监控接口。您还可以选中或取消选中启用服务应用监控 (Enable Service Application Monitoring),以启用或禁用对 Snort 和磁盘已满进程的监控。 接口运行状态检查将监控链路故障。如果特定逻辑接口的所有物理端口在特定节点上发生故障,但在其他节点上的同一逻辑接口下仍有活动端口,则会从集群中删除该节点。节点在多长时间后从集群中删除成员取决于接口的类型以及该节点是既定节点还是正在加入集群的设备。默认情况下,为所有接口以及 Snort 和磁盘已满进程启用运行状况检查。 您可能想禁用不重要的接口的运行状况检查。 当拓扑发生任何更改时(例如添加或删除数据接口、启用或禁用节点、或交换机上的接口、或者添加额外的交换机形成 VSS 或 vPC),您应禁用系统运行状态检查功能,还要禁用对已禁用接口的接口监控。当拓扑结构更改完成且配置更改已同步到所有节点后,您可以重新启用系统运行状况检查功能和被监控的接口。 |
步骤 9 |
点击保存 (Save)。 |
步骤 10 |
部署配置更改。 |
管理集群节点
禁用集群
您可能需要停用节点,以准备删除节点,或临时进行维护。此程序旨在暂时停用节点;节点仍将显示在 管理中心 设备列表中。当节点变为非活动状态时,所有数据接口都将关闭。
注 |
在禁用集群之前,请勿关闭节点。 |
过程
步骤 1 |
对于要禁用的设备,请选择更多(),然后选择禁用节点集群 (Disable Node Clustering)。 ,点击 |
步骤 2 |
确认要在节点上禁用集群。 节点将在(已禁用)([Disabled])。 列表中的节点名称旁边显示 |
步骤 3 |
重新启用集群,请参阅 重新加入集群。 |
重新加入集群
如果从集群中删除了某个节点(例如对于出现故障的接口),或者如果您手动禁用集群,必须手动将其重新加入集群。确保故障已解决,再尝试重新加入集群。有关可从集群中删除节点的原因的更多信息,请参阅重新加入集群。
过程
步骤 1 |
对于要重新激活的设备,请选择更多(),然后选择启用节点集群 (Enable Node Clustering)。 ,点击 |
步骤 2 |
确认要在节点上启用集群。 |
调整集群节点
如果集群节点注册失败,则可将集群成员身份从设备协调至 管理中心。例如,数据节点在 管理中心 被占用或存在网络问题时注册失败的情况下。
过程
步骤 1 |
选择集群的 更多() ,然后选择 集群实时状态 来打开 集群状态 对话框。 |
步骤 2 |
点击协调全部 (Reconcile All)。 有关集群状态的详细信息,请参阅监控集群。 |
删除(取消注册)集群或节点并注册到新管理中心
您可以从 管理中心 中取消注册集群,从而使集群保持不变。如果要将集群添加到新的 管理中心,则可能需要取消注册该集群。
您还可以从 管理中心 取消注册节点,而不会中断集群中的节点。虽然该节点不会显示在 管理中心 中,但它仍然是集群的一部分,并且它会继续传递流量,甚至可能成为控制节点。您无法取消注册当前的控制节点。如果无法再从管理中心访问该节点,您可能会希望将其取消注册,但在排除管理连接故障时,您仍希望将其作为集群的一部分。
取消注册集群:
-
会切断 管理中心和该集群之间的所有通信。
-
从 设备管理 页面删除集群。
-
如果集群的平台设置策略配置为使用 NTP 从 管理中心 接收时间,则将集群返回本地时间管理。
-
保持配置不变,以便集群继续处理流量。
NAT 和 VPN、ACL 等策略以及接口配置保持不变。
将集群再次注册到相同或不同的 管理中心 会导致配置被删除,因此集群将在该点停止处理流量;集群配置保持不变,因此您可以将集群作为一个整体添加。您可以在注册时选择访问控制策略,但必须在注册后重新应用其他策略,然后在再次处理流量之前部署配置。
开始之前
此过程需要 CLI 对一个节点拥有访问权限。
过程
步骤 1 |
选择更多(),然后选择删除 (Delete)。 ,点击集群或节点的 |
步骤 2 |
系统会提示您删除集群或节点;点击是 (Yes)。 |
步骤 3 |
您可以通过将其中一个集群成员添加为新设备来将集群注册到新的(或相同的) 管理中心 集群。 您只用将其中一个集群节点添加为设备,然后便可发现其余集群节点。
|
步骤 4 |
要重新添加已删除的节点,请参阅调整集群节点。 |
监控集群
您可以在 管理中心 中和 威胁防御 CLI 上监控集群。
-
集群状态 (Cluster Status) 对话框,可通过更多() 图标或从 页面 > 常规 (General) 区域 > 集群实时状态 (Cluster Live Status) 链接打开。
控制节点有一个标识其角色的图形指示器。
集群成员 状态 包括以下状态:
-
正在同步 (In Sync.) - 节点已向 管理中心 注册。
-
待处理注册 (Pending Registration) - 节点是集群的一部分,但尚未向 管理中心 注册。如果节点注册失败,则可点击协调所有 (Reconcile All) 以重试注册。
-
集群已禁用 (Clustering is disabled) - 节点已向 管理中心 注册,但它是集群的非活动成员。如果您打算稍后重新启用集群配置,集群配置将保持不变,或者您可以从集群中删除节点。
-
“正在加入集群...”(Joining cluster...) - 节点正在加入机箱上的集群,但尚未完成加入。设备将在加入集群后向 管理中心 注册。
对于每个节点,您可以查看摘要 (Summary) 或历史记录 (History)。
-
-
系统() > 任务 页面。
任务 (Tasks) 页面会在每个节点注册时更新“集群注册”(Cluster Registration) 任务。
-
> 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 |
要查看集群运行状况统计信息,请点击集群名称。默认情况下,集群监控器会在多个预定义的控制面板中报告这些运行状况和性能。指标控制面板包括:
您可以通过点击标签浏览各种指标控制面板。有关受支持的集群指标的完整列表,请参阅 Cisco Secure Firewall Threat Defense 运行状况指标。 |
步骤 4 |
您可以从右上角的下拉列表中配置时间范围。您可以更改时间范围以反映短至前一小时(默认),或长至前一年的时间周期信息。从下拉列表中选择自定义 (Custom) 以配置自定义开始和结束日期。 点击刷新图标可将自动刷新设置为 5 分钟或关闭自动刷新。 |
步骤 5 |
点击“部署”图标,在趋势图上根据所选时间范围显示部署重叠。 部署图标指示所选时间范围内的部署数量。垂直条带表示部署开始和结束时间。对于多个部署,将显示多个频段/行。点击虚线顶部的图标可查看部署详细信息。 |
步骤 6 |
(对于特定节点运行状况监控器)在设备名称右侧的页面顶部的警报通知中查看节点的 运行状况警报 。 将鼠标指针悬停在 运行状况警报 上可查看节点的运行状况摘要。弹出窗口显示前五个运行状况警报的截断摘要。点击弹出窗口可打开运行状况警报摘要的详细视图。 |
步骤 7 |
(对于特定节点运行状况监控器)默认情况下,设备监控器会在多个预定义的控制面板中报告这些运行状况和性能。指标控制面板包括:
您可以通过点击标签浏览各种指标控制面板。有关受支持设备指标的完整列表,请参阅 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 命令。
-
在集群控制链路上执行 Ping
您可以通过执行 ping 来检查是否所有集群节点都能通过集群控制链路相互连接。节点无法加入集群的一个主要原因是集群控制链路配置不正确,例如,集群控制链路 MTU 设置可能高于连接交换机的 MTU。
过程
步骤 1 |
选择 更多() 图标,然后选择 > 集群实时状态 (Cluster Live Status)。 ,点击集群的 |
步骤 2 |
展开其中一个节点,然后点击 CCL Ping。 节点使用与最大 MTU 匹配的数据包大小在集群控制链路上向每个其他节点发送 ping 命令。 |
升级集群
要升级 threat defense virtual 集群,请执行以下步骤。
过程
步骤 1 |
将目标映像版本上传到云映像存储。 |
||
步骤 2 |
使用更新后的目标映像版本来更新集群的云实例模板。
|
||
步骤 3 |
将目标映像版本升级包上传到 管理中心。 |
||
步骤 4 |
对要升级的集群执行就绪性检查。 |
||
步骤 5 |
成功进行就绪性检查后,开始安装升级包。 |
||
步骤 6 |
管理中心 会一次升级一个集群节点。 |
||
步骤 7 |
成功升级集群后,管理中心 会显示通知。 升级后,实例的序列号和 UUID 不会变化。
|
集群参考
本部分包括有关集群工作原理的详细信息。
威胁防御功能和集群
部分 威胁防御 功能不受集群支持,还有部分功能仅在控制设备上受支持。其他功能可能对如何正确使用规定了注意事项。
不支持的功能和集群
以下功能在启用集群的情况下无法配置,相关命令会被拒绝。
注 |
-
远程访问 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 和集群
对于 GCP,出站流量需要使用接口 NAT。接口 NAT 的出站流量被限制为 64k 连接。对于其他 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 地址,则当选举出新的控制节点时,对新控制节点的轮询将失败。
系统日志和集群
-
集群中的每个节点都会生成自己的系统日志消息。您可以配置日志记录,使每个节点在系统日志消息的报头字段中使用相同或不同的设备 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。
控制节点选择
集群节点通过集群控制链路通信,如下选举控制节点:
-
当为节点启用集群(或当节点首次启动时已启用集群)时,设备会每 3 秒广播一个选举请求。
-
具有较高优先级的任何其他设备都会响应选举请求;优先级设置在 1 和 100 之间,其中 1 为最高优先级。
-
如果某节点在 45 秒后未收到另一个具有较高优先级的节点的响应,则该设备会成为控制节点。
注
如果多个节点并列获得最高优先级,则使用集群节点名称和序列号确定控制节点。
-
如果节点稍后加入具有更高优先级的集群,它不会自动成为控制节点;现有控制节点始终保持为控制节点,除非它停止响应,此时会选择新的控制节点。
-
在“裂脑”场景中,当临时存在多个控制节点时,具有最高优先级的节点将会保留角色,而其他节点则恢复为数据节点角色。
注 |
您可以手动强制节点成为控制节点。对集中功能而言,如果强制更改控制节点,则所有连接都将断开,而您必须在新的控制节点上重新建立连接。 |
集群中的高可用性
集群通过监控节点和接口的运行状况并在节点之间复制连接状态来提供高可用性。
节点运行状况监控
每个节点通过集群控制链路定期发送广播保持连接心跳数据包。如果控制节点在可配置的超时期限内未从数据节点接收任何keepalive心跳数据包或其他数据包,则控制节点会从集群中删除该数据节点。如果数据节点未从控制节点接收数据包,则从其余节点中选择新的控制节点。
如果节点因为网络故障而不是因为节点实际故障而无法通过集群控制链路相互访问,则集群可能会进入“裂脑”场景,其中隔离的数据节点将选择自己的控制节点。例如,如果路由器在两个集群位置之间发生故障,则位于位置1的原始控制节点将从集群中删除位置2数据节点。同时,位置2的节点将选择自己的控制节点并形成自己的集群。请注意,在这种情况下,非对称流量可能会失败。恢复集群控制链路后,优先级较高的控制节点将保留控制节点的角色。
接口监控
每个节点都会监控使用中的所有已命名的硬件接口的链路状态,并向控制节点报告状态更改。
监控所有物理接口;只能监控已命名的接口。 可以选择性地禁用对每个接口的监控。
如果某个节点被监控的接口发生故障,则将从集群中删除该设备。节点将在 500 毫秒后删除。
发生故障后的状态
如果控制节点发生故障,则优先级最高(数字最小)的另一个集群成员将成为控制节点。
威胁防御将自动尝试重新加入集群,具体取决于故障事件。
注 |
当 威胁防御 变成不活动状态且无法自动重新加入集群时,所有数据接口都会关闭,仅管理接口可以发送和接收流量。 |
重新加入集群
当集群成员从集群中删除之后,如何才能重新加入集群取决于其被删除的原因:
-
集群控制链路在最初加入时出现故障 - 在解决集群控制链路存在的问题后,您必须通过重新启用集群来手动重新加入集群。
-
加入集群后出现故障的集群控制链路 - FTD 无限期地每 5 分钟自动尝试重新加入。
-
数据接口发生故障 - 威胁防御 会依次在第 5 分钟、第 10 分钟和第 20 分钟时自动尝试重新加入。如果在 20 分钟后未成功加入,则 威胁防御应用会禁用集群。在解决数据接口的问题之后,必须手动启用集群。
-
节点存在故障 - 如果节点因节点运行状况检查失败而从集群中删除,则如何重新加入集群取决于失败的原因。例如,临时电源故障意味着节点会在重新启动后重新加入集群,只要集群控制链路开启即可。威胁防御应用会每隔 5 秒尝试一次重新加入集群。
-
内部错误 - 内部故障包括:应用同步超时;应用状态不一致等。 当您解决此问题后,必须通过重新启用集群来手动重新加入集群。
-
失败的配置部署-如果从 FMC 部署新配置,并且在某些集群成员上部署失败,但在其他集群成员上成功部署,则从集群中删除失败的节点。您必须通过重新启用集群来手动重新加入集群。如果控制节点上的部署失败,则会回滚部署,并且不会删除任何成员。如果在所有数据节点上部署失败,则会回滚部署,并且不会删除成员。
数据路径连接状态复制
每个连接在集群中都有一个所有者和至少一个备用所有者。备用所有者在发生故障时不会接管连接;而是存储 TCP/UDP 状态信息,使连接在发生故障时可以无缝转移到新的所有者。备用所有者通常也是导向器。
有些流量需要 TCP 或 UDP 层以上的状态信息。请参阅下表了解支持或不支持此类流量的集群。
流量 |
状态支持 |
备注 |
---|---|---|
运行时间 |
是 |
跟踪系统运行时间。 |
ARP 表 |
是 |
仅透明模式。 |
MAC 地址表 |
是 |
仅透明模式。 |
用户标识 |
是 |
— |
IPv6 邻居数据库 |
是 |
— |
动态路由 |
是 |
— |
SNMP 引擎 ID |
否 |
- |
集群管理连接的方式
连接可以负载平衡到集群的多个节点。连接角色决定了在正常操作中和高可用性情况下处理连接的方式。
连接角色
请参阅为每个连接定义的下列角色:
-
所有者 - 通常为最初接收连接的节点。所有者负责维护 TCP 状态并处理数据包。一个连接只有一个所有者。如果原始所有者发生故障,则当新节点从连接接收到数据包时,导向器会从这些节点中选择新的所有者。
-
备用所有者 - 存储从所有者接收的 TCP/UDP 状态信息的节点,以便在出现故障时可以无缝地将连接转移到新的所有者。在发生故障时,备用所有者不会接管连接。如果所有者处于不可用状态,从该连接接收数据包的第一个节点(根据负载均衡而定)联系备用所有者获取相关的状态信息,以便成为新的所有者。
只要导向器(见下文)与所有者不是同一节点,导向器也可以是备用所有者。如果所有者选择自己作为导向器,则选择一个单独的备用所有者。
-
导向器 - 处理来自转发器的所有者查找请求的节点。当所有者收到新连接时,会根据源/目的 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 的数据流示例
以下图例显示了新连接的建立。
-
SYN 数据包从客户端发出,被传送到一台 威胁防御(基于负载均衡方法),该设备将成为所有者。所有者创建一个流量,将所有者信息编码为 SYN Cookie,然后将数据包转发到服务器。
-
SYN-ACK 数据包从服务器发出,被传送到一台不同的 威胁防御(基于负载均衡方法)。此 威胁防御是转发者。
-
由于转发器不是该连接的所有者,因此它将解码 SYN Cookie 中的所有者信息,然后创建发往所有者的转发流量,并将 SYN-ACK 数据包转发到所有者。
-
所有者将状态更新发送到导向器,然后将 SYN-ACK 数据包转发到客户端。
-
导向器接收来自所有者的状态更新,创建发往所有者的流量,并记录 TCP 状态信息以及所有者。导向器将充当该连接的备用所有者。
-
传送到转发器的任何后续数据包都会被转发到所有者。
-
如果数据包被传送到任何其他节点,它将向导向器查询所有者并建立一个流量。
-
该流量的任何状态更改都会导致所有者向导向器发送状态更新。
ICMP 和 UDP 的数据流示例
以下图例显示了新连接的建立。
-
第一个 UDP 数据包从客户端发出,被传送到一个威胁防御(基于负载均衡方法)。
-
收到第一个数据包的节点查询基于源/目的 IP 地址和端口的散列值选择的导向器节点。
-
导向器找不到现有流,创建导向器流并将数据包转发回前一个节点。换句话说,导向器已为此流选择了所有者。
-
所有者创建流,向导向器发送状态更新,然后将数据包转发到服务器。
-
第二个 UDP 数据包从服务器发出,并被传送到转发器。
-
转发器向导向器查询所有权信息。对于 DNS 等持续时间极短的流量,转发者不会查询,而是立即将数据包发送到导向器,然后由其发送到所有者。
-
导向器向转发器回复所有权信息。
-
转发器创建转发流以记录所有者信息,并将数据包转发给所有者。
-
所有者将数据包转发到客户端。
GCP 上 Threat Defense Virtual 集群的历史记录
特性 |
管理中心最低版本 |
威胁防御最低版本 |
详细信息 |
||
---|---|---|---|---|---|
集群控制链路 ping 工具。 |
7.4.1 |
任意 |
您可以通过执行 ping 来检查是否所有集群节点都能通过集群控制链路相互连接。节点无法加入集群的一个主要原因是集群控制链路配置不正确,例如,集群控制链路 MTU 设置可能高于连接交换机的 MTU。 新增/修改的屏幕:更多() > 集群实时状态 (Cluster Live Status) >其他版本限制:不支持管理中心版本 7.3.x 或 7.4.0。 |
||
故障排除文件生成和下载可从“设备”(Device) 和“集群”(Cluster) 页面获取。 |
7.4.1 |
7.4.1 |
您可以在“设备”(Device) 页面上为每个设备以及在“集群”(Cluster) 页面上为所有集群节点生成和下载故障排除文件。对于集群,您可以将所有文件下载为一个压缩文件。您还可以为集群节点添加集群的集群日志。您也可以从更多() > 故障排除文件 (Troubleshoot Files) 菜单中触发文件生成。 >新增/修改的菜单项: |
||
查看设备或设备集群的 CLI 输出。 |
7.4.1 |
任意 |
您可以查看一组预定义的 CLI 输出,帮助您排除设备或集群的故障。您还可以输入任何 show 命令并查看输出。 新增/修改的屏幕: |
||
集群运行状况监控设置 |
7.3.0 |
任意 |
您现在可以编辑集群运行状况监控设置。 新增/修改的屏幕:
|
||
集群运行状况监控器控制面板 |
7.3.0 |
任意 |
您现在可以在集群运行状况监控控制面板上查看集群运行状况。 新增/修改的屏幕:系统() |
||
Google Cloud 平台 (GCP) 上的 Threat Defense Virtual 集群 |
7.2.0 |
7.2.0 |
threat defense virtual 支持 GCP 上最多 16 个节点的单个接口集群。 新增/修改的屏幕:
|