12

I want to discover all my neighbors who enabled ipv6 protocol and still alive. I tried ip -6 neighbor show but it shows nothing.

Can someone recommend a tool and show some examples? Thanks.

Stefano
  • 425
  • 4
  • 5
Douglas Su
  • 263
  • 1
  • 3
  • 9

2 Answers2

30

Best to ping a special all nodes on a link multicast address - ff02::1 - and wait for the responses:

~ $ ping6 -I eth0 ff02::1
PING ff02::1(ff02::1) from fe80::a11:96ff:fe04:50cc wlan0: 56 data bytes
64 bytes from fe80::a11:96ff:fe02:50ce: icmp_seq=1 ttl=64 time=0.080 ms
64 bytes from fe80::1eaf:f7ff:fe64:ec8e: icmp_seq=1 ttl=64 time=1.82 ms (DUP!)
64 bytes from fe80::6676:baff:feae:8c04: icmp_seq=1 ttl=64 time=4047 ms (DUP!)
64 bytes from fe80::5626:96ff:fede:ae5f: icmp_seq=1 ttl=64 time=4047 ms (DUP!)
64 bytes from fe80::5626:96ff:fede:ae5f: icmp_seq=1 ttl=64 time=3049 ms (DUP!)
64 bytes from fe80::6676:baff:feae:8c04: icmp_seq=1 ttl=64 time=3049 ms (DUP!)
[...]
^C

A couple of points here:

  • you must specify the interface: -I eth0
  • The responses are link-local addresses - they can easily be converted to your global address by replacing the leading fe80: with your subnet's prefix, e.g. with 2001:db8:1234:abcd: if that's your subnet's prefix.

See http://www.iana.org/assignments/ipv6-multicast-addresses/ipv6-multicast-addresses.xhtml for some other multicast addresses other than ff02::1 that may be of an interest.

MLu
  • 24,849
  • 5
  • 59
  • 86
  • 5
    Personally I prefer to use `-c` to have the ping command stop automatically and `-n` such that it won't attempt reverse DNS, like this: `ping6 -c2 -n ff02::1%eth0`. Replacing the link local prefix with the global prefix will often give you the node's global address, but not always, it depends on the specific configuration. – kasperd Dec 01 '14 at 09:48
  • 6
    "_The responses are link-local addresses - they can easily be converted to your global address by replacing the leading `fe80:` with your subnet's prefix, e.g. with `2001:db8:1234:abcd:`_" That's not necessarily true. IPv6 can have, and even requires if addresses other than the link-local address, multiple networks on the same interface, and the IID portions of the addresses do not even need to be remotely the same. You must have a link-local address, but you can also have multiple global and/or ULA addresses on the same interface, and none need have the same IID or even prefix length. – Ron Maupin Jul 06 '17 at 02:28
  • Is there a way to do this from Windows? Windows' ping doesn't seem to have a "-I" equivalent. – BlueMonkMN Mar 05 '20 at 10:00
  • How do you remove the duplicates and only get the different ones? – Andyc Aug 05 '21 at 22:18
-6

I used a free software by NirSoft, called network tools. It automatically loads all your network information and you don't need the black cmd box.