Appearance
Appearance
Wireshark 包含若干首选项,这些首选项会影响 NFS 以及 NFS 相关协议的剖析方式。 这些设置不仅影响 NFS,还会影响所有其他使用 NFS filehandles 的 NFS 相关协议,例如 NFS-ACL、MOUNT、NLM、KLM。
设置此首选项后,Wireshark 将 snoop 所有 LOOKUP、CREATE 等 NFS commands,并在内部建立 filehandle 与实际 filename 之间的映射。 当某个 filehandle 的名称已为 Wireshark 所知,并且 Wireshark 之后在捕获中再次遇到该 filehandle 时,Wireshark 会在 dissect pane 中插入一个额外字段,其中包含该 filehandle 所引用文件的名称。在下面的示例中,由于 filehandle 已知,Wireshark 插入了额外字段 'Name: b',以告知用户此 file/filehandle 的名称是 'b'。 也可以使用显示过滤器名称对该字段进行过滤
nfs.name只有当 filehandle 的实际名称已知时,才会显示该字段。如果没有匹配的 LOOKUP、CREATE 等可供 wireshark 学习映射,则不会显示该字段。
除了 snooping filehandles 之外,Wireshark 还可以尝试跟踪实际文件的完整 pathname。只有当从初始 MOUNT filehandle 到所有子目录再到实际文件的所有 filehandles 都已被 Wireshark 学习到时,这才有效。 在下面的示例中,由于 trace 中包含原始 MOUNT call,并且 LOOKUP calls 告诉了我们路径中所有子目录的名称,Wireshark 在这里向 filehandle 的 dissection 中添加字段 'Full Name: 139.25.22.102:/home/girlich/export/b'。 也可以使用显示过滤器名称对该字段进行过滤
nfs.full_name请记住,只有在文件的完整路径已知时,该字段才会出现在 dissection 中。
第三个也是最后一个选项告诉 Wireshark,为 NFS 及相关协议在 Requests 和 Responses 之间维护关于 filehandles 的状态。这样可以对 NFS packets 进行更高级/更有用的过滤。 如果你熟悉 NFS,可能已经见过,特定文件的 filehandle 实际上只存在于 request/response 对中的一个 packet 中。filehandle 只出现在 request 或 response 中的一个,而不会同时出现在两者中。 因此,当我们过滤
nfs.name=="b"时,我们实际上只会看到包含实际 filehandle 的 packets。这通常并不太有帮助,我们大多数时候想看到的是对该 filehandle 进行操作的所有此类 calls 的 BOTH request 以及 response。 启用此选项后,Wireshark 会为所有 request/response 对保持状态,以记住整个 request/response 对中访问了哪些 filehandles。然后,如果我们过滤
nfs.name=="b"并且该过滤器会匹配示例中的 packet 40,则此选项也会让过滤器匹配 packet 39,因为它是与 40 中 response 关联的 request。 此首选项使以下过滤器应用于完整的 request/response 对,而不是单个 packets
nfs.namenfs.full_namenfs.hash下面的示例使用 sample captures 页面中的示例捕获 nfsv3.pcap.gz。
加载此示例捕获,并尝试在所有首选项都启用时过滤
nfs.name=="b"你将看到它是如何工作的。
Snoop FH to filename mappings Snoop full path to filenames Fhandle filters find both request/response
Imported from https://wiki.wireshark.org/NFS_Preferences on 2020-08-11 23:17:28 UTC