With unbound 1.12.0 soon, I thought I'd highlight the changes for discussion.
There are many nice memory leak fixes.
The changes to the config terminology still maintain backwards compatibility - this will be important. I don't want to take the discussion in this direction, but I think it's important they didn't break everyone's (especially unbound_manager's) configurations overnight.
What I wanted to highlight was:
The default config for unbound_manager sets edns-buffer-size to 1472, but the new default under the recommendation of DNS flag day (
https://dnsflagday.net/2020/) for this setting is being reduced to 1232 and I wonder if this is a bit too far, but I'd like to see some data on udp vs tcp dns performance.
It wasn't long ago that this was defaulted to 4096 in unbound and this had a performance boosting potential. (Particularly for DNSSEC - an important thing to use but having DNSSEC enabled makes the messages bigger). By default, or at least before this upcoming release, Unbound tries 4096 and if it fails, tries again at
1232 for IPv6 and
1472 for IPv4.
The balancing act is picking a number that avoids fragmentation while also minimising having to fallback to TCP.
The exact number to use for this setting has been debated, but there was a inkling it should go a little lower. If DNS can't manage sending what it needs on UDP, it can fallback to TCP which is a bit slower (I will say that in practice I only see it happen on scientific journal sites etc).
However - this is accounting for the smaller buffer size needed for ipv6 and if you exclusively use ipv4, this number is perhaps too conservative.
Is it throwing away performance for the sake of conforming? Some set it all the way down to 512 to guarantee fragmentation won't happen (all but forcing slower TCP).
See older notes for the setting:
In short, I'll be interested to see whether you think unbound_manager sticks to 1472, but changes like this (on servers in general) are likely to mean a shift, however marginal, in DNS resolvers switching to TCP more often. I will continue to push my luck with 4096 but will probably relent to 1472 in the end on my ipv4-exclusive setup. Perhaps the script could set 1232 if
do-ip6: yes?