Skip to the content.

Ping is not identity

TL;DR: Something answering at an address is not proof it’s your device — identify by the service it speaks, not by whether it replies, and remember that randomized client MACs quietly break address reservations.

The situation

You write down a device’s address once, early, when you are moving fast and everything is new. From then on, that address is the device as far as every script, every note, and every troubleshooting session is concerned. When you want to know whether the device is up, you ping it. It replies. You move on.

A home network has dozens of things on it, most of which answer ICMP and none of which say what they are.

What bit me

A wall tablet’s address was documented wrong for months. The address in the notes belonged to an unrelated appliance on the same network — a pool controller — which answered pings reliably. That is precisely why the error survived: every check “confirmed” the tablet was up. The tablet was up too, at a different address, so nothing ever contradicted the note badly enough to force a re-check.

Underneath that was a second problem. The tablet used a randomized per-network MAC, so the address reservation keyed to its hardware MAC never applied. It drifted whenever the lease turned over. And on a separate occasion a device was declared dead and scheduled for replacement when it had simply drifted to a new address — the hardware was fine.

The last piece cost an extra hour on its own: after the tablet was moved to a correct, reserved address, the integration that talked to it kept failing, because that integration had cached both the old address and the old randomized MAC in its own stored configuration. It failed silently and looked exactly like dead hardware.

The general rule

Reachability is not identity. ICMP proves that some network stack exists at an address. It says nothing about which device it belongs to, and any address you did not verify by its service is a guess that will eventually be wrong.

The second half of the rule is narrower but bites just as hard: a reservation keyed to a randomized MAC is not a reservation. Modern client operating systems default to per-network MAC randomization for privacy, which is a good default and quietly incompatible with static assignment. The address will hold until it doesn’t.

How to apply it

How to verify