selftests: netfilter: extend flowtable test script with dnat rule
NAT test currently covers snat (masquerade) only. Also add a dnat rule and then check that a connecting to the to-be-dnated address will work. Signed-off-by: Florian Westphal <fw@strlen.de> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
This commit is contained in:
Родитель
c9b3b8207b
Коммит
d05d5db815
|
@ -226,17 +226,19 @@ check_transfer()
|
|||
return 0
|
||||
}
|
||||
|
||||
test_tcp_forwarding()
|
||||
test_tcp_forwarding_ip()
|
||||
{
|
||||
local nsa=$1
|
||||
local nsb=$2
|
||||
local dstip=$3
|
||||
local dstport=$4
|
||||
local lret=0
|
||||
|
||||
ip netns exec $nsb nc -w 5 -l -p 12345 < "$ns2in" > "$ns2out" &
|
||||
lpid=$!
|
||||
|
||||
sleep 1
|
||||
ip netns exec $nsa nc -w 4 10.0.2.99 12345 < "$ns1in" > "$ns1out" &
|
||||
ip netns exec $nsa nc -w 4 "$dstip" "$dstport" < "$ns1in" > "$ns1out" &
|
||||
cpid=$!
|
||||
|
||||
sleep 3
|
||||
|
@ -258,6 +260,28 @@ test_tcp_forwarding()
|
|||
return $lret
|
||||
}
|
||||
|
||||
test_tcp_forwarding()
|
||||
{
|
||||
test_tcp_forwarding_ip "$1" "$2" 10.0.2.99 12345
|
||||
|
||||
return $?
|
||||
}
|
||||
|
||||
test_tcp_forwarding_nat()
|
||||
{
|
||||
local lret
|
||||
|
||||
test_tcp_forwarding_ip "$1" "$2" 10.0.2.99 12345
|
||||
lret=$?
|
||||
|
||||
if [ $lret -eq 0 ] ; then
|
||||
test_tcp_forwarding_ip "$1" "$2" 10.6.6.6 1666
|
||||
lret=$?
|
||||
fi
|
||||
|
||||
return $lret
|
||||
}
|
||||
|
||||
make_file "$ns1in" "ns1"
|
||||
make_file "$ns2in" "ns2"
|
||||
|
||||
|
@ -283,14 +307,19 @@ ip -net ns2 route add 192.168.10.1 via 10.0.2.1
|
|||
# Same, but with NAT enabled.
|
||||
ip netns exec nsr1 nft -f - <<EOF
|
||||
table ip nat {
|
||||
chain prerouting {
|
||||
type nat hook prerouting priority 0; policy accept;
|
||||
meta iif "veth0" ip daddr 10.6.6.6 tcp dport 1666 counter dnat ip to 10.0.2.99:12345
|
||||
}
|
||||
|
||||
chain postrouting {
|
||||
type nat hook postrouting priority 0; policy accept;
|
||||
meta oifname "veth1" masquerade
|
||||
meta oifname "veth1" counter masquerade
|
||||
}
|
||||
}
|
||||
EOF
|
||||
|
||||
test_tcp_forwarding ns1 ns2
|
||||
test_tcp_forwarding_nat ns1 ns2
|
||||
|
||||
if [ $? -eq 0 ] ;then
|
||||
echo "PASS: flow offloaded for ns1/ns2 with NAT"
|
||||
|
@ -313,7 +342,7 @@ fi
|
|||
ip netns exec ns1 sysctl net.ipv4.ip_no_pmtu_disc=0 > /dev/null
|
||||
ip netns exec ns2 sysctl net.ipv4.ip_no_pmtu_disc=0 > /dev/null
|
||||
|
||||
test_tcp_forwarding ns1 ns2
|
||||
test_tcp_forwarding_nat ns1 ns2
|
||||
if [ $? -eq 0 ] ;then
|
||||
echo "PASS: flow offloaded for ns1/ns2 with NAT and pmtu discovery"
|
||||
else
|
||||
|
|
Загрузка…
Ссылка в новой задаче