tcpcopy icon indicating copy to clipboard operation
tcpcopy copied to clipboard

我只想使用tcpcopy的流量复制功能

Open xiaofenyang opened this issue 7 years ago • 11 comments

我只想使用tcpcopy的流量复制功能。但是我看文档tcpcopy online机器必须收到intercept的 response包才发下一个包。这个功能能支持么?或者有什么推荐么?

xiaofenyang avatar Aug 15 '17 05:08 xiaofenyang

https://github.com/session-replay-tools/mirror 也许适合你

lazio579 avatar Aug 15 '17 06:08 lazio579

我试了mirror,但是我看mirror需要双网卡,我这里用一个网卡测试,没有测试成功。

xiaofenyang avatar Aug 15 '17 07:08 xiaofenyang

跟双网卡没有关系

wangbin579 avatar Aug 15 '17 07:08 wangbin579

/usr/local/mirror/sbin/mirror -s 00:8D:FA:C0:63:22 -o eth0 -i eth0 -x 120.011.11.11 -t AD:88:3D:A4:65:A3 -F 'port 8080' 这样ok的么?那-o与-i的区别是啥? 2017/08/15 11:23:40 +411 [notice] total captured packets:202137540 2017/08/15 11:24:40 +411 [notice] user time used:120 2017/08/15 11:24:40 +411 [notice] sys time used:418 2017/08/15 11:24:40 +411 [notice] max memory size:36248 2017/08/15 11:24:40 +411 [notice] total captured packets:226368730 2017/08/15 11:25:40 +411 [notice] user time used:134 2017/08/15 11:25:40 +411 [notice] sys time used:465 2017/08/15 11:25:40 +411 [notice] max memory size:36248 2017/08/15 11:25:40 +411 [notice] total captured packets:251496570 2017/08/15 11:26:40 +411 [notice] user time used:147 2017/08/15 11:26:40 +411 [notice] sys time used:512 2017/08/15 11:26:40 +411 [notice] max memory size:36248 2017/08/15 11:26:40 +411 [notice] total captured packets:276201780

我是监听了8080 端口。但是目标机器上没有相应的8080的包。顺便说一句,抓取流量机器、与目标机器非同一个网段(掩码不一样)

xiaofenyang avatar Aug 15 '17 08:08 xiaofenyang

mirror需要同一个网段,否则不好办

wangbin579 avatar Aug 15 '17 08:08 wangbin579

需要同一个网段的限制是什么?用到了端口镜像技术是么? 我看tcpcopy倒没这个限制的。

xiaofenyang avatar Aug 15 '17 08:08 xiaofenyang

如果是我这里是单网卡,想用到流量复制的功能,你建议怎么处理呢?

xiaofenyang avatar Aug 15 '17 08:08 xiaofenyang

mirror是通过mac地址寻址的,而tcpcopy默认是通过ip地址寻址的。

mirror出去的数据包,需要考虑怎么样才能走出去,跨网段,就会麻烦很多。

单网卡可能会影响线上业务吧,毕竟是公用一个设备,如果有条件,最好用交换机的mirror,影响代价相对比较小

wangbin579 avatar Aug 15 '17 09:08 wangbin579

问个题外话,mirror的实现还是利用了libpcap底层的这个包,修改了mac地址么? tcpcopy 这个也是利用了libpcap的包?因为我看都有libpcap版本的要求。

交换的mirror,指的是交换机自带的mirror功能配置,是这样的么?

xiaofenyang avatar Aug 15 '17 10:08 xiaofenyang

对,交换机自带的功能。 mirror修改了mac地址,把包发送过去(利用了libpcap的发包功能),不涉及到tcp层面的内容,而tcpcopy需要模拟tcp协议栈。

之所以libpcap有版本要求,是因为部分函数只有1.0版本以上才有

wangbin579 avatar Aug 15 '17 10:08 wangbin579

是否单网卡这个问题,因为我们的服务器都是单网卡的。所以即使非实时,去拉取生成的流量文件也是需要网络带宽,有影响的。

我想问一下tcpcopy这个我能只复用流量复制部分的功能么?因为我这边的需求是非同一网段的不同机器流量复制。

xiaofenyang avatar Aug 16 '17 02:08 xiaofenyang