集群的优势
- 合并吞吐量的70%
- 最大连接数的60%
- 每秒连接数的50%
- 支持多个单元进行集群,Failover只支持两个
集群的条件
- 必须时相同的DRAM模型
- 允许相同的软件版本
- 处于同一个地理位置
- 相同的上下文
- 相同的防火墙模式
- 新加集群成员是需要与主单元使用相同的SSL加密设置,来加密集群控制链路的通信
集群的角色
第一个启用集群的单元通常成为主单元,后续单元加入集群时将作为从属单元加入。主单元由引导配置中的优先级确定,优先级在1-100,越小越优先,其他所有的但愿都是奴隶单元。在主单元上进行相关的配置(除引导配置),然后将配置复制到丛书单元。
主单元的选举
- 当某个设备启用集群时,它会每30秒进行一次广播选举请求。
- 任何具有比它优先级更高的单元将进行回应
- 如果在45s后无任何回应,它将会变成主单元。
- 如果多个单元绑定为最高优先级,则使用集群单元名称和序列号进行确定主单元。
- 集群主单元不具有抢占性,如果后加入的集群优先级比当前主单元高但并不会抢占当前主单元,直到当前主单元down。
集群中的所有接口只能是一种数据类型
接口类型
- Spanned EtherChannel(推荐)
- 常规数据接口
Spanned EtherChannel
可以将每个单元的一个或多个接口划分到一个EC中,可以在路由模式或者透明模式下划分EC,在路由模式下EC自身具有IP地址,但透明模式下IP地址将会给网桥组。
独立接口
各个接口都是普通的路由接口,每个接口都有自己的IP地址,必须在主设备上配置,可以配置一个地址池用于下发IP地址,当主设备迁移时,主设备的IP地址也随之迁移实现无缝管理。由于各个接口依赖路由协议来进行负载分担,通常在链路故障期间路由收敛会很慢。
集群控制链路
每个单元必须至少有一个硬件接口作为集群的控制链路
- 控制流量
- 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中解码所有者信息,并为所有者转发流量
- SYN数据包从客户端数据包来,并转发到ASA 上,收到SYN数据包的单元成为所有者,所有者创建数据流,将所有者信息编码到SYN-Cookie中,并将数据包转发出去。
- 服务器返回SYN-ACK数据包,并转发到不同的ASA,该ASA将会是转发者。
- 由于转发者不具有任何连接,将从SYN-Cookie中解码所有者信息,为转发者创建转发流,并将SYN-ACK转发给所有者。
- 所有者向diretor发送状态更新,并将SYN-ACK转发给客户端
- Diretor从所有者收到状态更新,为所有者创建流,并记录TCP状态信息以及所有者,Diretor充当备份的所有者。
- 以后转发器收到的数据包都会被转发给所有者
- 如果数据包被转递给仍以其他单元,它将会向diretor查询所有者并建立流程
- Diretor将会记录数据包任何状态的改变
动态路由
EC 模式下的动态路由,路由进程仅在主设备上允许,路由通过主设备复制到从设备。如果路由协议数据包到达从设备,将会被重定向到主设备。从属设备在从主单元学习到路由后,每个单元独立的做出转发决定。
独立接口模式的动态路由协议,每个单元将路由协议作为独立路由器运行,并且每个单元自主的学习路由。