SuperAPI AI 工具集

routeros-mndp

通用与其它

查看项目

更新于 10-16 03:43

技能介绍

用途:MNDP是RouterOS用于局域网自动设备发现的UDP广播/组播协议,也是WinBox查找路由器的同一协议,RouterOS设备默认参与。用于为MikroTik设备实现发现功能。

协议基础:传输UDP,端口5678;IPv4广播至255.255.255.255:5678,IPv6组播至ff02::1;收发同端口,双向;无认证(只读发现);作用域限于二层广播域,不跨路由。

发现流程:监听方向255.255.255.255:5678发送刷新包,触发局域网内RouterOS设备回复TLV编码公告(含身份、版本、板卡、MAC、IP、运行时长等);回复异步到达;设备约每60秒周期公告,被动监听可行但填充慢。最小刷新包为4字节全零头(00 00 00 00);也可追加显式刷新TLV(类型6、长度0),9字节形式为00 00 00 00 00 06 00 00 00,RouterOS均接受。

报文格式:响应前4字节为固定头;从偏移4起迭代TLV,类型与长度为big-endian。常见TLV:1 MAC、5 身份、7 版本、8 平台、10 运行时长(4字节little-endian uint32,协议中唯一小端值)、11 软件ID、12 板卡、14 unpack、15 IPv6、16 接口名、17 IPv4。类型2、3、9与packing/压缩相关,可跳过。

多接口行为:每活跃接口各发一条公告,MAC、接口名、IP不同,identity相同,应按identity分组、用MAC区分默认identity。

可靠性:有线局域网1-3秒,WiFi/拥塞3-10秒,隧道5-20秒,高延迟10-30秒。建议每5秒重发刷新包(同WinBox)。短窗口扫描结果不完整,不可据此判定设备离线。

RouterOS集成:/ip/neighbor/print查看发现结果;/ip/neighbor/discovery-settings控制参与接口与协议(cdp、lldp、mndp可组合),可用接口列表禁用MNDP;REST可用curl -u admin: http://<router-ip>/rest/ip/neighbor。

安全:MNDP无认证,会暴露主机名、版本、型号、IP、MAC、运行时长,应像对待开放SNMP团体一样处置,在不信任接口禁用。

实现注意:需SO_REUSEPORT与WinBox等共存;过滤自身回环包;IPv6用addMembership("ff02::1");解析需处理截断与长度校验。