@@ -994,6 +994,50 @@ def test_zone_basic(self):
994994 self .verify_nftables (nftables_search , 'ip vyos_filter' )
995995 self .verify_nftables (nftables_search_v6 , 'ip6 vyos_filter' )
996996
997+ def test_zone_with_default_firewall (self ):
998+ self .cli_set (['firewall' , 'ipv4' , 'name' , 'smoketest' , 'default-action' , 'drop' ])
999+ self .cli_set (['firewall' , 'ipv4' , 'name' , 'smoketest-default' , 'default-action' , 'drop' ])
1000+ self .cli_set (['firewall' , 'zone' , 'smoketest-eth0' , 'member' , 'interface' , 'eth0' ])
1001+ self .cli_set (['firewall' , 'zone' , 'smoketest-eth0' , 'from' , 'smoketest-eth1' , 'firewall' , 'name' , 'smoketest' ])
1002+ self .cli_set (['firewall' , 'zone' , 'smoketest-eth0' , 'from' , 'smoketest-local' , 'firewall' , 'name' , 'smoketest' ])
1003+ self .cli_set (['firewall' , 'zone' , 'smoketest-eth0' , 'default-firewall' , 'name' , 'smoketest-default' ])
1004+ self .cli_set (['firewall' , 'zone' , 'smoketest-eth1' , 'member' , 'interface' , 'eth1' ])
1005+ self .cli_set (['firewall' , 'zone' , 'smoketest-eth1' , 'default-firewall' , 'name' , 'smoketest-default' ])
1006+ self .cli_set (['firewall' , 'zone' , 'smoketest-eth2' , 'member' , 'interface' , 'eth2' ])
1007+ self .cli_set (['firewall' , 'zone' , 'smoketest-local' , 'local-zone' ])
1008+ self .cli_set (['firewall' , 'zone' , 'smoketest-local' , 'from' , 'smoketest-eth0' , 'firewall' , 'name' , 'smoketest' ])
1009+ self .cli_set (['firewall' , 'zone' , 'smoketest-local' , 'default-firewall' , 'name' , 'smoketest-default' ])
1010+ self .cli_commit ()
1011+
1012+ smoketest_eth0_search = [
1013+ ['iifname "eth1"' , 'jump NAME_smoketest' ],
1014+ ['jump NAME_smoketest-default' ]
1015+ ]
1016+ self .verify_nftables_chain_exists ('ip vyos_filter' , 'VZONE_smoketest-eth0' )
1017+ self .verify_nftables_chain (smoketest_eth0_search , 'ip vyos_filter' , 'VZONE_smoketest-eth0' )
1018+
1019+ smoketest_eth1_search = [
1020+ ['jump NAME_smoketest-default' ]
1021+ ]
1022+ self .verify_nftables_chain_exists ('ip vyos_filter' , 'VZONE_smoketest-eth1' )
1023+ self .verify_nftables_chain (smoketest_eth1_search , 'ip vyos_filter' , 'VZONE_smoketest-eth1' )
1024+
1025+ self .verify_nftables_chain_exists ('ip vyos_filter' , 'VZONE_smoketest-eth2' )
1026+
1027+ smoketest_local_in_search = [
1028+ ['iifname "eth0"' , 'jump NAME_smoketest' ],
1029+ ['jump NAME_smoketest-default' ],
1030+ ]
1031+ self .verify_nftables_chain_exists ('ip vyos_filter' , 'VZONE_smoketest-local_IN' )
1032+ self .verify_nftables_chain (smoketest_local_in_search , 'ip vyos_filter' , 'VZONE_smoketest-local_IN' )
1033+
1034+ smoketest_local_out_search = [
1035+ ['oifname "eth0"' , 'jump NAME_smoketest' ],
1036+ ['oifname "eth1"' , 'jump NAME_smoketest-default' ]
1037+ ]
1038+ self .verify_nftables_chain_exists ('ip vyos_filter' , 'VZONE_smoketest-local_OUT' )
1039+ self .verify_nftables_chain (smoketest_local_out_search , 'ip vyos_filter' , 'VZONE_smoketest-local_OUT' )
1040+
9971041 def test_zone_with_vrf (self ):
9981042 self .cli_set (['firewall' , 'ipv4' , 'name' , 'ZONE1-to-LOCAL' , 'default-action' , 'accept' ])
9991043 self .cli_set (['firewall' , 'ipv4' , 'name' , 'ZONE2_to_ZONE1' , 'default-action' , 'continue' ])
0 commit comments