概述

邻居发现协议允许在Layer2广播域中找到与MNDP (MikroTik邻居发现协议),CDP (Cisco发现协议)或LLDP(链路层发现协议)兼容的设备。它可以用来规划你的网络。

邻居列表

邻居列表显示二层广播域中所有已发现的邻居。它显示连接到哪个接口邻居,它的IP/MAC地址,以及其他相关参数。该列表是只读的,邻居列表的示例如下:

[admin@MikroTik] /ip neighbor print
 # INTERFACE ADDRESS         MAC-ADDRESS       IDENTITY   VERSION    BOARD
 0 ether13   192.168.33.2    00:0C:42:00:38:9F MikroTik   5.99       RB1100AHx2
 1 ether11   1.1.1.4         00:0C:42:40:94:25 test-host  5.8        RB1000
 2 Local     10.0.11.203     00:02:B9:3E:AD:E0 c2611-r1   Cisco I...
 3 Local     10.0.11.47      00:0C:42:84:25:BA 11.47-750  5.7        RB750
 4 Local     10.0.11.254     00:0C:42:70:04:83 tsys-sw1   5.8        RB750G
 5 Local     10.0.11.202     00:17:5A:90:66:08 c7200      Cisco I...

Sub-menu: /ip neighbor

属性 说明
address (IP) 发现设备配置的最高IP地址
address6 (IPv6) 发现设备上配置的IPv6地址
age (time) 距离上次发现数据包的时间间隔
discovered-by (cdp | lldp| mndp) 显示邻居被发现的协议列表。该属性从RouterOS 7.7版开始可用。
board (string) RouterBoard模型。仅对安装了RouterOS的设备显示
identity (string) 配置的系统标识
interface (string) 发现设备所连接的接口名
Interface -name (string) L2广播域连接的邻居设备的接口名称。适用于CDP。
ipv6 (yes| no) 显示设备是否使能IPv6。
Mac -address (MAC) 远端设备的Mac地址。可用于与mac-telnet连接。
platform (string) 平台名。例如“microtik”、“cisco”等
software- ID (string) 远端设备的RouterOS软件ID。仅适用于安装了RouterOS的设备。
System -caps (string) 链路层发现协议(LLDP)报告的系统能力。
system-caps- Enabled (string) 链路层发现协议(LLDP)报告的启用的系统能力。
unpack (none | simple| uncompressed-headers| uncompressed-all) 显示发现报文的压缩类型。
uptime (time) 远端设备的正常运行时间。仅对安装了RouterOS的设备显示。
version (string) 远程设备上安装的软件版本号

从RouterOS v6.45开始,为了避免内存耗尽,每个接口的邻居表项数量被限制为(总RAM(兆字节))*16。

发现配置

使用interface列表可以改变接口是否参与邻居发现。如果该接口被包含在发现接口列表中,则该接口将发送系统的基本信息,并处理接收到的在二层网络中广播的发现报文。将接口从接口列表中删除,将使该接口无法发现邻居,也无法在该接口上发现该设备本身。

/ip neighbor discovery-settings

属性 说明
** find -interface-list (string;Default:static**) 发现协议将在其上运行的接口列表
lldp-med-net-policy-vlan (integer 0..4094; Default: disabled) LLDP-MED网络策略TLV发布的VLAN ID。允许为支持LLDP-MED的设备(如VoIP电话)分配VLAN ID。只有发现了支持LLDP-MED的设备的接口才会添加TLV。其他TLV值是预定义的,不能修改:
- 应用类型—语音
- VLAN类型
- L2优先级- 0
- DSCP优先级- 0
当与网桥接口配合使用时,(R/M)STP协议应启用protocol-mode设置。
另外,为了避免LLDP-MED配置错误,应该使用“protocol”设置排除其他邻居发现协议(如CDP)。
mode (rx-only | tx-only | tx-and-rx; Default: tx-and-rx) 选择邻居发现报文的发送和接收方式。该配置从RouterOS 7.7版开始生效。
protocol (cdp | lldp | mndp; Default: cdp,lldp,mndp) 使用的发现协议列表

从RouterOS v6.44开始,邻居发现工作在单独的从接口上。当一个主接口(如bonding或bridge)被包含在发现接口列表中时,它的所有从接口将自动参与邻居发现。可能只允许对某些从接口发现邻居。为此,请在列表中包括特定的从接口,并确保不包括主接口。

/interface bonding
add name=bond1 slaves=ether5,ether6
/interface list
add name=only-ether5
/interface list member
add interface=ether5 list=only-ether5
/ip neighbor discovery-settings
set discover-interface-list=only-ether5

现在,邻居列表显示了接收到发现消息的主接口和实际的从接口。

[admin@R2] > ip neighbor print
 # INTERFACE ADDRESS                                           MAC-ADDRESS       IDENTITY   VERSION    BOARD
 0 ether5    192.168.88.1                                      CC:2D:E0:11:22:33 R1         6.45.4 ... CCR1036-8G-2S+
   bond1

LLDP

根据RouterOS的配置,可以在LLDP报文中发送不同的TLV (type-length-value),包括:

  • 机箱子类型(MAC地址)

  • 端口子类型(接口名称)

  • 生存时间

  • 系统名称(系统标识)

  • 系统描述(平台—MikroTik、软件版本—RouterOS版本、硬件名称—RouterBoard名称)

  • 管理地址(端口上配置的所有IP地址)

  • 系统功能(启用的系统功能,例如网桥或路由器)

  • LLDP-MED媒体功能(MED功能列表)

  • LLDP-MED网络策略(为语音流量分配VLAN ID)

  • 端口扩展(端口扩展器和控制器桥通告)

  • LLDPDU结束