Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1611457
  • 博文数量: 101
  • 博客积分: 2465
  • 博客等级: 中尉
  • 技术积分: 2126
  • 用 户 组: 普通用户
  • 注册时间: 2010-12-09 15:39
个人简介

https://minminmsn.com/

文章分类

全部博文(101)

文章存档

2018年(2)

2017年(2)

2016年(11)

2015年(14)

2014年(9)

2013年(16)

2012年(47)

分类: 系统运维

2015-12-17 17:46:26

TCPCOPY 1.0 安装使用


简介
TCPCOPY 是一个 tcp 流量的实时复制工具,其1.0版本由网易工程师 @tcpcopy 开发和维护。一般用来将生产环境的线上流量实时复制到测试环境进行测试。例如新系统上线前,如果我们希望进行一些基本的压力测试,那么我们可以直接利用 tcpcopy 来复制线上的流量过来对系统进行测试,这样的好处是测试数据接近真实水平,且实施起来相对简单。


一,架构
 


二,安装
测试中用到的3台服务器信息如下:
线上服务器 online server       内网IP地址 192.168.0.8/24    外网IP 214.167.0.8/28
测试服务器 test server        内网IP地址 192.168.0.230/24   外网IP 214.167.0.13/28
辅助服务器 assistant server   内网IP地址 192.168.0.219/24   外网IP 214.167.1.76/24
192.168.0.8是线上服务器,192.168.0.230和192.168.0.219是测试环境。我们在192.168.0.8上运行tcpcopy把线上流量拷贝到192.168.0.230,在192.168.0.230上我们通过路由将应答转向
192.168.0.219,在192.168.0.219上把应答丢弃。




第一步,在 online server 192.168.0.8上安装并运行 tcpcopy daemon :
我们从github上下载1.0版本的源码包;
wget -O tcpcopy-1.0.0.tar.gz
安装依赖包;
yum -y install libpcap-devel
解压编译和安装;
tar zxvf tcpcopy-1.0.0.tar.gz
cd tcpcopy-1.0.0
./configure (默认raw socket方式抓包)
make 
make install
最后运行 tcpcopy;
/usr/local/tcpcopy/sbin/tcpcopy -x 80-192.168.0.230:80 -s 192.168.0.219 -c 10.10.10.x -d -C 4 -l tcpcopy.log  -P /var/run/tcpcopy.pid


指令说明:
-x 80-192.168.0.230:80将本机上80端口的流量复制到192.168.0.230(测试服务器)的80端口
-s指定intercept进程所在的服务器192.168.0.219。(丢包服务器)
-c修改请求的host地址为10.10.10.x,以便在230测试服务器上设置路由(设置路由是为了将应答转向丢219包服务器)
-C 开启4个进程
-d 以daemon形式运行
-l 记录日志
-P 记录pid
其他参数可以通过/usr/local/tcpcopy/sbin/tcpcopy -h查看


成功运行后可以观察到的网路连接状态:
#ss -an|grep 192.168.0.219
ESTAB      0      0                192.168.0.8:49034         192.168.0.219:36524 
ESTAB      0      0                192.168.0.8:49035         192.168.0.219:36524 
ESTAB      0      0                192.168.0.8:49032         192.168.0.219:36524 
ESTAB      0      0                192.168.0.8:49033         192.168.0.219:36524 




第二步,在 auxiliary server 192.168.0.219上安装并运行 intercept daemon :
从github上下载1.0版本的源码包;
wget -O intercept-1.0.0.tar.gz
安装依赖包;
yum -y install libpcap-devel(CentOS6系统直接yum安装即可1.4版本)
注意CentOS5系统libpcap-devel版本是libpcap-devel-0.9.4-15.el5,intercept-1.0需要libcap-devel1.4以上版本此时需要源码包安装
yum remove libpcap
wget
tar zxvf libpcap-1.4.0.tar.gz
cd libpcap-1.4.0
./configure
make
make install




解压编译和安装;
tar zxvf intercept-1.0.0.tar.gz
cd intercept-1.0.0
./configure (默认raw socket方式抓包)
make && make install
最后运行 intercept;
/usr/local/intercept/sbin/intercept -i eth1 -l intercept.log -P /var/run/intercept.pid -F 'tcp and src port 80' -d


指令说明:
-i 监控网卡接口
-l 记录日志
-F 监控的协议和端口
-P 记录pid
-d 以daemon形式运行
其他参数可以通过/usr/local/intercept/sbin/intercept -h查看




成功运行后可以观察到的网路连接状态:
# ss -an |grep 36524
LISTEN     0      5                         *:36524                    *:*     
ESTAB      0      66             192.168.0.219:36524           192.168.0.8:49034 
ESTAB      0      0              192.168.0.219:36524           192.168.0.8:49035 
ESTAB      0      66             192.168.0.219:36524           192.168.0.8:49032 
ESTAB      0      0              192.168.0.219:36524           192.168.0.8:49033 


第三步,在 test server 192.168.0.230上设置一条路由 :
[root@bogon ~]# route add -net 10.10.10.0 netmask 255.255.255.0 gw 192.168.0.219
成功运行测试时可以观察到的网络连接状态:
# ss -an |head
State      Recv-Q Send-Q        Local Address:Port          Peer Address:Port
LISTEN     0      0                 127.0.0.1:199                      *:*    
LISTEN     512    0                         *:80                       *:*    
ESTAB   0      0              192.168.0.230:80           10.10.10.1:62602
ESTAB   0      0              192.168.0.230:80           10.10.10.4:54595
ESTAB   0      0              192.168.0.230:80           10.10.10.3:53566
ESTAB   0      0              192.168.0.230:80           10.10.10.6:49260
ESTAB   0      0              192.168.0.230:80           10.10.10.8:57598
ESTAB   0      0              192.168.0.230:80           10.10.10.7:64454
ESTAB   0      0              192.168.0.230:80           10.10.10.1:63081








参考链接:
http://blog.csdn.net/wangbin579/article/details/8949315
http://blog.csdn.net/wangbin579/article/details/8950282






阅读(7930) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~