]> git.ipfire.org Git - thirdparty/bind9.git/commit
Simplify the EDNS buffer size logic for DNS Flag Day 2020
authorOndřej Surý <ondrej@sury.org>
Wed, 23 Sep 2020 12:47:26 +0000 (14:47 +0200)
committerOndřej Surý <ondrej@sury.org>
Mon, 5 Oct 2020 14:21:21 +0000 (16:21 +0200)
commitbb990030d344dafe40a62fe5ed2741de28b8ca66
tree063fc3caff2436018c950725aa3adcc2f7e5babe
parentd51f09a8d018e6f66ef9eebf6bbe3519d12d7a87
Simplify the EDNS buffer size logic for DNS Flag Day 2020

The DNS Flag Day 2020 aims to remove the IP fragmentation problem from
the UDP DNS communication.  In this commit, we implement the required
changes and simplify the logic for picking the EDNS Buffer Size.

1. The defaults for `edns-udp-size`, `max-udp-size` and
   `nocookie-udp-size` have been changed to `1232` (the value picked by
   DNS Flag Day 2020).

2. The probing heuristics that would try 512->4096->1432->1232 buffer
   sizes has been removed and the resolver will always use just the
   `edns-udp-size` value.

3. Instead of just disabling the PMTUD mechanism on the UDP sockets, we
   now set IP_DONTFRAG (IPV6_DONTFRAG) flag.  That means that the UDP
   packets won't get ever fragmented.  If the ICMP packets are lost the
   UDP will just timeout and eventually be retried over TCP.
bin/named/config.c
doc/arm/reference.rst
lib/dns/adb.c
lib/dns/include/dns/adb.h
lib/dns/include/dns/resolver.h
lib/dns/resolver.c
lib/dns/win32/libdns.def.in
lib/isc/unix/socket.c
lib/ns/server.c