教程篇(5.4) NSE4 15. 高可用性 ❀ 飞塔 (Fortinet) 网络安全专家

来源:互联网 发布:开源人工智能语音系统 编辑:程序博客网 时间:2024/06/05 07:07


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


在完成这一课程之后,你应该具备配置、操作和监视一个FortiGate HA集群所需的实际技能。


HA的概念很简单。HA连接并同步两个或更多的设备。

  在FortiGate HA,一个FortiGate设备作为主要的设备(也被称为活动的FortiGate)。它将其配置与其他设备同步。其他的FortiGate被称为二级或备用设备。

  所有设备之间的心跳连接被用来检测无响应的设备。

  设备之间的同步是什么?所有的FortiGate都是处理流量的吗?HA是否提高了可用性,还是提高了吞吐量?

  答案因HA模式而异。目前有两种HA模式可用:主动-主动和主动-被动。让我们看看它们有什么区别。


首先,让我们来看看主动-被动模式。在这两种HA操作模式中,从FortiGate的配置与主设备的配置同步。

  在主动-被动模式下,主FortiGate是唯一有效地处理流量的FortiGate。从FortiGate仍然处于被动模式,监视主设备的状态。

  如果在主FortiGate中检测到一个问题,其中一个从设备将接管主设备。这个事件就是我们所说的HA故障转移。


另一种HA模式称为主动-主动。

  就像主动-被动HA一样,所有的FortiGate都是同步的。此外,如果在主设备中检测到问题,其中一个从设备将接管主设备的角色,以处理流量。

  然而,主动-被动模式的主要区别之一是,在主动-主动模式下,所有的FortiGate都在处理流量。在主动-主动模式下,主FortiGate的一个任务是平衡所有从设备之间的通信量。


那么,HA集群中的FortiGate是如何通信的呢?

  FortiGate HA使用FGCP,即FortiGate分簇协议,用于与HA关联的通信。FGCP通过你指定的“心跳”之间的链接在集群的FortiGate设备之间进行传输。

  使用常规的RJ45或交叉电缆,可以实现两个FortiGate设备之间的心跳连接。如果你有另一个设备在中间,例如一个开关,确保它是专用的并且与你的网络的其他部分隔离。通过这种方式,临界FGCP流量不需要与其他流量竞争带宽。

  NAT模式集群和透明模式集群使用不同的以太网类型值来发现和验证操作集群中的其他FortiGate的状态。

  集群中的FortiGate也在TCP端口23上使用telnet会话,在心跳链路上使用以太网类型0x8893,以同步集群配置,并连接到集群中的另一个FortiGate的CLI。


FortiGate HA配置需要以下设备并设置。

  首先,FortiGate设备至少有两种、最多四种相同:

  • 固件

  • 硬件型号和VM许可

  • 硬盘容量和分区

  • 操作模式(透明或NAT)

  第二,在HA通信的FortiGate之间至少有一个连接,称为心跳通信。对于冗余,可以使用多达8个心跳接口。如果一个链接失败,HA将使用下一个链接,按在心跳接口列表中所示的优先级和位置。

  第三,在每一个FortiGate设备上的相同的接口必须连接到相同的交换或LAN区段。请注意,在示例中,FortiGate设备是冗余的,以减轻故障。但是,交换机和它们的链接仍然是一个单点故障。稍后我们将看到,你还可以在网络交换机和链接中有冗余。

  HA的一个重要变化是,现在集群可以包括通过DHCP或PPPoE动态分配IP地址的接口。在FortiOS 5.2之前,一个HA集群只能包含有静态IP地址的接口。作为一个最佳实践(和Fortinet推荐),在形成HA集群时,配置带有静态IP地址的FortiGate接口。一旦建立了HA,你就可以配置DHCP或PPPoE接口。如果一个接口被配置为DHCP或PPPoE,那么启用HA可能导致接口接收不正确的地址,或者不能正确地连接到DHCP或PPPoE。


选择主FortiGate的过程依赖于一个HA设置,称为HA覆盖。这里显示了当禁用HA覆盖设置时,集群用于选择主防御的过程和选择标准,这是默认行为。

  注意:选择过程将在第一个匹配的标准中停止,该条件成功地选择了集群中的主FortiGate。

  1. 集群首先比较其状态的监视接口的数量,具有最多可用监视接口的FortiGate设备成为主设备。

  2. 这个集群比较系统上的时间。如果设备的系统正常运行时间比其他FortiGate的系统运行时间多5分钟,那么它就会成为主设备。

  3. 配置最高优先级的FortiGate将成为主设备。

  4. 集群通过比较序列号来选择主设备。

  当禁用了HA覆盖时,正常运行时间优先于优先级设置。如果出于某种原因,你需要更改当前的主设备,那么你可以手动地强制故障转移事件。当禁用了覆盖设置时,最简单的方法是在主FortiGate中执行CLI命令〖diagnose sys ha reset-uptime〗。

  注意:reset-uptime命令会在内部重新设置HA年龄,并且不会影响在FortiGate仪表板上显示的时间。另外,如果一个监控的接口失败了,或者一个集群中的FortiGate重新启动,那么该FortiGate的HA正常运行时间将被重置为0。


你可以更改集群在选择主FortiGate时所考虑的选择条件的顺序。

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

  这种方法的优点是,你可以通过将其配置为最高的HA优先级值来指定哪个设备是首选的首选项(只要它启动并运行)。缺点是,故障转移事件不仅在主故障时触发,而且在主设备再次可用时触发。当主设备再次可用时,它将从临时替换它的辅助FortiGate中恢复它的主要角色。

  注意:选择过程将在第一个匹配的标准中停止,该条件成功地选择了集群中的主设备。

  当启用覆盖时,触发故障转移的最简单方法是更改HA优先级。例如,你可以在其中一项中增加优先级,或者减少主优先级的优先级。

  覆盖设置和设备优先级值不同步到所有集群成员。你必须为每个集群成员手动和分别调整和调整设备优先级。


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

  它通过发送hello信号和侦听应答来监视集群,以确定彼此的FortiGate是否还存在。它还将其路由表和其配置的一部分同步到其他设备上。

  你可以选择配置主FortiGate,以便将一些通信会话信息同步到所有的从设备。这允许对某些会话进行更快、无缝的故障转移。一些客户在主FortiGate失败后,不需要重新建立他们的会话。我们将讨论哪些会话信息可以在稍后的课程中同步。

  仅在主动-主动模式下,主FortiGate会在集群中所有可用设备之间分配流量。


现在,让我们来看看从FortiGate的任务。

  如果模式是主动-被动,那么从设备将会等待,接收同步数据,但实际上不会处理任何流量。如果主FortiGate失败了,从FortiGate将会选举出一个新的主设备。

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


那么心跳接口呢?

  你不需要配置它们。FGCP将根据每个设备的序列号自动协商心跳IP地址。IP地址169.254.0.1被分配给具有最高序列号的设备。IP地址169.254.0.2被分配给从设备,它的序列号是第二高的,以此类推。当发生故障转移时,IP地址分配不会发生变化。无论在任何时候(主要或次要)设备角色,它的心跳虚拟IP地址仍然是相同的。

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


在连接心跳接口和配置接口监控时,需要考虑几个项:

  心跳端口包含关于集群配置的敏感信息,需要相当大的带宽,以确保集群配置始终处于同步状态。你必须至少有一个端口用于心跳,最好是两个。

  注意:可以为物理接口启用心跳通信,但对于VLAN子接口、IPsec VPN接口、冗余接口、802.3 ad聚合接口、或FortiGate交换端口都不支持。

  你应该为那些失败应该触发设备故障转移的端口配置接口监控(例如,高优先级的流量端口)。你不应该为专用的心跳端口配置端口监视。


为了准备故障转移,HA集群保持其配置同步。现在让我们看一看。

  FortiGate HA使用了增量和完全同步的组合。

  当在集群中添加一个新的FortiGate时,主FortiGate将其配置校验和与新的从FortiGate配置校验和进行比较。如果校验和不匹配,主FortiGate会将其完整的配置上传至从FortiGate。


在初始同步完成之后,主设备将向所有的从设备发送任何进一步的配置更改。例如,如果你创建了一个防火墙地址对象,那么主设备不会重新发送它的完整配置,它只发送一个新对象。


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

  默认情况下,集群每隔60秒检查一次,以确保所有设备都是同步的。如果任何从设备都不同步,那么每15秒就会检查从设备的校验和。如果校验和不匹配5个连续的检查,那么就完成了一个完整的重新同步。


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

  • HA保留管理接口的系统接口设置和预留管理接口的HA缺省路由

  • HA覆盖

  • HA设备优先级

  • 虚拟集群优先

  • FortiGate主机名

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

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


会话同步为一些通信提供无缝的故障转移。一些会话的信息是同步的,因此当主设备失败时,新的主设备可以接管那些被保留的会话,并保持它们的开放。流量可能会被中断几秒,但是网络应用程序不需要重新连接会话。

  默认情况下,一旦启用了会话同步,设备就会同步TCP和IPsec VPN会话,这些会话符合一个要求:它们不是由UTM代理处理的,比如反病毒或web过滤。

  你可以选择启用UDP和ICMP会话的同步。尽管这两个协议都是无会话的,但是在每个UDP和ICMP的流量流中都创建了条目。通常,这种同步是不需要的,因为大多数基于UDP或ICMP的网络应用程序即使在会话信息丢失时也能够保持通信。

  不支持多播和SSL VPN会话的同步。


为了正确地转发流量,一个FortiGate HA解决方案使用了虚拟MAC地址。

  当一个主设备连接一个HA集群时,每个接口都被给定一个虚拟MAC地址。

  通过“心跳”,主设备通知了所有关于分配的虚拟MAC地址的信息。

  在故障转移之后,从设备采用相同的虚拟MAC地址来进行相同的接口。

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


正如已经解释的那样,如果主设备失败,就会选出新的主设备。但是如果一个从设备失败了怎么办?这取决于HA模式。

  在主动-被动集群中,主设备只更新可用的从FortiGate列表。它也开始监控失败的从设备,等待它再次上线。

  然而,在一个主动-主动集群中,所有的从设备都在处理流量。因此,主设备(跟踪并分配会话到每个从设备)必须更新其可用的从FortiGate的列表,但它也必须重新分配从失败的FortiGate设备到不同的从FortiGate的会话。


最常见的失败类型是设备上的失败和连接的失败。

  当主FortiGate停止发送心跳通信时,设备故障转移基本上被触发。当这种情况发生时,从设备重新协商一个新的主设备。

  当FortiGate上的一个监控接口的链接状态下降时,就会出现一个链接故障转移。你可以配置一个HA集群来监视某些接口的链接状态。如果主FortiGate上的一个被监视的接口没有被插入,或者它的链路状态下降,就会产生一个新的主FortiGate。

  有多个事件可能触发HA故障转移,例如主FortiGate中的硬件或软件故障,或者主设备接口中的一个问题。当发生故障转移时,将生成一个事件日志。此外,该设备还可以生成SNMP陷阱和警报电子邮件。


这是在角色之间分配工作负载的方式,这取决于HA模式。

  注意,流量工作负载不是在主动-被动模式下分布的,而是在主动-主动模式下。


让我们来看看主动-主动模式下的HA集群如何分配流量。

  首先,客户端发送一个SYN包。它总是使用内部接口的虚拟MAC地址作为目标转发到主FortiGate。

  如果主设备决定会话将由从设备检查,则主设备将SYN包转发到从设备,以便进行检查。在本例中,目标MAC地址是从FortiGate的物理MAC地址。

  从设备对客户端进行SYN/ACK响应,并通过直接发送SYN包来启动与服务器的连接。


接下来,客户端确认了ACK。它被再次转发到主设备,使用虚拟MAC地址作为目标。

  主设备将包转发到从设备二次检查会话中,使用从设备的物理MAC地址。


当服务器对TCP SYN进行响应时,该包被发送到主设备,使用外部接口的虚拟MAC地址。

  所以,主设备信号是从设备。

  从设备回复到服务器。

  这样做的目的不是为了负载平衡带宽。流量总是先发送到主服务器。主要目标是在多个FortiGate之间共享CPU和内存,以便进行流量检查。


到目前为止,我们已经讨论了HA集群,每一个FortiGate都充当一个完整的安全域。

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

  虚拟集群允许你拥有一个设备作为一个VDOM的主要功能,并且作为另一个VDOM的辅助工具。每个VDOM都有一个主FortiGate和一个从FortiGate,任何设备都可以作为一些VDOM的主设备,同时作为其他VDOM的次设备。虚拟集群只能在主动-被动模式下的集群中进行配置。由于来自不同的VDOM的流量可以到达不同的主FortiGate,你可以使用虚拟集群在两个集群设备之间手动分配流量,并允许两个FortiGate之间的每个VDOM之间的故障转移机制。

  注意:你可以在两个具有多个VDOM的FortiGate之间配置虚拟集群。


在这节课的开始,我们展示了一个简单的HA拓扑。现在,让我们来看一个更健壮的拓扑。它被称为全网格HA。

  这样做的目的是为了防止任何单点故障,不仅在FortiGate中,而且在网络交换机和接口中也是如此。

  正如你所看到的,你有两个用于冗余的FortiGate,每一个FortiGate都连接到两个多余的交换机,使用两个不同的接口。

  一个完整的网格HA更复杂,可以组合和管理,但是它可以提供关键安装所需的可用性。这个解决方案只适用于高端的FortiGate型号,因为不是所有的FortiGate型号都能够创建聚合或冗余的接口,这是构建这种拓扑结构所必需的。


与独立设备一样,在升级HA集群时,每一个更新的FortiGate都必须重新启动。默认情况下,当不可中断的升级被启用时,集群首先升级从FortiGate。一旦所有的从FortiGate都在运行新的固件,就会产生一个新的主设备,并且在原来的主设备上更新固件。

  如果集群在主动-主动模式下运行,那么在所有设备都升级固件时,流量负载平衡是临时禁用的。

  你可以通过在配置系统HA中禁用不可中断的升级来更改固件升级过程。这将导致集群中的所有FortiGate同时升级。这花费了更少的时间,但是中断了流量。


如果HA集群成功地形成了,那么GUI将显示集群中的所有FortiGate,以及它们的主机名、序列号、角色和优先级。

  你还可以查看HA统计信息,它显示了正常运行时间、活动会话和网络利用率。

  你还可以将集群成员从集群中断开,并编辑HA配置。


你可以从CLI中获得关于HA状态的更多信息。例如,命令〖diagnose sys ha status〗显示心跳流量统计信息,以及每一个FortiGate的序列号和HA优先级。该命令还显示了心跳接口IP地址自动分配到具有最高序列号的FortiGate。

  请记住,只有FortiGate离开或加入集群时,心跳IP地址分配才会发生变化。


在对HA集群中的问题进行故障诊断时,知道你可以从主FortiGate的CLI连接到任何从FortiGate的CLI,这是很有用的。为了达到这个目的,你必须使用命令〖execute ha manage〗到从设备HA索引。

  要使用HA索引获得从FortiGate的列表,你可以在同一命令的末尾使用问号。


如果你希望能够直接连接到每个设备,你可以为HA管理保留一个接口,因此它的配置将不会同步,并且每个设备都可以有不同的管理IP地址。HA保留的管理接口也可以被每个设备用于独立地发送SNMP流量和日志。


HA集群的健康状况的另一个指示是配置同步的状态。命令〖diagnose sys ha checksum〗提供了许多选项来检查或重新计算HA校验和。

  检查所有的从设备配置是否与主设备配置保持同步:

  • 执行〖diagnose sys ha checksum cluster〗命令,以查看集群中的所有集群成员的校验和。

  • 〖diagnose sys ha checksum show〗命令显示了这个命令执行的各个FortiGate的校验和。

  • 你还可以从任何集群成员中运行〖diagnose sys ha checksum recalculate〗来重新计算HA校验和。

  如果一个从FortiGate显示与主设备相同的数字序列,那么它的配置与集群中的主FortiGate保持同步。在本例中,将执行〖diagnose sys ha checksum cluster〗命令来查看所有集群成员的校验和。

  • global代表全局配置的校验和,例如管理员、管理员配置文件、全局日志设置和防御设置,等等。

  • root是根VDOM的校验和。如果你已经配置了多个VDOM,你将看到所有已配置的VDOM的校验和。

  • allis全局配置的校验和,加上所有的VDOM校验和。


在这节课中我们讨论了:

  • 主动-被动和主动-主动型HA模式

  • 主要的FortiGate是如何当选的

  • 配置和会话同步

  • 哪些事件可以触发HA故障转移

  • 在一个主动-主动集群中的主FortiGate如何将流量分配到从设备上

  • 虚拟分组

  • 升级一个HA集群的固件

  • 如何检查HA集群的健康状况


飞塔技术 - 老梅子   QQ:57389522



阅读全文
0 0
原创粉丝点击