在F5里面,保存着两张表,分别是会话表和连接表,用于F5后续报文的会话保持和快速转发,在链路负载中,当POOL里面的member需要下线时,采用不同的下线方式,呈现出不同的状态。经实验总结如下:
虚拟服务器策略没有会话保持时
用户访问公网时,会在F5内部形成连接表,pool里面的member下线时,分以下几种情况。
- 当pool里面的member直接删除时,正在运行的连接表立刻会消失,业务会闪断,通过其它member成员建立起新的连接,如果没有其它可用member,在业务中断。在有会话保持的情况下,会话表不受影响,但业务中断后,发起新连接时,由于原member成员不存在,则会重新依据新连接建立起新的会话表项。
- 当pool里面的member采用disable方式下线时,正在运行的连接表和会话表项不会消失,业务不会中断,当会话完毕后,在会话保持的时间范围内,依然会根据会话表项通过此member成员建立起新的连接,只有会话表项超时消失后,才会通过其它member成员发起连接
- 当pool里面的member采用offline下线时,正在运行的连接表和会话表项不会消失,业务不会中断,当连接完毕后,连接表项和会话表项删除,此member成员不再分担业务流量
- 当pool里面的member由健康监测探测到member成员失效时,连接表会迅速删除,业务闪断,随即业务通过新的member发起新的连接,而会话表不会删除,但随着新连接的发起会保持在新的连接会话上。
通常,我们知道,在没有会话保持的情况下,发起一个TCP连接,当连接正常结束时,会立即删除连接表,而ICMP则不会,通常ICMP报文在结束后,会在连接表中保持5分钟。
因此,在生产环境中,我们要充分了解F5的设计思想,比如,当F5里面的pool member是防火墙时,因某种原因防火墙故障而不转发流量,但由于端口是好的,我们发现后,想让防火墙快速下线处理,最佳的方法是想方设法让F5自身的健康检查失败(比如DOWN掉防火墙的入口,改变为一种不存在的健康检查方式),从而触发内部的会话连接切换机制,虽然会出现闪断,但不至于对业务产生重大影响,如果采用disable或offline下线方式,就会导致长连接业务的连接表不能及时中断,流量一直往故障防火墙上转发,而导致业务中断。



