关于故障转移
配置故障转移需要通过专用故障转移链路和状态链路(可选)相互连接的两台相同的 ASA。主用单元和接口的运行状况会受到监控,以便确定它们是否满足特定故障转移条件的时刻。如果符合这些条件,将执行故障转移。
故障转移模式
ASA 支持两种故障转移模式,主用/主用故障转移和主用/备用故障转移。每种故障转移模式都有自己确定和执行故障转移的方法。
-
如发生主用/备用故障转移,其中一个设备是主用设备,并传递流量。第二台设备指定为备用设备,不会主动传送流量。发生故障转移时,主用设备会故障转移到备用设备,后者随即变为主用状态。您可以在单情景模式或多情景模式下为 ASA 使用主用/备用故障转移。
-
在主用/主用故障转移配置中,两台 ASA 均可传递网络流量。主用/主用故障转移仅在多情景模式下适用于 ASA。在主用/主用故障转移中,将 ASA 上的安全情景划分为 2 个故障转移组。故障转移组就是一个或多个安全情景的逻辑组。一个组被指定为主 ASA 上的活动组,另一个组被指定为辅助 ASA 上的活动组。发生故障转移时,会在故障转移组级别进行。
两种故障转移模式都支持状态或无状态故障转移。
故障转移系统要求
本部分介绍在故障转移配置中对于 ASA 的硬件、软件和许可证要求。
硬件要求
故障转移配置中的两台设备必须:
-
型号相同。
对于 Firepower 9300,高可用性仅在同种类型模块之间受支持;但是两个机箱可以包含混合模块。例如,每个机箱都设有 SM-56、SM-48 和 SM-40。可以在 SM-56 模块之间、SM-48 模块之间和 SM-40 模块之间创建高可用性对。
-
拥有相同数量和类型的接口。
对于平台模式下的Firepower 4100/9300 机箱,在启用之前,所有接口都必须在 FXOS 中进行相同的预配置。故障转移如果您在启用故障转移后更改接口,请在备用设备上的 FXOS 中更改接口,然后在主用设备上进行相同更改。 如果在 FXOS 中删除一个接口(例如,如果您移除网络模块,移除 EtherChannel,或将某个接口重新分配到 EtherChannel),则 ASA 配置会保留原始命令,以便您可以进行任何必要的调整;从配置中删除接口会产生广泛的影响。您可以在 ASA OS 中手动移除旧的接口配置。
-
安装有相同的模块(如有)。
-
安装有相同的 RAM。
如果在 故障转移 配置中使用闪存大小不同的设备,请确保闪存较小的设备具有足够的空间来容纳软件映像文件和配置文件。如果闪存较小的设备没有足够的空间,从闪存较大的设备向闪存较小的设备进行配置同步将会失败。
软件要求
故障转移 配置中的两台设备必须:
-
处于相同的情景模式(单情景或多情景)。
-
单一模式下:处于相同的防火墙模式(路由或透明)。
在多情景模式下,防火墙模式在情景级别设置,您可以使用混合模式。
-
具有相同的主要(第一个数字)和次要(第二个数字)软件版本。但是,您可以在升级过程中临时使用不同的软件版本;例如,可以将一台设备从 8.3(1) 版本升级到 8.3(2) 版本,并使故障转移保持主用状态。我们建议将两台设备都升级为相同版本,以便确保长期的兼容性。
-
具有相同的 Secure Client 映像。如果在执行无中断升级时,故障转移对具有不匹配的映像,则无客户端 SSL VPN 连接会在升级过程的最终重新启动步骤终止,数据库会显示一个孤立会话,并且 IP 池会显示分配给客户端的 IP 地址“正在使用中”。
-
处于相同的 FIPS 模式下。
-
(Firepower 4100/9300)具有相同的流量分流模式,同时启用或禁用。
许可证要求
故障转移配置下的两台设备不需要具有相同的许可证;许可证将整合为故障转移集群许可证。
故障转移和状态故障转移链路
故障转移链路和可选的有状态故障转移链路是两台设备之间的专用连接。思科建议在故障转移链路或状态故障转移链路中的两台设备之间使用同一接口。例如,在故障转移链路中,如果您在设备 1 中使用的是 eth0,也要在设备 2 中使用相同的接口,即还是 eth0。
小心 |
除非您使用 IPsec 隧道或故障转移密钥保护通信,否则所有信息会以明文形式通过故障转移和状态链路发送。如果使用 ASA 端接 VPN 隧道,则此信息包括用于建立隧道的任何用户名、密码和预共享密钥。以明文发送此敏感数据可能会带来严重的安全风险。如果您使用 ASA 来端接 VPN 隧道,我们建议使用 IPsec 隧道或故障转移密钥来保护故障转移通信。 |
故障转移链路
故障转移对中的两台设备会不断地通过故障转移链路进行通信,以便确定每台设备的运行状态。
故障转移链路数据
以下信息将通过故障转移链路传输:
-
设备状态(主用或备用)
-
Hello 消息 (keep-alives)
-
网络链路状态
-
MAC 地址交换
-
配置复制和同步
故障转移链路接口
您可以使用未使用的数据接口(物理接口、子接口 EtherChannel 接口)作为故障转移链路;但不能指定当前已配置名称的接口。故障转移链路接口不会配置为常规网络接口;该接口仅会因为故障转移而存在。该接口只能用于故障转移链路(还用于状态链路)。大多数型号不能使用管理接口进行故障转移,除非明确作出如下说明。
ASA 用户数据和故障转移链路之间共享接口。 您也不能在同一父接口上使用单独的子接口用于故障转移链路和数据。
请参阅下列有关故障转移链路的准则:
-
5506-X 至 5555-X - 不能使用管理接口作为故障转移链路;您必须使用数据接口。5506H-X 是唯一的例外情况,您可以在其中将管理接口用作故障转移链路。
-
5506H-X - 您可以使用管理 1/1 接口作为故障转移链路。如果配置该接口作为故障转移接口,您必须重新加载设备,更改才能生效。在这种情况下,您也不能使用 ASA Firepower 模块,因为该模块需要使用管理接口实现管理目的。
-
Firepower 4100/9300- 我们建议您将一个 10 GB 数据接口用于组合的故障转移和状态链路。 不能使用管理类型接口作为故障转移链路。
-
所有其他型号 - 1 GB 接口对于组合的故障转移和状态链路而言已足够大。
交替频率等于设备保持时间(failover polltime unit 命令)。
注 |
如果配置较大且设备保持时间较短,则在成员接口之间交替可以防止辅助设备加入/重新加入。这种情况下,请禁用其中一个成员接口,直到辅助设备加入。 |
对于用作故障转移链路的 EtherChannel,要阻止无序数据包,仅使用 EtherChannel 中的一个接口。如果该接口发生故障,则会使用 EtherChannel 中的下一个接口。您不能在 EtherChannel 配置用作故障转移链路时对其进行修改。
连接故障转移链路
您可以使用以下两种方法之一连接故障转移链路:
-
使用不与任何其他设备处于相同网段(广播域或 VLAN)的交换机作为 ASA 的故障转移接口。
-
使用以太网电缆直接连接设备,无需外部交换机。
如果不在设备之间使用交换机,当接口出现故障时,两台对等体之间的链路将会断开。这种情况可能会妨碍故障排除工作,因为您无法轻松确定接口发生故障,导致链路断开的设备。
ASA在其铜缆以太网端口上支持自动 MDI/MDIX,因此您可以使用交叉电缆或直通电缆。如果使用的是直通电缆,接口会自动检测该电缆,并将其中一个发送/接收对交换为 MDIX。
状态故障转移链路
要使用有状态故障转移,必须配置有状态故障转移链路(也称为有状态链路),以便传送连接状态信息。
共享故障转移链路
共享故障转移链路是节约接口的最佳方式。但是,如果您有一个大型配置和高流量网络,必须考虑对状态链路和故障转移链路使用专用接口。
状态故障转移链路的专用接口
您可以将专用接口(物理或 EtherChannel)用于状态链路。有关专用状态链路的要求,请参阅故障转移链路接口,以及有关连接状态链路的信息,请参阅连接故障转移链路。
使用长距离故障转移时,为实现最佳性能,状态链路的延迟应低于 10 毫秒且不超过 250 毫秒。如果延迟超过 10 毫秒,重新传输故障转移消息会导致一些性能降级。
避免中断故障转移和数据链路
我们建议,让故障转移链路和数据接口使用不同的路径,以便降低所有接口同时发生故障的可能性。如果故障转移链路发生故障,ASA 可使用数据接口来确定是否需要进行故障转移。随后,故障转移操作会被暂停,直到故障转移链路恢复正常。
请参阅以下连接情景,以设计具有弹性的故障转移网络。
情景 1 - 不推荐
如果单台交换机或一组交换机用于连接两台 ASA 之间的故障转移和数据接口,则交换机或交换机间链路发生故障时,两台 ASA 都都将处于主用状态。因此,不推荐使用下图中显示的 2 种连接方法。
情景 2 - 推荐
我们不推荐让故障转移链路和数据接口使用相同的交换机,而是应使用不同的交换机或使用直连电缆来连接故障转移链路,如下图所示。
情景 3 - 推荐
如果 ASA数据接口连接到多台交换机,则故障转移链路可以连接到其中一台交换机,最好是处于网络的安全一侧(内部)的交换机,如下图所示。
故障转移中的 MAC 地址和 IP 地址
当您配置接口时,可以在相同网络上指定一个主用 IP 地址和一个备用 IP 地址。通常情况下,当发生故障转移时,新的主用设备会接管主用 IP 地址和 MAC 地址。由于网络设备不会发现 MAC 与 IP 地址配对的变化,网络上的任意位置都不会发生 ARP 条目变化或超时。
注 |
虽然建议指定备用 IP 地址,但它并不是必需的。如果没有备用 IP 地址,则主用设备无法执行用于检查备用接口运行状态的网络测试;它只能跟踪链路状态。此外,您也无法出于管理目的,连接到该接口上的备用设备。 |
在发生故障转移时,状态链路的 IP 地址和 MAC 地址不会更改。
主用/备用 IP 地址和 MAC 地址
对于主用/备用故障转移,请参阅下文,了解故障转移事件期间 IP 地址和 MAC 地址的使用情况:
-
主用设备始终使用主设备的 IP 地址和 MAC 地址。
-
当主用设备进行故障转移时,备用设备会使用故障设备的 IP 地址和 MAC 地址,并开始传送流量。
-
当故障设备恢复在线状态时,它现在处于备用状态,并且接管备用 IP 地址和 MAC 地址。
但如果辅助设备启动时未检测到主设备,辅助设备将成为主用设备,并使用其自己的 MAC 地址,因为它不知道主设备的 MAC 地址。当主设备变为可用时,辅助(主用)设备会将 MAC 地址更改为主设备的 MAC,这可能会导致网络流量中断。同样,如果您用新硬件替换主设备,将使用新 MAC 地址。
如果在禁用故障切换配置的情况下重新加载备用设备,则备用设备将作为主用设备启动,并使用主设备的 IP 地址和 MAC 地址。这会导致 IP 地址重复并导致网络流量中断。使用 命令 configure high-availability resume 启用故障切换并恢复流量。
使用虚拟 MAC 地址可防范这种中断,因为对于启动时的辅助设备,主用 MAC 地址是已知的,并在采用新的主设备硬件时保持不变。建议您在主设备和辅助设备上配置虚拟 MAC 地址,以确保辅助设备在作为主用设备时使用正确的 MAC 地址,即使它在主设备之前上线。如果您没有配置虚拟 MAC 地址,则可能需要清除连接的路由器上的 ARP 表,以便恢复流量。当 MAC 地址发生变化时,ASA不会发送静态 NAT 地址的免费 ARP,因此连接的路由器不会知道这些地址的 MAC 地址发生变化。
主用/主用 IP 地址和 MAC 地址
对于主用/主用故障转移,请参阅下文,了解故障转移事件期间 IP 地址和 MAC 地址的使用情况:
-
主设备为故障转移组 1 和 2 个情景中的所有接口自动生成主用和备用 MAC 地址。如有必要,例如 MAC 地址发生冲突时,您也可以手动配置 MAC 地址。
-
每台设备将主用 IP 地址和 MAC 地址用于其主用故障转移组,并将备用地址用于其备用故障转移组。例如,主设备是故障转移组 1 的主用设备,因此它使用故障转移组 1 中情景的主用地址。它是故障转移组 2 中情景的备用设备,因此在其中使用备用地址。
-
当设备进行故障转移时,另一个设备将会承担出现故障的故障转移组的主用 IP 地址和 MAC 地址,并开始传送流量。
-
当故障设备恢复在线状态,并且您已启用抢占选项时,它将恢复故障转移组。
虚拟 MAC 地址
ASA 有多种方法配置虚拟 MAC 地址。我们建议仅使用一种方法。如果使用多种方法设置 MAC 地址,所使用的 MAC 地址会取决于许多变量,可能会不可预测。手动方法包括接口模式 mac-address 命令、failover mac address 命令;对于主用/主用故障转移,除了以下所述的自动生成方法之外,还有故障转移组模式 mac address 命令。
在多情景模式下,您可以配置 ASA 自动为共享接口生成虚拟主用和备用 MAC 地址,然后将这些分配同步到辅助设备(请参阅 mac-address auto 命令)。对于非共享接口,您可以手动设置主用/备用模式的 MAC 地址(主用/主用模式会为所有接口自动生成 MAC 地址)。
对于主用/主用故障转移,始终将虚拟 MAC 地址与默认值或按接口设置的值一同使用。
无状态故障转移和有状态故障转移
对于主用/备用和主用/主用模式,ASA 支持两种故障转移类型:无状态和状态故障转移。
注 |
无客户端 SSL VPN 的某些配置元素(如书签和自定义)使用 VPN 故障转移子系统,该子系统是状态故障转移的一部分。您必须使用状态故障转移,在同步故障转移对中的成员之间同步这些元素。不推荐将无状态故障转移用于无客户端 SSL VPN。 |
无状态故障转移
发生故障转移时,所有活动连接将会被丢弃。在新的主用设备接管时,客户端需要重新建立连接。
注 |
无客户端 SSL VPN 的某些配置元素(如书签和自定义)使用 VPN 故障转移子系统,该子系统是状态故障转移的一部分。您必须使用状态故障转移,在同步故障转移对中的成员之间同步这些元素。不推荐将无状态(常规)故障转移用于无客户端 SSL VPN。 |
状态故障转移
启用状态故障转移时,主用设备会不断将每个连接的状态信息发送至备用设备,在主用/主用故障转移期间,在主用和备用故障转移组之间发送。发生故障转移之后,相同的连接信息在新主用设备上可用。支持的最终用户应用不需要通过重新连接来保持同一通信会话。
支持的功能
对于状态故障转移,以下状态信息会传送至备用 ASA:
-
NAT 转换表。
-
TCP 和 UDP 连接和状态。其他类型的 IP 协议和 ICMP 不会通过主用设备解析,因为它们是在新数据包到达时在新的主用设备上建立的。
-
HTTP 连接表(除非启用 HTTP 复制)。
-
HTTP 连接状态(如果已启用 HTTP 复制)- 默认情况下,启用状态故障转移时,ASA 不会复制 HTTP 会话信息。建议启用 HTTP 复制。
-
SCTP 连接状态。但是,SCTP 检测状态故障转移是尽力而为。在故障转移期间,如果任何 SACK 数据包丢失,新的主用设备将丢弃队列中其他所有无序的数据包,直到收到缺失的数据包为止。
-
ARP 表
-
第 2 层网桥表(适用于桥接组)
-
ISAKMP 和 IPsec SA 表
-
GTP PDP 连接数据库
-
SIP 信令会话和引脚。
-
ICMP 连接状态 - 仅当相应的接口分配给非对称路由组时,才会启用 ICMP 连接复制。
-
静态和动态路由表 - 状态故障转移会参与动态路由协议(如 OSPF 和 EIGRP),因此通过主用设备上的动态路由协议获悉的路由,将会保留在备用设备的路由信息库 (RIB) 表中。发生故障转移事件时,数据包可以正常传输,并且只会对流量产生极小的影响,因为主用辅助设备一开始就具有镜像主设备的规则。进行故障转移后,新的主用设备上的重新融合计时器会立即启动。随后 RIB 表中的代编号将会增加。在重新融合期间,OSPF 和 EIGRP 路由将使用新的代编号进行更新。计时器到期后,过时的路由条目(由代编号确定)将从表中删除。于是 RIB 将包含新主用设备上的最新的路由协议转发信息。
注
路由仅会因为主用设备上的链路打开或关闭事件而同步。如果备用设备上的链路打开或关闭,从主用设备发出的动态路由可能会丢失。这是预期的正常行为。
-
DHCP 服务器 - 不会复制 DHCP 地址租用。但是,在接口上配置的 DHCP 服务器将发送 ping 命令,以确保在向 DHCP 客户端授予地址前不使用地址,使得服务不会受到影响。对于 DHCP 中继代理或 DDNS,状态信息不相关。
-
思科 IP SoftPhone 会话 - 如果在活动思科 IP SoftPhone 会话期间发生故障转移,呼叫将保持活动,因为呼叫会话状态信息已复制到备用设备。呼叫被终止时,IP SoftPhone 客户端将丢失与思科 Call Manager 的连接。发生此连接丢失是因为,没有备用设备上的 CTIQBE 挂机消息的会话信息。如果 IP SoftPhone 客户端在特定时间内未从 Call Manager 收到响应,则会认为 Call Manager 不可访问,并会取消注册自身。
-
RA VPN - 故障转移后,远程访问 VPN 终端用户不必对 VPN 会话重新进行身份验证,也不必重新连接。但是,在 VPN 连接上运行的应用,在故障转移过程中可能会丢失数据包,并且无法从数据包丢失中恢复。
-
在所有连接中,只有已建立的连接会复制到备用 ASA 上。
不支持的功能
对于状态故障转移,以下状态信息不会传送至备用 ASA:
-
用户身份验证 (uauth) 表
-
TCP 状态绕行连接
-
组播路由。
-
选定的无客户端 SSL VPN 功能:
-
智能隧道
-
端口转发
-
插件
-
Java 小程序
-
IPv6 无客户端或 Secure Client 会话
-
Citrix 身份验证(Citrix 用户在故障转移后必须重新进行身份验证)
-
故障转移的网桥组要求
使用网桥组时,故障转移存在特殊的注意事项。
设备、ASAv 的网桥组要求
当主用设备故障转移到备用设备时,所连接的运行生成树协议 (STP) 的交换机端口在感知到拓扑变化时,会进入阻塞状态 30 秒至 50 秒。当端口处于阻塞状态时,为避免流量丢失,您可以根据交换机端口模式,配置以下任一变通方案:
-
访问模式 - 启用交换机上的 STP PortFast 功能:
interface interface_id spanning-tree portfast
链路打开时,PortFast 功能会立即使端口转换到 STP 转发模式。该端口仍会参与 STP。因此,如果端口是环路的一部分,则端口最终会转换为 STP 阻塞模式。
-
Trunk 模式 - 使用 EtherType 访问规则阻止桥接组成员接口上 ASA 上的 BPDU。
access-list id ethertype deny bpdu access-group id in interface name1 access-group id in interface name2
阻止 BPDU 会在交换机上禁用 STP。在您的网络布局中,确保没有任何环路涉及 ASA。
如果以上选项均不可行,则您可以使用以下任一不太理想的变通方案,这些方案可能会影响故障转移功能或 STP 稳定性。
-
禁用接口监控。
-
将接口保持时间增大到一个高值,这将允许 STP 在 ASA 进行故障转移之前收敛。
-
降低 STP 计时器的值,以 STP 在接口保持时间之内融合。
故障转移运行状态监控
ASA会监控每台设备的整体运行状态和接口运行状态。此部分包括有关 ASA如何执行测试以确定每台设备状态的信息。
设备运行状况监控
ASA 会通过 Hello 消息监控故障转移链路,进而确定其他设备的运行状况。当设备在故障转移链路上没有收到三条连续的 Hello 消息时,设备将在每个数据接口(包括故障转移链路)上发送接口 LANTEST 消息,来验证对等体是否响应。 对于 Firepower 9300 和 4100系列,您可以启用双向转发检测 (BFD) 监控,这比 Hello 消息更可靠。ASA 采取的操作取决于来自其他设备的响应。请参阅以下可以执行的操作:
-
如果 ASA 在故障转移链路上收到响应,则不会进行故障转移。
-
如果 ASA 在故障转移链路上未收到响应,但在数据接口上收到响应,则设备不会进行故障转移。故障转移链路会标记为发生故障。您应尽快恢复故障转移链路,因为当故障转移切换发生故障时,设备无法故障转移到备用设备。
-
如果 ASA 未在任何接口上收到响应,则备用设备会切换至主用模式,并会将另一台设备分类为故障设备。
心跳模块冗余
每个高可用性单位通过集群控制链路定期发送广播保持连接心跳数据包。如果控制平面忙于处理流量,有时心跳数据包无法到达对等体,或者对等体由于 CPU 过载而无法处理心跳数据包。当对等体无法在可配置的超时期限内传达保持连接状态时,会发生错误的故障转移或裂脑场景。
数据平面中的心跳模块有助于避免由于控制平面中的流量拥塞而发生错误的故障转移或裂脑。
-
附加心跳模块的工作原理与控制平面模块类似,但使用数据平面传输基础设施发送和接收心跳消息。
-
当对等体在数据平面中收到心跳数据包时,计数器会递增。
-
如果控制平面中的心跳传输失败,则节点会检查数据平面中的心跳计数器。如果计数器递增,则表示对等体处于活动状态,并且集群在这种情况下不会执行故障转移。
注 |
|
接口监控
您最多可以监控 1025 个接口(在多情景模式下,会在所有情景之间进行分配)。您应监控重要的接口。例如,在多情景模式下,您可以配置一个用于监控共享接口的情景:因为接口是共享的,所有情景都可以从监控中受益。
当设备在 15 个秒 (默认值),未在受监控的接口上收到 hello 消息时,将运行接口测试。(要更改时间段,请参阅) 。如果对于某个接口,其中一个接口测试失败,但在另一设备上的此接口继续成功传送流量,则此接口会被视为发生故障,ASA 停止运行测试。
如果满足为故障接口数量定义的阈值(请参阅命令,或者对于主用/主用故障转移,请使用命令)(请参阅配置设备管理高可用性和可扩展性故障转移标准接口策略)(请参阅设备设备管理高可用性故障转移)触发条件(Trigger Criteria)),并且主用设备的故障接口比备用设备多,则发生故障转移。 如果某个接口在两个单元上都失败,则这两个接口会进入“Unknown”状态,并且不会计入由故障转移接口政策制定的故障转移限制。
如果接口收到任何流量,则该接口会再次变为正常工作状态。如果不再满足接口故障阈值,发生故障的 ASA 会回到备用模式。
如果接口上配置了 IPv4 和 IPv6 地址,ASA 会使用 IPv4 地址执行运行状况监控。如果接口上仅配置了 IPv6 地址,则 ASA 会使用 IPv6 邻居发现,而不是 ARP 来执行运行状况监控测试。对于广播 Ping 测试,ASA 会使用所有的 IPv6 节点地址 (FE02::1)。
注 |
如果故障设备未恢复,并且您认为其应未发生故障,则可通过输入 failover reset 命令重置状态。但是,如果故障转移条件仍然存在,设备将再次失败。 |
接口测试
ASA使用以下接口测试。默认情况下,每个测试的持续时间约为1.5秒 ,或故障转移接口保持时间的1/16(请参阅 )。
-
链路打开/关闭测试 - 一种接口状态测试。如果链路打开/关闭测试指示接口关闭,则 ASA视为测试失败,然后测试停止。如果状态为打开,则 ASA执行 Network Activity 测试。
-
网络活动测试 - 接收的网络活动测试。测试开始时,每台设备会清除其接口收到的数据包计数。在测试期间,一旦设备收到符合条件的数据包,则接口会被视为正常运行。如果两台设备都收到流量,则测试会停止。如果一台设备收到测试流量,另一设备未收到,则未收到流量的设备会被视为已发生故障。如果两台设备均收到了流量,则 ASA开始进行 ARP 测试。
-
ARP 测试 - 用于测试成功的 ARP 回复。每台设备都向其 ARP 表中最新条目中的 IP 地址发送一个 ARP 请求。如果设备在测试期间收到 ARP 回复或其他网络流量,则认为该接口运行正常。如果设备未收到 ARP 回复,则 ASA会向 ARP 表中的下一个条目中的 IP 地址发送一次 ARP 请求。如果设备在测试期间收到 ARP 回复或其他网络流量,则认为该接口运行正常。如果两台设备都收到流量,则测试会停止。如果一台设备收到测试流量,另一设备未收到,则未收到流量的设备会被视为已发生故障。如果两台设备均收到了流量,则 ASA开始进行广播 Ping 测试。
-
广播 Ping 测试 - 测试成功的 Ping 回复。每台设备发送一个广播 Ping,然后对收到的所有数据包进行计数。在测试期间,当设备收到任何数据包,则接口会被视为正常运行。如果两台设备都收到流量,则测试会停止。如果一台设备收到测试流量,另一设备未收到,则未收到流量的设备会被视为已发生故障。如果未收到任何流量,则测试将通过 ARP 测试再次开始。如果两台设备继续没有收到来自 ARP 和广播 Ping 测试的流量,则测试将会一直运行下去。
接口状态
受监控接口可以具有以下状态:
-
Unknown - 初始状态。此状态也可能意味着状态无法确定。
-
Normal - 接口正在接收流量。
-
Testing - 接口上有 5 个轮询时间未收听到 Hello 消息。
-
Link Down - 接口或 VLAN 通过管理方式关闭。
-
No Link - 接口的物理链路关闭。
-
Failed - 在接口上没有收到流量,但在对等体接口上收听到流量。
故障转移时间
以下事件会在 Firepower 高可用性对中触发故障转移:
-
主用设备上超过 50% 的 Snort 实例已关闭。
-
主用设备上使用的磁盘空间已超过 90%。
-
主用设备上运行的是 no failover active 命令,而备用设备上运行的是 failover active 命令。
-
主用设备的故障接口比备用设备更多。
-
主用设备上的接口故障超过配置的阈值。
默认情况下,单个接口发生故障会导致故障转换。您可以通过配置接口数量的阈值或为发生故障转移而必须发生故障的受监控接口的百分比来更改默认值。如果在主用设备上达到阈值,则会发生故障转移。如果备用设备上的阈值超出阈值,则设备将进入“故障”状态。
要更改默认故障转移条件,在全局配置模式下输入以下命令:
表 1. 命令
目的
failover interface-policy num [%]
hostname (config)# failover interface-policy 20%
更改默认故障转移条件。
指定特定接口数时,num 参数可以介于 1 和 250 之间。
指定接口百分比时,num 参数可以介于 1 和 100 之间。
注 |
如果使用 CLI 或 ASDM 手动进行故障转移,或者重新加载 ASA,则故障转移会立即开始,不受如下所列计时器的约束。 |
故障转移条件 |
最小 |
默认 |
最大 |
---|---|---|---|
主用设备断电,硬件关闭或软件重新加载或崩溃。当出现这些情况时,受监控接口或故障转移链路不会收到任何 Hello 消息。 |
800 毫秒 |
15 秒 |
45 秒 |
主用设备主板接口链路发生故障。 |
500 毫秒 |
5 秒 |
15 秒 |
主用设备 4GE 模块接口链路发生故障。 |
2 秒 |
5 秒 |
15 秒 |
主用设备接口正常运行,但是连接问题导致接口测试。 |
5 秒 |
25 秒 |
75 秒 |
配置同步
故障转移包含各种类型的配置同步。
运行配置复制
当故障转移对中的任意一台或两台设备启动时,系统会执行运行配置复制。
在主用/备用故障转移中,配置始终会从主用设备同步到备用设备。
在主用/主用故障转移中,第二个启动的任何设备都会从第一个启动的设备获取正在运行的配置,无论指定的主或从属启动设备如何都是如此。在两个设备正常运行后,在系统执行空间中输入的命令会从其上的故障转移组 1 处于主用状态的设备复制。
备用/第二个设备完成其初始启动后,会清除其运行配置(需要与主用设备通信的failover 命令除外),而主用设备则会向备用设备发送其完整配置。复制开始时,主用设备上的 ASA 控制台会显示消息“Beginning configuration replication: Sending to mate”;完成时,ASA 显示消息“End Configuration Replication to mate”。根据配置的大小,复制可能需要几秒到几分钟。
在接收配置的设备上,配置仅存在于运行内存中。您应该将配置保存到闪存。例如,在主用/主用故障转移中,请在故障转移组 1 处于主用状态的设备的系统执行空间中输入 write memory all 命令。该命令会复制到对等设备,该对等设备将继续将其配置写入到闪存。
注 |
在复制时,在发送配置的设备上输入的命令可能无法正确地复制到对等设备,并且在接收配置的设备上输入的命令可能已被接受的配置覆盖。在配置复制过程中,应避免在故障转移对中的任一设备上输入命令。 |
文件复制
配置同步不复制以下文件和配置组件,因此您必须手动复制这些文件,以便它们匹配:
-
Secure Client 映像
-
CSD 映像
-
Secure Client 配置文件
ASA 使用存储在 cache:/stc/profiles 中的 Secure Client 配置文件的缓存文件,而不是存储在闪存文件系统中的文件。要将 Secure Client 配置文件复制到备用设备,请执行以下其中一项操作:
-
在主用设备上输入 write standby 命令。
-
在主用设备上重新应用配置文件。
-
重新加载备用设备。
-
-
本地证书颁发机构 (CA)
-
ASA 映像
-
ASDM 映像
命令复制
启动后,您在主用设备上输入的命令会被立即复制到备用设备。不必将主用配置保存到闪存才能复制命令。
在主用/主用故障转移中,在系统执行空间中输入的更改复制自其上的故障转移组 1 处于主用状态的设备。
未在要进行命令复制的相应设备上输入更改会导致配置不同步。在进行下一次初始配置同步时,这些更改可能会丢失。
以下命令会复制到备用 ASA:
-
除 mode、firewall 和 failover lan unit 之外的所有配置命令
-
copy running-config startup-config
-
delete
-
mkdir
-
rename
-
rmdir
-
write memory
以下命令不会复制到备用 ASA:
-
除 copy 命令外的所有形式的 copy running-config startup-config 命令
-
除 write 命令外的所有形式的 write memory 命令
-
debug
-
failover lan unit
-
firewall
-
show
-
terminal pager 和 pager
config-sync 优化
在挂起或恢复故障转移后发生节点重启或节点重新加入时,加入设备会清除其运行配置。主用设备将其整个配置发送到加入设备,以进行完整的配置同步。如果主用设备的配置较大,则加入设备需要几分钟才能同步配置。
配置同步优化功能通过交换配置散列值来比较加入设备和主用设备的配置。如果在主用设备和加入设备上计算的散列值匹配,则加入设备将跳过完全配置同步并重新加入 HA。此功能可实现更快的 HA 对等,并缩短维护窗口和升级时间。
配置同步优化的准则和限制
-
在 ASA 9.18.1 及更高版本上默认启用配置同步优化功能。
-
ASA 多情景模式通过在完全配置同步期间共享情景顺序来支持配置同步优化功能,从而允许在后续节点重新加入期间比较情景顺序。
-
如果配置密码和故障转移 IPsec 密钥,则配置同步优化无效,因为主用设备和备用设备中计算的散列值不同。
-
如果使用动态 ACL 或 SNMPv3 配置设备,则配置同步优化功能无效。
-
主用设备将 LAN 链路摆动的完整配置作为默认行为进行同步。在主用设备和备用设备之间的故障转移摆动期间,不会触发配置同步优化功能,而是执行完整的配置同步。
监控配置同步优化
启用配置同步优化功能后,系统会生成系统日志消息,显示在主用设备和加入设备上计算的散列值是否匹配,或者操作超时是否已到期。系统日志消息还会显示从发送散列请求到获取并比较散列响应所经过的时间。
使用以下命令监控配置同步优化。您可以使用 工具 > 命令行界面 执行这些命令。
-
show failover config-sync checksum
显示有关设备状态和校验和的信息。
-
show failover config-sync configuration
显示有关设备配置和校验和的信息。
-
show failover config-sync status
显示配置同步优化功能的状态。
关于主用/备用故障转移
主用/备用故障转移允许您使用备用 ASA来接管故障设备的功能。当主用设备发生故障时,备用设备将变为主用设备。但在更换故障设备之前,必须将备用设备设置为主设备,以便保留辅助设备的配置。
注 |
对于多情景模式,ASA 可以在整个设备(包括所有情景)上进行故障转移,但不能在单个情景上单独进行故障转移。 |
主/辅助角色和主用/备用状态
在故障转移对中这两台设备之间的主要区别是哪台是主用设备,哪台是备用设备,即要使用哪些 IP 地址以及哪台设备积极传递流量。
但是,设备之间还存在一些取决于哪一设备为主设备(在配置中指定),哪一设备为辅助设备的差别:
-
如果两台设备同一时间启动(并且运行状况相同),则主设备总是会成为主用设备。
-
主设备 MAC 地址始终与主用 IP 地址相匹配。此规则的例外是,当辅助设备成为主用设备并且无法通过故障转移链路获取主设备 MAC 时。在这种情况下,会使用辅助设备的 MAC 地址。
启动时的主用设备确定
主用设备按以下方式确定:
-
如果某台设备启动,并检测到对等体已作为主用设备运行,则该设备会成为备用设备。
-
如果某台设备启动,并且未检测到对等体,则该设备会成为主用设备。
-
如果两台设备同时启动,则主设备成为主用设备,辅助设备成为备用设备。
故障转移事件
在主用/备用故障转移中,故障转移会在设备级别进行。 即使在多情景模式下运行的系统上,您也无法对个别情景或一组情景进行故障转移。
下表显示了每个故障事件的故障转移操作。对于每种故障事件,该表显示了故障转移策略(故障转移或禁用故障转移)、主用设备执行的操作、备用设备执行的操作,以及有关故障转移条件和操作的所有特别说明。
故障事件 |
策略 |
主用设备操作 |
备用设备操作 |
说明 |
---|---|---|---|---|
主用设备发生故障(电源或硬件) |
故障转移 |
不适用 |
成为主用设备 将主用设备标记为发生故障 |
在任何受监控接口或故障转移链路上,均未收到 Hello 消息。 |
以前的主用设备恢复 |
禁用故障转移 |
成为备用设备 |
无需操作 |
无。 |
备用设备发生故障(电源或硬件) |
禁用故障转移 |
将备用设备标记为发生故障 |
不适用 |
备用设备被标记为发生故障后,主用设备不会尝试进行故障转移,即使超过接口故障阈值也是如此。 |
故障转移链路在运行过程中发生故障 |
禁用故障转移 |
将故障转移链路标记为发生故障 |
将故障转移链路标记为发生故障 |
您应尽快恢复故障转移链路,因为当故障转移链路发生故障时,设备无法故障转移到备用设备。 |
故障转移链路在启动时发生故障 |
禁用故障转移 |
成为主用设备 将故障转移链路标记为发生故障 |
成为主用设备 将故障转移链路标记为发生故障 |
如果故障转移链路在启动时发生故障,则两台设备都会成为主用设备。 |
状态链路发生故障 |
禁用故障转移 |
无需操作 |
无需操作 |
如果发生故障转移,状态信息会过时,而且会话会被终止。 |
主用设备上的接口故障超过阈值 |
故障转移 |
将主用设备标记为发生故障 |
成为主用设备 |
无。 |
备用设备上的接口故障超过阈值 |
禁用故障转移 |
无需操作 |
将备用设备标记为发生故障 |
备用设备被标记为发生故障后,主用设备不会尝试进行故障转移,即使超过接口故障阈值也是如此。 |
关于主用/主用故障转移
本部分介绍主用/主用故障转移。
主用/主用故障转移概述
在主用/主用故障转移配置中,两台 ASA 均可传递网络流量。主用/主用故障转移仅在多情景模式下适用于 ASA。在主用/主用故障转移中,您可将 ASA 上的安全情景最多划分为 2 个故障转移组。
故障转移组就是一个或多个安全情景的逻辑组。您可以将故障转移组指定为在主 ASA 上处于主用状态,并将故障转移组 2 指定为在辅助 ASA 上处于主用状态。发生故障转移时,会在故障转移组级别进行。例如,根据接口故障模式,故障转移组 1 可能会故障转移到辅助 ASA,相应地,故障转移组 2 可能故障转移到主 ASA。在以下情况下可能发生此事件:故障转移组 1 中的接口在主 ASA 上发生故障,但在辅助 ASA 上正常工作,而故障转移组 2 中的接口在辅助 ASA 上发生故障,但在主 ASA 上正常工作。
管理情景始终是故障转移组 1 的成员。默认情况下,所有未分配的安全情景也是故障转移组 1 的成员。如果希望使用主用/主用故障转移,但对多情景不感兴趣,最简单的配置是添加一个额外的情景并将其分配给故障转移组 2。
注 |
配置主用/主用故障转移时,请确保两台设备的整合流量在每台设备的处理能力之内。 |
注 |
需要时,可将两个故障转移组分配到一台 ASA,但您将无法利用具有两台主用 ASA 的优势。 |
故障转移组的主/辅助角色和主用/备用状态
与在主用/备用故障转移中一样,主用/主用故障转移对中的一台设备被指定为主设备,另一台指定为辅助设备。不同于主用/备用故障转移的是,当两台设备同时启动时,此指定不指示哪一台设备会成为主用设备。相反地,主设备/辅助设备指定会进行两个操作:
-
两台设备同时启动时,主设备会提供运行配置。
-
配置中的每个故障转移组都配置了主设备或辅助设备首选项。与抢占一起使用时,此首选项可确保故障转移组启动后在正确的设备上运行。如果不使用抢占,则两个组均在第一台要启动的设备上运行。
启动时的故障转移组主用设备确定
故障转移组在其上变为主用状态的的设备按以下方式确定:
-
一台设备启动时,如果对等设备不可用,则两个故障转移组都会在该设备上变为主用状态。
-
一台设备启动时,如果对等设备处于主用状态(而且两个故障转移组都处于主用状态),则故障转移组将在主用设备上保持主用状态,而无论故障转移组的主设备或辅助设备首选项如何,直到出现以下情形之一:
-
发生故障转移。
-
手动强制执行故障转移。
-
为故障转移组配置了抢占,这导致故障转移组在设备变得可用时,自动在首选设备上变为主用状态。
-
故障转移事件
在主用/主用故障转移配置中,故障转移会在故障转移组级别,而不是系统级别进行。例如,如果您将两个故障转移组指定为主设备上的主用故障转移组,并且故障转移组 1 发生故障,则故障转移组 2 会在主设备上保持主用,而故障转移组 1 则会在辅助设备上变为主用状态。
由于故障转移组可以包含多个情景,并且每个情景可以包含多个接口,因此有可能单个情景中的所有接口都发生故障而不导致相关故障转移组发生故障。
下表显示了每个故障事件的故障转移操作。对于每种故障事件,给出了策略(是否发生故障转移)、主用故障转移组的操作和备用故障转移组的操作。
故障事件 |
策略 |
主用组操作 |
备用组操作 |
备注 |
---|---|---|---|---|
设备发生电源或软件故障 |
故障转移 |
成为备用设备 标记为发生故障 |
成为主用设备 将主用设备标记为发生故障 |
故障转移对中的一台设备发生故障时,该设备上的所有主用故障转移组都会被标记为发生故障,并在对等设备上变为主用状态。 |
主用故障转移组上的接口故障超过阈值 |
故障转移 |
将主用组标记为发生故障 |
成为主用设备 |
无。 |
备用故障转移组上的接口故障超过阈值 |
禁用故障转移 |
无需操作 |
将备用组标记为发生故障 |
备用故障转移组标记为发生故障后,主用故障转移组不会尝试进行故障转移,即使超过接口故障阈值也是如此。 |
以前的主用故障转移组恢复 |
禁用故障转移 |
无需操作 |
无需操作 |
除非配置了故障转移组抢占,否则故障转移组会在其当前设备上保持主用状态。 |
故障转移链路在启动时发生故障 |
禁用故障转移 |
成为主用设备 |
成为主用设备 |
如果故障转移链路在启动时发生故障,则两台设备上的故障转移组都会变为主用状态。 |
状态链路发生故障 |
禁用故障转移 |
无需操作 |
无需操作 |
如果发生故障转移,状态信息会过时,而且会话会被终止。 |
故障转移链路在运行过程中发生故障 |
禁用故障转移 |
n/a |
n/a |
每台设备都会将故障转移链路标记为发生故障。您应尽快恢复故障转移链路,因为当故障转移链路发生故障时,设备无法故障转移到备用设备。 |