• Ondřej Surý's avatar
    Simplify the EDNS buffer size logic for DNS Flag Day 2020 · bb990030
    Ondřej Surý authored
    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.
resolver.c 298 KB