在本课中,你将学习如何排除高可用性(HA)问题。
完成本部分后,你应该能够实现这张幻灯片上显示的目标。
通过展示HA能力,你将能够监视和排除常见HA问题、意外重启和冻结单元。
在本节中,你将回顾HA操作。
为了保证流量的正确转发,FortiGate HA解决方案使用虚拟MAC地址。当主机加入HA集群时,每个接口都有一个虚拟MAC地址。主机通知所有的备机关于分配的虚拟MAC地址。在故障切换时,新主机对相同的接口使用相同的虚拟MAC地址。
为每个接口分配的HA虚拟MAC地址由HA组ID、虚拟集群ID和接口索引决定。因此,如果在同一个广播域中有两个或更多的HA集群,并且使用相同的HA组ID,则可能会出现MAC地址冲突。对于这些情况,强烈建议为每个集群分配不同的HA组ID。
可以使用本幻灯片所示的命令显示接口的HA虚拟MAC地址。
在故障转移之后,新的主机会广播免费ARP包,通知网络,每个虚拟MAC地址现在可以通过不同的交换机端口访问。
在大多数网络中,这足以让交换机用新信息更新其MAC转发表。然而,一些高端交换机在故障转移后可能不会正确地清除其MAC表。因此,即使在收到免费ARP之后,它们也会继续向前主机发送数据包。在这些情况下,你应该使用这张幻灯片上显示的命令强制前主机在故障转移发生时关闭所有非心跳接口1秒钟。这模拟了链路故障,将清除交换机MAC表中的相关条目。
FortiGate HA使用FortiGate集群协议(FGCP),用于HA相关的通信。FGCP通过指定为心跳的链路在集群的FortiGate设备之间传输。
FGCP流量使用与IP协议不同的以太网类型。它实际上使用三种不同的以太网类型,取决于操作模式(透明或NAT/route)。
让我们看看主动-主动模式下的HA集群如何处理流量。
首先,客户端发送一个SYN包,该包总是使用内部接口的虚拟MAC地址作为目的地址转发到主FortiGate。如果主机决定会话将由从机检查,则主机将SYN包转发给各自的从机。
在这张幻灯片显示的例子中,目的MAC地址是从FortiGate的物理MAC地址。从机用SYN/ACK响应客户端,并通过直接发送SYN包来启动与服务器的连接。
接下来,客户机确认SYN/ACK。它使用虚拟MAC地址作为目的地址转发到主机。主设备使用从机的物理MAC地址,将数据包转发给备设备检查该会话。
当服务器响应TCP SYN时,数据包将使用外部接口的虚拟MAC发送到主机。主机信号到从机,由从机回复服务器。
可以看到,主动-主动模式的目标不是带宽负载均衡。流量总是首先发送到主机。主要目标是为流量检查在多个FortiGate设备之间共享CPU和内存。
如果你在从机加入HA集群时连接到它的console端口,你应该会看到这张幻灯片中显示的消息。首先,从机尝试同步外部文件。外部文件包括FortiGuard数据库和数字证书。在此之后,从机将同步配置。最后一条消息表明从机已成功加入集群。
在本节中,你将了解FGCP虚拟集群。
虚拟集群本质上是两个使用多个VDOM操作的FortiGate设备的集群。
你可以在主动-备动模式下配置虚拟集群,以便在运行在两个不同设备上的VDOM的两个实例之间提供标准的故障转移保护。也可以配置主动-主动模式的虚拟集群,实现两台集群设备间会话的负载均衡。还有一种方法可以在虚拟集群中负载平衡会话,那就是VDOM分区。
虚拟集群操作在只有两个FortiGate设备的集群上。如果你希望创建一个由两个以上的FortiGate设备和多个VDOM操作的集群,你可以考虑其他的解决方案,这些解决方案要么在一个集群中不包含多个VDOM,要么采用一个特性,例如与FGSP独立的会话同步。
配置虚拟集群的其他要求与标准HA配置相同。
为虚拟集群配置负载均衡有两种方法。第一种方法是将HA模式设置为主动-主动,第二种方法是配置VDOM分区。
对于虚拟集群,当HA模式设置为主动-主动时,主设备接收所有会话,并根据负载均衡时间表在集群设备之间进行负载均衡。所有集群设备处理所有VDOM的流量。
在VDOM分区中,HA模式设置为主动-备动。要配置VDOM分区,需要将一个集群设备配置为一些VDOM的主设备,将另一个集群设备设置为其他VDOM的主设备。VDOM的所有通信都由该VDOM的主设备处理。通过调整哪个集群设备是每个VDOM的主要单元,可以控制集群设备之间的流量分配。
本例中HA配置为主动-备动模式。VDOM A的流量将被FortiGate 1处理,VDOM B的流量将被FortiGate 2处理。如果发生故障转移,集群中的一个设备将处理所有VDOM的所有流量。
在本节中,你将了解一些HA故障诊断命令。
如果HA集群成功形成,GUI将显示所有FortiGate成员及其主机名、序列号、角色、正常运行时间和同步状态。
在对HA集群中的问题进行故障诊断时,了解可以从主设备的CLI连接到任何从设备的CLI是很有用的。使用这张幻灯片上显示的带有从设备HA索引的命令,你可以连接到从设备的CLl。要获取从FortiGate设备及其HA索引的列表,请在该命令的末尾使用问号。
通过CLI命令行,可以获取更多的HA状态信息。例如,这个幻灯片上显示的命令显示心跳流量统计信息,以及每个FortiGate的序列号和HA优先级。该命令还显示自动分配给主FortiGate的心跳接口IP地址。
你可以使用幻灯片上显示的命令显示以下信息:
● HA健康状况
● 集群正常运行时间
● 用于选择主单元的标准
● 覆盖状态
● 被监控接口的状态
● HA ping 服务器的状态
HA正常运行时间是用于选择主设备的变量之一。根据其他变量和配置,设备可能会比较它们的系统正常运行时间来选择主机的。如果发生这种情况,并且如果有一个成员的系统正常运行时间比所有其他设备的系统正常运行时间多5分钟,那么该成员就被选为主机。可以使用此命令比较集群中所有设备的系统正常运行时间。
reset_cnt值显示了使用diagnose sys ha reset-uptime命令重置HA正常运行时间的次数。
配置同步的状态可以很好地指示HA集群的运行状况。要验证所有从机配置都与主机配置同步,你可以在所有HA设备上使用这张幻灯片上显示的命令。如果从FortiGate显示的数字序列与主FortiGate完全相同,则对其配置进行同步。此外,只要没有发生配置更改,在每个设备上,debuqzone和checksum区域必须显示相同的数字序列。在本课的后面部分,你将学习一些在出现这种情况时进行故障排除的技巧。
checksum区域包含设备上实际运行的配置的校验和。debugzone是在将配置更改应用到正在运行的配置之前首先存储它们的地方。所以。在配置更改期间,你可能会看到debugzone校验和在短时间内与checksum不同,而配置更改会被复制到正在运行的配置中。在这段短时间之后,两个校验和应该再次匹配。
与在每个集群设备上使用checksum show命令不同,你可以只在主设备上使用幻灯片上显示的命令。它显示了所有集群成员的校验和。这个命令更容易使用;但是,如果一个从设备和主设备之间存在通信问题,则可能需要使用checksum show命令代替。
缺省情况下,HA会话同步功能处于关闭状态。如果启用了它,你可以检查主设备的会话表,以查看哪些会话已同步到从设备。他们都有synced标志。如果是所有会话,则ha_id字段显示正在处理该流量的设备的HA成员ID。
有四种情况可以触发故障转移:
● 当主机停止对心跳的应答时。
● 当被监控接口的链路状态变为down时。通过配置HA集群,可以监控一个或多个接口的链路状态。
● 当服务器(IP地址)停止响应主机发送的ping时。可以配置HA集群定时向一台或多台服务器发送ping命令,以测试主设备与网络服务之间的连通性。
● 当FortiOS检测到SSD故障时。仅支持有SSD的设备。
如果发生故障转移,用于获取有关故障转移信息的最佳工具是FortiGate日志。如果发生故障转移是因为主设备故障,那么从设备的日志应该显示这些日志条目。
如果由于一个或多个监控接口失败而选举出一个新的主机,则前主机显示的日志与这张幻灯片中显示的日志类似。在这里显示的示例中,主单元报告了被监视的接口port1的一个问题。
另一种确定HA故障转移原因的有用方法是运行本幻灯片中显示的命令。此命令提供关于过去HA事件的详细信息,允许管理员识别以前故障转移事件的原因。这是一个有用的HA命令,特别是当HA日志不可用时。
如果一个设备不能加入集群,请遵循以下步骤:
1. 验证HA设置。
2. 检查固件版本和硬件型号。
3. 验证物理层连接。
4. 当单元试图加入集群时,使用HA实时调试。在主设备和有问题的设备上运行调试。
如果问题是debuqzone和checksum区域之间的校验和不匹配,你可以尝试通过强制重新计算来修复它。
来自会话同步的流量是带宽密集型的。如果会话创建速率高,会话同步流量可能会干扰心跳流量,导致心跳应答延迟。你可以做两个配置更改,这可能会有帮助:
● 使用与心跳接口不同的接口进行会话同步。
● 将新会话的同步延迟30秒,短时间会话将不同步。
高CPU问题也可能导致HA心跳问题。在这些情况下,在检查HA状态之前,首先对高CPU问题进行故障诊断和修复。
这张幻灯片展示了你在这节课中所学到的目标。