Linux

如何修復錯誤的 arp 條目?

  • May 8, 2012

我只是猜測arp是我的問題……

我有一個 linux drbd 伺服器集群設置,由於一些電源問題不得不拔掉連接兩台伺服器的開關。結果,兩台伺服器都成為主伺服器,並在幾秒鐘內使用了相同的 IP 地址。(這導致了腦裂,但這是另一個問題)

我的問題是,現在有些伺服器似乎可以看到集群的共享 IP 地址,而有些則不能。我想知道這是否可能是某些交換機/埠將流量發送到一台伺服器,而有些則發送到另一台伺服器的情況?

如果這是問題所在,我該如何解決?

  • 並且…這是在交換機上還是在伺服器上完成的?

如果它真的是一個 arp 問題,那麼問題將僅限於執行路由的網路設備(因為 ARP 的用途 - 將 L3 地址(IP)映射到 L2 地址(MAC))或可能位於伺服器的 ARP 記憶體中在同一個 IP 子網中。除非它是 L3 交換機,否則它不會涉及交換機。

要解決 cisco 路由器上的問題,您可以執行以下命令來清除 arp 記憶體並允許它重建:

clear arp

要從可能正在記憶體錯誤資訊的伺服器中刪除錯誤的 arp 條目(因此,不是無法訪問的伺服器,而是無法訪問的伺服器),您可以手動從 ARP 中刪除虛假條目記憶體,其中IP地址是無法訪問的伺服器的IP。請注意,相同的語法似乎在 Linux 和 Windows 上都有效:

arp -d <ip-address>

您還可以從無法訪問的伺服器發送免費 ARP,以導致同一 IP 子網上的其他主機更新其 ARP 記憶體(我的筆記中有這個,但我承認我很久沒有使用它了時間。我不記得這是否允許您跳過上述步驟,或者只是縮短其他主機在執行上述命令後添加 arp 條目的過程):

arping -q -A -c 1 -I eth0 <ip-address>
arping -q -U -c 1 -I eth0 <ip-address>

以上所有內容都是針對 ARP 問題,但您在問題中特別提到了一個開關。如果是只使用 L3 進行管理的交換機,那麼數據流問題肯定是 MAC 記憶體問題,而不是 ARP 記憶體問題。在這種情況下,您可以在交換機上執行以下命令來清除動態記憶體內容:

clear mac-address-table dynamic

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