1/* Author: Shirley Ma, xma@us.ibm.com */ 2 3 DHCPv6 is a stateful address autoconfiguration protocol for 4IPv6, a counterpart to IPv6 stateless address autoconfiguration 5protocol. It can either be used independently or it can coexist with 6its counterpart protocol. This protocol uses client/server mode of 7operation but can also provide support through a Relay Agent. It is 8currently being defined by IETF DHC WG and the specification is still 9in the draft form. 10 11 This protocol is intended to support on IPv6 based networks 12only. For specific details of the protocol, refer to the draft 13specification available at IETF. 14 15 The ultimate goal of this project is to provide a protocol 16conformant implementation for Linux. The current implementation will 17slowly evolve to support per the current draft and ultimately to the 18proposed standard when it comes out of IETF. 19 20Current Implementation status: 21 22 This implementation supports IPv6 address assignment to the 23clients. It also has the support for prefix delegation, DNS server 24updates but those features are not validated yet. The server also 25supports messages sent through relay agents, both inbound and 26outbound. 27 28 The Linux implementation is based upon KAME's DHCPv6 29implementation on BSD which lacked the support for dynamic address 30assignment feature, now supported in Linux. 31 32A. Validated Features: 33 34 IPv6 address Assignment & Prefix Delegation 35 36 1. Server configuration file support for both static and dynamic 37assignments. 38 2. Server lease file support for saving all the client's IPv6 39address binding 40 info. 41 3. Client IPv6 address assignment and temporary IPv6 address 42assignment support 43 on the same link. 44 4. Supported Options: Rapid commit, Server Preference, Information 45 Request, Unicast, Elapsed Time, ClientID, ServerID , IA_NA , IA_TA , 46 IA_ADDR , IA_PD, Status, Relay Message, Interface Identifier. 47 5. Solicit/Request/Advertise/Reply/Infomation-request 48 messages/Renew/Rebind/Release/Confirm/ messages support 49 for IPv6 address binding. 50 8. Client configuration file support for IPv6 address assignment. 51 9. Client lease file support for saving individual client ipv6address 52 binding info. 53 10. DNS server update support according to 54 draft-ietf-dhc-dhcpv6-opt-dnsconfig-03.txt. 55 11. Prefix delegation support according to 56 draft-ietf-dhc-dhcpv6-opt-prefix-delegation-03.txt 57 12. radvd.conf update and radvd reload for prefix delegation 58 59B. Support available but not validated yet 60 61 1. Request option support 62 2. Relay-Forw/Relay-Repl messages and Relay Message Option 63 64C. ToDo List: 65 66 1. Authentication/User class/Vendor class/Interface-ID option 67 support 68 2. Reconfig message support. 69 70D. INSTALLATTION: 71 72 1. tar -xvzf dhcp6.tar 73 2. ./configure 74 3. make 75 4. insmod ipv6 (if ipv6 is not compiled in the kernel) 76 5. mkdir /var/db/dhcpv6 (create dhcpv6 database directory) 77 6. cp dhcp6c.conf /etc/dhcp6c.conf (copy client configuration file) 78 7. cp dhcp6s.conf /etc/dhcp6s.conf (copy server configuration file) 79 8. ./dhcp6s -dDf [eth0 eth1 ...] (start server, turn on debug) 80 9. ./dhcp6c -dDf eth0 (start client, turn on debug) 81 82