TCPCOPY 1.0 部署及使用

tcpcopy簡介

TCPCOPY 是一個 tcp 流量的實時複製工具,其1.0版本由網易工程師 @tcpcopy 開發和維護。一般用來將生產環境的線上流量實時複製到測試環境進行測試。例如新系統上線前,如果我們希望進行一些基本的壓力測試,那麼我們可以直接利用 tcpcopy 來複制線上的流量過來對系統進行測試,這樣的好處是測試數據接近真實水平,且實施起來相對簡單。

一、部署環境
1.1、服務器列表

192.168.5.2      線上服務器
192.168.5.3      測試服務器
192.168.5.4      輔助服務器

二、部署tcpcopy和intercept服務
2.1、部署tcpcopy服務:

wget https://github.com/session-replay-tools/tcpcopy/archive/1.0.0.tar.gz
tar xvf 1.0.0.tar.gz
cd tcpcopy-1.0.0
./configure --prefix=/opt/tcpcopy/
make
make install

2.2、部署intercept服務:

yum -y install libpcap-devel
https://github.com/session-replay-tools/intercept/archive/1.0.0.tar.gz
tar xvf 1.0.0.tar.gz
cd intercept-1.0.0
./configure --prefix=/opt/tcpcopy/
make
make install

三、啓動服務

3.1、首先啓動輔助服務器intercept服務,不然tcpcopy服務起不來:
/opt/tcpcopy/sbin/intercept -i enp2s0 -l intercept.log -P /var/run/intercept.pid -F 'tcp and src port 8000' -d

3.1.1、參數說明:

-i 監控網卡接口
-l 記錄日誌
-F 監控的協議和端口
-P 記錄pid
-d 以daemon形式運行

3.2、再次啓動線上服務器tcpcopy服務:

/usr/local/tcpcopy/sbin/tcpcopy -x 8000-192.168.5.3:8000 -s 192.168.5.4 -c 192.168.4.254 -d -C 4 -n 2 -l tcpcopy.log  -P /var/run/tcpcopy.pid

3.2.1、參數說明:

-x 8000-192.168.5.3:8000將本機上8000端口的流量複製到192.168.5.3(測試服務器)的8000端口
-s 指定intercept進程所在的服務器192.168.5.4。(輔助服務器)
-c 修改請求的host地址爲192.168.4.254,以便在(192.168.5.3)測試服務器上設置路由(設置路由是爲了將應答轉向丟192.168.5.4包服務器)
-C 開啓4個進程
-d 以daemon形式運行
-l 記錄日誌
-P 記錄pid
-n 指定包放大的倍數

3.2.2、線上服務器檢查

[root@localhost ~]# ss -an |grep 192.168.5.4
tcp    ESTAB      0      0      192.168.5.2:45950              192.168.5.4:36524              
tcp    ESTAB      0      0      192.168.5.2:45954              192.168.5.4:36524              
tcp    ESTAB      0      0      192.168.5.2:45952              192.168.5.4:36524              
tcp    ESTAB      0      0      192.168.5.2:45956              192.168.5.4:36524

3.2.3、輔助服務器檢查:

[root@k8s-node1 ~]# ss -tlunp|grep 36524
tcp    LISTEN     0      5         *:36524                 *:*                   users:(("intercept",pid=5770,fd=5))

四、添加路由

測試服務器添加路由
route add -net 192.168.4.0 netmask 255.255.255.0 gw 192.168.5.4

五、使用python自帶模塊啓動web服務

python -m SimpleHTTPServer

六、在其它服務器進行測試

curl 192.168.5.4:8000

七、查看流量的轉發情況

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章