目录
1. F5是什么
一般负载分为软件负载和硬件负载,比如软件中使用nginx等工具实现负载均衡,而F5负载均衡器就是硬件网络性能优化设备。 他不同于交换机、路由器这些网络基础设备,而是建立在现有网络结构上用来增加网络带宽和吞吐量的的硬件设备。
2. F5工作原理
1. 客户发出服务请求到VIP
2. BIGIP接收到请求,将数据包中目的IP地址改为选中的后台服务器IP地址,然后将数据包发出到后台选定的服务器
3. 后台服务器收到后,将应答包按照其路由发回到BIGIP
4. BIGIP收到应答包后将其中的源地址改回成VIP的地址,发回客户端,由此就完成了一个标准的服务器负载平衡的流程。
2.1 基本工作模式
F5支持全代理模式,同时也可以工作在四层转发模式。
全代理模式就是VS配置成standard类型,此模式下客户端和F5建立一个连接,客户端将请求发送给F5,F5再和服务器建立连接,并将请求发送给服务器,服务器返回信息后,F5再将返的回信息送给客户端。在此模式下F5可以查看请求和响应的所有信息,可以根据所有信息进行分发和处理。
四层转发模式就是VS配置成Performance L4类型,此模式下F5只做四层转发,也就是F5只处理四层以下的信息,即端口和IP信息,具体业务数据不做任何处理。客户端发送给F5的数据包,F5只根据需要将IP和端口处理之后就直接发送给服务器,响应信息也类似处理。在此模式下,F5只能查看四层一下信息,不处理业务信息,好处是处理过程简单、速度快。缺点是无法对四层以上的协议数据进行精确处理。
2.2 会话保持
由于负载均衡是按照连接尽心分发的,而很多业务都有会话信息,一个会话信息会包括多个连接,从业务角度看,一个会话的连接都应该分发到同一台服务器上,这样才能保证该会话的一致性。F5 BigIP支持多种的会话保持方法,其中包括:简单会话保持(源地址会话保持)、HTTP Header的会话保持,基于SSL Session ID的会话保持,I-Rules会话保持以及基于 HTTP Cookie的会话保持,此外还有基于SIP ID以及Cache设备的会话保持等,但常用的是简单会话保持,HTTP Header的会话保持以及 HTTP Cookie会话保持以及基于I-Rules的会话保持。
2.2.1.简单会话保持
简单会话保持也被称为基于源地址的会话保持,是指负载均衡器在作负载均衡时是根据访问请求的源地址作为判断关连会话的依据。对来自同一IP地址的所有访问请求在作负载均时都会被保持到一台服务器上去。在BIGIP设备上可以为“同一IP地址”通过网络掩码进行区分,比如可以通过对IP地址192.168.1.1进行255.255.255.0的网络掩码,这样只要是来自于192.168.1.0/24这个网段的流量BIGIP都可以认为他们是来自于同一个用户,这样就将把来自于192.168.1.0/24网段的流量会话保持到特定的一台服务器上。
简单会话保持里另外一个很重要的参数就是连接超时值,BIGIP会为每一个进行会话保持的会话设定一个时间值,当一个会话上一次完成到这个会话下次再来之前的间隔如果小于这个超时值,BIGIP将会将新的连接进行会话保持,但如果这个间隔大于该超时值,BIGIP将会将新来的连接认为是新的会话然后进行负载平衡。
基于原地址的会话保持实现起来简单,只需要根据数据包三、四层的信息就可以实现,效率也比较高。存在的问题就在于当多个客户是通过代理或地址转换的方式来访问服务器时,由于都分配到同一台服务器上,会导致服务器之间的负载严重失衡。另外一种情况上客户机数量很少,但每个客户机都会产生多个并发访问,对这些必发访问也要求通过负均均衡器分配到多个服器上,这时基于客户端源地址的会话保持方法也会导致负载均衡失效。
2.2.2.基于Cookie的会话保持
1)cookie插入模式
在Cookie插入模式下,BigIP将负责插入cookie,后端服务器无需作出任何修改.当客户进行第一次请求时,客户HTTP请求(不带cookie)进入BIGIP, BIGIP根据负载平衡算法策略选择后端一台服务器,并将请求发送至该服务器,后端服务器进行HTTP回复(不带cookie)被发回BIGIP,然后BIGIP插入cookie,将HTTP回复返回到客户端。当客户请求再次发生时,客户HTTP请求(带有上次BIGIP插入的cookie)进入BIGIP,然后BIGIP读出cookie里的会话保持数值,将HTTP请求(带有与上面同样的cookie)发到指定的服务器,然后后端服务器进行请求回复,由于服务器并不写入cookie,HTTP回复将不带有cookie,恢复流量再次经过进入BIGIP时,BIGIP再次写入更新后的会话保持cookie。
2)Cookie 重写模式
当客户进行第一次请求时,客户HTTP请求(不带cookie)进入BIGIP, BIGIP根据负载平衡算法策略选择后端一台服务器,并将请求发送至该服务器,后端服务器进行HTTP回复一个空白的cookie并发回BIGIP,然后BIGIP重新在cookie里写入会话保持数值,将HTTP回复返回到客户端。当客户请求再次发生时,客户HTTP请求(带有上次BIGIP重写的cookie)进入BIGIP,然后BIGIP读出cookie里的会话保持数值,将HTTP请求(带有与上面同样的cookie)发到指定的服务器,然后后端服务器进行请求回复,HTTP回复里又将带有空的cookie,恢复流量再次经过进入BIGIP时,BIGIP再次写入更新后会话保持数值到该cookie。
3)Passive Cookie 模式,服务器使用特定信息来设置cookie
当客户进行第一次请求时,客户HTTP请求(不带cookie)进入BIGIP, BIGIP根据负载平衡算法策略选择后端一台服务器,并将请求发送至该服务器,后端服务器进行HTTP回复一个cookie并发回BIGIP,然后BIGIP将带有服务器写的cookie值的HTTP回复返回到客户端。当客户请求再次发生时,客户HTTP请求(带有上次服务器写的cookie)进入BIGIP,然后BIGIP根据cookie里的会话保持数值,将HTTP请求(带有与上面同样的cookie)发到指定的服务器,然后后端服务器进行请求回复,HTTP回复里又将带有更新的会话保持cookie,恢复流量再次经过进入BIGIP时,BIGIP将带有该cookie的请求回复给客户端。
4)Cookie Hash模式
当客户进行第一次请求时,客户HTTP请求(不带cookie)进入BIGIP, BIGIP根据负载平衡算法策略选择后端一台服务器,并将请求发送至该服务器,后端服务器进行HTTP回复一个cookie并发回BIGIP,然后BIGIP将带有服务器写的cookie值的HTTP回复返回到客户端。当客户请求再次发生时,客户HTTP请求(带有上次服务器写的cookie)进入BIGIP,然后BIGIP根据cookie里的一定的某个字节的字节数来决定后台服务器接受请求,将HTTP请求(带有与上面同样的cookie)发到指定的服务器,然后后端服务器进行请求回复,HTTP回复里又将带有更新后的cookie,恢复流量再次经过进入BIGIP时,BIGIP将带有该cookie的请求回复给客户端。
2.2.3.SSL Session ID会话保持
在用户的SSL访问系统的环境里,当SSL对话首次建立时,用户与服务器进行首次信息交换以:1)交换安全证书,2)商议加密和压缩方法,3)为每条对话建立Session ID。由于该Session ID在系统中是一个唯一数值,由此,BIGIP可以应用该数值来进行会话保持。当用户想与该服务器再次建立连接时,BIGIP可以通过会话中的 SSL Session ID识别该用户并进行会话保持。
基于SSL Session ID的会话保持就需要客户浏览器在进行会话的过程中始终保持其SSL Session ID不变,但实际上,微软Internet Explorer被发现在经过特定一段时间后将主动改变SSL Session ID,这就使基于SSL Session ID的会话保持实际应用范围大大缩小。
2.3 健康检查
负载均衡是对后台服务器的流量均衡分发,但分发的前提是要求服务器能够正常提供服务,健康检查就是判读服务器是否能够提供服务的方法。F5提供的健康检查方式有将近40种,这里只介绍常用的三种:ICMP、TCP、HTTP。
2.3.1 ICMP
ICMP是最简单的方式,就是对真实服务器发送”ping”命令。“ping”是常用的程序来确认一个IP地址是否在网络中存在,或者用来确认主机是否正常工作。
2.3.2 TCP
F5会试图联接到一个特定应用在运行的TCP端口。简单理解就是通过telnet连接服务的特定端口,如果能够连通,则正常;如果不能连通,则服务有问题。在深入的情况下,还可以在在连通端口后发送特定命令,并判断返回结果。通过是否符合预期来确定服务器工作状态。
2.3.3 HTTP
HTTP用于检查http服务的状态,用户可以定义发送和接受的字符串,发送字串是指发送到一个服务器的请求命令,例如:“GET /” 字符串发送到一个HTTP 服务器。服务器回应得字符串要求与设定的字符串相匹配,例如“f5.com”。如果不匹配则认为服务器有问题,不能提供正常服务。
2.4 节点状态类型
为了更好的控制流量、迁移流量,F5对后台服务器节点操作,形成三种状态:Enabled、Disabled、Forced Offline。
2.4.1 Enabled
Enabled是服务器节点的正常状态,当服务器能够提供正常服务的情况,将该节点设置为Enabled状态,该状态下,服务器节点能够正常提供服务,接收所有请求。
2.4.2 Disabled
Disabled是当服务器需要进行维护时,希望后续流量不分发到该服务节点上时设定的状态。该模式下该服务节点只接收已经建立的连接的信息和已经存在会话保持记录信息的流量信息,不接收没有会话保持记录的新建连接。该状态下,由于一些业务的连接信息或者会话保持记录信息比较长,可能会在很长时间后依然有流量处理。
2.4.3 Forced Offline
Forced Offline是当服务器需要紧急维护时,需要尽快下线设备情况下设定的状态。该模式下该服务节点只接收已经建立的连接的信息,也就是说已经建立的连接的信息继续完成,其他所有请求都会分发到其他服务节点。该状态下,只要不是长连接,基本上都会很快没有流量。
2.5 SSL卸载
SSL的启用增加了业务的安全性,但SSL的加解密会消耗大量的计算资源,为了解决服务器性能不够的问题,可以在F5上进行SSL卸载,即客户端到F5采用SSL加密协议,F5和服务器之间运行http明文协议。这样既实现了业务的加密处理,保证了安全性,也解决了服务器SSL卸载性能不够的问题。
2.5.1 单向认证
单向认证是只需要在服务端配置证书和key,客户端不需要证书。客户端通过获取服务器证书验证服务器的合法性,同时使用服务器证书和服务器进行加密处理。F5作为SSL服务器端,需要导入证书和key,客户端通过访问F5上的SSL服务,同时和F5进行SSL协商,实现SSL加密。
2.5.2 双向认证
双向认证是在单向认证的基础上,要求客户端也提供证书,服务器在协商过程中,也会验证客户端证书的有效性及身份,确保客户端的真实性。F5在配置层面要求在单向认证的基础上,配置客户端证书的根证书,这个根证书用来验证客户端证书的有效性。
2.5.3 加密算法
在SSL卸载中,F5提供了RSA、ECC等各种算法,满足当前SSL的各个版本的要求,同时提供了各种算法的配置方法,包括SSL版本:SSLv2、SSLv3、TLS1.0、TLS1.1、TLS1.2等。目前支持苹果公司要求ATS以及中国网联SSL算法的要求。
2.6 部署方式(串联、并联)
F5设备支持各种灵活的部署方式,常用的有串联和并联两种部署方式。下面分别介绍一下。
2.6.1 串联
串联是F5的最基本部署方式,在这种情况下,F5上配置2个vlan,分别配置不同网段的地址,客户端和服务器端分别位于这两个不同的网段。该部署方式适用于新建网络或者网络出口,便于使用网络隔离的场景。
2.6.2 并联
并联主要用于F5对服务器负载均衡的情况,F5只配置一个vlan,该vlan和服务器在同一网段,为了保证往返路径的一致性,要求F5上启用SNAT功能,这样服务器收到的请求信息的源地址会转换成F5的地址,这样回包的时候,就能够直接回给F5处理。在此情况下,如果服务器需要审计或记录客户端的正式地址则需要特殊处理。这种模式适用于F5对其后端业务按需做负载均衡,这样只有需要做负载均衡的流量才会经过F5,其他流量可直接通过网络转发,不必再次经过F5。
2.6.3 源地址透传
源地址透传是指,将客户端的源地址传递给服务器,用于对用户业务记录或审计。F5有两种方式可以实现源地址透传,第一种:F5不启用SNAT(源地址转换),同时服务器网关指向F5;第二种:F5将客户端源地址插入到http header中。
第一种方式,主要用户串接模式,服务器网关指向F5,同时F5关闭SNAT。这样服务器收到的数据包的源地址就是客户端的源地址,直接读取即可。这种方式可以适用于TCP协议,http协议也可以使用,但http协议更多使用第二种方式。
第二种方式:F5将客户端源地址插入到http header中。在http协议中有一个header是x-forwarded-for,这个header就是在源地址发生变化后,存储原来的客户端地址,F5可以在做源地址后,将原来的客户端地址存储到x-forwarded-for中,服务器端需要的时候,直接读取这个header即可获取到客户端地址。该方式只适用于http协议,其他协议没有相应的设置。
2.7 负载均衡典型流程
①、通过VIP来截获合适的需要负载平衡的流量
②、服务器监控和健康检查,随时了解服务器群的可用性状态
③、负载均衡和应用交换功能,通过各种策略导向到合适的服务器
2.7.1 通过VIP来截获合适的需要负载平衡的流量
在BIGIP上通过设置VIP来截获需要进行负载平衡的流量,这个VIP地址可以是一个独立的主机地址和端口的组合(例如:202.101.112.115:80)也可以是一个网络地址和端口的组合(例如:202.101.112.0:80),当流量经过BIGIP的时候,凡是命中VIP的流量都将被截获并按照规则进行负载平衡。
2.7.2 服务器的健康监控和检查
服务器 (Node) -Ping (ICMP)
BIGIP可以定期的通过ICMP包对后台服务器的IP地址进行检测,如果在设定的时间内能收到该地址的ICMP的回应,则认为该服务器能提供服务
服务 (Port) – Connect
BIGIP可以定期的通过TCP包对后台服务器的服务端口进行检测,如果在设定的时间内能收到该服务器端口的回应,则认为该服务器能提供服务
扩展内容查证(ECV:Extended Content VerificaTIon)—ECV
ECV是一种非常复杂的服务检查,主要用于确认应用程序能否对请求返回对应的数据。如果一个应用对该服务检查作出响应并返回对应的数据,则BIG/IP控制器将该服务器标识为工作良好。如果服务器不能返回相应的数据,则将该服务器标识为宕机。宕机一旦修复,BIG/IP就会自动查证应用已能对客户请求作出正确响应并恢复向该服务器传送。该功能使BIG/IP可以将保护延伸到后端应用如Web内容及数据库。BIG/ip的ECV功能允许您向Web服务器、防火墙、缓存服务器、代理服务器和其它透明设备发送查询,然后检查返回的响应。这将有助于确认您为客户提供的内容正是其所需要的。
扩展应用查证(EAV:Extended ApplicaTIon VerificaTIon)
EAV是另一种服务检查,用于确认运行在某个服务器上的应用能否对客户请求作出响应。为完成这种检查,BIG/IP控制器使用一个被称作外部服务检查者的客户程序,该程序为BIG/IP提供完全客户化的服务检查功能,但它位于BIG/IP控制器的外部。例如,该外部服务检查者可以查证一个Internet或Intranet上的从后台数据库中取出数据并在HTML网页上显示的应用能否正常工作。EAV是BIG/IP提供的非常独特的功能,它提供管理者将BIG/IP客户化后访问各种各样应用的能力,该功能使BIG/IP在提供标准的可用性查证之外能获得服务器、应用及内容可用性等最重要的反馈。该功能对于电子商务和其它应用至关重要,它用于从客户的角度测试您的站点。例如,您可以模拟客户完成交易所需的所有步骤-连接到站点、从目录中选择项目以及验证交易使用的信用卡。一旦BIG/ip掌握了该“可用性”信息,即可利用负载平衡使资源达到最高的可用性。
BIG/IP已经为测试Internet服务的健康情况和状态,预定义的扩展应用验证(EAV),它有二种用户界面:浏览器和CLI配置。BIG/IP预定义的应用检查:FTP、NNTP、SMTP、POP3和MSSQL。
3. 均衡算法
- 轮询算法:按照顺序将每个请求分发到每个服务器,相当于ngixn负载的轮训算法一个道理,当其中某个服务器发生第二到第7层的故障,BIGIP就把其从顺序循环队列中拿出,不参与下一次的轮训。
- 比率:指的是给每个服务器分配一个加权值,类似于权重,轮训会根据和这个权重去访问具体要到哪台服务器。
- 优先权:给所有服务器分组,BIGIP用户的请求,分配给优先级最高的服务器组(在同一组内,采用轮询或比率算法,分配用户的请求);当最高优先级中所有服务器出现故障,BIGIP才将请求送给次优先级的服务器组。
- 最快模式:传递连接给那些响应最快的服务器。当发生异常故障时,BIGIP就会将其拿出来作为当前相应服务器,此时就不参与其他用户的请求轮训分配。
- 观察模式:以连接数和相应时间为准,当放生故障时BIGIP会将其拿出来作为请求的相应服务器,并且也不参与其他用户请求,直至恢复正常为止。
- 预测模式:BIGIP利用收集到的服务器当前的性能指标,进行预测分析,选择一台服务器在下一个时间片内,其性能将达到最佳的服务器相应用户的请求。
- 动态性能分配:BIGIP收集到的应用程序和应用服务器的各项性能参数,动态调整流量分配。
- 动态服务器补充:当主服务器群中因故障导致数量减少时,动态地将备份服务器补充至主服务器群。
- 服务质量:按不同的优先级对数据流进行分配。
- 服务类型:按不同的服务类型(在Type of Field中标识)对数据流进行分配。规则模式:针对不同的数据流设置导向规则,用户可自行编辑流量分配规则,BIGIP利用这些规则对通过的数据流实施导向控制。
4. 配置F5
1. 访问管理地址
输入F5 的管理地址(192.168.1.245 默认)看自己实际的地址
用户名和密码默认是admin admin
2. 添加vlans
实际就是添加网卡,因为我们用vmware 安装的的F5和实际的机房的网络环境差别还是很大的
先看一下F5 的网卡配置:
这样可以有多个网段的IP 地址
添加几个就好,一般会添加来两个一个内网的,一个外网的,还有配置3个的就是多了一个专门用于检测心跳的接口
这个tag就是一个标识,还没发现有什么实质的作用,有就好
3. 配置self IP
4. 配置pools
5. 配置连接池
6. 配置虚拟服务
7. 配置一个F5对外的提供的服务
到这里配置基本就完成了,可以在浏览器中输入F5对外服务的地址就可以访问了。
5. 四层和七层负载均衡的区别
第一,技术原理上的区别。
所谓四层负载均衡,也就是主要通过报文中的目标地址和端口,再加上负载均衡设备设置的服务器选择方式,决定最终选择的内部服务器。
以常见的TCP为例,负载均衡设备在接收到第一个来自客户端的SYN 请求时,即通过上述方式选择一个最佳的服务器,并对报文中目标IP地址进行修改(改为后端服务器IP),直接转发给该服务器。TCP的连接建立,即三次握手是客户端和服务器直接建立的,负载均衡设备只是起到一个类似路由器的转发动作。在某些部署情况下,为保证服务器回包可以正确返回给负载均衡设备,在转发报文的同时可能还会对报文原来的源地址进行修改。
所谓七层负载均衡,也称为“内容交换”,也就是主要通过报文中的真正有意义的应用层内容,再加上负载均衡设备设置的服务器选择方式,决定最终选择的内部服务器。
以常见的TCP为例,负载均衡设备如果要根据真正的应用层内容再选择服务器,只能先代理最终的服务器和客户端建立连接(三次握手)后,才可能接受到客户端发送的真正应用层内容的报文,然后再根据该报文中的特定字段,再加上负载均衡设备设置的服务器选择方式,决定最终选择的内部服务器。负载均衡设备在这种情况下,更类似于一个代理服务器。负载均衡和前端的客户端以及后端的服务器会分别建立TCP连接。所以从这个技术原理上来看,七层负载均衡明显的对负载均衡设备的要求更高,处理七层的能力也必然会低于四层模式的部署方式。那么,为什么还需要七层负载均衡呢?
第二,应用场景的需求。
七层应用负载的好处,是使得整个网络更"智能化", 参考我们之前的 另外一篇专门针对HTTP应用的优化的介绍,就可以基本上了解这种方式的优势所在。例如访问一个网站的用户流量,可以通过七层的方式,将对图片类的请求转发到特定的图片服务器并可以使用缓存技术;将对文字类的请求可以转发到特定的文字服务器并可以使用压缩技术。当然这只是七层应用的一个小案例,从技术原理上,这种方式可以对客户端的请求和服务器的响应进行任意意义上的修改,极大的提升了应用系统在网络层的灵活性。很多在后台,(例如Nginx或者Apache)上部署的功能可以前移到负载均衡设备上,例如客户请求中的Header重写,服务器响应中的关键字过滤或者内容插入等功能。
另外一个常常被提到功能就是安全性。网络中最常见的SYN Flood攻击,即黑客控制众多源客户端,使用虚假IP地址对同一目标发送SYN攻击,通常这种攻击会大量发送SYN报文,耗尽服务器上的相关资源,以达到Denial of Service(DoS)的目的。从技术原理上也可以看出,四层模式下这些SYN攻击都会被转发到后端的服务器上;而七层模式下这些SYN攻击自然在负载均衡设备上就截止,不会影响后台服务器的正常运营。另外负载均衡设备可以在七层层面设定多种策略,过滤特定报文,例如SQL Injection等应用层面的特定攻击手段,从应用层面进一步提高系统整体安全。
现在的7层负载均衡,主要还是着重于应用广泛的HTTP协议,所以其应用范围主要是众多的网站或者内部信息平台等基于B/S开发的系统。 4层负载均衡则对应其他TCP应用,例如基于C/S开发的ERP等系统。
第三,七层应用需要考虑的问题。
1:是否真的必要,七层应用的确可以提高流量智能化,同时必不可免的带来设备配置复杂,负载均衡压力增高以及故障排查上的复杂性等问题。在设计系统时需要考虑四层七层同时应用的混杂情况。
2:是否真的可以提高安全性。例如SYN Flood攻击,七层模式的确将这些流量从服务器屏蔽,但负载均衡设备本身要有强大的抗DDoS能力,否则即使服务器正常而作为中枢调度的负载均衡设备故障也会导致整个应用的崩溃。
3:是否有足够的灵活度。七层应用的优势是可以让整个应用的流量智能化,但是负载均衡设备需要提供完善的七层功能,满足客户根据不同情况的基于应用的调度。最简单的一个考核就是能否取代后台Nginx或者Apache等服务器上的调度功能。能够提供一个七层应用开发接口的负载均衡设备,可以让客户根据需求任意设定功能,才真正有可能提供强大的灵活性和智能性。
6. 主备配置
6.1 设置时区
tmsh modify /sys ntp timezone Asia/Chongqing
6.2 配置NTP
tmsh modify /sys ntp servers add {10.70.15.1}
tmsh list /sys ntp servers
tmsh show /sys service ntpd
ntpq -p
6.3 网络配置vlan
- 创建external、internal、ha
Network ›› VLANs : VLAN List
6.4 网络配置Self IPs
Network ›› Self IPs
- 注意:HA的Port Lockdown 要改成Allow Default
6.5 主备配置
第一步 Device Management ›› Devices (ConfigSync、Failover Network、Mirroring)
F5-1
第二步 Device Management ›› Device Trust : Device Trust Members
F5-1
第三步 Device Management ›› Device Group List
第一次需要手动同步一下
F5-1配置网关
F5-1 配置floating IP
7. 双机切换机制及配置
7.1. F5双机的切换触发机制
7.1.1 F5双机的通信机制
F5负载均衡器的主备机之间的心跳信息可以通过以下两种方式进行交互:
- 通过F5 failover 串口线交换心跳信息(电压信号不断地由一方送到另外一方)处于Standby的系统不断监控Failover上的电平,一旦发现电平降低,Standby Unit会立即变成Active,会发生切换(Failover)。通过串口监控电平信号引起的切换可以在一秒中以内完成(大概200~300ms)。四层交换机在系统启动的时候也会监控Failover线缆的电平以决定系统是处于Active状态还是Standby状态。在串口Failover线缆上不传输任何数据信息。
- Failover线缆也可以不采用串口线,而直接采用网络线。(但F5不建议这样做,因为网络层故障就可能会两台负载均衡器都处于Active状态)。如果采用网络层监控实现Failover, Bigip将通过1027与1028端口交换心跳信息。经验证明:两台F5之间一定要用failover cable连接起来,不连接failover cable而直接采用网络线连接在一起不可靠,而且造成了网上事故。
F5双机之间的数据信息是通过网络来完成的。因此运行于HA方式的两台F5设备在网络层必须是相通的。(可以用网线将两台F5设备直接相连起来,也可以通过其它的二层设备将两台F5设备相连,使F5设备在网络上可以连通对端的Failover IP地址)。
两台运行于HA方式的四层交换机之间通过网络层交互的信息主要包括:
●用于配置同步的信息:通过手工执行config sync会引起Active到Standby系统的配置信息传输。
●用于在发生Failover时连接维持的信息:如果设置了Connection Mirroring,处于Active的四层交换机会将连接表每十秒中发送一次到Standby的系统。(The following TCP Connections can be mirrored:TCP、UDP、SNAT、FTP、Telnet )。如果设置了Stateful Failover,Persistence信息也会被发送到Standby系统。(The following persistence information for the virtual servers (VIPs) can be mirrored: SSL persistence、Sticky persistence、iRules Persistence )
7.1.2 F5双机的切换触发机制
F5负载均衡器主/备机的切换触发机制主要有以下四种:
- Watchdog device 触发切换:这种切换主要是用于当F5本身发生故障时,备机会检测到主机失效的情况,引起F5的切换;
- Gateway Failsafe 触发机制:这种机制主要是用于当F5检测到特定的IP地址不可达时,会引起F5的切换;
- Vlan arm failsafe 触发机制:这种机制主要是用于当F5检测到相应的网段内都没有流量时,会引起F5的切换;
- Ssl proxy failover 触发机制:这种机制主要是用于当F5检测到其硬件加密模块有硬件故障时,会引起F5的切换。
在我们产品线的应用中,现在可以用到前三种触发机制,ssl proxy failover触发机制现在基本不涉及,后面针对前三种机制作一些描述。
7.2. Watchdog device机制
Watchdog device机制是F5内部有一个watchdog部件,当F5的硬件或软件有问题时,有问题的F5会重新启动机器(reboot)。在原主F5重启的过程中,备F5从主F5上收不到任何信号,备F5就会自动变成active,担当主F5的角色。
需要注意的是:备F5是在主F5重新启动时,收不到原主F5的信号才会变成主用的。此项切换机制不需要我们手工去配置。
7.3. Gateway Failsafe机制及配置
Gateway failsafe是在F5上配置一个IP地址,F5会去检查此地址是否可以ping通,如果ping不通设定的IP地址,则主F5就会变成standby模式。主F5变成standby模式后,备F5收不到active F5过来的信息,则备F5自己会变成active的状态。
需要注意的是:每台F5只能设定一个检测的IP地址,ping包的时间间隔及timeout时间都是可配置的。在F5 ping不通gateway后,F5不会重新启动。
Gateway failsafe的配置方法如下:
在Web UI中的system项中的redundant properties项中,把gateway failsafe中的enabled项选择上,把需要监控的IP地址配置在router后的空格中,设定ping包(每隔多少秒发一次ping包)及timeout(多少时间ping不通则切换)的时间则可。
此项配置主、备F5是不一样的,也就是主、备F5都需要分别设置,而且监控的IP地址可不一样。
7.4. VLAN的Arm Failsafe
Vlan的arm failsafe是F5检查配置了arm failsafe的vlan,是否还有属于此vlan的流量,如果有流量,F5不会有动作;如果F5检查不到有属于监控vlan的流量,则F5设备本身会模拟一些属于此vlan的流量,看是否有机器对此流量作反应?如果仍然没有设备对此模拟流量作反应,则F5会用失效处理,把自己重启。此时备F5从原主F5上收不到信号,则会变成active 状态。
需要注意的是:配置了vlan arm failsafe的F5,在缺省情况下,不论是主机、备机,如果F5本身检测到相应的vlan中没有流量,F5会反复重启。如果让备F5在检测不到相应的vlan流量时不重启机器,需要在F5中配置如下数据:
在两台F5的/config下创建一个routes文件,加入以下语句:
/sbin/b internal set standby_failsafe_reboot = 0
同时用命令行方式手工执行
b internal set standby_failsafe_reboot = 0
检验此配置是否生效的命令:
F2400-1# b internal show | grep boot
panic_on_netboot_button 0
standby_failsafe_reboot 0
vlan arm failsafe的配置方法如下:
在Web UI中的network项中的相应的vlan中的 vlan properties项中,把arm failsafe 项选择上。timeout缺省为30 秒,最快可设置成10秒,此参数的意思是F5检测不到相应vlan 的流量后,过多长时间进行重启。
此项配置主、备F5是不一样的,也就是主、备F5都需要分别设置。