利用MBLB解决TCP长连接负载均衡测试方案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

F5 BIGIP MBLB 测试记录

F5北京杨明非

2009年8月

目录

1. 测试环境 (3)

1.1 测试环境准备 (3)

1.2 测试网络拓扑 (3)

1.3 BIGIP MBLB工作原理: (4)

2. V10 MBLB 测试过程 (5)

2.1 TCP连接测试 (5)

2.2 交易分发测试 (6)

2.3 启动第二个客户端的连接建立过程及Timeout (8)

2.4 加入新的客户端观察负载均衡算法 (10)

2.5 手工Disable服务器测试 (12)

2.6 关闭服务器测试 (13)

2.7 V10 MBLB 测试总结 (14)

2.8 附:TCPdump数据包分析 (14)

3. One Connect工作模式测试 (16)

3.1 One Connect模式的工作原理 (17)

3.2 TCP连接测试 (17)

3.3 交易分发测试 (19)

3.4 启动第二个客户端的连接 (20)

3.5 启动多个客户端观察负载均衡算法 (22)

3.6 手工Disable 服务器测试 (25)

3.7 重新Enable服务器 (26)

3.8 关闭服务器测试 (29)

3.9 One Connect模式测试总结: (30)

4. 附录 (30)

4.1 如何使用iRules来判断交易边界 (30)

4.2 关于交易定向发送 (32)

4.3 关于会话保持 (32)

4.4 两种模式的对比 (33)

4.5 还需要研究的部分 (34)

1.测试环境

1.1测试环境准备

PC server一台,安装Windows 2003 Server.

BIGIP 1台,安装10.0.1版本

TCP Client/Server软件

1.2测试网络拓扑

所有的IP地址均在同一个网段内,TCP client 和Server也运行在同一台设备上。通过启动多个不同的实例来模拟多台Server和Client。

测试用BIGIP 配置

注意mblb的Profile是手工加入的,在图形界面里没有配置。另外对于这种类型的Server,最好使用tcp_half_open健康检查模式。

1.3 BIGIP MBLB工作原理:

客户端首先与BIGIP建立TCP连接,在客户端发送数据的时候,BIGIP根据交易将客

户端请求发送到不同的服务器,在发送前,BIGIP将与后台服务器建立连接。在这种工作模式下,可以支持同步阻塞模式交易或者同连接里的异步交易。

同步工作模式:

Client1 Request

Server1 Response

Client2 Request

Server2 Response

Client1 Request

Server2 Response

异步工作模式:

Client1 Request

Client2 Request

Client1 Request

Server1 Response

Server2 Response-

Server3 Response

在异步工作模式下,不能用下面测试的简单irules,需要使用iRules来判断每个交易的边界,以便将每笔交易请求分发到不同的服务器上。

下面的测试基于小包状态,也就是每笔交易的长度不超过1个MTU,通常情况下是1460字节的情况,在这种情况下,在一次CLIENT_DA TA事件触发的时候就可以接收到整个的交易请求或者交易回应。

2. V10 MBLB 测试过程

2.1TCP连接测试

首先启动两台Server,分别侦听9000和9001端口

确认在BIGIP里显示两台服务器都是工作的。

B conn显示没有任何的链接产生

启动客户端,配置好发送的内容,点击Connect

观察BIGIP上的连接状态:

在客户端没有发送数据之前,在BIGIP上只有一个Client-Any6的连接,此时客户端还没有发送数据,因此BIGIP与后台并不建立连接。

2.2交易分发测试

点击客户端上的发送按钮

观察客户端的收发状态

观察Server端收发状态

观察BIGIP上的连接状态

可以看到,在客户端开始发送数据后,BIGIP分别和两台Server建立了连接,并将客户端的请求以轮询的方式发送到两台服务器上。由于我在这里启用了SNAT,因此可以看到

第一个Server连接是使用的客户端源端口和服务器建立连接,第二个客户端连接使用的另外一个源端口和服务器建立连接。

2.3启动第二个客户端的连接建立过程及Timeout

启动第二个客户端建立连接

观察BIGIP状态

怎么没有Server端连接了呢?

看看Server端日志,原来由于俺写文章的时间太长,被BIGIP timeout了。

好,现在就让C2开始发送数据

看到Server端又开始建立连接了

BIGIP上的连接状态:

现在开始启动C1发送数据

C1的连接也被断掉了:

重新启动C1并连接

BIGIP上状况:

当C1开始发送数据的时候:

Server上的状态:

可以看到BIGIP针对每一个客户端连接,分别在每台Server上建立了同样数量的连接,

相关文档
最新文档