Update README

This commit is contained in:
Daniel Adolfsson 2019-12-15 01:05:02 +01:00
parent 5027c3009a
commit 87cd8abe9e
2 changed files with 26 additions and 29 deletions

View File

@ -2,17 +2,19 @@
* Version 1.0.0
* ndppd has been rewritten from scratch, and is now pure C. This should
be mostly compatible with the latest release 0.2.5, but several
contributions have been backported from master.
* ndppd has been rewritten from scratch, and is written in C (C99).
Some features has been ported over from the master branch.
* Support for epoll has been added for better scaling. It's still
possible to revert to using poll by defining NDPPD_NO_USE_EPOLL.
* Managing routes and keeping track of local addresses are now done
through the use of Netlink. As such, /proc/* support is now gone.
through the use of Netlink on Linux and AF_ROUTE for BSD/MacOS.
Autowire is implemented using this.
* Support for /proc has been removed.
* Man pages are now written in .adoc format.
2017-01-07 Johnathan Sharratt <johnathan.sharratt@gmail.com>

View File

@ -2,36 +2,31 @@
This is the development branch for version 1.0 of *ndppd*.
It's currently barely usable, but I hope to be able to have a beta ready before the end of the year.
Please read the manpages [ndppd.conf.5](ndppd.conf.5.adoc) and [ndppd.8](ndppd.8.adoc).
## To do
## Status
### In progress
***ndppd*** was rewritten from scratch using C (C99).
- [x] EPOLL support
- [x] rtnetlink: Tracking routes
- [x] rtnetlink: Tracking local addresses
- [x] rtnetlink: Cleanup
- [ ] rtnetlink: Managing routes
- [x] Automatic detection of internal interfaces (auto)
- [ ] Automatically managing routes (autowire)
- [x] IPv6/ICMPv6 packet validation
- [ ] Reloading through SIGHUP
- [x] Configuration engine
- [x] Forwarding of Neighbor Solicitation messages
- [x] Forwarding of Neighbor Advertisement messages
- [x] Daemonization
- [x] Locking pidfiles
- [x] Syslog
- [x] Custom memory management (*nd_alloc*)
- [x] Refreshing and expiring sessions
- [x] Set and restore PROMISC and ALLMULTI
It's currently **highly experimental**, but I expect a beta to be ready by the end of the year.
### Undecided
- [ ] Control socket
- [ ] Cleaning up pidfiles
## Description
***ndppd***, or ***NDP Proxy Daemon***, is a daemon that proxies *neighbor discovery* messages. It listens for *neighbor solicitations* on a
specified interface and responds with *neighbor advertisements* - as described in **RFC 4861** (section 7.2).
There are several methods available when determining of a *neighbor advertisement* should be sent back:
The first method, and the most common, is the ***autoresolve*** method. It uses the routing table to determine how the target is reachable.
If a valid route exists, a *neighbor solicitation* is sent out through that interface. Only once ***ndppd*** receives a *neighbor advertisement*
from the target will it start responding to *neighbor solicitations*.
The second method is the ***explicit*** method. A *neighbor solicitation* is sent through a manually provided interface. This
method also allows for the use of ***autowire*** which sets up a route to the specified target through said interface *if the target was found, and for the
duration of the session*.
The third method is the ***static*** method. When used, ***ndppd*** will immediately respond to *neighbor solicitation* messages immediately
without first querying an internal interface.
## Compiling