From: Evan Hunt Date: Wed, 28 Jul 2021 00:55:08 +0000 (-0700) Subject: Add a regression test in the RRL system test X-Git-Tag: v9.17.18~11^2~1 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=cfd058d622102c18ea9b6ef9cd37530d62debea7;p=thirdparty%2Fbind9.git Add a regression test in the RRL system test 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. --- diff --git a/bin/tests/system/ifconfig.sh.in b/bin/tests/system/ifconfig.sh.in index 52b4a5796d0..1e8ccc2521f 100755 --- a/bin/tests/system/ifconfig.sh.in +++ b/bin/tests/system/ifconfig.sh.in @@ -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 diff --git a/bin/tests/system/rrl/ns4/named.conf.in b/bin/tests/system/rrl/ns4/named.conf.in index 028281fe741..864b67f25dd 100644 --- a/bin/tests/system/rrl/ns4/named.conf.in +++ b/bin/tests/system/rrl/ns4/named.conf.in @@ -22,6 +22,7 @@ options { notify no; recursion yes; dnssec-validation yes; + max-udp-size 4096; rate-limit { responses-per-second 2; diff --git a/bin/tests/system/rrl/ns4/tld4.db b/bin/tests/system/rrl/ns4/tld4.db index 5b746a01ab3..1527775ca7d 100644 --- a/bin/tests/system/rrl/ns4/tld4.db +++ b/bin/tests/system/rrl/ns4/tld4.db @@ -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$" diff --git a/bin/tests/system/rrl/tests.sh b/bin/tests/system/rrl/tests.sh index 846f692989b..126578f3435 100644 --- a/bin/tests/system/rrl/tests.sh +++ b/bin/tests/system/rrl/tests.sh @@ -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."