CentOS环境下直接,在线安装执行下列命令即可:
yum -y install tcpreplaysudo apt-get install tcpreplay查看安装是否成功:
tcpreplay -V查看帮助信息:
-q, --quiet #安静模式-a #精确的时间(使用高速 cpu 发包)-d #输出调试信息(0-5,默认 0)-K, --preload-pcap #发送前将数据包预加载到 RAM 中-c #双网卡回放报文必选参数,后跟文件名-C, --cachefile=str #通过tcpprep缓存文件拆分流量-N #获得网络接口和出口-2, --dualfile #从网络分路器一次重放两个文件-i, --intf1=str #客户端到服务器/RX/主要流量输出接口,双网卡回放报文必选参数,指定从接口-I, --intf2=str #服务器到客户端/TX/二级流量输出接口--listnics #列出可用的网络接口并退出,双网卡回放报文必选参数,指定主接口-S #制定包长度-L, --limit=num #限制发送的数据包数量--duration=num #限制发送的秒数,限制发包数量-M, --mbps=str 以 Mbps(兆字节每秒)发送报文-t, --topspeed 以最快的速度回放报文-o, --oneatatime 用户每输入一次回放一个报文--pps-multi=num 每个时间间隔发送的数据包数X--unique-ip 每次循环迭代修改 IP 地址以生成唯一的流--unique-ip-loops=str 在分配新的唯一 ip 之前循环的次数--no-flow-stats 禁止打印和跟踪流计数、速率和到期时间--flow-expiry=num 将流视为过期之前处于非活动状态的秒数-r, --portmap=str 重写 tcp/udp 端口-s, --seed=num 根据给出的seed随机改写源/目的IPv4、IPv6-N, --pnat=str 通过伪 NAT 重写 ip 地址-S, --srcipmap=str 使用伪 NAT 重写源 IPv4/v6 地址-D, --dstipmap=str 使用伪 NAT 重写目标 IPv4/v6 地址-e, --endpoints=str 在最后 2 个点之间重写 ip 地址-b, --skipbroadcast 不重写广播/多播 IP 地址-C, --fixcsum 强制重新计算 TP/TCP/UDP 校验和-m, --mtu=num 覆盖默认 MTU 长度(1500 字节)--mtu-trunc 截断大于指定 MTU 的数据包-E, --efcs 从帧尾删除以太网校验和 (FCS)--ttl=str 修改 IPv4/v6 TTL/Hop 限制--tos=num 设置 IPv4 TOS/DiffServ/ECN 字节--tclass=num 设置 IPv6 流量类别字节--flowlabel=num 设置 IPv6 流标签-F, --fixlen=str 填充或截断数据包数据以匹配报头长度--fuzz-seed=num Fuzz 1 in X packets. Edit bytes, length, or emulate packet drop--fuzz-factor=num Set the Fuzz 1 in X packet ratio (default 1 in 8 packets)--skipl2broadcast 跳过重写广播/多播第 2 层地址--enet-dmac=str 覆盖目标以太网 MAC 地址--enet-smac=str 覆盖源以太网 MAC 地址--enet-subsmac=str 替换 MAC 地址--enet-mac-seed=num 随机化 MAC 地址--enet-mac-seed-keep-bytes=num 随机化 MAC 地址--enet-vlan=str 指定以太网 802.1q VLAN 标记模式--enet-vlan-tag=num 指定新的以太网 802.1q VLAN 标记值--enet-vlan-cfi=num 指定以太网 802.1q VLAN CFI 值--enet-vlan-pri=num 指定以太网 802.1q VLAN 优先级--hdlc-control=num 指定 HDLC 控制值--hdlc-address=num 指定HDLC地址--user-dlt=num 设置输出文件 DLT 类型--user-dlink=str 用用户指定的数据重写数据链路层-i, --infile=str 输入待处理的pcap文件-o, --outfile=str 输出 pcap 文件-c, --cachefile=str 通过 tcpprep 缓存文件拆分流量-v, --verbose 通过 tcpdump 将解码的数据包打印到 STDOUT-V, --version Print version information 显示版本号-P, --pid 启动时打印tcpreplay的PID--stats=num 每 X 秒打印一次统计信息,如果为“0”,则在每个循环中打印一次-----------------------------------------------------------------------------------------T, --timer=str 选择包定时模式:select、ioport、gtod、nano--maxsleep=num 包与包之间相隔X毫秒-v, --verbose 通过 tcpdump 将解码的数据包打印到 STDOUT,可选参数,每发送一个报文都以 tcpdump 风格打印对应信息-------------------------------------------------------------------------------------------l, --loop=num 循环遍历捕获文件 X 次--loopdelay-ms=num 循环之间的延迟(以毫秒为单位)--pktlen 覆盖 snaplen 并使用实际的数据包 len,可选参数,指定循环次数------------------------------------------------------------------------------------------x, --multiplier=str 将重播速度修改为给定倍数-p, --pps=str 指定每秒发送报文的个数-------------------------------------------------------------------------------------------m #可选参数,指定一个倍数值,比默认发送速度快多少倍发送报文--------------------------------------------------------------------------------------------A, --decode=str 传递给 tcpdump 解码器的参数--skip-soft-errors 跳过写入软错误的数据包
tcpreplay --listnics(2)抓取接口的流量数据包
tcpreplay -i eth3 data.pcap(3)标记 client 和 server
tcpprep -a client -i test.pcap -o test.cach(4)修改源目的ip和mac地址
tcprewrite --endpoints=源ip地址:目的ip地址 --enet-dmac=上行目的mac地址,下行目的mac地址 --enet-smac=上行源mac地址,下行源mac地址 -i test.pcap -c test.cach -o test_result.pcap--endpoints: 重写ip地址 源ip地址:目的ip地址--enet-dmac: 覆盖目标以太网MAC地址 上行目的mac地址,下行目的mac地址--enet-smac: 覆盖源以太网MAC地址 上行源mac地址,下行源mac地址-i: 客户端到服务器/RX/主要流量输出接口-c: 双网卡回放报文必选参数,后跟文件名
(5)从新生成cach文件
tcpprep -a client -i test_result.pcap -o test_result.cach(6)tcpreplay回放报文
tcpreplay -i eth3 -I eth5 -c test_result.cach test_result.pcap(7)在IPS底层抓取流量包,发现已经触发IPS告警
ip link set eth2 mtu 1520ifconfig eth2 mtu 1520
tcpreplay -i eth3 -I eth5 -p 1 -c test_result.cach test_result.pcap-END-
热文推荐