本節書摘來自異步社群《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指令:
上述指令可用于檢視交換機動态學習到的條目。你可以增加關鍵字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表項:
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指令來檢視目前的分區優先級和表大小配置設定:
例2-6所示的指令輸出顯示了交換機正在使用“desktop default”存儲模闆,該模闆适用于接入層環境。根據清單中的數值來看,desktop default模闆為2層交換(單點傳播mac位址或cam表)和3層路由(ipv4單點傳播路由或fib表)提供了平衡的資源配置設定。除此以外,該模闆還兼顧了ipv4 acl,并對ipv6提供了一些有限支援。
你可以使用下面的全局配置指令來配置交換機基于其他的sdm模闆進行操作:
為了使得新模闆生效,交換機必須執行重新開機操作。表2-3和表2-4列出了各種類型的模闆,以及它們每個存儲分區所支援的條目數量。單點傳播mac位址和單點傳播路由兩行代表了cam和fib表空間。為了區分不同的sdm模闆,你應當留意每一種模闆類型所側重的功能。
事實上,你并不需要記住下面的表和内容;但是你需要掌握如何檢視目前的模闆和如何配置一個新的模闆。
1譯者注:隻有當兩台交換機使用二層連接配接時才會出現一個接口學習到衆多mac位址的情況,這是因為2層轉發不會對資料幀進行重寫操作。