Skip to content
/ ndp Public

Package ndp implements the Neighbor Discovery Protocol, as described in RFC 4861. MIT Licensed.

License

Notifications You must be signed in to change notification settings

mdlayher/ndp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

6da6235 · Mar 12, 2024
Mar 12, 2024
Nov 22, 2022
Mar 12, 2024
Mar 18, 2022
Mar 12, 2024
Nov 12, 2022
Nov 12, 2022
Mar 18, 2022
Mar 18, 2022
Apr 8, 2022
Mar 18, 2022
Mar 12, 2024
Feb 8, 2020
Feb 19, 2019
Feb 20, 2019
Mar 12, 2024
Mar 12, 2024
Apr 8, 2022
May 11, 2022
Jan 16, 2018
Mar 18, 2022
Mar 12, 2024
Mar 12, 2024
Feb 8, 2020

Repository files navigation

ndp Test Status Go Reference Go Report Card

Package ndp implements the Neighbor Discovery Protocol, as described in RFC 4861. 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.

Examples

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