55 lines
2.2 KiB
Diff
55 lines
2.2 KiB
Diff
|
From eb92fb32b746f2104b0f370b5b295bb8dd4bd5e5 Mon Sep 17 00:00:00 2001
|
||
|
From: Simon Kelley <simon@thekelleys.org.uk>
|
||
|
Date: Tue, 7 Mar 2023 22:07:46 +0000
|
||
|
Subject: [PATCH] Set the default maximum DNS UDP packet size to 1232.
|
||
|
|
||
|
http://www.dnsflagday.net/2020/ refers.
|
||
|
|
||
|
Thanks to Xiang Li for the prompt.
|
||
|
---
|
||
|
CHANGELOG | 9 ++++++++-
|
||
|
man/dnsmasq.8 | 3 ++-
|
||
|
src/config.h | 2 +-
|
||
|
3 files changed, 11 insertions(+), 3 deletions(-)
|
||
|
|
||
|
--- CHANGELOG.orig
|
||
|
+++ CHANGELOG
|
||
|
@@ -11,7 +11,14 @@ version 2.89
|
||
|
for reporting the bug and for his great efforts in chasing
|
||
|
it down.
|
||
|
|
||
|
+ Set the default maximum DNS UDP packet sice to 1232. This
|
||
|
+ has been the recommended value since 2020 because it's the
|
||
|
+ largest value that avoid fragmentation, and fragmentation
|
||
|
+ is just not reliable on the modern internet, especially
|
||
|
+ for IPv6. It's still possible to override this with
|
||
|
+ --edns-packet-max for special circumstances.
|
||
|
|
||
|
+
|
||
|
version 2.88
|
||
|
Fix bug in --dynamic-host when an interface has /16 IPv4
|
||
|
address. Thanks to Mark Dietzer for spotting this.
|
||
|
--- man/dnsmasq.8.orig
|
||
|
+++ man/dnsmasq.8
|
||
|
@@ -183,7 +183,8 @@ to zero completely disables DNS function
|
||
|
.TP
|
||
|
.B \-P, --edns-packet-max=<size>
|
||
|
Specify the largest EDNS.0 UDP packet which is supported by the DNS
|
||
|
-forwarder. Defaults to 4096, which is the RFC5625-recommended size.
|
||
|
+forwarder. Defaults to 1232, which is the recommended size following the
|
||
|
+DNS flag day in 2020. Only increase if you know what you are doing.
|
||
|
.TP
|
||
|
.B \-Q, --query-port=<query_port>
|
||
|
Send outbound DNS queries from, and listen for their replies on, the
|
||
|
--- src/config.h.orig
|
||
|
+++ src/config.h
|
||
|
@@ -19,7 +19,7 @@
|
||
|
#define CHILD_LIFETIME 150 /* secs 'till terminated (RFC1035 suggests > 120s) */
|
||
|
#define TCP_MAX_QUERIES 100 /* Maximum number of queries per incoming TCP connection */
|
||
|
#define TCP_BACKLOG 32 /* kernel backlog limit for TCP connections */
|
||
|
-#define EDNS_PKTSZ 4096 /* default max EDNS.0 UDP packet from RFC5625 */
|
||
|
+#define EDNS_PKTSZ 1232 /* default max EDNS.0 UDP packet from from /dnsflagday.net/2020 */
|
||
|
#define SAFE_PKTSZ 1232 /* "go anywhere" UDP packet size, see https://dnsflagday.net/2020/ */
|
||
|
#define KEYBLOCK_LEN 40 /* choose to minimise fragmentation when storing DNSSEC keys */
|
||
|
#define DNSSEC_WORK 50 /* Max number of queries to validate one question */
|