目錄

簡介

必要條件

需求

採用元件

背景資訊

緩解步驟

選項1：修剪Vlan

選項2.L3分離

選項3.備選設計體系結構，如Fabricpath

選項4：使用高容量線卡，如M2/F3卡

簡介

本檔案介紹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）