Neighbor Discovery

邻居发现协议可用于在二层广播域中发现与 MNDP、CDP 或 LLDP 兼容的设备,显示已连接邻居的 IP/MAC 地址和接口。配置选项包括协议选择、发现间隔调整,以及用于 QoS 和 VLAN 共享的 LLDP TLV。

邻居发现

邻居发现协议允许您在二层广播域中发现与 MNDP(MikroTik Neighbor Discovery Protocol)、CDP(Cisco Discovery Protocol)或 LLDP(Link Layer Discovery Protocol)兼容的设备。它们可用于绘制您的网络拓扑。

所有只读邻居参数记录在 /ip/neighbor CLI 参考中。

通过 LLDP 发现的邻居显示在一个单独的只读菜单 /ip/neighbor/lldp 中。

与聚合来自所有发现协议(MNDP、CDP 和 LLDP)邻居的通用 /ip/neighbor 菜单不同,/ip/neighbor/lldp 仅显示通过 LLDP 发现的条目。

lldpRemTable SNMP 表仅报告通过 LLDP 发现的邻居。仅由 CDP 或 MNDP 发现的条目被排除在 SNMP LLDP-MIB 之外。

发现设置配置在 /ip/neighbor/discovery-settings 菜单中。

您可以使用接口列表更改接口是否参与邻居发现。如果接口包含在发现接口列表中,它将发送有关系统的基本信息,并处理在二层网络中广播的接收到的发现数据包。从接口列表中移除接口将同时禁用此接口上的邻居发现,以及在该接口上发现此设备本身的可能性。

邻居发现在各个从接口上工作。当主接口(例如 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-MED 网络策略 VLAN 示例

此示例为级联 PC 的 VoIP 电话配置交换机端口。电话使用带标签流量传输语音,通过 LLDP-MED Network Policy TLV 分配。PC 使用无标签流量,由桥接端口 PVID 分配到不同的 VLAN。

在此设置中:

  • ether1 是上行 trunk 端口,将所有 VLAN 以带标签方式承载到路由器。
  • ether2 是电话端口。VoIP 电话直接连接,PC 通过电话连接。
    • 语音流量使用 VLAN 100(带标签),通过 lldp-med-net-policy-vlan 通告。
    • 来自 PC 的数据流量使用 VLAN 200(在电话端口上无标签),由桥接端口 pvid 分配。

创建 bridge 并添加端口:

/interface/bridge
add name=bridge1 frame-types=admit-only-vlan-tagged

/interface/bridge/port
add bridge=bridge1 interface=ether1 frame-types=admit-only-vlan-tagged
add bridge=bridge1 interface=ether2 pvid=200

创建 bridge VLAN 表。trunk 端口以带标签方式承载两个 VLAN。电话端口以带标签方式承载语音 VLAN。PC 的数据 VLAN 由桥接端口 pvid 分配,它会动态添加无标签成员关系——不需要显式的 untagged=ether2:

/interface/bridge/vlan
add bridge=bridge1 tagged=ether1,ether2 vlan-ids=100
add bridge=bridge1 tagged=ether1 vlan-ids=200

启用 LLDP-MED 并设置语音 VLAN。禁用 CDP 以避免干扰 LLDP-MED:

/ip/neighbor/discovery-settings
set lldp-med=yes lldp-med-net-policy-vlan=100 protocol=lldp,mndp

在 bridge 上启用 VLAN 过滤:

/interface/bridge/set bridge1 vlan-filtering=yes

说明

LLDP-MED Network Policy TLV 仅在发现支持 LLDP-MED 设备的接口上发送。它不会在没有任何支持 MED 邻居的接口上广播。 信息

有关 bridge VLAN 配置的更多详细信息,请参阅 Bridge VLAN Filtering。

LLDP

根据 RouterOS 配置,LLDP 消息中可以发送不同的类型-长度-值(TLV)。这包括:

  • 机箱 ID(MAC 地址)。
  • 端口 ID(接口名称)。
  • 生存时间(Time To Live)。
  • 系统名称(系统身份)。
  • 系统描述(平台 - MikroTik,软件版本 - RouterOS 版本,硬件名称 - RouterBoard 名称)。
  • 管理地址(端口上配置的所有 IP 地址)。
  • 系统能力(已启用的系统能力,例如 bridge 或 router)。
  • 端口描述(如果发送接口是 bridge 或 bond 的一部分,则为组合接口名,如 "bridge/ether1",否则为与端口 ID 相同的接口名称)。
  • IEEE 802.1 Port VLAN ID。
  • IEEE 802.1 Port And Protocol VLAN ID。
  • IEEE 802.1 VLAN Name。
  • IEEE 802.3 MAC/PHY Configuration/Status。
  • IEEE 802.3 Power Via MDI。
  • IEEE 802.3 Maximum Frame Size。
  • LLDP-MED Media Capabilities(MED 能力列表)。
  • LLDP-MED Network Policy(为语音流量分配的 VLAN ID)。
  • LLDP-MED Extended Power via MDI。
  • End of LLDPDU。