二层交换机如何知道哪个端口是相邻的交换机端口,哪个端口连接到主机?

网络工程 转变 交换机端口
2021-07-12 23:25:02

我想知道交换机背后的机制是什么,以便它了解哪些端口连接到主机(终端设备),哪些端口连接到另一台交换机?

想象一下中继和访问链接,但就我而言,我没有使用 VLAN,我只需要这些信息。

2个回答

交换机只是记录在给定端口上进入的帧的源 MAC 地址。它不关心是否有单个主机或另一个连接在端口上的交换机(为此目的)。

如果连接了单个主机,则该端口将仅记录该主机的 MAC 地址。

如果它是交换机,那么可能会有来自连接到此端口上的此交换机的所有主机的流量,并且交换机将了解所有这些主机的 MAC 地址。

因此,如果您发现与某个端口关联的大量 MAC 地址,则该端口很可能连接到另一台交换机(或连接到嵌入虚拟交换机的管理程序)。

交换机(和其他设备,如路由器、网桥、接入点)运行链路层协议来通告自己是很常见的。交换机具有这种功能并不普遍(通常只有更易于管理的模型),当然它的启用也不是普遍的。在与其他组织的链接之间启用它是很少见的。

  • LLDP(链路层发现协议)是多厂商协议,IEEE 定义为 802.1AB
  • CDP(思科发现协议)是一种非常常见的专有协议

在最简单的描述中,它们将帧发送到特殊的 MAC 地址,表明它们的存在和详细信息,但从不转发这些帧。

Cisco 路由器可能会显示:

R1#show cdp neighbors 
Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge
                  S - Switch, H - Host, I - IGMP, r - Repeater, P - Phone, 
                  D - Remote, C - CVTA, M - Two-port Mac Relay 

Device ID        Local Intrfce     Holdtme    Capability  Platform  Port ID
c8f9f9123456     Fas 3              131             S I   SG 300-28 gi12
ap2.example.com  Fas 1              140              T    AIR-AP123 Fas 0

也可以通过 SNMP 查询邻居列表。