Como reproduzir o tráfego HTTP de um site real em outro ambiente (por exemplo, VM)

5

Existe um bug na minha aplicação web que não consigo reproduzir. Todos os logs parecem ok ou pelo menos não consigo ver nada de anormal. Mas isso acontece. Então eu pensei que poderia gravar todo o tráfego de / para o meu site esperando que o bug acontecesse e tendo isso, reproduzi-lo de alguma forma no meu ambiente de teste. E isso aconteceu! Então eu tenho os dados capturados por isso:

tcpdump -s 1514 -X tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0) -Z root -C 20 -W 1000 -w capture.cap

e eu não sei o que posso fazer com isso. Eu tenho uma máquina virtual executando a mesma versão do aplicativo da web e gostaria de reproduzir os dados gravados nele. Como devo abordar isso?

[EDITAR]

Eu tentei fazer isso com tcpreplay seguindo este exemplo , mas meu servidor da web não registrou nenhum tráfego.

Minha máquina de testes (Fedora 8) é executada no VMWare Player. Assumindo que o IP da máquina é 192.168.41.128 e tem uma interface de rede: eth0 (exceto loopback) - como os passos 2 e 3 do exemplo devem ser no meu caso? Devo executá-lo na mesma máquina ou em outro?

    
por tomazy 12.08.2011 / 06:40

3 respostas

4

Você tem algumas opções, todas legais e nenhuma delas é um produto drop-in. Alguns assembly necessário.

O que você provavelmente desejará fazer é esquecer os registros que você já inspecionou ou, pelo menos, abandonar qualquer desejo de reproduzir esses arquivos. Configure um desses sistemas e use-o de maneira controlada para testar seu tráfego.

    
por 12.08.2011 / 07:23
1

Você pode usar tcptrace para converter o arquivo pcap em solicitações separadas que podem ser reproduzidas usando netcat . Aqui está um exemplo:

tcpdump -s 0 port http -i en0 -w dump.pcap
tcptrace -e dump.pcap
cat *.dat | nc -v <IP_OF_YOUR_TEST_HOST>

A segunda etapa pode criar muitos arquivos para que * funcione corretamente. Neste caso, use um loop for para o terceiro comando:

for file in $(ls | grep .dat); do cat $file | nc -v <IP_OF_YOUR_TEST_HOST>; done

Observe que isso pode ser mais lento que o tráfego original.

    
por 15.02.2017 / 09:30
1

O GoReplay é projetado para capturar tráfego de produção e reproduzir isso em ambientes de teste. Consulte o link ou o link para obter mais informações .

    
por 13.01.2017 / 13:44