ndn-tools:dissect-wireshark的使用

用于wireshark的NDN包分析器

NDN包解析器需要至少1.12.6版本的Wireshark,并支持LUA。
NDN包的解析支持以下几种情况:

  • NDN数据包封装在IPv4/IPv6 UDP数据包的源或目的端口6363或56363。

  • NDN数据包封装在IPv4/IPv6 TCP段中,其源端口或目的端口为6363。

  • NDN包封装在IPv4/IPv6 TCP/HTTP WebSocket包中,其源端口或目的端口为9696。

  • NDN数据包用EtherType 0x8624封装在以太网帧中。

  • NDN数据包封装在协议类型为0x0077的PPP帧中。
    可利用的解析特点:

  • 当UDP数据包被分割时,将在完整的IP重新组装后进行分析。如果无法完全重新组装(例如,错误的校验和或缺失的片段),则不进行解析。

  • 当多个NDN包是单个UDP数据报、TCP段或WebSocket有效负载的一部分时,所有NDN包都会被分解。

  • 当单个NDN包分散在多个TCP段或WebSocket有效负载上时,在成功地重构TCP流的必要部分之后,对其进行剖析。如果无法重建TCP流的必要部分(例如,丢失的段),则不执行分析。

  • 当一个NDN包没有对齐到段或负载边界时,解析器使用以下伪代码定义的试探法在段内搜索任何有效的NDN包:

  for each offset in range (0, packet length)
    type <- read TLV VarNumber from (buffer + offset)
    length <- read TLV VarNumber from (buffer + offset + length of type field)

    if type is either 5 or 6  // Type of NDN Interest of Data packet)
       and length is less 8800 // Current (soft) limit for NDN packet size
    then
       dissect NDN packet from (buffer + offset)
    end if

目前,解析器不支持 NDNLPv2包。
用法:
默认情况下,解析脚本ndn.lua安装到/usr/local/share/ndn-dissect-wireshark中。在一些平台上,它也可能安装在/usr/share/ndn-dissect-wireshark或/opt/local/share/ ndn - dissect-wireshark中。要为Wireshark会话启用dissector,使用-x命令行选择,指定到ndn.lua的完整路径。脚本:

wireshark -X lua_script:/usr/local/share/ndn-dissect-wireshark/ndn.lua

类似的,NDN包解析器可以在使用tshark 时启用:

tshark shark -X lua_script:/usr/local/share/ndn-dissect-wireshark/ndn.lua

要为所有未来的Wireshark会话启用NDN包解析器,您可以创建/编辑Wireshark的init.lua脚本,它位于/usr/share/wireshark, /usr/local/share/wireshark,/Applications/Wireshark.app/Contents/Resources/share/wireshark
或类似的位置,这取决于平台和Wireshark的安装方式。dofile命令应该添加到init.lua的末尾文件:

-- dofile("/full/path/to/ndn.lua")
dofile("/usr/local/share/ndn-dissect-wireshark/ndn.lua")

有关如何使用Lua的更详细信息,请参考Lua.wiki。
需要知道的问题:
由于安全问题,在使用根权限启动Wireshark时,不允许加载定制的lua脚本。有两种变通方法:

  • 运行具有根权限的Wireshark、dumpcap或tcpdump来捕获文件中的流量,稍后运行不具有根权限的Wireshark并分析捕获的流量。
  • (小心潜在的安全隐患)允许非根用户捕获包:

测试

经实验发现,采用将lua脚本嵌入wireshark的方式更合适,但无法用根用户打开嵌入lua的wireshark,因此我们设置wireshark在非根用户下也能抓包,具体参考ubuntu下安装wireshark(以及配置非root)
我们用ndnping工具进行测试,效果如下:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Wireshark解析NDN数据包,您可以通过创建/编辑Wireshark的init.lua脚本来启用NDN包解析器。该脚本位于/usr/share/wireshark,/usr/local/share/wireshark,/Applications/Wireshark.app/Contents/Resources/share/wireshark或类似的位置,具体取决于您的平台和Wireshark的安装方式。您需要在init.lua文件的末尾添加以下命令:dofile("/usr/local/share/ndn-dissect-wireshark/ndn.lua")。这将加载NDN包解析器。\[1\] 类似地,您也可以在使用tshark时启用NDN包解析器。您可以使用以下命令:tshark -X lua_script:/usr/local/share/ndn-dissect-wireshark/ndn.lua。这将在tshark加载NDN包解析器。\[2\] 根据实验结果,将lua脚本嵌入Wireshark更为适合。但是,请注意,以根用户身份无法打开嵌入了lua的Wireshark。因此,我们需要设置Wireshark在非根用户下也能够进行数据包捕获。您可以参考适用于Ubuntu的Wireshark安装和配置非root用户的指南。\[3\] 通过使用ndnping工具进行测试,您可以验证NDN数据包在Wireshark是否被正确解析。 #### 引用[.reference_title] - *1* *2* *3* [ndn-toolsdissect-wireshark使用](https://blog.csdn.net/MakiSlytherin/article/details/103417647)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值