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.

(cherry picked from commit cfd058d622)
This commit is contained in:
Evan Hunt
2021-07-27 17:55:08 -07:00
committed by Petr Špaček
parent 1dacb46892
commit 422c032151
4 changed files with 14 additions and 1 deletions

View File

@@ -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.
SYSTEMTESTTOP="$(cd -P -- "$(dirname -- "$0")" && pwd -P)"
. "$SYSTEMTESTTOP/conf.sh"
@@ -76,12 +79,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

View File

@@ -22,6 +22,7 @@ options {
notify no;
recursion yes;
dnssec-validation yes;
max-udp-size 4096;
rate-limit {
responses-per-second 2;

View 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$"

View File

@@ -272,6 +272,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."