IPv6 Tools on the Command Line


neighbour discovery:

# trigger the discovery
ping6 -c2 -I eth0 ff02::1
# print the results:
ip -6 neigh

Or with the network interface specified in a shell variable and the commands put in a single command line:

ping6 -c2 -I $IFACE ff02::1 && echo -e "\nIPv6 Neighbours:\n" && ip -6 neigh

Disable accepting router advertisements:

echo 0 > /proc/sys/net/ipv6/conf/eth0/accept_ra

Directly discard existing IPv6 addresses:

ip -6 addr flush scope global dev eth0

Mac OS X

Neighbour discovery (command for IPv4 was arp -a -n):

ndp -a -n  # the -n prevents ndp from reverse looking up the IPs


Most of the standard network utilities of Windows will also work for IPv6 related matters. Standard utiilties are:

  • ipv6: the main command line tool for anything IPv6 in Windows.
  • ipconfig: no specific command to display or do things IPv6 specific, but it will display and affect IPv6 settings if applicable.
  • ping: with the switch /6 it will display anything IPv6 related. Related command is ping6 which is the same as ping /6.


Status of the cached neighbour discovery entries:

  • noarp -
  • incomplete - address resolution is in progress and the link-layer address of the neighbor has not yet been determined.
  • reachable - the neighbor is known to have been reachable recently (within tens of seconds ago).
  • stale - the neighbor is no longer known to be reachable but until traffic is sent to the neighbor, no attempt should be made to verify its reachability.
  • delay - the neighbor is no longer known to be reachable, and traffic has recently been sent to the neighbor, probes are delayed for a short period in order to give upper layer protocol a chance to provide reachability confirmation.
  • probe - the neighbor is no longer known to be reachable, and unicast Neighbor Solicitation probes are being sent to verify reachability.