Linux.conf.au 2003 | Abstracts

DHCPv6 for Linux

Suresh Kodati

BiographyBioPaperPaper AudioAudio

Dynamic Host Configuration Protocol for IPv6 defines the communication mechanism between DHCP servers and clients in an IPv6 network, whereby servers pass network configuration parameters like network addresses, DNS information etc., to clients. DHCPv6, an evolving IETF standard, uses the stateful version of address configuration mechanism defined by IPv6 standards which provides better control over the allocation of IPv6 addresses compared to its counterpart, stateless address auto-configuration. This paper explains our work related to the implementation of a DHCPv6 client, server and relay for Linux as defined by IETF standards.

We discuss the architecture of the DHCPv6 solution including (1.a) design of state machine for DHCPv6 server, (1.b)address delegation policy, (1.c) maintenance of various addresses and states in persistent and nonpersistent memory, (1.d) server's lease database and its scalability, (1.e) optimizing server performance and responsiveness under load (2.a) design of state machine for client (2.b)client address request policy, (2.c) storage of addresses at various phases of client (3) state machine for relay and (4) process of upgradation of the implementation to the latest drafts/protocol versions.

This work has become a part of USAGI project (http://www.linux-ipv6.org/cvsweb/usagi/src/dhcpcode/) which aims to deliver the production quality IPv6 protocol stack for Linux, tightly collaborating with other projects and volunteers from various organizations.


The original Tux penguin is copyright by Larry Ewing.
Linux is a trademark of Linus Torvalds.
© 2002 Linux Australia.