Com tshark -r nfs.pcap -R 'nfs.fh.hash == 0x5c191ad8' você pode obter todos os pedidos ou responder com fh. Para casos mais complicados, acho que você precisa escrever algum código. Existe uma ótima ferramenta para o link
Eu tenho uma captura de pacotes de 80GB (libpcap) e quero filtrá-la para tudo que envolva todas as operações em um determinado arquivo / filehandle do NFS.
Como posso conseguir isso?
Eu sei os seguintes fatos sobre o que eu quero capturar (no formato de exibição tshark):
nfs.name == ".o1_mf_1_1093__1366653401581181_.arc
nfs.fh.hash == 0x5c191ad8
nfs.fhandle == 3a:4f:47:4c:20:11:7b:48:7f:88:4f:16:94:90:a0:34:9a:fa:cf:71:e1:6a:95:fc:3e:3b:4e:6a:bb:9c:c6:c4:49:db:80:ca
Mas eu não sei como dizer ao tshark para me dar as solicitações / respostas / etc aplicáveis.
Eu tentei:
tshark -r ginormous.pcap -w 1366653401581181.pcap \
-R "nfs.fh.hash == 0x5c191ad8" \
-o nfs.file_name_snooping:TRUE \
-o nfs.file_full_name_snooping:TRUE \
-o nfs.fhandle_find_both_reqrep:TRUE
para tentar persuadir tshark a fazer a espionagem que a GUI completa faria, mas sem sucesso.
Com tshark -r nfs.pcap -R 'nfs.fh.hash == 0x5c191ad8' você pode obter todos os pedidos ou responder com fh. Para casos mais complicados, acho que você precisa escrever algum código. Existe uma ótima ferramenta para o link
Trabalho em andamento:
tshark -r $BIGFILE -T fields -e rpc.xid -R "nfs.fh.hash == 0x5c191ad8" | \
tshark -r $BIGFILE -R "$(\
python -c 'import sys; xids = sys.stdin.readlines(); print("||".join(["rpc.xid=={0}".format(xid.strip()) for xid in xids]))'\
)"