]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Add a regression test in the RRL system test
authorEvan Hunt <each@isc.org>
Wed, 28 Jul 2021 00:55:08 +0000 (17:55 -0700)
committerPetr Špaček <pspacek@isc.org>
Mon, 30 Aug 2021 15:04:09 +0000 (17:04 +0200)
This commit modifies the MTU of the loopback interface on
Linux systems to 1500, so that oversized UDP packets can
trigger EMSGSIZE errors, and tests that named handles
such errors correctly.

Note that the loopback MTU size has not yet been modified
for other platforms.

bin/tests/system/ifconfig.sh.in
bin/tests/system/rrl/ns4/named.conf.in
bin/tests/system/rrl/ns4/tld4.db
bin/tests/system/rrl/tests.sh

index 52b4a5796d0b3b0c646bd5689687ec9c95ab6da0..1e8ccc2521f3329650617872eb6d8f87a1b81789 100755 (executable)
@@ -19,6 +19,9 @@
 #       fd92:7065:b8e:99ff::{1..2}
 #       fd92:7065:b8e:ff::{1..2}
 #
+# On Linux, we also set the MTU on the 1500 bytes to match the default MTU on
+# physical interfaces, so we can properly test the cases with packets bigger
+# than interface MTU.
 
 top_srcdir=@abs_top_srcdir@
 
@@ -73,12 +76,14 @@ case "$1" in
                                 if [ $use_ip ]; then
                                         ip address add 10.53.$i.$ns/24 \
                                             dev lo:$int
+                                        ip link set dev lo:$int mtu 1500
                                         [ "$ipv6" ] && ip address add \
                                             fd92:7065:b8e:${ipv6}ff::$ns/64 \
                                             dev lo
                                 else
                                         ifconfig lo:$int 10.53.$i.$ns up \
-                                                netmask 255.255.255.0
+                                                netmask 255.255.255.0 \
+                                                mtu 1500
                                         [ "$ipv6" ] && ifconfig lo inet6 add \
                                                 fd92:7065:b8e:${ipv6}ff::$ns/64
                                 fi
index 028281fe7417e978eb37ee2ca997d3c4c5bacf81..864b67f25dda80828a9bfd9f7b5d742f2b84cf1e 100644 (file)
@@ -22,6 +22,7 @@ options {
        notify no;
        recursion yes;
        dnssec-validation yes;
+       max-udp-size 4096;
 
        rate-limit {
            responses-per-second 2;
index 5b746a01ab3d478f3518895070894139db3d77db..1527775ca7d75ed144a898ad202f6a8d1f84d7b0 100644 (file)
@@ -40,3 +40,6 @@ a8            A       192.0.2.8
 
 ; a9 for all-per-second limit
 $GENERATE 101-180 all$.a9 A 192.0.2.8
+
+; oversized TXT record
+$GENERATE 1-100    big    1    TXT    "txt$"
index 846f692989bdae353d1d768682975a843b6bb298..126578f3435b4d99b06060cd22b5d4e36b286436 100644 (file)
@@ -270,6 +270,10 @@ $DIG $DIGOPTS @$ns4 A a7.tld4 > /dev/null 2>&1
 $DIG $DIGOPTS @$ns4 A a7.tld4 > /dev/null 2>&1
 $DIG $DIGOPTS @$ns4 A a7.tld4 > /dev/null 2>&1
 
+# regression test for GL #2839
+DIGOPTS="+bufsize=4096 +ignore -p ${PORT}"
+$DIG $DIGOPTS @$ns4 TXT big.tld4 > /dev/null 2>&1
+
 grep "would limit" ns4/named.run >/dev/null 2>&1 ||
 setret "\"would limit\" not found in log file."