集群的优势

  • 合并吞吐量的70%
  • 最大连接数的60%
  • 每秒连接数的50%
  • 支持多个单元进行集群,Failover只支持两个

集群的条件

  • 必须时相同的DRAM模型
  • 允许相同的软件版本
  • 处于同一个地理位置
  • 相同的上下文
  • 相同的防火墙模式
  • 新加集群成员是需要与主单元使用相同的SSL加密设置,来加密集群控制链路的通信

集群的角色

第一个启用集群的单元通常成为主单元,后续单元加入集群时将作为从属单元加入。主单元由引导配置中的优先级确定,优先级在1-100,越小越优先,其他所有的但愿都是奴隶单元。在主单元上进行相关的配置(除引导配置),然后将配置复制到丛书单元。
主单元的选举

  1. 当某个设备启用集群时,它会每30秒进行一次广播选举请求。
  2. 任何具有比它优先级更高的单元将进行回应
  3. 如果在45s后无任何回应,它将会变成主单元。
  4. 如果多个单元绑定为最高优先级,则使用集群单元名称和序列号进行确定主单元。
  5. 集群主单元不具有抢占性,如果后加入的集群优先级比当前主单元高但并不会抢占当前主单元,直到当前主单元down。

集群中的所有接口只能是一种数据类型

接口类型

  • Spanned EtherChannel(推荐)
  • 常规数据接口

Spanned EtherChannel
可以将每个单元的一个或多个接口划分到一个EC中,可以在路由模式或者透明模式下划分EC,在路由模式下EC自身具有IP地址,但透明模式下IP地址将会给网桥组。
Cluster - 图1

独立接口
各个接口都是普通的路由接口,每个接口都有自己的IP地址,必须在主设备上配置,可以配置一个地址池用于下发IP地址,当主设备迁移时,主设备的IP地址也随之迁移实现无缝管理。由于各个接口依赖路由协议来进行负载分担,通常在链路故障期间路由收敛会很慢。
Cluster - 图2

集群控制链路

每个单元必须至少有一个硬件接口作为集群的控制链路

  • 控制流量
    • Master 选举
    • 配置复制
    • 健康监控
  • 数据流量
    • 状态复制
    • 连接所有权查询和数据包转发

集群健康监控

单元之间通过周期性的在集群控制链路上发送keep消息来互相监控(周期可配置)
接口监控

  • 每个单元监视所有硬件接口的链路状态并向主单元报告状态变化。
  • EC - 使用集群链路聚合控制协议进行监控,以确定端口在EC中是否处于活动状态,将状态报告给主单元。
  • 独立接口 - 每个单元自我监控其接口状态并报告给主单元。

单元或接口故障

启用状态监控后,如果出现单元故障或者接口故障,则会从集群中删除该单元,如果某个接口在特定设备上出现故障,但同一接口在其他设备上处于活动状态,则该设备将被从集群中删除。
当集群中某个单元发生故障,则该单元管理的连接将无缝装一道其他单元,通过控制链路共享状态信息。
如果主设备发生故障,则具有最高优先级的集群单元将会成为主单元
当ASA变为非活动单元后,所有数据接口都将关闭,只有管理口才能发送和接受流量。如果重启设备,并且该单元仍处于非活动单元,则无法访问管理口,因为他将会使用主单元的IP地址,必须使用console 口进行配置

数据连接状态备份

每个连接在集群中都有一个所有者和至少一个备份者,备份者在故障发生时用于将它存储的TCP/UDP状态信息无缝的传给新的所有者。

负载均衡

基于EC的负载均衡

  • 更快的故障发现
  • 更快的收敛时间
  • 易于配置

EC具有内置冗余,它会监视所有链路上的线路协议,如果一个链路出现故障,则会在剩余链路中重新平衡流量,如果EC中所有链路在指定设备上出现故障,但其他设备仍是正常状态,才会从集群中删除该设备。

基于独立接口时,每个ASA的接口都维护自己的IP地址和MAC地址,负载均衡的方法时等价多路径路由。建议使用动态路由协议进行添加和删除路由,必须使每个ASA参与动态路由。

ASA 集群角色 基于连接

  • 所有者 - 最初收到连接的单元,所有者维护TCP状态花信息并处理数据包,一个连接只有一个所有者
  • Director - 处理来自转发者查找请求的单元,并且还维护连接状态以在所有者故障时作为备份。当所有者收到新的连接时,它会根据源/目IP和TCP端口号的散列值选择导向器,导向器发送消息以注册新连接,如果数据包到达所有者之外的转发者,转发者将会向Diretor查找所有者。每个连接只有一个Director。
  • 转发者 - 将数据包转发给所有者的单元,转发者不拥有任何连接的状态,它向Diretor查询所有者,然后将数据包转发给所有者,Dirctor也可以是转发者。如果没有启用TCP随机序列号功能,转发者可以通过SYN-Cookie中解码所有者信息,并为所有者转发流量

Cluster - 图3

  1. SYN数据包从客户端数据包来,并转发到ASA 上,收到SYN数据包的单元成为所有者,所有者创建数据流,将所有者信息编码到SYN-Cookie中,并将数据包转发出去。
  2. 服务器返回SYN-ACK数据包,并转发到不同的ASA,该ASA将会是转发者。
  3. 由于转发者不具有任何连接,将从SYN-Cookie中解码所有者信息,为转发者创建转发流,并将SYN-ACK转发给所有者。
  4. 所有者向diretor发送状态更新,并将SYN-ACK转发给客户端
  5. Diretor从所有者收到状态更新,为所有者创建流,并记录TCP状态信息以及所有者,Diretor充当备份的所有者。
  6. 以后转发器收到的数据包都会被转发给所有者
  7. 如果数据包被转递给仍以其他单元,它将会向diretor查询所有者并建立流程
  8. Diretor将会记录数据包任何状态的改变

动态路由
EC 模式下的动态路由,路由进程仅在主设备上允许,路由通过主设备复制到从设备。如果路由协议数据包到达从设备,将会被重定向到主设备。从属设备在从主单元学习到路由后,每个单元独立的做出转发决定。
Cluster - 图4

独立接口模式的动态路由协议,每个单元将路由协议作为独立路由器运行,并且每个单元自主的学习路由。
Cluster - 图5