原创作品,允许转载,转载时请务必以超链接形式标明文章
原始出处 、作者信息和本声明。否则将追究法律责任。
http://navyaijm.blog.51cto.com/4647068/1340809
1
2
3
4
|
client: 10.10.1.245
线上server:10.10.2.240
测试server:10.10.2.241
辅助server:10.10.2.242
|
1
2
3
4
5
6
7
|
yum -y
install
libpcap-devel
wget http:
//tcpcopy
.googlecode.com
/files/tcpcopy-0
.9.6.
tar
.gz
tar
-zxvf tcpcopy-0.9.6.
tar
.gz
cd
tcpcopy-0.9.6
.
/configure
--
enable
-advanced --
enable
-pcap
make
make
install
|
1
2
|
/usr/local/bin/tcpcopy
-x 10.10.2.240:80-10.10.2.241:80 -s 10.10.2.242 -i eth1 -d
解释:复制线上10.10.2.240:80的流量到测试服务器10.10.2.241:80,-s指定辅助服务器(intercept serve),-i 指定从那块网卡抓包
|
1
|
/usr/local/bin/intercept
-i eth1 -F
'tcp and src host 10.10.2.241 and src port 80'
-d
|
1
2
|
route add -host 10.10.1.245 gw 10.10.2.242
解释:客户端(10.10.1.245)的请求走辅助服务器(10.10.2.242),如果是外网的应用,测试服务器的默认路由可以设置成辅助服务器。
|
1
2
3
4
5
6
|
第一种:
/usr/local/bin/tcpcopy
-x 10.10.2.240:80-10.10.2.241:80 -s 10.10.2.242 -i eth1 -d -n 3
第二种:
/usr/local/bin/tcpcopy
-x 10.10.2.240:80-10.10.2.241:80 -s 10.10.2.242 -i eth1 -d
/usr/local/bin/tcpcopy
-x 10.10.2.240:80-10.10.2.241:80 -s 10.10.2.242 -i eth1 -d -f 1
/usr/local/bin/tcpcopy
-x 10.10.2.240:80-10.10.2.241:80 -s 10.10.2.242 -i eth1 -d -f 2
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
A、环境:
线上server:10.10.2.100 外网IP:x.x.x.x
测试server1:10.10.2.241
测试server2:10.10.2.242
辅助sever: 10.10.2.246
LVS 调度:10.10.2.240
VIP :10.10.2.245
B、说明:
1、10.10.2.240是LB,10.10.2.241和10.10.2.242是realserver
2、realserver上部署了和线上一样的web应用,同时修改默认网关为辅助server
route del default gw 10.10.2.1
route add default gw 10.10.2.246
PS:在设置默认网关为辅助服务器的同时要保证lvs可以正常监控到realserver,也就是要保证LB和realserver之前的网络是正常,大家的网络环境都不一样,这个需要注意一下
3、辅助server在上面运行intercept,运行方法如下:
/usr/local/bin/intercept
-i eth1 -F
'tcp and src port 80'
-d
4、线上server运行tcpcopy,运行方法:
/usr/local/bin/tcpcopy
-x 80-10.10.2.245:80 -s 10.10.2.246:36524 -i eth0 -d
解释:复制网卡设备eth0上面的在线80端口的数据包到虚拟ip地址为10.10.2.245的系统中去,其中测试应用端口号为80端口,运行intercept的机器ip地址为10.10.2.246,端口号为36524。
PS:如果要复制的流量很大,那一台辅助server岂不是成了瓶颈?别急,辅助server可以扩展的,比如有两台辅助server10.10.2.246和10.10.2.247,那线上server的tcpcopy可以这样运行:
/usr/local/bin/tcpcopy
-x 80-10.10.2.245:80 -s 10.10.2.246:36524,10.10.2.247:36524 -i eth0 -d
|