教程篇(7.2) 18. HA高可用性 & FortiGate基础设施 ❀ Fortinet网络安全专家 NSE4

  在本课中,你将了解FortiGate高可用性(HA)的基础知识以及如何配置它。FortiGate HA提供了增强可靠性和提高性能的解决方案。

  在这节课中,你将学习上图显示的主题。

  通过展示HA操作模式和主FortiGate选举的能力,你将能够根据你的需求在你的网络中选择和实现正确的HA操作模式。你将能够在你的网络中有效地使用FortiGate设备。

  HA的概念很简单。HA连接并同步2 ~ 4台FortiGate设备组成一个集群,以实现冗余和性能目的。

  集群包括一个作为主FortiGate(也称为活动FortiGate)的设备。主设备将其配置、会话信息、FIB条目、FortiGuard定义和其他操作相关信息同步到辅助设备,这些设备也称为备用设备。

  集群在所有设备(也称为成员)之间共享一个或多个心跳接口,用于同步数据和监视每个成员的健康状况。

  目前HA有两种工作模式:主-主 (A-A)和主-被 (A-P)。现在,你将了解它们的区别。

  首先,看看主-被模式。在两种HA运行模式中的任何一种,运行信息(主FortiGate的配置、会话、FIB表项等信息)会同步到备FortiGate。

  主-被模式下,主FortiGate是唯一主动处理流量的FortiGate。备FortiGate设备处于被动状态,监控主端设备的状态。

  如果在主FortiGate上检测到问题,其中一个备设备将接管主设备。此事件称为HA故障转移。

  另一种HA模式是主动-主动。

  与主动-被动HA一样,主动-主动HA是将FortiGate主设备的操作相关数据同步到FortiGate备设备。同样,如果在主设备上检测到问题,其中一个备用设备会接管主设备的角色,处理流量。

  但是,与主动-被动模式的主要区别之一是,在主动-主动模式下,所有集群成员都可以处理流量。即根据HA设置和流量类型,主FortiGate可以将会话分发给备用设备。

  FortiGate HA使用Fortinet专有的FortiGate集群协议(FGCP)来发现成员,选择主FortiGate,同步成员之间的数据,并监视成员的运行状况。

  为了发现和监控成员,成员通过所有配置的心跳接口广播心跳数据包。如果集群在NAT模式下运行,则心跳帧为类型8890。在透明模式下,心跳帧为类型8891。如果集群在主动-主动模式下运行,则分发给辅助的会话的第一个数据包将封装在以太网帧类型8891中。

  成员们还交换类型8883的帧,用于数据同步、本地CLl管理和日志记录。对于数据同步,内部数据包可以是TCP端口703或UDP端口703,具体取决于要同步的数据类型。主设备还通过TCP端口700中继来自备设备的日志和警报电子邮件。对于使用CLI的本地HA管理,内部数据包是SSH。

  可根据以下事件配置HA切换:

  ● 死亡成员:主FortiGate没有反应。

  ● 链接失败:主FortiGate上一个或多个受监控接口的链接关闭。

  ● 远程链接失败:FortiGate使用链接运行状况监视器功能来监控一个或多个接口的运行状况。如果所有失败接口的累积惩罚达到设定的阈值,主设备故障。

  ● 内存占用率高:当内存占用率达到设置的阈值时,主设备故障。

  ● SSD固态硬盘故障:FortiOS检测到SSD固态硬盘故障。仅适用于有SSD的设备。

  ● 管理员触发:管理员发出手动故障转移。

  对于任何故障转移触发事件,结果是集群将一个备设备提升到新的主FortiGate角色。

  要成功组成HA集群,必须确保成员具有以下条件:

  ● 固件版本

  ● 型号:相同的硬件型号或虚拟机型号

  ● 许可:包括FortiGuard许可、VDOM许可、FortiClient许可等

  ● 硬盘配置:相同数量和大小的驱动器和分区

  ● 运行模式:管理VDOM的工作模式,NAT模式或透明模式

  如果成员之间的许可级别不相同,则集群解析使用所有成员中最低的许可级别。例如,如果仅为集群中的一个成员购买FortiGuard Web过滤,则这些成员在组成集群时都不支持FortiGuard Web过滤。

  从配置和设置的角度来看,你还必须确保:

  ● 每个成员的HA设置具有相同的组ID、组名、密码和心跳接口设置

  ● 每个成员的心跳接口都可以看到对方。这通常意味着放置所有心跳接口在同一广播域中,或者对于双成员集群,直接连接它们。

  这也是一个最佳实践:

  ● 至少配置两个心跳接口,实现冗余。这样,如果一个心跳链路出现故障,集群就会按照心跳接口列表中的优先级和位置来使用下一个。

  ● 如果使用DHCP或PPPoE接口,建议在集群初始化时使用静态配置,避免分配错误的地址。待集群组建完成后,可以恢复原有的接口配置。

  上图显示了集群在主FortiGate选举过程中考虑的不同标准。标准顺序的评估取决于HA覆盖设置。上图显示了当HA覆盖设置被禁用时的顺序,这是默认行为。注意,选举过程在第一个匹配条件成功选择集群中的主FortiGate时停止。

  1. 该集群比较了状态为up的监控接口的数量。监控接口可用性最高的成员成为主设备。

  2. 集群比较每个成员的HA正常运行时间。HA正常运行时间最长的成员(至少比正常运行时间长5分钟)成为主设备。

  3. 优先级最高的成员成为主设备。

  4. 序号最低的成员成为主设备。

  当HA覆盖被禁用时,HA正常运行时间优先于优先级设置。这意味着,如果必须手动将故障转移到备设备,可以通过减少主FortiGate的HA正常运行时间来实现。可以在主FortiGate上运行diagnostic sys ha reset-uptime命令,将其HA正常运行时间重置为0。

  注意,diagnose sys ha reset-uptime命令重置的是HA正常运行时间,而不是系统正常运行时间。另外,请注意,如果监视接口失败或成员重新启动,则该成员的HA正常运行时间将重置为0。

  上图还显示了如何识别成员之间的HA正常运行时间差异。uptime列中带0的成员表示正常运行时间最低的设备。例如,序列号以92结尾的设备的HA正常运行时间比HA集群中其他设备的正常运行时间长7814秒。reset_cnt列表示该设备的HA正常运行时间被重置的次数。

  如果启用了HA覆盖设置,则在HA正常运行时间之前考虑优先级。

  这种方法的优点是,每次都可以通过配置最高的HA优先级值来指定哪个设备是首选的主设备(只要它已启动并运行)。缺点是,不仅在主设备故障时触发故障转移事件,当主设备再次可用时也会触发故障转移事件。也就是说,当主设备再次可用时,它会从暂时取代它的备FortiGate那里夺回主设备的角色。

  启用覆盖后,触发故障转移的最简单方法是更改HA优先级。例如,你可以增加其中一个备设备的优先级,或者降低主设备的优先级。

  覆盖设置和设备优先级值未同步到集群成员。也就是说,在每个成员上,必须手动启用覆盖并调整优先级。

 答案:B

  答案:A

  干得漂亮!你已经了解了HA操作模式和HA集群中主FortiGate的选举。现在,你将了解HA集群同步。

  通过展示集群同步能力,你将能够根据成员的角色确定分配给成员的任务,以及成员之间同步的信息。你还将学习如何配置会话同步,以对特定类型的流量执行会话故障转移。

  那么,主FortiGate的任务是什么呢?

  它通过广播hello数据包和侦听来自集群中其他成员的hello数据包来监视集群。成员使用hello包来识别其他FortiGate设备是否活跃和可用。

  主FortiGate还将其与操作相关的数据同步到辅助成员。同步的数据包括配置、FIB表项、DHCP租约、ARP表、FortiGuard定义、IPsec隧道安全联盟(SA)等。需要注意的是,配置的某些部分是不同步的,因为它们是特定于设备的。例如,主机名、HA优先级、HA覆盖设置未同步。

  可选地,你可以配置主FortiGate,将符合条件的会话同步到所有备用设备。当启用会话同步时,新的主设备可以在故障转移事件后恢复会话的通信。我们的目标是使现有会话在最小中断或不中断的情况下继续流经新的主FortiGate。你在稍后的课程中将了解哪些类型的会话可以启用同步。

  仅在主动-主动模式下,主FortiGate还负责将会话分发给辅助成员。

  现在,看一下备FortiGate设备的任务。

  与主设备一样,备设备也广播hello包,用于发现和监视目的。

  此外,在主动-被动模式下,备设备充当备用设备,接收同步数据,但不处理任何流量。如果主设备FortiGate出现故障,备设备会选择一个新的主设备。

  在主动-主动模式下,备设备不被动等待。它们处理主设备分配给它们的所有流量。

  FGCP根据每台设备的序列号自动分配心跳IP地址。IP地址169.254.0.1分配给序列号最高的设备。IP地址169.254.0.2分配给序列号第二高的设备,依此类推。发生故障转移时,IP地址分配不会改变。在任何时候,无论设备的角色是主设备还是从设备,其心跳IP地址都是相同的。 

  当FortiGate设备加入或离开集群时,心跳IP地址可能发生变化。在这些情况下,集群重新协商心跳IP地址分配,这一次考虑到任何新设备的序列号,或者删除离开集群的任何设备的序列号。

  HA集群通过心跳IP地址区分集群成员并同步数据。

  心跳接口交换有关集群操作的敏感信息,并且可能需要相当大的带宽用于数据同步。因此,如果使用交换机连接心跳接口,建议使用专用交换机,或者至少将心跳流量放置在专用VLAN上。

  此外,必须至少配置一个端口作为心跳接口,但最好配置两个端口以实现冗余。对于心跳口,只能使用物理接口。不能使用VLAN接口、IPsec VPN接口、冗余接口、802.3ad聚合接口。FortiGate交换机端口也不能使用。

  要使链路故障转移工作,必须配置一个或多个被监视的接口。被监控的接口应该是其故障在网络中具有关键影响的接口,因此应该触发设备故障转移。例如,你的LAN或WAN接口通常是受监视接口的好选择。然而,心跳接口不应该被配置为监控接口,因为它们不是用来处理用户流量的。需要注意的是,你可以监控物理端口、冗余接口和链路聚合组(LAG)接口。

  作为最佳实践,在配置链路故障转移之前,请等到集群启动并运行并且所有接口都已连接。这是因为在初始设置期间,被监控的接口可能会断开连接,从而在集群完全配置和测试之前触发故障转移。

  为了准备故障转移,HA集群保持其配置同步。现在你将了解这一点。

  FortiGate HA同时使用增量同步和完全同步。

  当向集群添加新的FortiGate时,主FortiGate将其配置校验和与新的备FortiGate配置校验和进行比较。如果校验和不匹配,主FortiGate将其完整配置上传到备FortiGate。

  初始同步完成后,主设备将管理员所做的任何进一步配置更改发送到所有备设备。例如,如果你创建了防火墙地址对象,主设备不会重新发送其完整的配置,它只发送新的对象。

  HA传播的不仅仅是配置细节。一些运行时数据,如DHCP租约和FIB表项,也会同步。

  默认情况下,集群每60秒检查一次,确保所有设备已同步。如果备设备不同步,则每15秒检查一次其校验和。如果不同步的备设备的校验和连续五次检查不匹配,则完成对该备设备的完全重新同步。

  并非所有的配置设置都是同步的。有一些不是同步的,比如:

  ● HA预留管理接口的系统接口设置和预留管理接口的HA默认路由

  ● 带内HA管理接口

  ● HA覆盖

  ● HA设备优先级

  ● 虚拟集群优先级

  ● FortiGate主机名

  ● ping服务器(或死网关检测)配置的HA优先级设置

  ● 除FortiToken许可证外的所有许可证(序列号)

  ● 缓存

  主FortiGate同步所有其他配置设置,包括所有其他HA设置。

 会话同步提供无缝的会话故障转移。当主服务器发生故障时,新的主服务器可以恢复已同步会话的流量,而无需网络应用程序重新启动连接。

  默认情况下,对不进行代理检测的TCP防火墙会话进行同步。该规则的一个例外是由SIP ALG检查的TCP SIP会话。即使SIP ALG对SIP会话执行基于代理的检查,FortiGate仍然可以同步这些SIP会话。防火墙会话,也称为直通会话,是通过FortiGate传输的用户流量会话。当TCP防火墙会话需要进行流量检测或不需要进行流量检测时,会同步到备份成员。

  也可以开启UDP和ICMP会话同步功能。尽管这两种协议都是无连接协议,FortiGate仍然在其会话表中为UDP和ICMP连接分配会话。通常,UDP和ICMP会话不需要同步,因为大多数UDP和ICMP连接在会话信息丢失的情况下可以恢复通信。

  对于组播流量,FortiGate只同步组播路由。也就是说,FortiGate不同步多播会话,这应该是好的,因为多播会话主要是基于UDP的,并且,如前所述,UDP会话通常可以在会话信息丢失时恢复通信。为了确保跨成员的组播路由信息准确无误,可以调整组播生存时间(TTL)定时器。定时器控制新主节点在组播转发表中保持同步的组播路由的时间。定时器值越小,表示路由刷新的频率越高,因此组播转发表的准确性越高。推荐的定时器值为120秒。

  Local-in和local-out会话(分别是由FortiGate终止或发起的会话)也不同步。例如,BGP对等关系、OSPF邻接关系以及SSH和HTTPS管理连接在故障切换后都必须重新启动。

  主FortiGate会自动将所有的IKE和IPsec安全联盟(SA)同步到备用成员。这使得新的主设备能够在故障转移后恢复现有的IPsec隧道。注意,如果希望新的主设备也恢复现有的IPsec会话,还必须启用会话同步。否则,在故障转移之后,你仍然必须重新启动通过IPsec隧道建立的现有TCP连接,即使IPsec隧道继续在新的主设备上运行。

  对于SSL VPN,主FortiGate只同步SSL VPN web方式用户的认证信息。也就是说,他们使用的是SSL VPN web模式,SSL VPN用户在故障切换后不需要再次进行身份验证。但是,用户仍然需要重新启动使用SSL VPN web方式建立的连接,才能重新访问受保护的资源。请注意,FortiGate不会同步SSL VPN隧道模式的任何信息。也就是说,在故障切换之后,SSL VPN隧道模式用户必须重新启动他们的SSL VPN隧道连接,以及通过隧道建立的任何连接。

  答案:A

 答案:B

  干得漂亮!你已经了解了HA集群同步。现在,你将了解HA集群故障转移保护类型以及HA集群中主、从FortiGate设备的工作负载。

  通过演示故障转移类型和工作负载方面的能力,你将能够确定如何通过HA故障转移保护实现增强的可靠性。你还将了解主动-主动集群中的流量分布以及使用虚拟集群分配流量。

  最常见的故障转移类型是设备故障转移和链路故障转移。但是,你也可以配置远程链路故障转移和基于内存的故障转移。触发故障转移事件后,从设备会选择一个新的主设备。

  当备设备停止接收主设备的心跳hello报文时,会触发设备故障转移。

  当主FortiGate上被监控接口的链路状态变为down时,会发生链路故障转移。可以配置HA集群监控一个或多个接口。如果主FortiGate上被监控的接口被拔出,或者该接口的链路状态down,则会选举一个新的主FortiGate。

  配置远程链路故障转移时,FortiGate使用链路运行状况监控器功能监视针对充当信标的一个或多个服务器的一个或多个接口的运行状况。当所有失败接口的累计惩罚达到配置的阈值时,主FortiGate失效。

  如果开启了基于内存的故障切换,在配置的监控周期内,当主FortiGate的内存利用率达到设置的阈值时,会触发HA故障切换。你还可以启用SSD故障转移,如果FortiOS检测到主FortiGate上的SSD上的Ext-fs错误,则触发故障转移。

  有多个事件可能触发HA故障转移,例如主FortiGate上的硬件或软件故障,或者主FortiGate上的某个接口出现问题。当发生故障转移时,将生成事件日志。你还可以选择配置设备生成SNMP trap和告警邮件。

  确保为希望防止故障转移事件的会话启用会话交换功能。这样,新的主设备就可以恢复这些会话的流量。

  当你配置HA时,设备故障转移总是启用的。但是,你可以调整指定故障转移时间的设置。要加快故障转移,你可以减少上图显示的所有三个设置的值。要减少误报,请增加它们的值。

  这三个设置的默认值因型号而异。例如,在FortiGate 2000E型号上使用默认值会导致设备故障转移时间为1200毫秒(1.2秒)。请注意,10毫秒的心跳间隔仅在NP6平台上支持。

  如上图所示,要配置链路故障转移,必须配置一个或多个被监视的接口。请注意,只能将物理接口、冗余接口和LAG接口配置为监控接口。

  上图显示了远程链路故障转移的配置示例。

  首先,配置链路健康监控,如路由课程中所示。链路健康监控配置中的ha-priority设置定义了在检测到链路死亡后应用于成员的处罚。请注意,ha-priority设置仅具有本地意义,因此不会同步到其他成员。

  下一步是配置与远程链路故障转移相关的HA设置。上图的配置指示FortiGate在port1上执行远程链路故障转移,如下所示:

  ● 当检测到port1已死时,将名义惩罚(10)添加到全局惩罚(最初设置为0)中。

  ● 如果累积的惩罚达到惩罚阈值(5),那么集群将选择一个新的主设备。当备设备的累积惩罚低于主设备时,就会发生故障转移。如果是这样,那么累积罚金最低的备设备将成为新的主设备。

  ● 在翻转超时(30分钟)过去之前,集群不会再次选择新的主设备。

  如果在主设备选举中,所有成员的累计罚分是相同的,那么其他标准,如被监控的接口、优先级、正常运行时间等,都被作为决胜局来选举新的主设备。

  上图显示的HA配置指示FortiGate执行基于内存的故障转移,如下所示:

  ● 当主设备上的内存达到阈值(70%)并保持30秒时,集群就会选择一个新的主设备。

  ● 在主设备选举期间,当备设备的内存使用低于配置的内存阈值(70%)时,就会发生故障转移。如果是这样,备设备将成为新的主设备。

  ● 在翻转超时(20分钟)过去之前,集群不会再次选择新的主设备。

  ● 集群中的每个成员每2秒检查一次内存使用情况。

  如果在主设备选举期间,所有成员的内存使用都低于或高于阈值,则使用其他标准(如受监视的接口、优先级、正常运行时间等)作为决定因素来选举新的主设备。

  上图显示的HA配置指示FortiGate在主FortiGate上的任何SSD磁盘报告Ext-fs错误时执行故障转移。请注意,此功能仅在FortiGate部分型号上支持。

  为了正确转发流量,FortiGate HA解决方案使用虚拟MAC地址。当主设备加入HA集群时,为每个接口分配一个虚拟MAC地址。HA组ID用于为每个接口创建虚拟MAC地址。因此,如果在同一广播域中有两个或更多HA集群,并且使用相同的HA组ID,则可能会遇到MAC地址冲突。对于这些情况,强烈建议为每个集群分配不同的HA组ID。

  通过心跳,主设备将分配的虚拟MAC地址通知所有备用设备。当发生故障切换时,备用设备的两个等效接口使用相同的虚拟MAC地址。

  新的主设备广播免费的ARP包,通知网络每个虚拟MAC地址现在可以通过不同的交换机端口访问。

  注意保留的HA管理接口的MAC地址不能修改为虚拟MAC地址。相反,保留管理接口保留其原始MAC地址。

  正如你在本课前面所了解到的,如果主设备失败,将选举新的主设备。但是如果备FortiGate设备出现故障会怎样呢?这取决于HA模式。

  在主动-被动集群中,主设备只更新其可用的备FortiGate设备列表。它还开始监视故障的备设备,等待它再次联机。

  但是,在主动-主动集群中,备设备可以处理流量。所以,主设备(跟踪并将会话分配给每个备设备)不仅必须更新其可用的备FortiGate设备列表,而且还必须将会话从失败的FortiGate重新分配给不同的备FortiGate。

  这就是根据HA模式在角色之间分配工作负载的方式。

  注意,流量工作负载仅以主动-主动模式分布。但是需要注意的是,默认情况下,只有进行代理检测的会话才会被分配到备设备上。如果要强制分发流检测或根本不检测的会话,则必须启用HA配置下的load-balance-all设置,该设置默认为关闭。

  在主动-主动模式下,会发生以下情况:

  ● 发送到集群的流量被发送到主集群。由于主端口(心跳端口除外)上的所有网络端口都被分配了一个虚拟MAC地址,因此流量被指定为主FortiGate上接收端口的虚拟MAC地址。

  ● 对于分发到备设备的流量,到达端点的流量由备设备发送。流量来源于备设备出端口的物理MAC地址。

  上图显示了受代理检查约束的分布式流量的流程:

  1. 客户端发送SYN报文,转发到主设备端口1。报文的目的MAC地址为端口1上的虚拟MAC地址。

  2. 主设备将SYN报文转发给选择的备设备。在此例中,将报文的源MAC地址修改为主设备端口1的物理MAC地址,将报文的目的MAC地址修改为备设备端口1的物理MAC地址。这也被称为MAC地址重写。此外,主设备将数据包封装在一个类型为0x8891的以太网帧中。只对负载均衡会话的第一个数据包进行封装。被封装的数据包包括原始数据包加上备设备处理流量所需的会话信息。

  3. 备设备向客户端发送SYN/ACK报文,源为备设备端口1的物理MAC地址,目的为客户端MAC地址。

  4. 客户端通过向集群发送ACK信息来确认SYN/ACK。ACK数据包的目的地是主设备上的端口1。

  5. 主设备接收到数据包,并且知道它与先前分发给备设备的会话相匹配。因此,主设备将ACK数据包转发给相应的备FortiGate。报文从主设备端口1的物理MAC地址发送到备设备端口1的物理MAC地址。客户端三次握手完成。

  6. 备设备以端口2的物理MAC地址为源发送SYN报文,开始与服务器的连接。请注意,FortiGate在完成与客户端的三次握手之后才与服务器联系,而不是在此之前。当FortiGate在独立模式下运行并执行基于代理的检查时,可以看到相同的行为。

  7. 来自服务器的SYN/ACK报文被发送到主设备的端口2。目的MAC地址为端口2的虚拟MAC地址。

  8. 主设备接收到数据包,并且知道它与先前分发给备设备的会话相匹配。主设备将SYN/ACK数据包转发给相应的备FortiGate。报文从主设备端口2的物理MAC地址发送到备设备端口2的物理MAC地址。

  9. 备设备以端口2的物理MAC地址为源,服务器的MAC地址为目的,向服务器发送ACK报文响应。

  服务器端的三次握手也完成了。从现在开始,客户端发送的数据包遵循相同的流程。例如,主设备首先接收来自客户机的HTTP GET请求包,然后将其转发给备设备进行基于代理的检查。如果数据包是允许的,那么备设备将数据包转发给服务器。对客户机HTTP GET请求的任何服务器响应数据包都被发送到主设备,然后主设备将数据包转发给备设备进行检查,依此类推。

  请注意,主动-主动模式的目标是利用备设备上未使用的CPU和内存资源。其目的并不是真正实现流量负载均衡。事实上,因为来自端点的流量总是被发送到主设备,所以你通常会在主设备上看到比任何备设备更多的流量。

  在没有代理检测的情况下,即流量检测或不检测时,只有启用HA配置下的load-balance-all配置(默认为关闭),会话才会分发到备FortiGate。另外,和代理检测一样,你还会看到以下行为:

  ● 来自客户端或服务器并以FortiGate集群为目的地的流量被发送到主FortiGate。源MAC地址和目的MAC地址分别是终端(客户端或服务器)和主FortiGate虚拟MAC地址。

  ● 如果要实现会话负载均衡,主FortiGate可以反过来将流量转发到备FortiGate。

  ● FortiGate将流量分配到备设备时,使用主设备接口的物理MAC地址作为源MAC地址,使用备设备接口的物理MAC地址作为目的MAC地址。

  ● 如果将流量负载均衡到备FortiGate,则来自集群并发往端点的任何流量都来自备FortiGate。这意味着源MAC地址是备设备出接口的物理地址。

  与代理检测相比,不同之处在于FortiGate不代表客户端或服务器响应数据包。例如,FortiGate不应答客户端发送的SYN报文,而是通过从服务器将报文转发给服务器。类似地,FortiGate转发服务器通过备设备发送给客户端的数据包。

  在主动-主动模式下,并非所有会话都符合主动-主动负载均衡。上图展示了无法进行负载均衡的会话列表。

  现在大多数互联网流量都是HTTPS。出于这个原因,了解HTTPS流量负载平衡的限制是很重要的。你必须知道,如果对HTTPS会话进行基于代理的检测,则该会话将无法实现负载均衡。实际上,只有两种情况下HTTPS会话是负载均衡的,即启用load-balance-all设置和:

  ● 检测模式设置为流模式,或者

  ● 设置检测模式方式为代理模式,不对HTTPS流量进行检测

  不要混淆会话故障转移和会话负载均衡。虽然有些会话可以同步到备成员以进行会话故障转移保护,但那些相同的会话不一定支持主动-主动负载均衡。例如,如果启用session-pickup-connectionless设置,ICMP会话可以同步到备设备,但它们不能进行负载均衡。

  在主动-主动模式下,主设备在分发会话时,采用以下负载均衡方式之一:

  ● none:关闭负载均衡。主设备处理所有会话。

  ● leastconnection:主设备将会话分配给会话数最少的成员。

  ● round-robin:这是默认方式。主设备在成员之间平均分配会话。

  ● weight-round-robin:主设备根据成员权重在成员之间分配会话。成员权重越高,分配给该成员的会话就越多。

  ● random:主设备在成员间随机分配会话。

  ● ip and hub:主设备将具有相同源IP和目的IP对的会话分发给同一成员。ip and hub这两种方法的工作方式相同。配置中的两个名称都是出于遗留兼容性的目的而保留的。hub计划将在未来的FortiOS版本中被删除。

  ● ipport:根据源地址、源端口、目的地址和目的端口信息分发会话。流量越多样化,表示流量在成员间的分布越均匀。

  通过配置schedule设置来设置负载均衡方法,如上图所示。

  当选择weight-round-robin方法时,还必须为每个成员配置权重,如图所示。你需要在成员ID后面加上其权重。成员权重越高,分配给该成员的会话就越多。可以从get system ha status命令的输出信息中获取成员ID。

  上图还显示了一个基于权重的配置示例,其中67%的会话分配到备FortiGate, 33%的会话分配到主设备。也就是说,每3个符合负载均衡条件的连接,其中2个分配给备设备,1个分配给主设备。

  注意,要对主设备上的所有成员应用成员权重配置。也就是说,你不必对每个成员单独应用权重。集群会为你将配置同步到每个成员。

  到目前为止,你已经了解了HA集群,其中每个FortiGate设备充当整个安全域。

  但是,如果你有一个具有多个VDOM的HA集群,则可以配置虚拟集群。

  虚拟集群允许你使用一个设备作为一个VDOM的主设备,作为另一个VDOM的辅助设备。每个VDOM都有一个主FortiGate和一个备FortiGate。任何设备都可以作为一些VDOM的主设备,同时作为另一些VDOM的备设备。由于来自不同VDOM的流量可以转到不同的主FortiGate设备,因此可以使用虚拟集群在两个集群设备之间手动分配流量,并允许在两个集群设备之间为每个VDOM设置故障转移机制。

  请注意,只能在两个具有多个VDOM的FortiGate设备之间配置虚拟集群。

  在本课开始时,你回顾了一个简单的HA拓扑。现在,看一看更健壮的拓扑。它被称为全网格HA。

  全网状HA拓扑的目标是消除单点故障,不仅通过多个FortiGate设备形成集群,而且通过与相邻交换机建立冗余链路。目标是上游和下游链路都有两台交换机,然后将冗余链路连接到不同的交换机上。例如,上图的拓扑显示了两个FortiGate设备组成一个集群,每个FortiGate设备使用两个不同的接口连接到两个冗余交换机。

  为了与相邻交换机实现冗余,必须部署冗余或LAG接口。如果使用冗余接口,则只有一个接口保持活动状态。这样就避免了第二层环路,一个标准交换机就足够了。但是,如果你希望使用LAG接口,则必须确保交换机支持多机箱链路聚合组(MCLAG)或类似的虚拟LAG技术,使你能够形成一个LAG,其接口成员连接到不同的交换机。FortiSwitch是一款Fortinet以太网交换机,支持MCLAG。你可以使用FortiSwitch作为相邻交换机,使用FortiGate部署全网格HA拓扑。

  答案:A

  答案:A

  干得漂亮!你已经了解了HA故障转移和工作负载。现在,你将了解HA集群的监视和故障排除。

  通过展示监控和故障排除方面的能力,你将能够确保集群正确同步。你还将了解如何配置和访问HA集群中的备设备,以及如何升级HA集群上的固件。

  FortiGate GUl上的HA页面显示有关HA集群运行状况的重要信息。对于每个集群成员,该页面显示该成员是否已同步,以及其状态、主机名、序列号、角色、优先级、正常运行时间和活动会话。

  在HA页面中,你可以移除集群中的设备。将设备从HA中移除时,设备的运行模式将设置为单机模式。你还可以启用更多列来显示每个成员的其他重要信息,如校验和、CPU和内存。

  你还可以在仪表板页面上添加HA状态小部件。小部件提供了HA的摘要。

  在FortiGate命令行中可以通过get system HA status命令获取HA状态的详细信息。

  该命令以用户友好的输出方式显示全面的HA状态信息,通常作为排除HA故障的第一步执行。上图显示了该命令提供的示例输出的第一部分。请注意,成员的序列号已被假序列号(SN1和SN2)替换,因此输出适合上图。

  在输出的开头,你可以看到集群状态、成员型号、使用的HA模式和集群正常运行时间。示例显示:集群状态良好,成员型号为FortiGateVM64-KVM, HA模式为主备模式。集群也已经启动了将近3天。

  接下来,你可以看到最新的主设备选举事件、结果和原因。输出表明,在最近两次选举事件中,有不同的成员当选为主设备。在这两种情况下,成员当选是因为它具有更高的HA正常运行时间。

  下一步显示配置状态信息。显示每个成员的配置同步状态。对于两个成员,配置处于同步状态。

  在配置状态信息之后,你可以看到系统利用率统计信息,该统计信息报告了每个成员的性能统计信息。它们表示每个成员处理的会话数,以及平均CPU和内存使用情况。请注意,会话字段表示成员处理的任何会话,而不仅仅是HA模式为主动-主动时分发的会话。

  上图显示了diagnose system ha status命令提供的示例输出的第二部分。

  首先输出配置的心跳接口、监控接口和远程链路接口的状态信息。这些接口分别使集群能够进行设备故障转移、链路故障转移和远程链路故障转移保护。

  接下来,输出显示集群中每个成员的角色、主机名、序列号和ID信息。该输出表明Local-FortiGate和Remote-FortiGate设备分别是主成员和备成员。

  diagnose sys ha checksum命令树用于检查集群配置同步状态。一般情况下,需要使用diagnostic sys ha checksum cluster命令查看集群校验和。输出结果包括集群中每个成员的校验和。

  执行diagnostic sys ha checksum cluster命令时,将通过心跳接口向每个成员轮询校验和。如果HA不能正常工作,或者存在心跳通信问题,则该命令可能不会显示除你在其上运行命令的成员之外的成员的校验和。另一种方法是单独连接到每个成员,然后运行diagnostic sys ha checksum show命令。该命令只显示所连接的成员的校验和。

  获取每个成员的校验和后,可以通过比较校验和来识别配置同步状态。如果所有成员显示每个配置范围的精确哈希值,则所有成员的配置处于同步状态。

  为了计算校验和,FortiGate为以下每个配置范围计算一个哈希值:

  ● global:全局配置,如全局设置、FortiGuard设置等

  ● root:特定于根VDOM的设置和对象,如果配置多个VDOM,FortiGate会为每个VDOM计算散列值

  ● all:全局配置+所有VDOM的配置

  在某些情况下,即使校验和不同,成员的配置也是同步的。对于这些情况,请尝试执行命令diagnose sys ha checksum recalculate重新计算HA校验。

  在处理HA故障时,可能需要从当前连接的成员的CLI连接到其他成员的CLI。可以使用execute ha manage命令连接到其他成员。

  例如,当你使用任何集群虚拟IP地址通过SSH连接到集群时,你将连接到主要成员。如果你想连接到另一个成员,你可以使用execute ha manage命令来访问它的CLI。

  该命令要求你指定要连接的成员的ID和用于登录的用户名。要获取成员ID列表,你可以在execute ha manage命令的末尾添加一个问号,如图所示。

  注意,当切换到另一个成员的CLI时,FortiGate通过心跳接口与该成员建立一个SSH会话。然后将SSH会话封装在类型为0x8893的以太网帧中。

  你可以使用execute ha failover set命令将主FortiGate设置为具有永久的备用角色。当你这样做时,会发生故障转移,并且以前的主要成员仍然作为次要成员永久成员,而不考虑集群中其他成员的状态。也就是说,受影响的成员永远不会接管集群,即使它是主角色的最佳候选人。

  可以通过运行execute ha failover unset命令恢复永久备用角色状态命令。请注意,你应该将主成员设置为永久备用角色以进行测试,仅用于故障排除和演示目的。请勿在生产网络中使用此功能。

  当你使用任何虚拟IP地址连接到集群时,你总是连接到主集群。然后,你可以使用execute ha manage命令切换到集群中任何成员的CLI。但是,如果你想要访问次要成员的GUI,或者使用SNMP从它轮询数据,该怎么办呢?为此,你需要一种方法来直接访问每个成员,而不考虑其在集群中的角色。

  无论成员角色是什么,FortiGate都为管理员提供了两种直接连接成员的方式。保留的HA管理接口为带外选项。你最多可以配置四个专用管理接口,并在每个成员上为它们分配唯一的地址。然后,你可以使用分配给每个成员的唯一地址直接连接到它们。你也可以指定FortiGate对某些出站管理服务(如SNMP trap、日志、认证请求等)使用专用管理接口。

  或者,你可以配置带内HA管理,这使你能够为成员分配唯一的管理地址,而不必为此目的预留一个接口。将管理地址分配给该成员使用的任何用户流量,然后使用该唯一管理地址连接到该成员。

  如果有未使用的接口,那么使用保留的HA管理接口通常更方便,因为用户流量和管理流量不必相互竞争。许多FortiGate型号都带有一个管理接口,你可以将其用于此目的。另外,保留的HA管理接口的路由信息放在单独的路由表中,这意味着你不会在FortiGate路由表中看到接口路由。这允许在数据流量和管理流量之间进行分段。

  上图还显示了两个管理选项的配置示例。对于这两个选项,在一个成员上应用的配置不会同步到集群中的其他成员。

  升级HA集群的方式与升级独立FortiGate设备的方式相同。也就是说,你可以申请使用GUI固件升级工具获取新固件。在HA中,这通常意味着连接到主FortiGate GUl以应用新固件。如果你喜欢,也可以使用CLl。

  此外,与独立FortiGate设备一样,设备必须重新启动才能应用新的固件。然而,默认情况下,集群中的成员一次升级一个,以尽量减少服务中断。此特性称为不间断升级,默认为启用状态。管理员在主设备上应用新固件后,不间断升级的工作原理如下:

  1. 主设备通过心跳接口向所有备设备发送固件。

  2. 备设备首先升级固件。如果集群运行在主动-主动模式下,主设备暂时接管所有流量。

  3.完成固件升级的第一个备设备接管集群。

  4. 之前的主设备变成了备设备,接下来升级自己的固件。

  请注意,根据HA设置和正常运行时间的不同,原始主设备在升级后可能仍然是备设备。稍后,如果需要,你可以发出手动故障转移。或者,你可以在主FortiGate上启用覆盖设置,以确保它在升级其固件后再次接管集群,只要该设备被分配更高的优先级。

  如果希望集群同时升级所有成员以加快固件升级过程,可以禁用不可中断升级,如上图所示。请记住,这将导致固件升级期间的业务影响。

  答案:A

  答案:A

  恭喜你!你已经完成了这一课。现在,你将复习这节课所涉及的目标。

  通过掌握本课所涵盖的目标,你了解了FortiGate HA的基础知识以及如何配置它。


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值