TCPCopy的作用正如其名字所示,用于把线上TCP流量copy到测试服务器上,用真实的流量来做测试,以减少或避免失误。
这里是一个简单示例(采用tcpcopy的新方式),具体请参见tcpcopy官方文档。未来如果需要更高级的应用,将会补充该博客。
10.0.5.13 qionghua 10.0.5.18 shushan
10.0.5.14 tianhe 10.0.5.15 lingsha
10.0.5.16 ziying 10.0.5.17 mengli
10.0.5.19 wangshu
目标使用ziying替换tianhe,mengli替换lingsha。
在lingsha和tianhe处,安装tcpcopy客户端
./configure --enable-advanced make && make install
tianhe启动tcpcopy
tcpcopy -x 10.0.5.14:8000-10.0.5.16:8000 -s 10.0.5.19 -d
lingsha启动tcpcopy
tcpcopy -x 10.0.5.15:8000-10.0.5.17:8000 -s 10.0.5.19 -d
ziying、mengli设置路由
route add -host 10.0.5.13 gw 10.0.5.19 route add -host 10.0.5.18 gw 10.0.5.19
wanghsu协助服务器安装intercept(tcpcopy server)
yum install libpcap-devel ./configure --enable-advanced -enable-pcap make && make install
启动
intercept -i eth0 -F 'tcp and src host (10.0.5.16 or 10.0.5.17) and src port 8000' -d
这时候,在qionghua和shushan上对tianhe和lingsha做curl(端口默认8000),在ziying和mengli处将会收到同样的连接。
以上叙述都是“知其然而不知其所以然”,虽然我知道每一步大概都做了什么,但是如果涉及到TCP/IP层,稍微细节一点的,我却还是不能完全说清楚。基础还是不够。