Failover Overview
Failover特性是Cisco安全产品高可用性的一个解决方案,目的是为了提供不间断的服务,当主设备down掉的时候,备用设备能够马上接管主设备的工作,进而保持通信的连通性; Failover配置要求两个进行Failover的设备通过专用的failover线缆和可选的Stateful Failover线缆互相连接;活动设备的接口被monitor,用于发现是否要进行Failover切换; Failover分为failover和Stateful Failover,即故障切换和带状态的故障切换;不带状态的failover在进行切换的时候,所有活动的连接信息都会丢失,所有Client都需要重新建立连接信息,那么这会导致流量的间断;带状态的failover,主设备将配置信息拷贝给备用设备的同时,也会把自己的连接状态信息拷贝给备用设备,那么当主的设备down的时候,由于备用设备上保存有连接信息,因此Client不需要重新建立连接,那么也就不会导致流量的中断; Failover link 两个failover设备频繁的在failover link上进行通信,进而检测对等体的状态。以下信息是通过failover link通信的信息: l 设备状态(active or standby); l 电源状态(只用于基于线缆的failover;) l Hello messages (keep-alives); l Network link 状态; l MAC地址交换; l 配置的复制和同步; Note :所有通过failover 和 stateful failover线缆的信息都是以明文传送的,除非你使用failover key来对信息进行加密; 在stateful link上,拷贝给备用设备的连接状态信息有: l NAT 转换表; l TCP连接状态; l UDP连接状态; l ARP表 l 2层转发表(运行在透明模式的时候) l HTTP连接状态信息(如果启用了HTTP复制) l ISAKMP和IPSec SA表 l GTP PDP连接数据库 以下信息不会拷贝给备用设备: l HTTP连接状态信息(除非启用了HTTP复制) l 用户认证表(uauth) l 路由表 l DHCP服务器地址租期 Failover包括LAN-Based Failover和Cable-Based Failover;对于PIX设备,只支持基于线缆(Cable-Based)的Failover; Failover link l LAN-Based Failover link 可以使用未使用的接口来作为failover link。不能够使用配置过名字的接口做为failover接口,并且,failover接口的IP地址不能够直接配置到接口上;应使用专门的命令对其进行配置;该接口仅仅用于failover通信;两个failover接口之间必须使用专用的路径,如,使用专用的交换机,该交换机上不连接任何其他设备;或者使用正常交换机的时候,划一个VLAN,并且仅仅将failover接口划分到该VLAN中; l Cable-Based Failover link 这种failover对两个failover设备的距离有要求,要求距离不能超过6英尺;并且使用的线缆也是failover线缆,该线缆的一端标记“Primary”,另一端标记“Secondary”并且设备的角色是通过线缆指定的,连接在Primary端的设备被指定为主,连接在Secondary端的设备被指定为备;该线缆传送数据的速率为115Kbps;因此同步配置的速度相比LAN-Base的failover会慢; Stateful Failover Link 如果使用带状态的Failover,那么就需要配置一个用于传送状态信息的线缆,你可以选用以下三种线中的一种作为stateful failover link: l 使用专用的接口连接Stateful failover Link; l 如果你使用LAN-Based failover,你也可以使用failover link作为stateful failover link,即failover和stateful failover使用同一个线缆;——要求该接口是fastest Ethernet; l 你也可以使用数据接口作为Stateful Failover接口,比如inside interface。但是不推荐这样做; 每种failover又包含有Active/Active(以后简写为,A/A)和Active/Standby(以后简写为A/S)两类; A/A failover,两个设备可以同时传送流量。这可以让你实现负载均衡。A/A failover只能运行在多虚拟防火墙模式下; A/S failover,同一时间,只能有一个设备传输流量,另一个设备作为备份用,A/S failover即可以运行在single模式下,又能够运行在多模式下; 运行failover的两个设备,在硬件配置上要完全一样,比如必须要有相同的模块,相同的接口类型和接口数,相同的flash memory以及相同的RAM等;在软件上,两个设备要运行在相同的模式下面,必须有相同的主软件版本等;对于许可证,要求至少有一个设备要是UR版的许可证; 2 .Active/Standby Failover Active/Standby Failover(A/S)中,一个设备为活动设备,转发流量,另一个设备作为备份,当主设备down的时候,备份设备开始接管流量;备用设备接管以后,会继承主IP地址和MAC地址,继续转发流量; Primary/Secondary status and Active/Standby Status Failover设备之间,主要的不同就是角色问题,即哪个设备为active哪个设备为standby,同时也决定了哪个IP地址以及哪个设备转发流量; l 如果两个设备同时启动,那么配置为primary的设备为active; l Primary设备的MAC地址总是和active IP地址绑定在一起。唯一的例外就是当standby设备变为active后,不能够通过failover link上获得primary设备的MAC地址,那么这时候就使用secondary设备的MAC地址; 设备的初始化和配置同步 当Failover设备启动的时候,配置才会同步,配置信息总是从active同步到standby设备;当standby设备完成初始化以后,它就清除自己的running configure(除了failover命令以外,因为这些命令需要和active进行failover通信); Active设备是根据以下情况决定的: l 设备启动后,如果检测到对等体已经存在为active,那么它自己将为standby; l 如果没有检测到对等体存在,那么它将成为active; l 如果设备同时启动,那么根据配置中指定的primary和secondary来决定设备的角色是active还是standby; 假设A被指定为primary,B被指定为secondary;当B启动后,没有检测到A的存在,那么B将为Active,它使用自己的MAC地址和active IP做绑定。然而,当primary启动可用后,secondary设备将会用primary设备的MAC地址和active IP绑定,这可能会导致流量的中断;避免方法是可以配置failover 虚拟MAC地址; Failover的触发 以下任何一个事件发生时,都会触发Failover: l 设备发生硬件失败或电源故障; l 设备出现软件失败; l 太多的monitored接口fail; l No failover active命令在active设备上被输入或在standby设备上输入failover active命令; 3 .Active/Active Failover A/A failover只能工作在多虚拟防火墙模式下,在A/A failover模式下,两个设备都可以转发流量;在A/A failover下,你可以将虚拟防火墙划分到failover group中,一个failover group是一个或多个虚拟防火墙集合,在防火墙上最多只支持2个failover group,admin context总是属于failover group 1,任何为分配的虚拟防火墙默认下也属于failover group 1; Failover group是A/A failover的基本单元,failover group失败的时候,物理设备不一定失败;failover组在一个设备上fail了,在另外一个设备上就会active,另外设备上的该组就会继续转发流量; 在A/A failover中,primary/secondary决定以下两个事情: l 当两个设备同时启动的时候,决定哪个设备提供配置文件信息; l 当两个设备同时启动的时候,决定哪个设备上的哪个failover group为active。每个failover group也会被配置一个primary或secondary,当两个failover group在同一个设备同时为active的时候,那么另一个设备也就为备用设备; 每个failover group是否为active,由以下几种情况决定: l 当设备启动的时候,没有检测到对等体,那么两个failover group在这个设备上都为active; l 当设备启动后,检测到对等体为active(两个failover group都在active状态),除非以下情况发生,否则active设备上的两个failover group仍为active状态: ——failover 发生; ——使用no failover active命令进行手工切换; ——配置failover group中带有preempt(抢占)命令; l 当两个设备同时启动,在配置同步后,每个failover group在相应的设备中正常为active;试验如下:
ASA failover可以通过一根交叉线直连,或者通过LAN的方式来实现。两种方式各有利弊,个人比较倾向LAN的方式,下面是一个LAN方式实现的配置实例。
如下图,两台ASA上的outside口,Inside口以及DMZ口都必须分别在同一网段。可以用独立交换机分开,也可以用VLAN实现。
在主ASA上的配置:
A.A.A.A与B.B.B.B, C.C.C.C与D.D.D.D, E.E.E.E与F.F.F.F G.G.G.G与H.H.H.H要分别在同一个网段内。
interface Ethernet0/0 description Outside Public Network nameif outside security-level 0 ip address A.A.A.A 255.255.255.0 standby B.B.B.B interface Ethernet0/1 description Inside Private Network nameif inside security-level 100 ip address C.C.C.C 255.255.255.0 standby D.D.D.D interface Ethernet0/2 description LAN/STATE Failover Interfaceinterface Ethernet0/3 nameif dmz security-level 50 ip address E.E.E.E 255.255.255.0 standby F.F.F.Ffailover failover lan unit primary failover lan interface lanfo Ethernet0/2 / 定义failover端口failover key mytest failover replication http failover link lanfo Ethernet0/2 / 定义state failover端口/另外,为什么failover和statefailover的端口设置同一个端口? failover interface ip lanfo G.G.G.G 255.255.255.0 standby H.H.H.H
在辅ASA上的配置:
failover failover lan unit secondary failover lan interface lanfo Ethernet0/2 failover key mytest
测试:出现Active,Standby Ready状态说明配置成功:
ASA# show failover stateState Last Failure Reason Date/Time This host - Primary Active None Other host - Secondary Standby Ready None
这里一定要搞清楚:所谓的主辅ASA只是针对正在运行的配置而言(running configure),物理的ASA不和主辅角色绑定。当failover发生时,角色是相互交换的。