Pndpd/README.md

34 lines
1.4 KiB
Markdown
Raw Normal View History

2021-12-22 07:11:12 -05:00
# PNDPD - NDP Responder + Proxy
2021-12-20 14:58:28 -05:00
## Features
2021-12-21 06:48:27 -05:00
- Efficiently process incoming packets using bpf (which runs in the kernel)
- Respond to all NDP solicitations on an interface
- Respond to NDP solicitations for whitelisted addresses on an interface
- Proxy NDP between interfaces with an optional whitelist for neighbor solicitations
- Optionally automatically determine whitelist based on the IPs assigned to the interfaces
2021-12-21 06:48:27 -05:00
- Permissions required: root or CAP_NET_RAW
## Usage
````
pndpd config <path to file>")
pndpd respond <interface> <optional whitelist of CIDRs separated by a semicolon>")
pndpd proxy <interface1> <interface2> <optional whitelist of CIDRs separated by a semicolon applied to interface2>")
2021-12-22 07:06:22 -05:00
````
More options and additional documentation in the example config file (pndpd.conf).
2021-12-22 07:06:22 -05:00
### Developing
It is easy to add functionality to PNDPD. For additions outside the core functionality you only need to keep the following methods in mind:
2021-12-21 06:48:27 -05:00
````
2021-12-22 07:06:22 -05:00
package main
import "pndpd/pndp"
2021-12-22 07:14:51 -05:00
pndp.ParseFilter(f string) []*net.IPNet
2021-12-22 07:06:22 -05:00
responderInstance := pndp.NewResponder(iface string, filter []*net.IPNet, autosenseInterface string)
responderInstance.Start()
responderInstance.Stop()
2021-12-22 07:12:13 -05:00
proxyInstance := pndp.NewProxy(iface1 string, iface2 string, filter []*net.IPNet, autosenseInterface string)
proxyInstance.Start()
proxyInstance.Stop()
2021-12-22 07:11:12 -05:00
````
Pull request are welcome for any functionality you add.