Использование tcpdump для извлечения содержимого NFS RPC
Довольно простой вопрос … Я запускаю tcpdump и пытаюсь проанализировать содержимое пакетов TCP между сервером / клиентом. Я вижу, что RPC «GETATTR» получен, что здорово! Однако я хочу знать файл, для которого выполняется RPC. Я предполагаю, что это содержимое пакета. Когда я печатаю tcpdump как ASCII.
From server: tcpdump -vvv -s 200 port 2049 14:45:38.408949 IP (tos 0x0, ttl 64, id 58408, offset 0, flags [DF], proto TCP (6), length 296) myserver.nfs > myclient.2469839164: reply ok 240 getattr NON 3 ids 0/3 sz 0
Здесь и на других сайтах показано, что можно сопоставить имена файлов. Может быть, это зависит от платформы? Я просто хочу убедиться, что нет tcpdump, которого я не вижу.
- tcpdump / tshark: просмотр только исходящих запросов TCP-соединений
- tcpdump несколько pcaps с xargs
- TCPDump для захвата Datagram Tracepath6
- tcpdump и nc с udp
- Как захватить трафик со всего веб-сайта (включая внешние серверы) с помощью tcpdump
Я запускаю RH5 – Kernel 2.6.32-279.el6.x86_64
- Использование как Grep, так и Cut
- tcpdump не будет захватывать весь пакет
- Почему tcpdump захватывает многие пакеты с помощью «(tcp-syn)! = 0», но не с «tcp & (tcp-syn)! = 0"
- Как узнать количество сообщений, полученных в очереди сообщений в определенный момент времени
- Трафик tcpdump трафика через SSH - но нет доступа root ssh
- Огромная потеря пакетов на openwrt
- Как повернуть файлы tcpdump?
- Синтаксическая ошибка tcpdump при указании portrange как документально
2 Solutions collect form web for “Использование tcpdump для извлечения содержимого NFS RPC”
Итак, я думаю, мне удалось найти «обходной путь». Вы не сможете получить имя файла, используя NFSv3, но вы сможете указать индекс.
Используя Wireshark,
Перейдите в Edit -> Preferences -> Protocols -> NFS -> отметьте все поля и установите «Decode nfs handle как: KNFSD_LE.
Сохрани это. Теперь захватите и отфильтруйте протокол NFS.
Поиск пакета GETATTR Reply (Call in #) Regular file mode: ???.
Откройте это упакованное и разверните следующее:
Network File System -> obj_attributes
проверьте значение fileid , это будет номер inode файла.
на сервере перейдите на раздел nfs и
find . -inum inode
С NFSv4 вы видите вызов с именем файла напрямую.
Вы можете посмотреть инструмент nfstrace на github: ( https://github.com/epam/nfstrace ). Он отслеживает все захваченные процедуры NFSv3 / NFSv4.