Hp-Procurve

長 TCP 會話上的 HP Procurve MAC 記憶體超時

  • May 10, 2011

我們有一個 HP 2510G 交換機網路連接回 HP2912al 以進行聚合。我們注意到,一旦 mac-cache-timeout 過期,像 MySQL DB 轉儲這樣的長時間執行的連接就會開始湧入所有網路埠。對目標 IP 執行“arping”會停止泛洪(返回埠到埠),直到記憶體超時再次到期。

我可以理解為什麼單向 UDP 流量會發生這種情況,但我不知道為什麼 TCP 會發生這種情況。我認為來自接收機器的 ACK 會導致 Procurves 刷新其記憶體中的 MAC 地址。相反,他們似乎只從 ARP 中學習。

有任何想法嗎?

您在這里處理的基本問題是 MAC 條目超時並且沒有及時更新,這會導致單播氾濫。在這種情況下,有幾點需要懷疑:

  1. MAC 表流失。如果您在交換機的衝突域中有太多主機,則當正在使用的條目超時時,您可能會導致 MAC 表流失。當您通過交換機連接大量 VLAN 以連接兩個主要網路時,通常會發生這種情況。
  2. STP 更改往往會導致洪水氾濫。STP 中的錯誤配置(具有相同 ID 的交換機…)和不穩定的鏈路可能會導致記憶體清除和意外氾濫。
  3. 如果您執行 802.1q 並且沒有對稱設置,您可以讓交換機了解錯誤 VLAN 上的目標。這將導致交換機最終忘記該條目並開始泛洪。當回復來自不同的 VLAN 時,交換機將繼續泛洪。
  4. 你有一個不對稱的路由情況。如果您的路由是不對稱的並且沒有流量反過來,您可以輕鬆地使 MAC 表中的條目超時。例如,在下圖中,從路由器 1 到路由器 2 的流量經過 Switch1,從路由器 2 到路由器 1 的流量經過 Switch2。在這種情況下,您可能會被主機 3 淹沒。
  host1
   |
  Router1
 |      |
Switch1  Switch2 - Host3
 |      |
  Router2
   |
  host2
  1. 純單向流量。在這種情況下,您需要將 mac 表 ttl 增加到足夠多,以便來自作業系統的免費 arp(如果配置為發送任何)使表保持新鮮,甚至硬配置轉發。請注意,純粹的單向流量非常少見。MYSQL 轉儲不應是單向的。我只在非對稱路由的情況下看到過這種情況。

作為權宜之計,我建議部署 arpd(或類似的)來提供優雅的 arp 並阻止氾濫。它應該具有與 ARPPing 相同的效果(您發現它可以暫時解決問題)。但是你真的應該調試這個。

我的第一站是驗證路由是否確實一直是對稱的,因為最有可能出現不對稱路由問題。

此外,請查看關於校園網路中單播泛洪的 Cisco 文件,該文件非常好。

引用自:https://serverfault.com/questions/268245