This week I am at an IETF meeting in Vienna. Yesterday afternoon I took a few pictures while I walked around the city; this blog item is about my non-touristy activity.
I started work for isc.org at the beginning of this month. We dealt with a lot of the new employee logistics before my official start date, like getting a new work laptop and sorting out logins for email and other accounts. And Jeff Osborne (president of ISC) encouraged me to come to come to IETF113 in Vienna to meet him and some of the other ISC staff in person soon after my start.
And so, the MFLD track (many fine lunches and dinners) has mostly been chatting with new colleagues.
One of our aims with BIND is to revamp its more difficult parts, trying to make them simpler, and maybe also improving performance. I come to ISC with my qp-trie data structure, which I hope can replace BIND’s rbtdb, aka red-black tree database, BIND’s in-memory data structure for looking up DNS records.
Last summer I did some work on NSD to see how my DNS-trie variant would work in the context of a real (but relatively simple) DNS server, and further experiments to try out a new copy-on-write concurrency strategy. During the IETF hackathon on Saturday and Sunday I revisited my NSD fork to remind myself which branch does what. I discussed it with Benno Overeinder and Willem Toorop from NLnet Labs, and wrote up some notes for them and myself. They are planning to revisit NSD’s zone lookup data structures, and my qp-trie is one of the candidates.
I had a discussion with my new colleague Petr Špaček about testing BIND’s rbtdb refactoring, especially how to exercise things like locking that unit tests would not, and where we need better performance metrics. It’s early days yet, but it will be helpful to get benchmark baselines in place soon.
Petr introduced me to Jan Včelák; they both worked at cz.nic in the past, and know of my qp-trie work in Knot DNS. We had a chat about fast lookup for IP address prefixes, and Jan pointed me to a paper describing a “Tree Bitmap” that he had implemented.
There has been a lot of research into fast IP address prefix lookup,
because it is in the fast path of network routers, and they often use
popcount packed array trick as my qp-trie. There is a radix
tree in BIND which is used for access control list matching, and which
could definitely be made a lot faster.
On Tuesday morning was the DNSOP working group meeting. I have not been paying much attention to DNSOP in the last couple of years, so my aim was mostly to get an idea of the current state of play. It turns out that the working group has been clearing its backlog, and is now considering new work for adoption. I came away with a couple of drafts that I should look at more closely.
First, the “DNS referral glue requirements” draft, where there are some questions on terminology that I have opinions about.
And second, “using service bindings with DANE” which gets into awkward questions about the semantics of aliases in the DNS, with particular reference to DANE SRV RFC 7673 which has my name at the top. I am not filled with joy at the prospect of arguing about this again, but I feel I ought to…