簡介
本檔案介紹F2/F2e MAC表滿的條件和緩解它的方法。
每個晶片上交換機(SoC)的MAC限製為16k的F2模組報告隨機MAC表包含全部錯誤消息,利用率達到60%。為什麼線卡不能利用整個16k MAC表空間?
%L2MCAST-SLOT2-2-L2MCAST_MAC_FULL_LC: Failed to insert entry in MAC table for FE 1 swidx 271 (0x10f) with err (mac table full). To avoid possible multicast traffic loss, disable OMF. Use the con figuration CLI: "no ip igmp snooping optimise-multicast-flood"
必要條件
需求
思科建議您瞭解Nexus 7000架構。
採用元件
本文中的資訊係根據以下軟體和硬體版本:
- Nexus 7000(6.2.10及更新版本)。
- F2e系列線路卡。
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路正在作用,請確保您已瞭解任何指令可能造成的影響。
背景資訊
F2模組每個轉發引擎的SoC有16k MAC表空間。
每個模組上有12個這樣的SoC,每個服務有4個埠。
module-1# show hardware internal forwarding f2 l2 table utilization instance all
L2 Forwarding Resources
-------------------------
L2 entries: Module inst total used mcast ucast lines lines_full
------------------------------------------------------------------------------
1 0 16384 9647 265 9382 512 0
1 1 16384 7430 1 7429 512 0
1 2 16384 9654 264 9390 512 0
1 3 16384 7430 7 7423 512 0
1 4 16384 7564 8 7556 512 0
1 5 16384 7432 1 7431 512 0
1 6 16384 7418 0 7418 512 0
1 7 16384 558 0 558 512 0
1 8 16384 558 0 558 512 0
1 9 16384 558 0 558 512 0
1 10 16384 558 0 558 512 0
1 11 16384 7416 0 7416 512 0
此處的輸出突出顯示每個SoC的硬體MAC地址表的使用情況。
為了瞭解為什麼會收到MAC表已滿消息,您需要瞭解MAC表的劃分方式。此圖有助於您獲得視覺清晰度。
- F2線卡的MAC表為16k,分佈到頁面中。每頁可容納512個條目。所以,你總共只有32頁。您可以使用雙向雜湊將新的MAC放入其中一個頁面。
- 現在,我們假設每個頁面都使用行4。這意味著這32個唯一的MAC最後都有一個雜湊輸出,該輸出會將其放在每頁的同一行上。
- 如果生成了具有相同雜湊輸出的33rd MAC,則無法安裝它,並且可能會看到前面顯示的錯誤消息。
- 「線路全滿」列跟蹤達到此狀態的線路數。
此處的輸出還顯示每頁的行數,以及行是否達到滿線狀態。
只有以特定方式雜湊的MAC地址才會遇到此情況,但看不到其他MAC地址的任何問題。
通常,組播MAC地址可以更頻繁地看到這一點,因為它們不像單播MAC那樣隨機化。線卡通常通過行業標準RFC測試進行測試,以驗證使用效率。但是,在特定客戶環境中,某些MAC組合總是有可能沒有得到很好的最佳化,從而導致此錯誤。
緩解步驟
這些步驟有助於減少MAC表的使用。
- 修剪VLAN
- L3分離
- 其他設計選項(fabricpath)
- M2或F3模組用於未來增長
選項1:修剪Vlan
附註:VLAN 100和200沒有SVI。這是一個重要的假設,當您讀取選項2時,將會清楚顯示。
在此簡化設定中,不同SoC上有兩個主機。
N7KA-VDC-1(config-vlan)# sh mac address-table
Note: MAC table entries displayed are getting read from software.
Use the 'hardware-age' keyword to get information related to 'Age'
Legend:
* - primary entry, G - Gateway MAC, (R) - Routed MAC, O - Overlay MAC
age - seconds since last seen,+ - primary entry using vPC Peer-Link,
(T) - True, (F) - False , ~~~ - use 'hardware-age' keyword to retrieve age info
VLAN MAC Address Type age Secure NTFY Ports/SWID.SSID.LID
---------+-----------------+--------+---------+------+----+------------------
* 100 8478.ac0e.4742 dynamic ~~~ F F Eth6/4
* 200 8478.ac5b.2b42 dynamic ~~~ F F Eth6/5
N7KA-VDC-1# sh vlan internal bd-info vlan-to-bd 100
VDC Id Vlan Id BD Id
------ ------- -------
1 100 38
N7KA-VDC-1# sh vlan internal bd-info vlan-to-bd 200
VDC Id Vlan Id BD Id
------ ------- -------
1 200 39
N7KA-VDC-1(config-if-range)# sh hard mac address-table 6
FE | Valid| PI| BD | MAC | Index| Stat| SW | Modi| Age| Tmr|
| | | | | | ic | | fied|Byte| Sel|
---+------+---+------+---------------+-------+-----+-----+-----+----+----+-
0 1 1 38 8478.ac0e.4742 0x00053 0 0x081 1 138 1
0 1 0 39 8478.ac5b.2b42 0x00054 0 0x091 1 138 1
1 1 0 38 8478.ac0e.4742 0x00053 0 0x091 1 138 1
1 1 1 39 8478.ac5b.2b42 0x00054 0 0x081 1 138 1
每個FE(轉發引擎= SoC)顯示兩個正在使用的MAC地址。
現在,您可以修剪vlan,且配置如下圖所示。
修剪vlan後,每個FE(SoC)少有一個條目。 修剪vlan會阻止FE之間進行MAC地址同步。
N7KA-VDC-1(config-if-range)# sh hard mac address-table 6
FE | Valid| PI| BD | MAC | Index| Stat| SW | Modi| Age| Tmr|
| | | | | | ic | | fied|Byte| Sel|
---+------+---+------+---------------+-------+-----+-----+-----+----+----+-
0 1 1 38 8478.ac0e.4742 0x00053 0 0x081 1 138 1
1 1 1 39 8478.ac5b.2b42 0x00054 0 0x081 1 138 1
選項2.L3分離
此處,您已修剪VLAN,但假設您已在此VDC上為VLAN 100和VLAN 200配置交換機虛擬介面(SVI)。
MAC表將如下所示,其中MAC地址在FE之間同步,即使VLAN被修剪。這是因為已啟用交換器虛擬介面(SVI),這要求FE也知道來自其他VLAN的MAC位址。
N7KA-VDC-1(config-if-range)# sh hard mac address-table 6
FE | Valid| PI| BD | MAC | Index| Stat| SW | Modi| Age| Tmr|
| | | | | | ic | | fied|Byte| Sel|
---+------+---+------+---------------+-------+-----+-----+-----+----+----+-
0 1 1 38 8478.ac0e.4742 0x00053 0 0x081 1 138 1
0 1 0 39 8478.ac5b.2b42 0x00054 0 0x091 1 138 1
1 1 0 38 8478.ac0e.4742 0x00053 0 0x091 1 138 1
1 1 1 39 8478.ac5b.2b42 0x00054 0 0x081 1 138 1
如果刪除VLAN 200 SVI,則MAC表在FE0上看不到VLAN 200 mac的同步。
N7KA-VDC-1(config-if-range)# sh hard mac address-table 6
FE | Valid| PI| BD | MAC | Index| Stat| SW | Modi| Age| Tmr|
| | | | | | ic | | fied|Byte| Sel|
---+------+---+------+---------------+-------+-----+-----+-----+----+----+-
0 1 1 38 8478.ac0e.4742 0x00053 0 0x081 1 138 1
1 1 0 38 8478.ac0e.4742 0x00053 0 0x091 1 138 1
1 1 1 39 8478.ac5b.2b42 0x00054 0 0x081 1 138 1
該步驟的結論不是刪除SVI,而是分析是否可通過建立單獨的第3層VDC將SVI移至其他VDC。這不是一個簡單的設計步驟,需要詳細規劃。
選項3.備選設計體系結構,如Fabricpath
這些是更複雜的替代方案,超出了本文檔的詳述範圍,但可以提高MAC使用的效率。
選項4:使用高容量線卡,如M2/F3卡
M2和F3線卡具有更高的MAC表容量。
M2產品手冊==> MAC表(每SoC 128k)
F3產品手冊==> MAC表(每個SoC 64k)