我在复合实验室和中间交换机中拥有服务器和存储阵列。我想获取连接到每个交换机的系统的所有 MAC 地址列表。它应该与交换机供应商无关,就像没有 CDP 一样。并且也与 IP 无关!有什么建议吗?
答案1
目前尚无以供应商中立方式确定第 2 层拓扑的标准协议。ARP 用于在同一广播域中映射第 3 层地址 (IP) 和第 2 层地址 (MAC),但无法查询连接到网络的所有设备的 MAC。交换机可以通过 SNMP 公开此数据,但这不是必须的。可以监视网段上的流量以获取 MAC 地址,但并不要求所有 MAC 地址都出现在您的网段上才能存在于第 2 层广播域中。
您可以 ping 子网广播地址并检查您的 ARP 表(它们全部回复后将包含每个回复主机的条目),但请记住,并非所有主机都会回复诸如 ping 子网广播之类的内容。这也不会告诉您连接到了哪些交换机节点,但这是因为交换机应该是透明的,而以太网不携带或不需要这种元数据。
大多数管理型交换机都会提供一些方法来查看其 MAC 表,该表通常包含端口信息,可以通过 SNMP(较少见)或其 CLI(常见)。
答案2
网络迪斯科可能会让您接近 - 主要使用 SNMP 从交换机获取 mac 和 arp 信息,并允许您将 MAC 与 IP 放在一起并将其与主机名查找相结合,为您提供通常能够将主机名与 MAC 以及它们连接到的交换机相匹配的信息。如果交换机也支持它,它可以使用供应商特定的协议来发现连接的交换机的拓扑。
我使用它取得了不同程度的成功,因为有时数据会变得陈旧并且拒绝更新。