diff options
Diffstat (limited to 'tests/sys/netpfil/pf/nat.sh')
| -rw-r--r-- | tests/sys/netpfil/pf/nat.sh | 47 | 
1 files changed, 41 insertions, 6 deletions
| diff --git a/tests/sys/netpfil/pf/nat.sh b/tests/sys/netpfil/pf/nat.sh index 1ef87cee3598..0824671fa0f1 100644 --- a/tests/sys/netpfil/pf/nat.sh +++ b/tests/sys/netpfil/pf/nat.sh @@ -477,15 +477,49 @@ no_addrs_random_cleanup()  	pft_cleanup  } -atf_test_case "nat_pass" "cleanup" -nat_pass_head() +atf_test_case "nat_pass_in" "cleanup" +nat_pass_in_head()  { -	atf_set descr 'IPv4 NAT on pass rule' +	atf_set descr 'IPv4 NAT on inbound pass rule'  	atf_set require.user root  	atf_set require.progs scapy  } -nat_pass_body() +nat_pass_in_body() +{ +	setup_router_server_ipv4 +	# Delete the route back to make sure that the traffic has been NAT-ed +	jexec server route del -net ${net_tester} ${net_server_host_router} +	# Provide routing back to the NAT address +	jexec server route add 203.0.113.0/24 ${net_server_host_router} +	jexec router route add 203.0.113.0/24 -iface ${epair_tester}b + +	pft_set_rules router \ +		"block" \ +		"pass in  on ${epair_tester}b inet proto tcp nat-to 203.0.113.0 keep state" \ +		"pass out on ${epair_server}a inet proto tcp keep state" + +	ping_server_check_reply exit:0 --ping-type=tcp3way --send-sport=4201 + +	jexec router pfctl -qvvsr +	jexec router pfctl -qvvss +	jexec router ifconfig +	jexec router netstat -rn +} + +nat_pass_in_cleanup() +{ +	pft_cleanup +} + +nat_pass_out_head() +{ +	atf_set descr 'IPv4 NAT on outbound pass rule' +	atf_set require.user root +	atf_set require.progs scapy +} + +nat_pass_out_body()  {  	setup_router_server_ipv4  	# Delete the route back to make sure that the traffic has been NAT-ed @@ -504,7 +538,7 @@ nat_pass_body()  	jexec router netstat -rn  } -nat_pass_cleanup() +nat_pass_out_cleanup()  {  	pft_cleanup  } @@ -874,7 +908,8 @@ atf_init_test_cases()  	atf_add_test_case "no_addrs_random"  	atf_add_test_case "map_e_compat"  	atf_add_test_case "map_e_pass" -	atf_add_test_case "nat_pass" +	atf_add_test_case "nat_pass_in" +	atf_add_test_case "nat_pass_out"  	atf_add_test_case "nat_match"  	atf_add_test_case "binat_compat"  	atf_add_test_case "binat_match" | 
