众所周知 ,F5常见的接入模式是采用串联接入,串联接入的好处是结构清晰简洁,但事实中,一个已经建好在用的网络可能很难接受断网串结带来的改变,此时旁路模式则是一种非常好的办法,它不用改变网络物理结构,同时还能满足串接的逻辑结构。如图:
在正常的访问中,client访问VIP地址192.168.165.200,F5处理接到的数据包并均衡给相关server,server响应的数据则会被发给F5,F5在发给client,这样就完成了一次完整的逻辑串联数据处理流程。
如果说,我们日常就这么用,到也没关系,可是如果是在一个开发测试环境中,可能研发人员有时候需要直接访问某台服务器(不再是访问F5的VIP),而由于服务器的网关都指向了F5,这行来回的数据实际是在绕圈圈,由于F5默认是基于状态的,他不容许在没有syn的情况下收到ACK,这样必然导致F5会丢弃掉服务器返回的数据,所以此时需要采用下面这个方法来补救:
1.建立一个FAST L4的自定义profile,并选择Loose Initiation,Loose close 两个选项
2.启用一个0.0.0.0:0的IP Forwarding,并调用自定义的fast l4 profile
这样容许了F5进行简单的IP路由转发,同时由于启用了2个loose参数,容许了F5在没有SYN的情况下接受ACK,在没有收到final的情况下接受结束的ACK,也就是说F5只是进行了简单的3层转发,而不再刻意处理数据。
如此一来,从服务器直接返回的数据在到达F5时候,又被简单的转发给了路由器,所以客户端可以正常的接收到返回的数据了。
这样就实现了,需要负载时访问VIP即可,不需要时直接访问服务器IP即可。
--------------------
与nPath的比较,上面的旁路例子中解决的是当真实服务器的网关指向F5时,又想直接访问服务器的问题。而nPath则相反,它的目的是解决真实服务器网关指向非F5的网络设备时情况,这种情况下,从真实服务器返回的数据则不经过F5(去向真实服务器的是经过F5的),在npath中的要点是1.要保证在真实服务器上配置环回接口为VIP,并确保应用软件使用这个环回接口作为原地址响应数据;2.确保VS中是禁止地址和端口转换的并引用自定义的profile 3.需要自定义fast l4的profile,选中loos close 并调整 空闲超时值.
npath情况下由于返回数据不经过F5,所以F5针对响应数据的一些特殊处理功能是不能实现的。
关于nPath中TCP\UDP空闲时间值的调整:
1.udp
估计UDP数据返回时间,将空闲值设置的比这个估计时间大些,以便在下次客户端再响应数据时,F5还能知道连接的存在(知道连接的存在是为了保证响应数据正确的发送到相同的服务器上)
2.tcp
一般设置为2倍的重传时间,一般WINDOWS和UNIX是25秒,因此可以设置为51秒这样,如果线路质量差或者机器响应慢可以适当再调大些
文章评论
你好!你这两种方案都是f5和服务器在同一个网段内的。如果f5和服务器不在同一个网段内,他们各自的网关又都分别指向自己的3层交换,那么如何实现?snat是否能解决?谢谢!