TcpCopy复制线上流量

1、架构图

在运行上层服务的测试服务器test server 上设置路由信息,把待测试应用需要被捕获的响应数据包路由到辅助服务器assistant server上;在assistant server上,在数据链路层截获响应包[ 在assistant server的IP层已经截获不到响应包了],从中抽取有用的信息,返回给相应的tcpcopy

2、安装

2.1、安装依赖包:

          yum install libpcap-devel

          yum -y install gcc-c++

  2.2、编译安装intercept:

         tar -xvf intercept-1.0.0.tar.gz 

         cd intercept-1.0.0

         ./configure --single   (我这边只是复制单台机器的流量,所以使用非分布式流量复制模式)

        make && make install

  2.3、启动intercept

        /usr/local/intercept/sbin/intercept -i eth0 -l /var/log/intercept.log -F 'tcp and src port 20836' -d

       -i 监听eth0该网卡

【online服务安装tcpCopy】

  2.4、编译安装tcpcopy

        tar -xvf tcpcopy-1.2.0

       cd tcpcopy-1.2.0

       ./configure --single

       make && make install

  2.5、启动tcycopy

      /usr/local/tcpcopy/sbin/tcpcopy -x 20836-172.18.21.11:20836,7048-172.18.21.11:7048 -s 172.18.21.11 -c 172.18.41.27 -d -C 4 -l /var/log/tcpcopy.log -n 3

     参数解释:

     172.18.21.11   测试服务器

     172.18.41.27  线上服务器

     -x 服务器应用端口号-测试服务器IP地址:测试服务器应用端口,多个端口监听就用”,"分割,上述就是监听20836和7048两个端口

     -s 指定真正运行intercept的地址列表,通过此参数可以和任意一台服务器的任意一个intercept实例进行通信

     -c 改变请求数据包的源IP地址为IP地址列表中的某个IP地址

     -C 指定tcpcopy和intercept之间的连接数量,默认为2条连接供响应包的返回和路由信息的传递,在高压情况下,加大此参数,可以提高吞吐量,但整体性能会有一定程度的下降

     -l 日志路径

     -d 后台运行

     -n 流量放大倍数

3、效果图

 

左边tcpcopy也就是线上服务器,右边intercept也就是测试服务器,稍等下,再去看看机器监控机器负载就会上去

4、说明

云环境下,安全策略可能会干扰测试的进行。
采用如下步骤可以规避麻烦:
       4.1、测试机器和intercept部署到一台机器
       4.2、tcpcopy端-c参数采用tcpcopy所在的线上机器ip地址
       4.3、在线上机器设置iptables黑洞来过滤掉测试服务器的响应包
      iptables -I INPUT -p tcp --sport 测试服务的端口 -j DROP -s 测试服务所在机器的ip地址
      4.4、千万要注意在测试服务器不要设置路由了,否则会受到干扰

      如果不加iptables,会报   slide win:too many packs:286,p:34604

      iptables -I INPUT -p tcp --sport 20836 -j DROP -s 172.18.21.11

      iptables -I INPUT -p tcp --sport 7048 -j DROP -s 172.18.21.11

     使用完后删除iptables

     显示本机iptables信息:iptables -L INPUT --line-numbers

     删除iptables: iptables -D INPUT 1  

5、其他

githup地址:https://github.com/wangbin579/tcpcopy

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值