Dibbler是目前支持DHCPv6功能最全的软件，它支持DHCPv6的无状态地址自动配置、有状态地址自动配置，支持Linux 2.4/2.6, Windows NT/2000/XP/2003/Vista/Win7 与 Mac OS等各种操作系统，支持Client、Relay、Server各种工作模式。
Windows XP, x86
Windows 2003, x86
Windows 2000, x86 (experimental)
Windows NT4, x86 (experimental)
Linux, IBM S390
Linux, Motorola m68k
Server discovery and address assignment (SOLICIT, ADVERTISE, REQUEST and REPLY messages) – This is a most common case: client discovers servers available in the local network, then asks for an address (and possibly additional options like DNS configuration), which is granted by a server.
Best server selection – when client detects more than one server available (by receiving more than one ADVERTISE message), it chooses the best one and remembers remaining ones as a backup.
Multiple servers support – Client is capable of discovering and maintaning communication with several servers. For example, client would like to have 5 addresses configured. Prefered server can only grant 3, so client send request for remaining 2 addresses to one of the remaining servers.
Relay support – In a larger network, which contains several Ethernet segments and/or wireless areas, sometimes centrally located DHCPv6 server might not be directly reachable. In such cace, additional proxies, so called relays, might be deployed to relay communication between clients and a remote server. Dibbler server supports indirect communication with clients via relays. Standalone, lightweight relay implementation is also available. Clients are capable of talking to the server directly or via relays.
Leasequery – From the sysadmin’s perspective, it is often beneficial to check which address has been assigned to a specific client or who got a specific address. To do so, it is possible to query server for such information. There is a special type of DHCPv6 entity called requestor that performs such queries and parses server’s answers.
Address renewal – After receiving address from a server, client might be instructed to renew its address at regular intervals. Client periodically sends RENEW messege to a server, which granted its address. In case of communication failure, client is also able to attempt emergency address renewal (i.e. it sends REBIND message to any server).
Unicast communication – if specific conditions are met, client could send messages directly to a server’s unicast address, so additional servers does not need to process those messages. It also improves effciency, as all nodes present in LAN segment receive multicast packets.
Duplicate address detection – Client is able to detect and properly handle faulty situation, when server grants an address which is illegaly used by some other host. It will inform server of such circumstances (using DECLINE message), and request another address. Server will mark this address as used by unknown host, and will assign another address to a client.
Power failure/crash support – After client recovers from a crash or a power failure, it still can have valid addresses assigned. In such circumstances, client uses CONFIRM message, to config if those addresses are still valid.
Normal and temporary addresses – Depending on its purpose, client can be configured to ask for normal (IA NA option) or temporary (IA TA option). Although use of temporary addresses is rather uncommon, both dibbler server and client support it.
Hint system – Client can be configured to send various parameters and addresses in the REQUEST message. It will be treated as a hint by the server. If such hint is valid, it will be granted for this client.
Server caching – Server can cache granted addresses, so the same client will receive the same address each time it asks. Size of this cache can be configured.
Stateless mode – Client can be configured to not ask for any addresses, but the configuration options only. In such case, when no addresses are granted, such configuration is called stateless (INFORMATION-REQUEST message is used instead of normal REQUEST).
Rapid Commit – Sometimes it is desirable to quicken configuration process. If both client and server are configured to use rapid commit, address assignment procedure can be shortened to 2 messages, instead of usual 4. Major advantage is lesser network usage and quicker client startup time.
Also following extensions are supported:
DNS Servers – During normal operation, almost all hosts require constant use of the DNS servers. It is necessary for event basic operations, like web surfing. DHCPv6 client can ask for information about DNS servers and DHCPv6 server will provide necessary information.
Domain Name – Client might be interested in obtaining information about its domain. Properly configured domain allow reference to a different hosts in the same domain using hostname only, not the full domain name, e.g. alice.example.com with properly configured domain can refer to another host in the same domain by using ‘bob’ only, instead of full name bob.example.com.
NTP Servers – To prevent clock misconfiguration and drift, NTP protocol can be used to synchronize clocks. However, to successful use it, location of near NTP servers must be known. Dibbler is able to configure this information.
Time Zone – To avoid time-related ambiguation, each host should have timezone set properly. Dibbler is able to pass this parameter to all clients, who request it.
SIP Servers – Session Initiation Protocol (SIP) is commonly used in VoIP solutions. One of the necessary information is SIP server addresses. This information can be passed to the clients.
SIP Domain Name – SIP domain name is another important parameter of the VoIP capable nodes. This parameter can be passed to all clients, who ask for it.
NIS, NIS+ Server – Network Information Service is a protocol for sharing authentication parameters between multiple Unix or Linux nodes. Both NIS and NIS+ server adresses can be passed to the clients.
NIS, NIS+ Domain Name – NIS or NIS+ domain name is another necessary parameter for NIS or NIS+. It can be obtained from the DHCPv6 server to all clients, who require it.
Option Renewal Mechanism (Lifetime option) – All of the options mentioned on this list can be refreshed periodically. This might be handy if one of those parameters change.
Dynamic DNS Updates – Server can assign a fully qualified domain name for a client. To make such name useful, DNS servers must be informed that such name is bound to a specific IPv6 address. This procedure is called DNS Update. There are two kinds of the DNS Updates: forward and reverse. First is used to translate domain name to an address. The second one is used to obtain full domain name of a known address.
Prefix Delegation – Server can delegate a prefix to a client. That feature is intended to be used mainly by routers, which obtain prefixes from an upper level router. Client after receiving prefix, will generate smaller prefixes for each available interface.