DelphinusDNS Blog

(the latest about delphinusdnsd)

Previous Page

Delphinusdnsd Replicant in test setups

November 14th, 2019

I have roughly one month and a half to test delphinusdnsd replicant and the overall stability of the soon to be 1.4 release. You can help by sending some queries to the following nameservers:

  • An IPv6-only setup exists at port 53.
  • A more general setup exists at port 9053

You can test the following zones on wedge:, And the following zones should work on trapezoid port 9053:,,,,,,,, The trapezoid server is currently still running NSD on port 53, but I plan to change that in time, when I feel secure that I can run delphinusdnsd in its place.

Thanks for any help and one or two queries to port 9053 on trapezoid. Do report back any errors too please.


Snapshot error, should be fixed now

November 14th, 2019

The CVS stuff gets rsync'ed to the webserver. It just so happens that the time when the snapshot is created conflicted with the time when this was done. I have manually fixed this now as it made a corrupted tarball for downloading snapshots. Sorry for inconvenience. In future the snapshot script will sleep a bit before executing a cvs checkout.


TODO is pretty well done for 1.4

November 6th, 2019

I have marked off Replicant/Slave mode off my TODO file as DONE. Now all that remains is testing, refactoring and minor changes.

For 1.4.0 release
- a github mirrored copy
- fix the DNSSEC code so that a KSK key rollover is allowed     [DONE]
- TSIG support would still be nice                              [DONE]
- CAA RR support
- More ciphers for signing (GOST, ECDSA, Elliptic Curves)       [ECDSA DONE]
- Slave AXFR mode (with TSIG)                                   [DONE]
- Redo TCP support                                              [DONE]
You may remember that I applied for a grant last year and this disturbed the release cycle with the 1.3 release being done in summer. So I didn't get the grant, but I did get more time to write on delphinusdnsd (1.5 release cycles) in order to get back to ta winter release cycle. These are the major goals set and (mostly) completed. If you want to see where things were and where we're going then look up the TODO file in the CVS repo.

Also I may put this out now, the 1.5 release will be mostly bug fixes but little new features as I'm catching a breather. It may also be a time for others to contribute patches and possibly join development. The 1.6 release will be much stronger as I plan to add the feature of DNS Updates and possibly fix replicant mode so that delphinusdnsd doesn't have to restart upon a successful AXFR. It also depends how much time I got I guess. That's what's on the menu though. I plan to be writing on delphinusdnsd until I'm 59, so there is still time to perhaps get it done some day this adds another 15 years to development life.

1 comment

The ugly word slave and why I want to avoid it

November 6th, 2019

Slavery is a scandalous human condition, it hasn't brought us further. In DNS there is a primary master server usually that controls when zone changes are made. Any other server that does an AXFR from this master is historically called a slave. I asked the DNS community in #dns freenode channel what some similar names are that would be relevant to get rid of the word slave. We settled on "replicant". A replicant by means of definition is a replicative which when dug further is "Of, pertaining to, or causing replication". This is a good word. However please forgive me if I still use the word "slave" because the s word is so popular in the community and I want to let people know what I'm talking about. Officially though in delphinusdnsd we're using replicant to indicate a replicant daemon.


Delphinusdnsd replicant successfully AXFR'ed from NSD

November 4th, 2019

In my test lab delphinusdnsd in replicant mode (in debug mode) successfully got a notify from nsd and subsequently pulled the zonefile from nsd.

adding SOA values to zone -> 2019110304, 3600, 1800, 1209600
on descriptor 3 interface "" dns NOTIFY packet from,\
 replying NOTIFY
request on descriptor 3 interface "" from (ttl=64, \
region=255) for "" type=SOA(6) class=1, answering \
"NOTIFY" (149/45)
zone is being notified now
new higher serial detected (2019110305 vs. 2019110304)
setsockopt: Numerical argument out of domain
scheduling restart at Mon Nov  4 11:59:39 2019
This is another milestone, showing that a delphinusdns replicant (also called a slave) can interoperate with other nameservers.


Delphinusdnsd did an AXFR from another Delphinusdnsd

November 2nd, 2019

I'm writing you this because it's a historic moment. About one hour ago Delphinusdnsd on an internal IP ( did a zone transfer from another internal host ( also running Delphinusdnsd. It did check with a TCP query checking for an SOA, determined it needed to AXFR and got the remote zone. It then scheduled a reboot to reread this zone file into its database. I'm happy to report everything went well. I have committed the code where I am now so it's out there, but perhaps not working for any OS other than OpenBSD. My next steps are fixing the plumbing associated with DNS Notifies, making sure TSIG works across the set of procedures and pondering what I should do in case of an SOA expiry event.

I never would have dreamed I was so close to the bacon. I'm gonna try to put this in production tomorrow on the sub-zone. Cheers! I think I'm on track for the new years release, given testing.


A side-track

October 29th, 2019

I have spun up two vm's on my servers to take a test sub-zone and noticed that the code for delegation/referrals was broken in delphinusdnsd. I have done most of the grunt work today, but there is still a condition with RFC 5155 Referrals that I must get right. I left it for tomorrow afternoon. Hopefully that will be done for Hallowe'en. Many thanks to Habbie and hawk on #dns for helping me find the bugs and having explanations at hand. Since this is only a small side-track I think we're on track for having a replicant/slave mode for the new years release.


A change in behaviour

October 26th, 2019

I fixed two things since yesterday. The biggy that will be noticed is the REFUSED answers. They were broken all along because they didn't tag on the question in the REFUSED answer. I noticed OpenBSD doing many repeated questions on this, so there is no savings anymore. REFUSED is refused now. Another change I did was in the notify code on axfr.c. This is the most recent change. It fixes IPv6 notifies which were probably never tested. I tested it this morning.


Six weeks development cycle left

October 20th, 2019

Realistically there is only six weeks left for development. This gives some outtime for christmas and a few days for testing. I have thought about what I still have to do:

  • modify the axfr process for receiving notifies
  • add a new process for receiving new AXFR's
  • any code that implements replication/slave functionality
I'm going to spend some weekends at home perhaps once or twice to get more coding done, I think I can scrape the curve. It'll be a challenge, but not impossible. Do note that this is likely the only feature left that I'm putting into delphinusdnsd in 2019. If I don't make it I may consider moving the release date from New Years 2020 to a day in January 2020. Thanks!


Backwards compatibility in snapshots

October 18th, 2019

OpenBSD 6.6 was released yesterday, and my only production delphinusdnsd server will get an upgrade likely next week. It uses delphinusdnsd snapshots, and I have some patches waiting for using the malloc_conceal method. However this will break backwards compatibility in delphinusdnsd snapshots for the OpenBSD architecture, when I apply them, and I will. So if you're tracking snapshots, and you use OpenBSD, you want to upgrade to version 6.6 by next week. Thanks! This also means that the 1.4 release in new years time, will also require OpenBSD 6.6 if you prefer using OpenBSD.


Next Page


RSS Feed

Click here for RSS

On this day in

Other links

Have feedback?

By clicking on the header of an article you will be served a cookie. If you do not agree to this do not click on the header. Thanks!

Using a text-based webbrowser?

... such as lynx? Welcome back it's working again for the time being.

Older Blog Entries

Powered by BCHS