DHCPv6: Dibbler - a portable DHCPv6

Dibbler is a portable DHCPv6 implementation. It supports stateful (i.e. IPv6 address granting and IPv6 prefix delegation) as well as stateless (i.e. option granting) autoconfiguration for IPv6. Currently Linux 2.4 or later and Windows XP or later are supported. It features easy to use install packages (Clickable Windows installer and RPM and DEB packages for Linux) and extensive documentation (both for users as well as developers). Dibbler is developed under GNU GPL licence. It means that it is free for all, including commercial usage.

This project was started in 2003 as master thesis by Tomasz Mrugalski and Marek Senderski of Computer Science faculty on Gdansk University of Technology. This project is named Dibbler (after famous CMOT Dibbler from fantastic Discworld series by Terry Pratchett). If you are interested in porting it to other systems/architectures, contact Tomasz Mrugalski for info and guidelines.

Please do not contact author directly and instead use mailing lists for discussion or bugzilla for bug reports. Contact author directly only if discussing security issues or other confidential matters.

Supported architectures and systems:

Experimental support means that this architecture lacks confirmation by users that everything is fully functional or there are known deficiencies.

If you have successfuly run Dibbler on onther architectures or systems, let me know so I can update this list. If you would like to have Dibbler running on some other architecture not mentioned above, and you are ready to provide me access to such hardware, let me know.

Already got feedback from:

  1. Poland
  2. Germany
  3. Czech Republic
  4. France
  5. Spain
  6. United States
  7. China
  8. Malaysia
  9. Canada
  10. Taiwan
  11. Switzerland
  12. Turkey
  13. India
  14. United Kingdom
  15. Austria
  16. Hungary
  17. Cuba
  18. Japan
  19. Sweden
  20. Luxemburg
  21. Australia
  22. Israel
  23. Norway
  24. Thailand
  25. Finland
  26. Philippines
  27. Venezuela
  28. Bosnia and Herzegovina
  29. Portugal
  30. New Zealand
  31. Indonesia
  32. Russia
  33. Costa Rica

If you use Dibbler and live in a country not listed above, let me know so I can update this list.

Dibbler is part of the following Linux distributions:

News



2014-07-13: The second Release Candidate for Dibbler 1.0.0 has been released.

Due to other obligations, 1.0.0RC1 was available for a very long time and I never had a chance to release 1.0.0 final. In the mean time, quite a few of fixes and small features were added (Changelog mentions 35 items, but I'm sure some of them were not listed). So formally this is a second RC, but it contains unexpectedly large changes for an RC. Keep that in mind. This time I expect the delay between RC and final to be much shorter (couple weeks).

Couple changes worth mentioning:


See CHANGELOG for a complete list of changes.

If you find bugs, please report them on Dibbler bugzilla. If you need help or want to share your thoughts, take a look at one of two mailing lists: dibbler or dibbler-devel. Please do not contact author directly, unless you want to report security issues or discuss confidential matters.

Tomek Mrugalski,
author


2013-07-30: Dibbler 1.0.0 Release Candidate 1 has been released!


This version is being released today to celebrate 10th anniversary
of the DHCPv6 protocol. The RFC3315 that defines it was published exactly
10 years ago - on 30th July of 2003.
According to the author's knowledge, Dibbler is currently the only
implementation that implements every feature mentioned in the RFC3315.
Please note that feature complete does not mean bug free ;-)


This release brings in all outstanding RFC3315 features that used to
be missing in previous releases. In particular:




Enjoy!




2013-06-27: Dibbler 0.8.4 has been released.



There is no single major new feature, just a lot of bug fixes:
34 bug fixes, tweaks and small improvements since 0.8.3.



Vendor class and User class methods are now implemented.



Relay support has been rewritten. It is now possible to select subnet
based on interface-id or value of linkaddr field set by the relay.
Client classification has been improved and now can be used to
differentiate between 2 or more classes, e.g. docsis3.0 and eRouter
in cable networks. Confirm support has been cleaned. Daemon mode no
longer has issues when reading from socket descriptor 0.



The database format has changed a bit. It now stores interface names,
not just interface indexes. That is helpful in cases your interfaces
has changed, e.g. when your ppp0 interface went down and was
recreated with different ifindex. Opening up old database should be
seamless, but make sure you make a backup before migrating to 0.8.4.



Dibbler server no longer does by default destination address filtering
against the addresses sockets are bound to. If that bothers you,
because on your OS you see the same incoming packet being received over
two sockets, please use --enable-dst-addr-check in configure phase.




2013-04-27: Dibbler 0.8.4 Release Candidate 1 has been released.



There is no single major new feature, just a lot of bug fixes.
In particular, relay support has been rewritten. It is now possible to select
subnet based on interface-id or value of linkaddr field set by the relay.
Client classification has been improved and now can be used to differentiate
between 2 or more classes, e.g. docsis3.0 and eRouter in cable networks.
Confirm support has been cleaned. Daemon mode no longer has issues when reading
from socket descriptor 0.



See CHANGELOG for a complete list of changes.



2013-01-20: Dibbler 0.8.3 has been released.


The biggest feature is a rewritten address and prefix allocation engine. Both
follow the same algorithm now. It is possible to reserve specific address
and/or prefix for a given host. The host can be referenced by DUID, remote-id
or link-local address. Both in-pool and out-of-pool reservations are now
supported.



Support for DDNS is now significantly improved. Secure DNS Updates using TSIG
are now supported. Many, many bugs were fixed and the FQDN handling code is now
much more robust.
The code now compiles on Solaris 11. It is not yet fully usable, and there are
outstanding problems with link-layer address detection, but it is better than
nothing.



Script execution is now improved as well. It is called when receiving stateless
configuration (after receiving reply to INF-REQUEST) and extra options (like
FQDN and vendor-specific info) are now properly passed.



See CHANGELOG for a complete list of changes.



2011-11-13: Dibbler 0.8.1 Release Candidate 1 is released. This release introduces
number of useful additions, new features and the usual bug fixes. In particular,
the highlights of this release are:



2011-09-05: Dibbler source has been moved to GIT repository at github.



2011-05-11:Dibbler 0.8.0 has been released. That is a new release after long time. Dibbler development just resumed.



2011-03-14: I got my first mac! Yay! After figuring out how to do anything useful without insert,
delete, pgup and pgdown, I think I was able to fix many problem with Mac OS port. I'm able to run both
client and server on my mac. If you have Mac hardware available, please Get the latest code from SVN
and give it a try.




2011-02-11: I'm happy to announce that my 7 year struggle to complete my Ph.D. is finally
over. It appears that I will finally have some time to reinvigorate Dibbler. There are many
things happening lately in DHCP world, so it seems I'll be busy in the near future. In the
mean time, Dibbler became quite outdated. Please send a note to the mailing list regarding
missing features that you find the most urgent to develop.

Cheers,
Tomasz Mrugalski, Ph.D.



2010-09-17: Good news, everyone! After a year and a half, I finally
found some time to wrap everything that was slowly going around, packed and
released 0.8.0 Release Candidate 1. The major changes include support for
Windows 7 and Mac OS (both experimental), support for CONFIRM, client and
server will reload their databases during boot, Linux console now can be
colorful, support for bunch of experimental stuff added. Finally, there's
large code refactoring taking place, so let's hope that everything is working...



Enjoy


Old news: [2009-2007] [2006 and older]

Feature List

Also following extensions are supported:

Download: stable

Here's newest stable version. If you need, for some reason, older releases, you can find them in the dibbler directory.

System Version Date Comments
Source code0.8.42013-06-26Sources written in C/C++. You can compile them yourself, if you like
Windows XP/2003/Vista/71.0.0RC22014-07-13Windows XP/2003/Vista/7/8 version.
Documentation (user)0.8.4today (git)Documentation for Dibbler: User's Guide
Documentation (developer)0.8.4today (git)Documentation for Dibbler: Developer's Guide
Release Candidate1.0.0RC22014-07-13Release Candidate
Linux binary (discontinued)0.7.32009-03-09Linux binary version. This distribution model is no longer supported. Please download sources and compile them. But before you use this, check if there is no package for your Linux distro.
Windows NT/2000 (discontinued)0.7.22008-09-22Windows NT/2000 version. It is considered experimental.

Following links are static (i.e. updated rarely or never in a manual manner)

System Version Date Comments
Dibbler presentation generic 2010-11-10 Presnetation about DHCPv6 and Dibbler in particular.
sourceforge.net - 2007-02-07 All newest files are available there. Use sourceforge if download from klub.com.pl is too slow.
Linux Distro packages 0.4.1[rpm]
0.7.1[deb]
0.4.1[gentoo]
2008-01-08 Stable version for Linux. Includes server, client, relay and User's Guide. See CHANGELOG for details.
Linux non-x86 AMD64 RPM
Sparc RPM
Alpha RPM
PowerPC RPM
2005-01-25 Dibbler 0.4.0 is available in the PLD Linux Distribution, which supports various non-x86 architectures.
Wireless router LinkSys WRT54G 0.7.1 2008-06-22 Dibbler 0.7.1 has been ported to embedded devices, e.g. wireless router Linksys WRT54G. Currently there is an ongoing work to update OpenWRT's repositories with updated 0.7.1 version.
Article #1 about Dibbler [pdf]
[presentation ppt]
2005-07-11
This is an article about Dibbler. It was published on the Contel'05 conference, held in Zagreb, Croatia. My presentation is also included.
Article #2 about Dibbler [pdf]
[presentation ppt]
2005-07-11
Another article about Dibbler. This one describes DNS Update issues and some authentication related topics. It was published on the it'2008 conference, held in Gdansk, Poland. My presentation is also included.

Download: development version

Sources can also be downloaded from GIT repository:

git clone git://github.com/tomaszmrugalski/dibbler.git

You can also browse source directly with your web browser: Dibbler sources at github.

Old sources can also be downloaded from SVN. These sources are outdated and keep around only for several students that are doing their master theses. They can compare changes here. Everyone should migrate to GIT. If you really have a reason to use this old version, please use following command to download SVN sources:

svn checkout https://anonymous@klub.com.pl/var/svn/dibbler/trunk

Short-term goals (aka TODO)

Bugzilla is a bug tracking system. It allows to report, assign and deal with bugs in a convinient manner. It can also be used to request new features. It is called enhancement. Take a look at bugs with severity ("Sev" column) set to "enh". You can define what are you looking for by hand, or use one of the links on the side panel.

Long-term goals (aka Roadmap)

There's list of features, which I would like to include someday. In some far, distant, not so sure future. I'm really busy person, sorry. In parenthesis there are estimated versions, where this feature will be implemented.

If you are thinking about joining or contributing to the dibbler project, you may want to see this Developer's TODO list.

Looking for sponsor

During Dibbler development, I have encountered several problems with equipment availability. This project has no budget and I develop everything in my home. I have several computers, so I can build basic configuration. However, I don't have any fancy hardware, so I can't verify any of the more advanced setups.

Another issue that I have encountered is a lack of access to non-x86 architectures. I would like to develop Dibbler versions for other architectures, eg. 64-bit or Mac. So, if you are a well prospering company and you find Dibbler useful, consider supporting open source development and donating some of your equipment.

In further Dibbler development, access to the following equipment would be useful:

Mailing lists

USERS: Mailing list was created to support Dibbler users. Feel free to discuss any topic related to Dibbler or DHCPv6 in general. You can also ask for help here. If you want to subscribe, please send mail with subject "subscribe" to dibbler-request(at)klub.com.pl. You will receive confirmation request shortly. You can also subscribe to mailing list using www browser. There are list archives available.

DEVELOPERS: Second list is dedicated to free exchange of thoughts between people engaged in the Dibbler development. Sadly, this list will be even more desolated then the previous one. If you want to subscribe, please send mail with subject "subscribe" to dibbler-devel-request(at)klub.com.pl. You will receive confirmation request shortly. You can also subscribe to mailing list using www browser. There are list archives .

Requirements

This implementation is developed using tools listed below. It may, of course, work with newer/older versions. Even with other compilers. Marek Senderski developed WinXP version using microsoft Visual C++ 2003, 2005 and 2008 editions. Bison++ has been merged into CVS, so there should be no more problems with obtaining bison++. Note that bison++ is available in Debian GNU/Linux distribution. In parenthesis is version which has been used to develop Dibbler. It will work for sure, but there's pretty good chance that other versions will work, too. Here's the list:

To generate Windows installer, a cool Inno Setup tool was used. Dibbler User's Guide was written in LaTeX, Dibbler Developer's Guide was generated using Doxygen.

Older versions

All versions are stored in the /dhcpv6/dibbler/ directory. Take note that they are kept for archeological/sentimental purposes only. Please use latest version only.

Tomasz Mrugalski
Marek Senderski (inactive)

Your IP address is 54.211.201.65.