aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/src/tests
diff options
context:
space:
mode:
authorJason A. Donenfeld <Jason@zx2c4.com>2018-04-14 05:27:19 +0200
committerJason A. Donenfeld <Jason@zx2c4.com>2018-04-15 15:45:13 +0200
commita1525bfdccc7fabf35c6c538409e4de4c4812169 (patch)
tree81427f89c2bbf51aef4cde1e873c66a509851c28 /src/tests
parentwg-quick: account for specified fwmark in auto routing mode (diff)
downloadwireguard-monolithic-historical-a1525bfdccc7fabf35c6c538409e4de4c4812169.tar.xz
wireguard-monolithic-historical-a1525bfdccc7fabf35c6c538409e4de4c4812169.zip
send: account for route-based MTU
It might be that a particular route has a different MTU than the interface, via `ip route add ... dev wg0 mtu 1281`, for example. In this case, it's important that we don't accidently pad beyond the end of the MTU. We accomplish that in this patch by carrying forward the MTU from the dst if it exists. We also add a unit test for this issue. Reported-by: Roman Mamedov <rm.wg@romanrm.net>
Diffstat (limited to 'src/tests')
-rwxr-xr-xsrc/tests/netns.sh13
-rw-r--r--src/tests/qemu/kernel.config3
2 files changed, 16 insertions, 0 deletions
diff --git a/src/tests/netns.sh b/src/tests/netns.sh
index 57d0b28..d1950a0 100755
--- a/src/tests/netns.sh
+++ b/src/tests/netns.sh
@@ -169,6 +169,19 @@ ip1 link set wg0 mtu $big_mtu
ip2 link set wg0 mtu $big_mtu
tests
+# Test that route MTUs work with the padding
+ip1 link set wg0 mtu 1300
+ip2 link set wg0 mtu 1300
+n1 wg set wg0 peer "$pub2" endpoint 127.0.0.1:2
+n2 wg set wg0 peer "$pub1" endpoint 127.0.0.1:1
+n0 iptables -A INPUT -m length --length 1360 -j DROP
+n1 ip route add 192.168.241.2/32 dev wg0 mtu 1299
+n2 ip route add 192.168.241.1/32 dev wg0 mtu 1299
+n2 ping -c 1 -W 1 -s 1269 192.168.241.1
+n2 ip route delete 192.168.241.1/32 dev wg0 mtu 1299
+n1 ip route delete 192.168.241.2/32 dev wg0 mtu 1299
+n0 iptables -F INPUT
+
ip1 link set wg0 mtu $orig_mtu
ip2 link set wg0 mtu $orig_mtu
diff --git a/src/tests/qemu/kernel.config b/src/tests/qemu/kernel.config
index 1f16016..6c3adc0 100644
--- a/src/tests/qemu/kernel.config
+++ b/src/tests/qemu/kernel.config
@@ -11,13 +11,16 @@ CONFIG_UNIX=y
CONFIG_INET=y
CONFIG_IPV6=y
CONFIG_NETFILTER=y
+CONFIG_NETFILTER_ADVANCED=y
CONFIG_NF_CONNTRACK=y
CONFIG_NF_NAT=y
CONFIG_NETFILTER_XTABLES=y
CONFIG_NETFILTER_XT_NAT=y
+CONFIG_NETFILTER_XT_MATCH_LENGTH=y
CONFIG_NF_CONNTRACK_IPV4=y
CONFIG_NF_NAT_IPV4=y
CONFIG_IP_NF_IPTABLES=y
+CONFIG_IP_NF_FILTER=y
CONFIG_IP_NF_NAT=y
CONFIG_TTY=y
CONFIG_BINFMT_ELF=y