用途:MNDP 是 RouterOS 用于局域网自动发现设备的 UDP 广播/组播协议,也是 WinBox 查找路由器的协议。本资料面向需要为 MikroTik 设备实现发现功能的开发者,说明协议线格式、行为及与 RouterOS /ip/neighbor 的集成。
主要能力与协议要点:传输为 UDP,端口 5678;IPv4 广播到 255.255.255.255:5678,IPv6 组播到 ff02::1;收发同端口,双向;无认证,只读发现;作用域限于二层广播域,不跨路由器。发现流程:监听方发送 9 字节刷新包(原始字节 00 00 00 00 00 00 00 00 00)触发设备立即回复;设备回复为 TLV 编码公告,含 identity、version、board、MAC、IP、uptime 等;设备也会约每 60 秒主动公告。响应包前 4 字节为 type 与序列号,其后为 TLV 记录,TLV 的 type 与 length 为小端 uint16。资料列出 TLV 类型:1 MAC(6 字节大端)、5 Identity、7 Version、8 Platform、10 Board、11 Uptime(4 字节小端 uint32)、12 Software ID、13 Board 备用、14 Unpack、15 IPv6、16 Interface Name、17 IPv4(4 字节大端)。多接口设备每接口各发一条公告,MAC、接口名、IP 不同而 identity 相同,应按 identity 分组展示。
使用方式:RouterOS 侧可用 /ip/neighbor/print 查看发现结果,用 /ip/neighbor/discovery-settings 控制参与接口与协议(cdp、lldp、mndp),可通过接口列表禁用某接口的 MNDP;REST 可用 curl -u admin: http://<router-ip>/rest/ip/neighbor。实现时需处理端口共享(SO_REUSEPORT/SO_REUSEADDR)、自回环过滤、IPv6 组播加入,并注意响应时间随网络条件变化,建议每 5 秒重发刷新包,勿将短窗口内未响应设备判为离线。
限制:MNDP 无认证,会暴露主机名、版本、板卡型号、IP、MAC、uptime,应视为开放 SNMP 团体,在不可信接口上禁用。资料未提供收费、价格或平台支持信息。