Был здесь в последнее время. Я подумал, что, если я сбросил трафик tcp с помощью tcpdump, я мог бы переписать место назначения пакетов и затем воспроизвести его на новых серверах приложений. Итак, я начал с чего-то вроде этого:
tcpdump -i eth1 dst -s 0 -w - port 80 | \
tcprewrite --mtu-trunc --infile=- --outfile=- \
--dstipmap=<source_ip>:<destination_ip> | \
tcpslice -w - - | tcpreplay --intf1=eth1 -
Это не сработало по разным причинам, поэтому я начал копать еще немного и нашел Gor: небольшой проект Go от Леонида Бугаева из Granify, написанный именно для того, чего мы хотели достичь.
Вот как мы закончили, используя Gor: http://devblog.springest.com/testing-big-infrastructure-changes-at-springest/
У нас также есть поваренная книга шеф-повара: https://github.com/Springest/gor-chef
Надеюсь, это поможет.