流量复制

流量复制

HTTP流量复制

在主机层面常用的HTTP流量复制有nginx的mirror和gorelay两种,都可以实现流量复制、流量放大,操作简单。

nginx mirror模块 一种应用层的流量复制工具

mirror

goreplay 监听网络接口上的流量,实时流量复制

goreplay

TCP流量复制

在主机层面常用的TCP流量复制有tcpcopy、iptables TEE

tcpcopy 复制TCP包修改 TCP/IP 头部信息发给测试机器,一个发送端TCPCopy和一个接收端intercept。

centos 6~7 modprobe ip_queue 可以运行,在Rocky Linux 8.8运行时modprobe: FATAL: Module ip_queue not found”的错误提示。这是因为Rocky Linux 8.8默认不支持ip_queue模块。ip_queue模块是用于Linux内核的旧版网络队列框架,它已被新的nfnetlink_queue模块所取代。

加载nfnetlink_queue模块运行

[root@web01-proxy ~]# modprobe nfnetlink_queue

在实际工作中tcpcopy完美契合需求,顺利实现复制某个TCP服务流量到另一个机器新起的TCP服务上,完成功能预览和测试。

iptables TEE

使用可以参考iptables目标TEE,在实际工作中受限于网络环境无法实现,参考iptables TEE使用注意事项

UDP流量复制

udpcopy It is an online UDP duplication tool and can be used for testing

A,B,C三台机器,安装依赖yum install libtool autoconf automake m4

A机器监听udp端口20021,[A-udpcopy]# nc -lu 20021
C机器监听udp端口20021,[C-udpcopy]# nc -lu 20021

A机器开启udpcopy,复制udp端口20021请求到C机器20021

B机器发送udp测试包,python3 test.py
import socket
udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
udp_socket.sendto(b'Hello, UDP!', ('A机器IP', 20021))
data, addr = udp_socket.recvfrom(1024)
print(f'Received: {data.decode()} from {addr}')
udp_socket.close()
B机器收到A机器回复的456
C机器收到A机器转发的请求
A机器收到B机器发送的请求并回复456

留下回复

error: Content is protected !!