Назад | Перейти на главную страницу

Сокращение файла pcap до всех операций с конкретным файлом NFS

У меня есть захват пакетов размером 80 ГБ (libpcap), и я хочу отфильтровать его до всего, что связано со всеми операциями с конкретным файлом / дескриптором файла NFS.

Как я могу этого добиться?

Я знаю следующие факты о том, что я хочу запечатлеть (в формате отображения 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

Но я не знаю, как сказать tshark, чтобы он давал мне соответствующие запросы / ответы / и т. Д.

Я пробовал:

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

чтобы попытаться уговорить tshark выполнить отслеживание, которое сделает полный графический интерфейс, но безрезультатно.

Работа в процессе:

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]))'\
   )"

С помощью tshark -r nfs.pcap -R 'nfs.fh.hash == 0x5c191ad8' вы можете получить все запросы или ответить с помощью fh. Для более сложных случаев, я думаю, вам нужно написать код. Для этого есть отличный инструмент http://git.linux-nfs.org/?p=mora/nfstest.git;a=summary