本节书摘来自异步社区《CCNP SWITCH 300-115认证考试指南》一书中的第2章,第2.5节管理交换表,作者 【美】David Hucaby(戴维 胡卡比),更多章节内容可以访问云栖社区“异步社区”公众号查看
2.5 管理交换表
CCNP SWITCH 300-115认证考试指南
你可以通过查看或查询交换表来验证交换机所学习到的信息。另外,你可能想要查看交换表,从而找到特定的MAC地址是在哪个交换端口学习到的。你还能够管理各种交换表的大小,以便优化交换机的性能表现。
2.5.1 验证CAM表
为了查看CAM表的内容,你可以使用如下语法格式的show mac address-table EXEC命令:
Switch# show mac address-table dynamic [ address mac-address | interface type
mod/num | vlan vlan-id ]
上述命令可用于查看交换机动态学习到的条目。你可以增加关键字address来指定一个特定的MAC地址,或关键字interface或vlan来查看在特定接口或VLAN学习到的地址。
例如,假设你需要查找是哪一个端口学习到了主机MAC地址0050.8b11.54da,那么你可以使用show mac address-table dynamic address 0050.8b11.54da命令来验证。该命令的输出如例2-1所示。
根据上面的输出内容,你可以看到该主机连接在属于VLAN 54的Gigabit Ethernet 1/0/1接口。
提示:
如果你的Catalyst IOS交换机不接受mac address-table的命令格式,那么你可以尝试在关键字mac和address-table之间增加一个连字符。例如,Catalyst 4500和6500系列仍然采用show mac-address-table命令。
假设该命令无法输出任何有用的结果,即显示在特定接口和VLAN下,没有找到对应的MAC地址,那么这意味着什么呢?可能的情况是,主机并未发送任何可被交换机用于学习到主机位置的数据帧,或是出现了一些并不常见的情景。例如,主机安装了两块网络接口卡(NIC)执行流量的负载均衡;一块NIC只用于接收流量,而另一个块则只用于发送流量。因此,交换机无法监听和学习到只用于接收流量的NIC的MAC地址。
为了查看接口Gigabit Ethernet 1/0/29上学习到的所有MAC地址,你可以使用show mac address-table dynamic interface gig1/0/29命令。例2-2所示的输出显示了只有一台主机的MAC地址在该接口被学习到,因此可以推断该接口只连接了一台PC。
但是,如果使用相同的命令来查看接口Gigabit Ethernet 1/1/1,那么情况会有些不同。例2-3所示的输出中列出了许多的MAC地址——全部由一个接口学习得到。一个交换机接口在怎样的情况下才可能学习到这么多地址呢?答案是,该接口一定连接了另一台交换机,或是连接了拥有众多设备的其他网络(基本上已经没有人再使用集线器进行组网了)。当来自于其他设备(如交换机)的数据帧被接口Gigabit Ethernet 1/1/1接收到后,那么交换机便会把数据帧的源MAC地址和学习到MAC地址的端口添加到自己的CAM表中1。
提示:
在日常的网络维护中,你经常需要根据特定的MAC地址来定位主机的位置。对于大型网络而言,想要确定特定主机(MAC地址)连接在哪台交换机以及哪个交换端口是非常困难的。为了更加有效地执行查找,建议采用如下的方法。首先,从网络的中心或核心开始,查看CAM表条目并找到特定的MAC地址。查看条目所示的交换端口,然后使用CDP命令获取与该端口相连接的邻居交换机的信息。接着跳转至邻居交换机,继续CAM表的查询过程。重复这一过程,从一个交换机跳转至另一个交换机,直至到达网络的末节,并最终找到特定MAC地址的物理连接。
如果需要的话,你可以使用下面的EXEC命令来手动清除动态学习到的CAM表项:
Switch# clear mac address-table dynamic [ address mac-address | interface type
mod/num | vlan vlan-id ]
2.5.2 验证TCAM表
交换机所维护的TCAM表拥有“自给自足”的特点。访问控制列表会自动地被编译或合并到TCAM表的条目中,因此几乎没有可供配置的内容。唯一需要关注的是TCAM资源的消耗状况。你可以使用show platform tcam utilization命令来查看TCAM的使用率,如例2-5所示。在命令输出中,你应当留意已使用的数值和最大支持的数值。
可供TCAM表使用的Mask、Value组合和LOU条目的数量是有限的。如果在交换机上配置了大量的访问控制列表,或是交换机需要执行太多的4层端口操作,那么TCAM表和寄存器可能会溢出。当配置ACL时,如果发生了TCAM表空间的溢出,那么交换机会产生一条系统日志消息,通告系统在尝试把ACL编译到TCAM条目中时发生了溢出。
2.5.3 管理交换表的大小
无论位于网络中的何种位置,Cisco高端交换机平台都支持执行高效率的多层转发。例如,性能强大的Catalyst 4500和6500系列交换机,无论是作为核心层、汇聚层或接入层设备,都能够为网络提供极为优秀的可用性。这些设备拥有处理能力强劲的交换引擎和非常可观的表空间,这些先天优越的条件支持它们能够从容应对各种网络应用的要求。一些其他的交换机型号,如采用固化结构设计的2960、3750和3850系列,它们的可用表空间相对较小。CAM、FIB和其他一些表必须共享表空间资源;如果一个表变得过大,那么其他表的大小必然会受到挤压。
值得庆幸地是,你可以为交换机选择拥有不同侧重点的交换类型,也就是说,你可以影响相关交换表的大小。例如,为了使交换机侧重于2层交换,CAM表的大小应当增加,而FIB或路由表空间应当适量缩减;如果一台交换机被用于执行路由转发,那么FIB表的空间应当增大,而CAM表应当减小。
SDM负责管理交换机的存储空间划分。你可以使用下面的EXEC命令来查看当前的分区优先级和表大小分配:
Switch# show sdm prefer
例2-6所示的命令输出显示了交换机正在使用“desktop default”存储模板,该模板适用于接入层环境。根据列表中的数值来看,desktop default模板为2层交换(单播MAC地址或CAM表)和3层路由(IPv4单播路由或FIB表)提供了平衡的资源分配。除此以外,该模板还兼顾了IPv4 ACL,并对IPv6提供了一些有限支持。
你可以使用下面的全局配置命令来配置交换机基于其他的SDM模板进行操作:
Switch(config)# sdm prefer template
为了使得新模板生效,交换机必须执行重启操作。表2-3和表2-4列出了各种类型的模板,以及它们每个存储分区所支持的条目数量。单播MAC地址和单播路由两行代表了CAM和FIB表空间。为了区分不同的SDM模板,你应当留意每一种模板类型所侧重的功能。
事实上,你并不需要记住下面的表和内容;但是你需要掌握如何查看当前的模板和如何配置一个新的模板。
1译者注:只有当两台交换机使用二层连接时才会出现一个接口学习到众多MAC地址的情况,这是因为2层转发不会对数据帧进行重写操作。