ndp implements the Neighbor Discovery Protocol, as described in
RFC 4861. MIT Licensed.
ndp is a utility for working with the Neighbor Discovery Protocol.
Install the package and utility using
$ go get github.com/mdlayher/ndp/...
To learn more about NDP, and how to use this package, check out my blog: Network Protocol Breakdown: NDP and Go.
Listen for incoming NDP messages on interface eth0 to one of the interface's global unicast addresses.
$ sudo ndp -i eth0 -a global listen $ sudo ndp -i eth0 -a 2001:db8::1 listen
Send router solicitations on interface eth0 from the interface's link-local address until a router advertisement is received.
$ sudo ndp -i eth0 -a linklocal rs
Send neighbor solicitations on interface eth0 to a neighbor's link-local address until a neighbor advertisement is received.
$ sudo ndp -i eth0 -a linklocal -t fe80::1 ns
An example of the tool sending a router solicitation and receiving a router advertisement on the WAN interface of a Ubiquiti router:
$ sudo ndp -i eth1 -a linklocal rs ndp> interface: eth1, link-layer address: 04:18:d6:a1:ce:b8, IPv6 address: fe80::618:d6ff:fea1:ceb8 ndp rs> router solicitation: - source link-layer address: 04:18:d6:a1:ce:b8 ndp rs> router advertisement from: fe80::201:5cff:fe69:f246: - hop limit: 0 - flags: [MO] - preference: 0 - router lifetime: 2h30m0s - reachable time: 1h0m0s - retransmit timer: 0s - options: - prefix information: 2600:6c4a:7002:100::/64, flags: , valid: 720h0m0s, preferred: 168h0m0s