I had shut down my computer and was getting ready to wrap up the day when the phone rang. My wife always groans and tells me to let these last minute calls go to voice mail, but I never pay attention. I didn't recognize the caller id, though I did know it was from a mid-western state. I answered.
The caller had a downed Unix machine. Big crash, dead hardware, but he had a backup machine that he had restored backups to and had changed the IP to match the old server. But networking was not working: he couldn't ping any other machine and other machines couldn't ping that.
"Arp caching", I said. Local networks actually communicate using hardware MAC addresses; machines maintain tables that match IP to MAC. Every machine on the network would have the MAC address of the dead server matched with its IP and would be trying to communicate with that. Simple..
"Well, yeah, but this has been up for five hours."
Ooops. That's not MAC caching. I don't remember how long Windows keeps its arp cache, but it isn't that long. Hmmm..
I had him check routing, netconfig, hosts: everything I could think of. This machine was working before you changed the address? Check, yes. Hmmmmm.
Well, maybe the NIC card has just coincidentally gone dead. Is there another nic card in the machine?
"Actually, there are four NIC cards. I wasn't sure which was good, so I put the same address on all of them".
Ahhh. There it is: the machine is confused as to where to route packets: I'm not sure which card it would choose, but obviously it wasn't the one plugged in! I told him to either delete the other cards or change them to unique IP addresses. I held on the phone while he did that and rebooted; all was well after that.
You can put multiple addresses on one card through ip aliasing, but you can't put the same address on multiple cards quite that easily. IP bonding can do this, but that's not what was being done here. Every card could route LAN packets, but which card would? That was the problem.
Got something to add? Send me email.
More Articles by Anthony Lawrence © 2011-03-10 Anthony Lawrence
If you don't know anything about computers, just remember that they are machines that do exactly what you tell them but often surprise you in the result. (Richard Dawkins)