Deleting a neighbor entry with ip neigh delete removes one cached or permanent mapping from the running neighbor table. This is useful when a wrong static mapping was added, when a stale cache entry should be cleared, or when a host should resolve the peer again from scratch.
The ip neigh subcommand manages both IPv4 ARP entries and IPv6 neighbor-discovery entries. A delete operation targets the protocol address on one interface, removes that single runtime record, and leaves the rest of the interface and routing state unchanged. If the peer is still reachable, normal traffic can recreate a dynamic entry automatically.
The target should be matched against the current table before deletion, especially on remote systems. Upstream iproute2 also warns that manually deleting kernel-created noarp entries can behave unpredictably, so this is best used for ordinary dynamic or administratively added permanent entries rather than special kernel-managed records.
$ ip neigh show to 192.0.2.50 dev lab0 192.0.2.50 lladdr 02:11:22:33:44:55 PERMANENT
$ sudo ip neigh delete 192.0.2.50 dev lab0
ip neigh delete matches the address and interface; extra lladdr and nud values are ignored for the delete action.
$ ip neigh show to 192.0.2.50 dev lab0
An empty result means the current table no longer has a matching entry for that address on that interface.
$ ping -c 1 192.0.2.50 PING 192.0.2.50 (192.0.2.50) 56(84) bytes of data. 64 bytes from 192.0.2.50: icmp_seq=1 ttl=64 time=0.46 ms --- 192.0.2.50 ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms
Successful traffic usually triggers a fresh ARP or neighbor-discovery lookup when the peer is still reachable.
$ ip neigh show to 192.0.2.50 dev lab0 192.0.2.50 lladdr 02:11:22:33:44:55 REACHABLE
Relearned dynamic entries commonly return as REACHABLE or STALE rather than PERMANENT.
Deleting the runtime entry does not change static neighbor settings managed by NetworkManager, netplan, systemd-networkd, or distro-specific network scripts.