From f1d8508fd6fdc6d70394ca6901b82149ab6c4f8e Mon Sep 17 00:00:00 2001 From: Phil Sutter Date: Mon, 6 Aug 2018 17:21:58 +0200 Subject: tests: Add arptables-{save,restore} testcases This actually does a bit more since it creates the ruleset using separate arptables calls. Note that there are a few commented out lines containing commands which don't apply for unknown reasons - something to investigate later. Signed-off-by: Phil Sutter Signed-off-by: Florian Westphal --- .../arptables/0001-arptables-save-restore_0 | 58 ++++++++++++++++++++++ .../arptables/0002-arptables-restore-defaults_0 | 28 +++++++++++ 2 files changed, 86 insertions(+) create mode 100755 iptables/tests/shell/testcases/arptables/0001-arptables-save-restore_0 create mode 100755 iptables/tests/shell/testcases/arptables/0002-arptables-restore-defaults_0 (limited to 'iptables/tests') diff --git a/iptables/tests/shell/testcases/arptables/0001-arptables-save-restore_0 b/iptables/tests/shell/testcases/arptables/0001-arptables-save-restore_0 new file mode 100755 index 00000000..49baab5b --- /dev/null +++ b/iptables/tests/shell/testcases/arptables/0001-arptables-save-restore_0 @@ -0,0 +1,58 @@ +#!/bin/bash + +set -e +#set -x + +# there is no legacy backend to test +[[ $XT_MULTI == "*xtables-nft-multi" ]] || exit 0 + +# fill arptables manually + +$XT_MULTI arptables -F +$XT_MULTI arptables -A INPUT -s 10.0.0.0/8 -j ACCEPT +$XT_MULTI arptables -A INPUT -d 192.168.123.1 -j ACCEPT +#$XT_MULTI arptables -A INPUT --source-mac fe:ed:ba:be:00:01 -j ACCEPT +#$XT_MULTI arptables -A INPUT --destination-mac fe:ed:ba:be:00:01 -j ACCEPT +$XT_MULTI arptables -N foo +$XT_MULTI arptables -A foo -i lo -j ACCEPT +$XT_MULTI arptables -A foo -l 6 -j ACCEPT +$XT_MULTI arptables -A foo --opcode Request -j ACCEPT +$XT_MULTI arptables -A foo --h-type 1 --proto-type 0x800 -j ACCEPT +$XT_MULTI arptables -A foo -l 6 --h-type 1 --proto-type 0x800 -i lo --opcode Request -j ACCEPT +$XT_MULTI arptables -A INPUT -j foo +$XT_MULTI arptables -A INPUT + +$XT_MULTI arptables -A OUTPUT -o lo -j ACCEPT +$XT_MULTI arptables -A OUTPUT -o eth134 -j mangle --mangle-ip-s 10.0.0.1 +$XT_MULTI arptables -A OUTPUT -o eth432 -j CLASSIFY --set-class feed:babe +$XT_MULTI arptables -A OUTPUT -o eth432 --opcode Request -j CLASSIFY --set-class feed:babe +$XT_MULTI arptables -P OUTPUT DROP + +# compare against stored arptables dump + +DUMP='*filter +:INPUT ACCEPT +:OUTPUT DROP +:foo - +-A INPUT -s 10.0.0.0/8 -j ACCEPT +-A INPUT -d 192.168.123.1 -j ACCEPT +-A INPUT -j foo +-A INPUT +-A OUTPUT -o lo -j ACCEPT +-A OUTPUT -o eth134 -j mangle --mangle-ip-s 10.0.0.1 +-A OUTPUT -o eth432 -j CLASSIFY --set-class feed:babe +-A OUTPUT -o eth432 --opcode 1 -j CLASSIFY --set-class feed:babe +-A foo -i lo -j ACCEPT +-A foo --h-length 6 -j ACCEPT +-A foo --opcode 1 -j ACCEPT +-A foo --h-type 1 --proto-type 0x800 -j ACCEPT +-A foo -i lo --h-length 6 --opcode 1 --h-type 1 --proto-type 0x800 -j ACCEPT +' + +diff -u <(echo -e "$DUMP") <($XT_MULTI arptables-save) + +# make sure dump can be restored and check it didn't change + +$XT_MULTI arptables -F +$XT_MULTI arptables-restore <<<$DUMP +diff -u <(echo -e "$DUMP") <($XT_MULTI arptables-save) diff --git a/iptables/tests/shell/testcases/arptables/0002-arptables-restore-defaults_0 b/iptables/tests/shell/testcases/arptables/0002-arptables-restore-defaults_0 new file mode 100755 index 00000000..8bc4d08f --- /dev/null +++ b/iptables/tests/shell/testcases/arptables/0002-arptables-restore-defaults_0 @@ -0,0 +1,28 @@ +#!/bin/bash + +set -e + +# there is no legacy backend to test +[[ $XT_MULTI == "*xtables-nft-multi" ]] || exit 0 + +# arptables-restore reuses preloaded targets and matches, make sure defaults +# apply to consecutive rules using the same target/match as a previous one + +DUMP='*filter +:OUTPUT ACCEPT +-A OUTPUT -j mangle --mangle-ip-s 10.0.0.1 +-A OUTPUT -j mangle --mangle-ip-d 10.0.0.2 +' + +# note how mangle-ip-s is unset in second rule + +EXPECT='*filter +:INPUT ACCEPT +:OUTPUT ACCEPT +-A OUTPUT -j mangle --mangle-ip-s 10.0.0.1 +-A OUTPUT -j mangle --mangle-ip-d 10.0.0.2 +' + +$XT_MULTI arptables -F +$XT_MULTI arptables-restore <<<$DUMP +diff -u <(echo -e "$EXPECT") <($XT_MULTI arptables-save | grep -v '^#') -- cgit v1.2.3