Virtual Server 类型

来源:互联网 发布:单片机流程图 编辑:程序博客网 时间:2024/05/16 04:41

服务器负载均衡相关参数建议

 

F5 LTM Virtual Server类型的区别:

 

服务器负载均衡,主要应用有两种类型的Virtual Server在使用。

 

Performance L4

在一个TCP连接建立过程中,除了源IP、目的IP、源端口和目的端口外,还有其他的很多参数,比如Window size, Max Segment Size等参数。在performance L4的情况下,BIGIP是按照纯四层的处理方式对流量进行处理,也就是基本上只看IP和端口部分的内容,然后在对数据包进行转发的时候,对四层信息进行处理,比如替换目的IP、目的端口,然后就直接进行转发了,对其他的TCP参数不进行任何的变动。

 

Standard

Standard 模式是BIGIP TMOSFull Proxy结构,在这种结构下,BIGIP对于每一个连接,建立了两个TCP堆栈,分别是client sideServer side。客户端发起的TCP连接,实际上是和BIGIP建立的连接,然后BIGIP才以客户端的源IP地址,和服务器端建立连接。这样,TCP连接就在BIGIP的层面上被中断为两段,BIGIP分别为两段TCP连接去维护TCP状态信息。对于客户端,BIGIP就是一个完整的Socket服务,对于服务器端,BIGIP就是一个标准的客户端socket连接。在抛开TCP的连接层面后,只有真正的数据包才在BIGIP的两个TCP堆栈之间进行转发。这也就是BIGIP可以完成很多非常复杂的处理功能的主要原因。基本上,只要开启了七层处理功能,如HTTP profile,就必须使VS工作在standard模式下。当系统工作在Standard模式下时,如果通过抓包,可以看到数据包在client side server sideTCP sequence number都是不一样的。

 

Forwarding IP

Forwarding IP类型的VS对于命中的流量,查询本地的路由表,然后将数据包根据路由表定义的下一条进行转发,如果没有下一条路由,则一律转发到BIGIP上的默认网关。和Performance L4类型的VS一样,Fowarding IP VS不对TCP参数进行更改,另外, Fowarding IP VS 对数据包的目的IP、目的端口、源IP、源端口等均不进行转换。

 

关于VS类型的选择推荐

考虑到尽量减小F5负载均衡引入对应用系统的影响,在可能的情况下,建议优先选用Performance L4类型的Virtual Server。在一些必须使用Standard的情况下,比如需要在F5设备上启用七层功能,包括cookie会话保持、Session ID会话保持、Header会话保持、基于交易的长连接拆分等应用场景,另外,在应用系统需要使用F5实现Syn攻击防护的时候,可以采用Standard Virtual Server

在明确后台应用基于HTTP协议时,建议在Standard的基础上关联BIGIP内置的标准HTTP Profile

对于非HTTP协议的应用,需要在VS上关联的其他Profile或者iRules根据实际的业务需求进行确定。

 

Vlan keyed connection

Vlan Keyed connection,参数为全局设置参数,主要用于控制数据包的往返路径一致,在正常情况下,通过F5转发出去的数据包的回应包,应该通过同一Vlan返回。在Vlan Keyed Connection Enable状态下,F5会拒绝返回包从另外一个Vlan返回,当网络结构或者应用系统有特殊要求会导致数据包的往返路径不一致的情况下,可以全局关闭Vlan Keyed connection参数。使F5可以正常处理往返路径不一致的数据包。

 

FastL4 Profile

 

FastL4 Profile关联的VS用于服务器负载均衡的时候,对FastL4 ProfileTCP idle timeout值之外的其他参数不建议进行调整。TCP idle timeout时间由应用决定,F5上配置的TCP idle timeout值建议比服务器、应用的TCP idle timeout时间超过10%

 

FastL4 Profile关联的VS用于路由转发也就是关联在Fowarding IP VS 上时,可以对以下参数进行调整:

 

Reset On TimeoutLoose Initial Loose Close。这三个参数在穿过Forwarding VS有未知timeout时间的长连接应用的时候启用,关闭Reset On timeout使BIGIP在连接在BIGIPtimeout的时候,不对连接的两端发送reset包中断两端连接,Loose InitialLoose Close参数用于在任何时候接收到任何的数据包时,BIGIP都可以接收数据包,并建立一个新的连接表项,同时对数据包按照路由规则进行转发。另外,当与服务器相连的交换机相应VLAN里配置有Vlan IP、服务器网关指向BIGIP,并且有该服务器主动向外请求和外部网段会直接访问该服务器时,也需要Enable Loose InitialLoose Close这两个选项。

 

对于F5具有PVA的机型包括BIGIP 3400640068008400等型号,由于采用Fast L4 Profile后,默认会启用PVA芯片进行硬件加速,可能会造成在故障排查抓包的时候无法抓取到完整的数据流。因此在进行故障分析时,建议将PVA acceleration 参数设置为None,强迫BIGIPCPU来进行数据包处理以抓取到完整的数据流。在F5的其他机型如BIGIP 3600390069008900等设备上进行TCPdump抓包不存在有以上问题。

 

TCP Profile

在使用Standard VS的时候,必须关联TCP或者UDP Profile作为最底层的协议处理,通常情况下,建议使用BIGIP 默认的TCP Profile,并根据应用系统的要求对TCP idle Timeout进行相应的调整。在一些特殊的应用情况下,允许对TCP Profile的其他参数进行调整,但必须通过严格的应用测试之后方可使用。