1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
|
# ndp [](https://github.com/mdlayher/ndp/actions) [](https://pkg.go.dev/github.com/mdlayher/ndp) [](https://goreportcard.com/report/github.com/mdlayher/ndp)
Package `ndp` implements the Neighbor Discovery Protocol, as described in
[RFC 4861](https://tools.ietf.org/html/rfc4861). MIT Licensed.
The command `ndp` is a utility for working with the Neighbor Discovery Protocol.
To learn more about NDP, and how to use this package, check out my blog:
[Network Protocol Breakdown: NDP and Go](https://mdlayher.com/blog/network-protocol-breakdown-ndp-and-go/).
## Examples
Listen for incoming NDP messages on interface eth0 to one of the interface's
global unicast addresses.
```none
$ 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.
```none
$ 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.
```none
$ 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:
```none
$ 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
```
|