NDISC6(8)
hiii bestie π welcome to the page for ndisc6, from the System Manager's Manual β she's the ICMPv6 Neighbor Discovery tool and she's lowkey iconic. let's get into it π«Ά
πΈ NAME πΈ
ndisc6 β ICMPv6 Neighbor Discovery tool β¨
π¦ SYNOPSIS π¦
ndisc6 [-1mnqv] [-r attempts] [-s source_ip] [-w wait_ms] <IPv6 address> <iface>
π DESCRIPTION π
okay so. NDisc6 is a Unix program that implements the ICMPv6 Neighbor Discovery in userland β which is wild, because normally the kernel is the one doing all that. not here. she does it herself. main character energy fr fr π
what is she for, you ask? she looks up the link-layer address of any on-link IPv6 node. and when we say link-layer address, we mean the layer 2 address β which is the MAC in the case of Ethernet π
you must tell her:
- the IPv6 address of the node you're curious about, and
- the networking interface she should perform the lookup on
no address, no interface, no lookup. that's the deal π
β¨ OPTIONS β¨
-1,--singleβ dip out the second the first advertisement lands. this is the default, so she's already doing it π-h,--helpβ show some help and bounce. classic.-m,--multipleβ she waits around for possible duplicate advertisements and prints every single one of them. greedy? no. thorough. π-n,--numericβ if that first parameter isn't a valid IPv6 address, she will not try to resolve it as a DNS hostname. no DNS detours, we stay numeric π-q,--quietβ only print the link-layer address, and print nothing if it fails. mostly useful when you're calling the program from a shell script, iykyk π§-rattempts,--retryattempts β send ICMPv6 Neighbor Discovery that many times until a reply comes back, or just abort. by defaultndisc6tries 3 times before aborting (MAX_MULTICAST_SOLICITandMAX_UNICAST_SOLICITfrom RFC2461) π₯-ssource_ip,--sourcesource_ip β specify the IPv6 address to be used as the source for the neighbor solicitation packets. pick your fighter β-V,--versionβ display program version and license, then exit. bye π-v,--verboseβ display verbose information. also the default. she's a talker, we love that π-wwait_ms,--waitwait_ms β wait wait_ms milliseconds for a response before retrying. by defaultndisc6waits 1 second between each attempt (RETRANS_TIMERfrom RFC2461) β³
if ndisc6 doesn't get any response after the specified number of attempts, waiting wait_ms milliseconds each time, she exits with code 2. on error, she exits with code 1. otherwise she exits with code 0 π
this is the good part: the exit code lets you check whether a host is on-link or not. scripts eat this up fr fr π
π DIAGNOSTICS π
if you're getting no response while you know the remote host is up, it's most likely that it is not on-link β meaning you have to cross one or more routers to reach it. that's the whole plot twist π«
by design, IPv6 nodes ignore ICMPv6 Neighbor Discovery packets that come from nodes not on the same link (i.e. the same Ethernet segment), and they do it for the sake of security. technically, that's done by ensuring the Hop limit (TTL) is 255 π
also note: you cannot use ndisc6 to look up the local host's link-layer address. not a thing. sorry bestie π
π SECURITY π
ndisc6 should be setuid root so non-privileged users can use it. she will drop her root privileges before any attempt is made to send or receive data from the network β that way the possible impact of a security vulnerability stays as small as possible. she's responsible, unlike some programs π
π SEE ALSO π
π AUTHOR π
RΓ©mi Denis-Courmont <remi at remlab dot net>
and that's the whole page, bestie π this was ndisc6, version $Date$, page NDISC6(8) from the System Manager's Manual β go forth and discover some neighbors πβ¨π¦
π¦ where this page comes from
- alpine 3.22: ndisc6-doc 1.0.8-r1 Β· GPL-2.0-or-later
- alpine 3.23: ndisc6-doc 1.0.8-r1 Β· GPL-2.0-or-later
- alpine 3.24: ndisc6-doc 1.0.8-r1 Β· GPL-2.0-or-later
- arch rolling: ndisc6 1.0.9-1 Β· GPL-2.0-only OR GPL-3.0-only
- debian bookworm: ndisc6 1.0.5-1+b2
- debian trixie: ndisc6 1.0.7-1
- epel 10: ndisc6 1.0.8-4.el10_2 Β· GPL-2.0-only OR GPL-3.0-only
- epel 9: ndisc6 1.0.7-3.el9 Β· GPL-2.0-only OR GPL-3.0-only
- fedora 43: ndisc6 1.0.8-4.fc43 Β· GPL-2.0-only OR GPL-3.0-only
- fedora 44: ndisc6 1.0.8-5.fc44 Β· GPL-2.0-only OR GPL-3.0-only
- nixos 26.05: ndisc6 1.0.4
- nixpkgs unstable: ndisc6 1.0.9
- ubuntu jammy: ndisc6 1.0.4-2ubuntu2
- ubuntu noble: ndisc6 1.0.7-1ubuntu2
- ubuntu questing: ndisc6 1.0.7-1ubuntu2
- ubuntu resolute: ndisc6 1.0.8-1
- ubuntu stonking: ndisc6 1.0.8-1
- Copyright Β© 2004-2006 RΓ©mi Denis-Courmont
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms