我已将多台 PC 连接到 2960 交换机,然后进入特权模式并输入:show mac-address-table但表为空。然后我从其中一台PC ping 广播地址:ping 192.168.1.255并再次在交换机上使用之前的命令,mac 地址表列出了所有PC 的mac 地址,不知道是否有更短的方法?即交换机上的命令无需执行 ping 步骤即可将连接设备的 mac 地址收集到其端口?谢谢。
单个命令来收集连接设备的 mac 地址以进行切换
编辑:要实际回答这个问题:show mac-address-table或show mac address-table(取决于平台和软件生成)是查看像 2960 这样的 Cisco 交换机上的 MAC 地址表的单个命令。该表出现空的事实很可能是正确的。
原因如下:
MAC 地址表(有时称为 CAM 表)通常是动态的,它们的条目会在给定的超时(通常为 300 秒)后过期。
一旦以太网帧到达交换机端口,就会添加一个条目。它的源 MAC 地址被保留并被添加到 CAM 表中,它的老化计时器开始递减。
如果连接的设备保持沉默超过 300 秒(或给定的 CAM 表老化值),它们的 MAC 地址将从 CAM 表中删除。
如果另一台设备需要与这样一个休眠的对等方通信,交换机将不得不执行“未知单播泛洪”并从所有端口(更准确地说:给定 VLAN 的所有活动/转发端口)发送给定的以太网帧。一旦感兴趣的设备以以太网帧响应,CAM 表就会立即(重新)填充新条目。
可以使用粘性或静态 CAM 表条目进行更高级的设置,但这是另一回事。
这话说...
如果需要不断填充的 CAM 表,并且如果不需要允许连接的设备长时间“休眠”(例如为了节省能源),并且如果感兴趣的设备/表条目的范围涵盖 IPv4启用设备,有一个技巧可以帮助很多,而无需大量高级配置:
许多路由器(启用 CEF 的 Cisco 路由器肯定会这样做)对其 ARP 缓存进行主动维护,但默认 ARP 超时为 4 小时。通过将它们的 ARP 超时降低到低于 300 秒的某个值(这几乎没有危害),路由器将在它们到期前不久重新查询其 ARP 缓存中的条目。这将反过来触发来自设备的响应,然后这些 ARP 响应将填充交换机的 CAM 表。
当网络设置是新的时,最初交换机中的 mac-address 表将是空的,因为交换机没有收到将帧转发到目的地的请求,没有 ARP 泛洪,也没有广播流量在交换机中创建 mac-address 表。当一个请求到达交换机时,它的关联 mac-address 表被创建。
要以某种方式在交换机上连接完整的 mac-address 表,必须从源或向目的地发起流量,以便 mac-address 表内置在 switch 中。