A pure Java DHCPv6 implementation
Saturday 31 December 2005
DHCPv6 is a protocol for stateful configuration of IPv6 devices that passes network addresses and other configuration information to IPv6 nodes. In this project we are implementing pure Java DHCPv6
server and client.
We have designed and implemented DHCPv6 following multiple objectives:
suitability of Java: our project aimed at testing Java as a platform for building pieces of the core networking infrastructure.
modularity and seamless extensibility: DHCPv6 is seen as a generic framework for configuration in which protocol options allows extending functionality. They can be developed independently of the core implementation, packaged as jar files, and made instantly fully operational in a running client or a server.
easy configuration: the behavior of a server can be easily configured via various configuration front-ends: command line, graphical, or Web based (no error prone modification of configuration files). Each option embeds its configuration module.
pluggable storage back-end: configuration information and operational policies are stored and accessed through a generic permanent storage interface; various back-ends can be used as actual storage: a DBMS or flat files.
multithreaded and fully dynamic: multiple threads handle requests, replies, and configuration tasks; they can be managed while the server is online.
These design requirements have been all met: we provide both a server and a client relying on the same modular and object oriented code base. The server can be easily and dynamically managed and configured, for example new options can be loaded, and configuration changed while running. The storage back-end interfaces with an open source DBMS through jdbc.