如何修复错误的 arp 条目?

Bre*_*nt 3 linux cluster switch arp

我只是猜测arp是我的问题......

我设置了一个 linux drbd 服务器集群,由于一些电源问题不得不拔掉连接两台服务器的开关。结果,两台服务器都成为主服务器并在几秒钟内使用相同的 IP 地址。(这导致了裂脑状况,但这是另一个问题)

我的问题是现在有些服务器好像可以看到集群的共享IP地址,有些不能。我想知道这是否可能是某些交换机/端口将流量发送到一台服务器,而另一些发送到另一台服务器的情况?

如果这是问题所在,我该如何解决?

  • 并且...这是在交换机上完成的,还是在服务器上完成的?

jj3*_*j33 8

如果确实是 arp 问题,则问题将仅限于执行路由的网络设备(因为 ARP 的用途是将 L3 地址 (IP) 映射到 L2 地址 (MAC))或可能位于服务器的 ARP 缓存中在同一个 IP 子网中。它不会涉及交换机,除非它是 L3 交换机。

要解决 cisco 路由器上的问题,您可以运行以下命令来清除 arp 缓存并允许其重建:

clear arp
Run Code Online (Sandbox Code Playgroud)

要从可能缓存错误信息的服务器中删除错误的 arp 条目(因此,不是无法访问的服务器,而是无法访问的服务器),您可以手动从 ARP 中删除虚假条目缓存,其中 IP 地址是无法访问的服务器的 IP。请注意,此相同的语法在 Linux 和 Windows 上似乎都有效:

arp -d <ip-address>
Run Code Online (Sandbox Code Playgroud)

您还可以从无法访问的服务器发送一个免费的 ARP 以导致同一 IP 子网上的其他主机更新它们的 ARP 缓存(我的笔记中有这个,但我承认我很久没有使用它了时间。我不记得这是否允许您跳过上述步骤,或者只是缩短其他主机在运行上述命令后添加 arp 条目的过程):

arping -q -A -c 1 -I eth0 <ip-address>
arping -q -U -c 1 -I eth0 <ip-address>
Run Code Online (Sandbox Code Playgroud)

以上所有内容均针对 ARP 问题,但您在问题中特别提到了交换机。如果是只使用L3进行管理的交换机,那么数据流问题就一定是MAC缓存的问题,而不是ARP缓存的问题。在这种情况下,您可以在交换机上运行以下命令来清除动态缓存内容:

clear mac-address-table dynamic
Run Code Online (Sandbox Code Playgroud)