0

So, I have something weird that I've never seen before and it's a little difficult to describe.

Say I have 2 servers.

Server A: 192.168.1.5, Server B: 192.168.1.21

These two servers are on the same subnet and can ping out to the internet just fine. They can also ping servers on other subnets just fine. They can also ping a Windows host within the same subnet.

But what happens if both hosts are running Linux (Say Ubuntu Server or CentOS 7, or a mixture of the two -- Just both machines running Linix).

If Server A pings Server B -- No Response.

If server B pings Server A -- no response.

If Server A and Server B ping each other at the same time -- it starts responding until one is rebooted, then I'm back to the same issue. It will pass traffic back and forth all day long as long as one of the hosts doesn't reboot.

This is a great temporary fix, if you have two or three servers. But my network has over 80 servers on it and it's really annoying to have to do this for every host on the network every time they reboot.

How could I fix something like this?

  • When A is failing to ping B, what do you see when you run tcpdump on B? – BowlOfRed Sep 21 '17 at 6:07
  • 1
    As the answer says, it's probably an ARP issue. The question is what part of the configuration of the servers and the subnet causes the ARP requests to get lost. This will need a close look at everything involved, so nothing we can answer remotely. – dirkt Sep 21 '17 at 6:56
  • Do you filer icoming ICMP messages with iptables somehow? Does your Windows machine ping the Linux hosts? You should add your iptables rules to your question. – xhienne Sep 22 '17 at 11:27
0

While it does look the issue is related to ARP, and Eduardo's answer has some value as a diagnostic and a workaround, it is not a SOLUTION.

Sadly I don't have a solution - this is a very strange problem.

if it were my network, I would be looking very hard at any switches on the network, checking for duplicated IP addresses and also using wireshark with the NICs in promiscuous mode to determine if the issue was arising on either of the hosts or elsewhere on the network.

4

Try to manually create an ARP entry on each server pointing to the other.

On Server A:

arp -s <B-Server's ip> <B-Server's MAC>
arp -s 192.168.1.21 01:23:45:67:89:AB

On Server B:

arp -s <A-Server's ip> <A-Server's MAC>
arp -s 192.168.1.5 AB:89:67:45:23:01

Replace the MAC addresses above by the actual ones.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.