Move address scope specific code out of iptables_manager
iptables_manager will be used by many features including security groups, FWaaS, metering. The address scope specific code should be moved out of iptables_manager, so that other feature will not get the iptables rules that they will not use. For example, dhcp namespace will not have the address scope iptables rules. The change to the test code to adapt the change at [1], has also been reverted in this patch. Instead, a couple of new test cases are added. [1] https://review.openstack.org/#/c/270001/ Change-Id: Ifc8e7a381f8ab005a9e0216532cc7d0e7378c025 Closes-Bug: #1549513
This commit is contained in:
parent
36a04c9a30
commit
24f95f4877
|
@ -154,6 +154,8 @@ class DvrEdgeRouter(dvr_local_router.DvrLocalRouter):
|
|||
namespace=snat_ns.name,
|
||||
use_ipv6=self.use_ipv6)
|
||||
|
||||
self._initialize_address_scope_iptables(self.snat_iptables_manager)
|
||||
|
||||
def _create_snat_namespace(self):
|
||||
# TODO(mlavalle): in the near future, this method should contain the
|
||||
# code in the L3 agent that creates a gateway for a dvr. The first step
|
||||
|
|
|
@ -66,6 +66,7 @@ class RouterInfo(object):
|
|||
self.iptables_manager = iptables_manager.IptablesManager(
|
||||
use_ipv6=use_ipv6,
|
||||
namespace=self.ns_name)
|
||||
self.initialize_address_scope_iptables()
|
||||
self.routes = []
|
||||
self.agent_conf = agent_conf
|
||||
self.driver = interface_driver
|
||||
|
@ -831,6 +832,53 @@ class RouterInfo(object):
|
|||
agent.plugin_rpc.update_floatingip_statuses(
|
||||
agent.context, self.router_id, fip_statuses)
|
||||
|
||||
def initialize_address_scope_iptables(self):
|
||||
self._initialize_address_scope_iptables(self.iptables_manager)
|
||||
|
||||
def _initialize_address_scope_iptables(self, iptables_manager):
|
||||
# Add address scope related chains
|
||||
iptables_manager.ipv4['mangle'].add_chain('scope')
|
||||
iptables_manager.ipv6['mangle'].add_chain('scope')
|
||||
|
||||
iptables_manager.ipv4['mangle'].add_chain('floatingip')
|
||||
iptables_manager.ipv4['mangle'].add_chain('float-snat')
|
||||
|
||||
iptables_manager.ipv4['filter'].add_chain('scope')
|
||||
iptables_manager.ipv6['filter'].add_chain('scope')
|
||||
iptables_manager.ipv4['filter'].add_rule('FORWARD', '-j $scope')
|
||||
iptables_manager.ipv6['filter'].add_rule('FORWARD', '-j $scope')
|
||||
|
||||
# Add rules for marking traffic for address scopes
|
||||
mark_new_ingress_address_scope_by_interface = (
|
||||
'-j $scope')
|
||||
copy_address_scope_for_existing = (
|
||||
'-m connmark ! --mark 0x0/0xffff0000 '
|
||||
'-j CONNMARK --restore-mark '
|
||||
'--nfmask 0xffff0000 --ctmask 0xffff0000')
|
||||
mark_new_ingress_address_scope_by_floatingip = (
|
||||
'-j $floatingip')
|
||||
save_mark_to_connmark = (
|
||||
'-m connmark --mark 0x0/0xffff0000 '
|
||||
'-j CONNMARK --save-mark '
|
||||
'--nfmask 0xffff0000 --ctmask 0xffff0000')
|
||||
|
||||
iptables_manager.ipv4['mangle'].add_rule(
|
||||
'PREROUTING', mark_new_ingress_address_scope_by_interface)
|
||||
iptables_manager.ipv4['mangle'].add_rule(
|
||||
'PREROUTING', copy_address_scope_for_existing)
|
||||
# The floating ip scope rules must come after the CONNTRACK rules
|
||||
# because the (CONN)MARK targets are non-terminating (this is true
|
||||
# despite them not being documented as such) and the floating ip
|
||||
# rules need to override the mark from CONNMARK to cross scopes.
|
||||
iptables_manager.ipv4['mangle'].add_rule(
|
||||
'PREROUTING', mark_new_ingress_address_scope_by_floatingip)
|
||||
iptables_manager.ipv4['mangle'].add_rule(
|
||||
'float-snat', save_mark_to_connmark)
|
||||
iptables_manager.ipv6['mangle'].add_rule(
|
||||
'PREROUTING', mark_new_ingress_address_scope_by_interface)
|
||||
iptables_manager.ipv6['mangle'].add_rule(
|
||||
'PREROUTING', copy_address_scope_for_existing)
|
||||
|
||||
def _get_port_devicename_scopemark(self, ports, name_generator):
|
||||
devicename_scopemark = {l3_constants.IP_VERSION_4: dict(),
|
||||
l3_constants.IP_VERSION_6: dict()}
|
||||
|
|
|
@ -390,49 +390,6 @@ class IptablesManager(object):
|
|||
self.ipv4['mangle'].add_chain('mark')
|
||||
self.ipv4['mangle'].add_rule('PREROUTING', '-j $mark')
|
||||
|
||||
# Add address scope related chains
|
||||
self.ipv4['mangle'].add_chain('scope')
|
||||
self.ipv6['mangle'].add_chain('scope')
|
||||
|
||||
self.ipv4['mangle'].add_chain('floatingip')
|
||||
self.ipv4['mangle'].add_chain('float-snat')
|
||||
|
||||
self.ipv4['filter'].add_chain('scope')
|
||||
self.ipv6['filter'].add_chain('scope')
|
||||
self.ipv4['filter'].add_rule('FORWARD', '-j $scope')
|
||||
self.ipv6['filter'].add_rule('FORWARD', '-j $scope')
|
||||
|
||||
# Add rules for marking traffic for address scopes
|
||||
mark_new_ingress_address_scope_by_interface = (
|
||||
'-j $scope')
|
||||
copy_address_scope_for_existing = (
|
||||
'-m connmark ! --mark 0x0/0xffff0000 '
|
||||
'-j CONNMARK --restore-mark '
|
||||
'--nfmask 0xffff0000 --ctmask 0xffff0000')
|
||||
mark_new_ingress_address_scope_by_floatingip = (
|
||||
'-j $floatingip')
|
||||
save_mark_to_connmark = (
|
||||
'-m connmark --mark 0x0/0xffff0000 '
|
||||
'-j CONNMARK --save-mark '
|
||||
'--nfmask 0xffff0000 --ctmask 0xffff0000')
|
||||
|
||||
self.ipv4['mangle'].add_rule(
|
||||
'PREROUTING', mark_new_ingress_address_scope_by_interface)
|
||||
self.ipv4['mangle'].add_rule(
|
||||
'PREROUTING', copy_address_scope_for_existing)
|
||||
# The floating ip scope rules must come after the CONNTRACK rules
|
||||
# because the (CONN)MARK targets are non-terminating (this is true
|
||||
# despite them not being documented as such) and the floating ip
|
||||
# rules need to override the mark from CONNMARK to cross scopes.
|
||||
self.ipv4['mangle'].add_rule(
|
||||
'PREROUTING', mark_new_ingress_address_scope_by_floatingip)
|
||||
self.ipv4['mangle'].add_rule(
|
||||
'float-snat', save_mark_to_connmark)
|
||||
self.ipv6['mangle'].add_rule(
|
||||
'PREROUTING', mark_new_ingress_address_scope_by_interface)
|
||||
self.ipv6['mangle'].add_rule(
|
||||
'PREROUTING', copy_address_scope_for_existing)
|
||||
|
||||
def get_tables(self, ip_version):
|
||||
return {4: self.ipv4, 6: self.ipv6}[ip_version]
|
||||
|
||||
|
|
|
@ -2858,3 +2858,54 @@ class TestBasicRouterOperations(BasicRouterOperationsFramework):
|
|||
self._pd_remove_gw_interface(intfs + intfs1, agent, router, ri)
|
||||
|
||||
ri.process(agent)
|
||||
|
||||
def _verify_address_scopes_iptables_rule(self, mock_iptables_manager):
|
||||
filter_calls = [mock.call.add_chain('scope'),
|
||||
mock.call.add_rule('FORWARD', '-j $scope')]
|
||||
v6_mangle_calls = [mock.call.add_chain('scope'),
|
||||
mock.call.add_rule('PREROUTING', '-j $scope'),
|
||||
mock.call.add_rule(
|
||||
'PREROUTING',
|
||||
'-m connmark ! --mark 0x0/0xffff0000 '
|
||||
'-j CONNMARK --restore-mark '
|
||||
'--nfmask 0xffff0000 --ctmask 0xffff0000')]
|
||||
v4_mangle_calls = (v6_mangle_calls +
|
||||
[mock.call.add_chain('floatingip'),
|
||||
mock.call.add_chain('float-snat'),
|
||||
mock.call.add_rule('PREROUTING', '-j $floatingip'),
|
||||
mock.call.add_rule(
|
||||
'float-snat',
|
||||
'-m connmark --mark 0x0/0xffff0000 '
|
||||
'-j CONNMARK --save-mark '
|
||||
'--nfmask 0xffff0000 --ctmask 0xffff0000')])
|
||||
mock_iptables_manager.ipv4['filter'].assert_has_calls(filter_calls)
|
||||
mock_iptables_manager.ipv6['filter'].assert_has_calls(filter_calls)
|
||||
mock_iptables_manager.ipv4['mangle'].assert_has_calls(v4_mangle_calls,
|
||||
any_order=True)
|
||||
mock_iptables_manager.ipv6['mangle'].assert_has_calls(v6_mangle_calls,
|
||||
any_order=True)
|
||||
|
||||
def test_initialize_address_scope_iptables_rules(self):
|
||||
id = _uuid()
|
||||
with mock.patch('neutron.agent.linux.iptables_manager.'
|
||||
'IptablesManager'):
|
||||
ri = l3router.RouterInfo(id, {}, **self.ri_kwargs)
|
||||
self._verify_address_scopes_iptables_rule(ri.iptables_manager)
|
||||
|
||||
def test_initialize_address_scope_iptables_rules_dvr(self):
|
||||
router = l3_test_common.prepare_router_data()
|
||||
with mock.patch('neutron.agent.linux.iptables_manager.'
|
||||
'IptablesManager'):
|
||||
ri = dvr_router.DvrEdgeRouter(mock.Mock(),
|
||||
HOSTNAME,
|
||||
router['id'],
|
||||
router,
|
||||
**self.ri_kwargs)
|
||||
self._verify_address_scopes_iptables_rule(ri.iptables_manager)
|
||||
interface_name, ex_gw_port = l3_test_common.prepare_ext_gw_test(
|
||||
self, ri)
|
||||
router['gw_port_host'] = ri.host
|
||||
ri._external_gateway_added = mock.Mock()
|
||||
ri._create_dvr_gateway(ex_gw_port, interface_name)
|
||||
self._verify_address_scopes_iptables_rule(
|
||||
ri.snat_iptables_manager)
|
||||
|
|
|
@ -67,14 +67,12 @@ FILTER_TEMPLATE = ('# Generated by iptables_manager\n'
|
|||
':%(bn)s-INPUT - [0:0]\n'
|
||||
':%(bn)s-OUTPUT - [0:0]\n'
|
||||
':%(bn)s-local - [0:0]\n'
|
||||
':%(bn)s-scope - [0:0]\n'
|
||||
'-I FORWARD 1 -j neutron-filter-top\n'
|
||||
'-I FORWARD 2 -j %(bn)s-FORWARD\n'
|
||||
'-I INPUT 1 -j %(bn)s-INPUT\n'
|
||||
'-I OUTPUT 1 -j neutron-filter-top\n'
|
||||
'-I OUTPUT 2 -j %(bn)s-OUTPUT\n'
|
||||
'-I neutron-filter-top 1 -j %(bn)s-local\n'
|
||||
'-I %(bn)s-FORWARD 1 -j %(bn)s-scope\n'
|
||||
'COMMIT\n'
|
||||
'# Completed by iptables_manager\n')
|
||||
|
||||
|
@ -92,14 +90,12 @@ FILTER_WITH_RULES_TEMPLATE = (
|
|||
':%(bn)s-OUTPUT - [0:0]\n'
|
||||
':%(bn)s-filter - [0:0]\n'
|
||||
':%(bn)s-local - [0:0]\n'
|
||||
':%(bn)s-scope - [0:0]\n'
|
||||
'-I FORWARD 1 -j neutron-filter-top\n'
|
||||
'-I FORWARD 2 -j %(bn)s-FORWARD\n'
|
||||
'-I INPUT 1 -j %(bn)s-INPUT\n'
|
||||
'-I OUTPUT 1 -j neutron-filter-top\n'
|
||||
'-I OUTPUT 2 -j %(bn)s-OUTPUT\n'
|
||||
'-I neutron-filter-top 1 -j %(bn)s-local\n'
|
||||
'-I %(bn)s-FORWARD 1 -j %(bn)s-scope\n'
|
||||
'%(filter_rules)s'
|
||||
'COMMIT\n'
|
||||
'# Completed by iptables_manager\n')
|
||||
|
@ -239,24 +235,13 @@ def _generate_mangle_dump(iptables_args):
|
|||
':%(bn)s-OUTPUT - [0:0]\n'
|
||||
':%(bn)s-POSTROUTING - [0:0]\n'
|
||||
':%(bn)s-PREROUTING - [0:0]\n'
|
||||
':%(bn)s-float-snat - [0:0]\n'
|
||||
':%(bn)s-floatingip - [0:0]\n'
|
||||
':%(bn)s-mark - [0:0]\n'
|
||||
':%(bn)s-scope - [0:0]\n'
|
||||
'-I FORWARD 1 -j %(bn)s-FORWARD\n'
|
||||
'-I INPUT 1 -j %(bn)s-INPUT\n'
|
||||
'-I OUTPUT 1 -j %(bn)s-OUTPUT\n'
|
||||
'-I POSTROUTING 1 -j %(bn)s-POSTROUTING\n'
|
||||
'-I PREROUTING 1 -j %(bn)s-PREROUTING\n'
|
||||
'-I %(bn)s-PREROUTING 1 -j %(bn)s-mark\n'
|
||||
'-I %(bn)s-PREROUTING 2 -j %(bn)s-scope\n'
|
||||
'-I %(bn)s-PREROUTING 3 -m connmark ! --mark 0x0/0xffff0000 '
|
||||
'-j CONNMARK --restore-mark '
|
||||
'--nfmask 0xffff0000 --ctmask 0xffff0000\n'
|
||||
'-I %(bn)s-PREROUTING 4 -j %(bn)s-floatingip\n'
|
||||
'-I %(bn)s-float-snat 1 -m connmark --mark 0x0/0xffff0000 '
|
||||
'-j CONNMARK --save-mark '
|
||||
'--nfmask 0xffff0000 --ctmask 0xffff0000\n'
|
||||
'COMMIT\n'
|
||||
'# Completed by iptables_manager\n' % iptables_args)
|
||||
|
||||
|
@ -274,16 +259,11 @@ def _generate_mangle_dump_v6(iptables_args):
|
|||
':%(bn)s-OUTPUT - [0:0]\n'
|
||||
':%(bn)s-POSTROUTING - [0:0]\n'
|
||||
':%(bn)s-PREROUTING - [0:0]\n'
|
||||
':%(bn)s-scope - [0:0]\n'
|
||||
'-I FORWARD 1 -j %(bn)s-FORWARD\n'
|
||||
'-I INPUT 1 -j %(bn)s-INPUT\n'
|
||||
'-I OUTPUT 1 -j %(bn)s-OUTPUT\n'
|
||||
'-I POSTROUTING 1 -j %(bn)s-POSTROUTING\n'
|
||||
'-I PREROUTING 1 -j %(bn)s-PREROUTING\n'
|
||||
'-I %(bn)s-PREROUTING 1 -j %(bn)s-scope\n'
|
||||
'-I %(bn)s-PREROUTING 2 -m connmark ! --mark 0x0/0xffff0000 '
|
||||
'-j CONNMARK --restore-mark '
|
||||
'--nfmask 0xffff0000 --ctmask 0xffff0000\n'
|
||||
'COMMIT\n'
|
||||
'# Completed by iptables_manager\n' % iptables_args)
|
||||
|
||||
|
@ -612,14 +592,12 @@ class IptablesManagerStateFulTestCase(base.BaseTestCase):
|
|||
':%(bn)s-INPUT - [0:0]\n'
|
||||
':%(bn)s-OUTPUT - [0:0]\n'
|
||||
':%(bn)s-local - [0:0]\n'
|
||||
':%(bn)s-scope - [0:0]\n'
|
||||
'-I FORWARD 1 -j neutron-filter-top\n'
|
||||
'-I FORWARD 2 -j %(bn)s-FORWARD\n'
|
||||
'-I INPUT 1 -j %(bn)s-INPUT\n'
|
||||
'-I OUTPUT 1 -j neutron-filter-top\n'
|
||||
'-I OUTPUT 2 -j %(bn)s-OUTPUT\n'
|
||||
'-I neutron-filter-top 1 -j %(bn)s-local\n'
|
||||
'-I %(bn)s-FORWARD 1 -j %(bn)s-scope\n'
|
||||
'-I %(bn)s-INPUT 1 -s 0/0 -d 192.168.0.2 -j '
|
||||
'%(wrap)s\n'
|
||||
'COMMIT\n'
|
||||
|
@ -692,26 +670,15 @@ class IptablesManagerStateFulTestCase(base.BaseTestCase):
|
|||
':%(bn)s-OUTPUT - [0:0]\n'
|
||||
':%(bn)s-POSTROUTING - [0:0]\n'
|
||||
':%(bn)s-PREROUTING - [0:0]\n'
|
||||
':%(bn)s-float-snat - [0:0]\n'
|
||||
':%(bn)s-floatingip - [0:0]\n'
|
||||
':%(bn)s-mangle - [0:0]\n'
|
||||
':%(bn)s-mark - [0:0]\n'
|
||||
':%(bn)s-scope - [0:0]\n'
|
||||
'-I FORWARD 1 -j %(bn)s-FORWARD\n'
|
||||
'-I INPUT 1 -j %(bn)s-INPUT\n'
|
||||
'-I OUTPUT 1 -j %(bn)s-OUTPUT\n'
|
||||
'-I POSTROUTING 1 -j %(bn)s-POSTROUTING\n'
|
||||
'-I PREROUTING 1 -j %(bn)s-PREROUTING\n'
|
||||
'-I %(bn)s-PREROUTING 1 -j %(bn)s-mark\n'
|
||||
'-I %(bn)s-PREROUTING 2 -j %(bn)s-scope\n'
|
||||
'-I %(bn)s-PREROUTING 3 -m connmark ! --mark 0x0/0xffff0000 '
|
||||
'-j CONNMARK --restore-mark '
|
||||
'--nfmask 0xffff0000 --ctmask 0xffff0000\n'
|
||||
'-I %(bn)s-PREROUTING 4 -j %(bn)s-floatingip\n'
|
||||
'-I %(bn)s-PREROUTING 5 -j MARK --set-xmark 0x1/%(mark)s\n'
|
||||
'-I %(bn)s-float-snat 1 -m connmark --mark 0x0/0xffff0000 '
|
||||
'-j CONNMARK --save-mark '
|
||||
'--nfmask 0xffff0000 --ctmask 0xffff0000\n'
|
||||
'-I %(bn)s-PREROUTING 2 -j MARK --set-xmark 0x1/%(mark)s\n'
|
||||
'COMMIT\n'
|
||||
'# Completed by iptables_manager\n' % IPTABLES_ARG)
|
||||
|
||||
|
|
|
@ -1693,8 +1693,7 @@ IPTABLES_ARG = {'bn': iptables_manager.binary_name,
|
|||
'physdev_mod': PHYSDEV_MOD,
|
||||
'physdev_is_bridged': PHYSDEV_IS_BRIDGED}
|
||||
|
||||
CHAINS_MANGLE = ('FORWARD|INPUT|OUTPUT|POSTROUTING|PREROUTING|mark|scope'
|
||||
'|float-snat|floatingip')
|
||||
CHAINS_MANGLE = 'FORWARD|INPUT|OUTPUT|POSTROUTING|PREROUTING|mark'
|
||||
IPTABLES_ARG['chains'] = CHAINS_MANGLE
|
||||
|
||||
IPTABLES_MANGLE = """# Generated by iptables_manager
|
||||
|
@ -1710,26 +1709,17 @@ IPTABLES_MANGLE = """# Generated by iptables_manager
|
|||
:%(bn)s-(%(chains)s) - [0:0]
|
||||
:%(bn)s-(%(chains)s) - [0:0]
|
||||
:%(bn)s-(%(chains)s) - [0:0]
|
||||
:%(bn)s-(%(chains)s) - [0:0]
|
||||
:%(bn)s-(%(chains)s) - [0:0]
|
||||
:%(bn)s-(%(chains)s) - [0:0]
|
||||
-I FORWARD 1 -j %(bn)s-FORWARD
|
||||
-I INPUT 1 -j %(bn)s-INPUT
|
||||
-I OUTPUT 1 -j %(bn)s-OUTPUT
|
||||
-I POSTROUTING 1 -j %(bn)s-POSTROUTING
|
||||
-I PREROUTING 1 -j %(bn)s-PREROUTING
|
||||
-I %(bn)s-PREROUTING 1 -j %(bn)s-mark
|
||||
-I %(bn)s-PREROUTING 2 -j %(bn)s-scope
|
||||
-I %(bn)s-PREROUTING 3 -m connmark ! --mark 0x0/0xffff0000 -j CONNMARK \
|
||||
--restore-mark --nfmask 0xffff0000 --ctmask 0xffff0000
|
||||
-I %(bn)s-PREROUTING 4 -j %(bn)s-floatingip
|
||||
-I %(bn)s-float-snat 1 -m connmark --mark 0x0/0xffff0000 \
|
||||
-j CONNMARK --save-mark --nfmask 0xffff0000 --ctmask 0xffff0000
|
||||
COMMIT
|
||||
# Completed by iptables_manager
|
||||
""" % IPTABLES_ARG
|
||||
|
||||
CHAINS_MANGLE_V6 = 'FORWARD|INPUT|OUTPUT|POSTROUTING|PREROUTING|scope'
|
||||
CHAINS_MANGLE_V6 = 'FORWARD|INPUT|OUTPUT|POSTROUTING|PREROUTING'
|
||||
IPTABLES_ARG['chains'] = CHAINS_MANGLE_V6
|
||||
IPTABLES_MANGLE_V6 = """# Generated by iptables_manager
|
||||
*mangle
|
||||
|
@ -1743,15 +1733,11 @@ IPTABLES_MANGLE_V6 = """# Generated by iptables_manager
|
|||
:%(bn)s-(%(chains)s) - [0:0]
|
||||
:%(bn)s-(%(chains)s) - [0:0]
|
||||
:%(bn)s-(%(chains)s) - [0:0]
|
||||
:%(bn)s-(%(chains)s) - [0:0]
|
||||
-I FORWARD 1 -j %(bn)s-FORWARD
|
||||
-I INPUT 1 -j %(bn)s-INPUT
|
||||
-I OUTPUT 1 -j %(bn)s-OUTPUT
|
||||
-I POSTROUTING 1 -j %(bn)s-POSTROUTING
|
||||
-I PREROUTING 1 -j %(bn)s-PREROUTING
|
||||
-I %(bn)s-PREROUTING 1 -j %(bn)s-scope
|
||||
-I %(bn)s-PREROUTING 2 -m connmark ! --mark 0x0/0xffff0000 -j CONNMARK \
|
||||
--restore-mark --nfmask 0xffff0000 --ctmask 0xffff0000
|
||||
COMMIT
|
||||
# Completed by iptables_manager
|
||||
""" % IPTABLES_ARG
|
||||
|
@ -1846,7 +1832,7 @@ COMMIT
|
|||
# Completed by iptables_manager
|
||||
""" % IPTABLES_ARG
|
||||
|
||||
CHAINS_EMPTY = ('FORWARD|INPUT|OUTPUT|local|scope|sg-chain|sg-fallback')
|
||||
CHAINS_EMPTY = 'FORWARD|INPUT|OUTPUT|local|sg-chain|sg-fallback'
|
||||
CHAINS_1 = CHAINS_EMPTY + '|i_port1|o_port1|s_port1'
|
||||
CHAINS_2 = CHAINS_1 + '|i_port2|o_port2|s_port2'
|
||||
|
||||
|
@ -1867,17 +1853,15 @@ IPSET_FILTER_1 = """# Generated by iptables_manager
|
|||
:%(bn)s-(%(chains)s) - [0:0]
|
||||
:%(bn)s-(%(chains)s) - [0:0]
|
||||
:%(bn)s-(%(chains)s) - [0:0]
|
||||
:%(bn)s-(%(chains)s) - [0:0]
|
||||
-I FORWARD 1 -j neutron-filter-top
|
||||
-I FORWARD 2 -j %(bn)s-FORWARD
|
||||
-I INPUT 1 -j %(bn)s-INPUT
|
||||
-I OUTPUT 1 -j neutron-filter-top
|
||||
-I OUTPUT 2 -j %(bn)s-OUTPUT
|
||||
-I neutron-filter-top 1 -j %(bn)s-local
|
||||
-I %(bn)s-FORWARD 1 -j %(bn)s-scope
|
||||
-I %(bn)s-FORWARD 2 %(physdev_mod)s --physdev-INGRESS tap_port1 \
|
||||
-I %(bn)s-FORWARD 1 %(physdev_mod)s --physdev-INGRESS tap_port1 \
|
||||
%(physdev_is_bridged)s -j %(bn)s-sg-chain
|
||||
-I %(bn)s-FORWARD 3 %(physdev_mod)s --physdev-EGRESS tap_port1 \
|
||||
-I %(bn)s-FORWARD 2 %(physdev_mod)s --physdev-EGRESS tap_port1 \
|
||||
%(physdev_is_bridged)s -j %(bn)s-sg-chain
|
||||
-I %(bn)s-INPUT 1 %(physdev_mod)s --physdev-EGRESS tap_port1 \
|
||||
%(physdev_is_bridged)s -j %(bn)s-o_port1
|
||||
|
@ -1926,17 +1910,15 @@ IPTABLES_FILTER_1 = """# Generated by iptables_manager
|
|||
:%(bn)s-(%(chains)s) - [0:0]
|
||||
:%(bn)s-(%(chains)s) - [0:0]
|
||||
:%(bn)s-(%(chains)s) - [0:0]
|
||||
:%(bn)s-(%(chains)s) - [0:0]
|
||||
-I FORWARD 1 -j neutron-filter-top
|
||||
-I FORWARD 2 -j %(bn)s-FORWARD
|
||||
-I INPUT 1 -j %(bn)s-INPUT
|
||||
-I OUTPUT 1 -j neutron-filter-top
|
||||
-I OUTPUT 2 -j %(bn)s-OUTPUT
|
||||
-I neutron-filter-top 1 -j %(bn)s-local
|
||||
-I %(bn)s-FORWARD 1 -j %(bn)s-scope
|
||||
-I %(bn)s-FORWARD 2 %(physdev_mod)s --physdev-INGRESS tap_port1 \
|
||||
-I %(bn)s-FORWARD 1 %(physdev_mod)s --physdev-INGRESS tap_port1 \
|
||||
%(physdev_is_bridged)s -j %(bn)s-sg-chain
|
||||
-I %(bn)s-FORWARD 3 %(physdev_mod)s --physdev-EGRESS tap_port1 \
|
||||
-I %(bn)s-FORWARD 2 %(physdev_mod)s --physdev-EGRESS tap_port1 \
|
||||
%(physdev_is_bridged)s -j %(bn)s-sg-chain
|
||||
-I %(bn)s-INPUT 1 %(physdev_mod)s --physdev-EGRESS tap_port1 \
|
||||
%(physdev_is_bridged)s -j %(bn)s-o_port1
|
||||
|
@ -1984,17 +1966,15 @@ IPTABLES_FILTER_1_2 = """# Generated by iptables_manager
|
|||
:%(bn)s-(%(chains)s) - [0:0]
|
||||
:%(bn)s-(%(chains)s) - [0:0]
|
||||
:%(bn)s-(%(chains)s) - [0:0]
|
||||
:%(bn)s-(%(chains)s) - [0:0]
|
||||
-I FORWARD 1 -j neutron-filter-top
|
||||
-I FORWARD 2 -j %(bn)s-FORWARD
|
||||
-I INPUT 1 -j %(bn)s-INPUT
|
||||
-I OUTPUT 1 -j neutron-filter-top
|
||||
-I OUTPUT 2 -j %(bn)s-OUTPUT
|
||||
-I neutron-filter-top 1 -j %(bn)s-local
|
||||
-I %(bn)s-FORWARD 1 -j %(bn)s-scope
|
||||
-I %(bn)s-FORWARD 2 %(physdev_mod)s --physdev-INGRESS tap_port1 \
|
||||
-I %(bn)s-FORWARD 1 %(physdev_mod)s --physdev-INGRESS tap_port1 \
|
||||
%(physdev_is_bridged)s -j %(bn)s-sg-chain
|
||||
-I %(bn)s-FORWARD 3 %(physdev_mod)s --physdev-EGRESS tap_port1 \
|
||||
-I %(bn)s-FORWARD 2 %(physdev_mod)s --physdev-EGRESS tap_port1 \
|
||||
%(physdev_is_bridged)s -j %(bn)s-sg-chain
|
||||
-I %(bn)s-INPUT 1 %(physdev_mod)s --physdev-EGRESS tap_port1 \
|
||||
%(physdev_is_bridged)s -j %(bn)s-o_port1
|
||||
|
@ -2047,21 +2027,19 @@ IPSET_FILTER_2 = """# Generated by iptables_manager
|
|||
:%(bn)s-(%(chains)s) - [0:0]
|
||||
:%(bn)s-(%(chains)s) - [0:0]
|
||||
:%(bn)s-(%(chains)s) - [0:0]
|
||||
:%(bn)s-(%(chains)s) - [0:0]
|
||||
-I FORWARD 1 -j neutron-filter-top
|
||||
-I FORWARD 2 -j %(bn)s-FORWARD
|
||||
-I INPUT 1 -j %(bn)s-INPUT
|
||||
-I OUTPUT 1 -j neutron-filter-top
|
||||
-I OUTPUT 2 -j %(bn)s-OUTPUT
|
||||
-I neutron-filter-top 1 -j %(bn)s-local
|
||||
-I %(bn)s-FORWARD 1 -j %(bn)s-scope
|
||||
-I %(bn)s-FORWARD 2 %(physdev_mod)s --physdev-INGRESS tap_%(port1)s \
|
||||
-I %(bn)s-FORWARD 1 %(physdev_mod)s --physdev-INGRESS tap_%(port1)s \
|
||||
%(physdev_is_bridged)s -j %(bn)s-sg-chain
|
||||
-I %(bn)s-FORWARD 3 %(physdev_mod)s --physdev-EGRESS tap_%(port1)s \
|
||||
-I %(bn)s-FORWARD 2 %(physdev_mod)s --physdev-EGRESS tap_%(port1)s \
|
||||
%(physdev_is_bridged)s -j %(bn)s-sg-chain
|
||||
-I %(bn)s-FORWARD 4 %(physdev_mod)s --physdev-INGRESS tap_%(port2)s \
|
||||
-I %(bn)s-FORWARD 3 %(physdev_mod)s --physdev-INGRESS tap_%(port2)s \
|
||||
%(physdev_is_bridged)s -j %(bn)s-sg-chain
|
||||
-I %(bn)s-FORWARD 5 %(physdev_mod)s --physdev-EGRESS tap_%(port2)s \
|
||||
-I %(bn)s-FORWARD 4 %(physdev_mod)s --physdev-EGRESS tap_%(port2)s \
|
||||
%(physdev_is_bridged)s -j %(bn)s-sg-chain
|
||||
-I %(bn)s-INPUT 1 %(physdev_mod)s --physdev-EGRESS tap_%(port1)s \
|
||||
%(physdev_is_bridged)s -j %(bn)s-o_%(port1)s
|
||||
|
@ -2135,21 +2113,19 @@ IPSET_FILTER_2_3 = """# Generated by iptables_manager
|
|||
:%(bn)s-(%(chains)s) - [0:0]
|
||||
:%(bn)s-(%(chains)s) - [0:0]
|
||||
:%(bn)s-(%(chains)s) - [0:0]
|
||||
:%(bn)s-(%(chains)s) - [0:0]
|
||||
-I FORWARD 1 -j neutron-filter-top
|
||||
-I FORWARD 2 -j %(bn)s-FORWARD
|
||||
-I INPUT 1 -j %(bn)s-INPUT
|
||||
-I OUTPUT 1 -j neutron-filter-top
|
||||
-I OUTPUT 2 -j %(bn)s-OUTPUT
|
||||
-I neutron-filter-top 1 -j %(bn)s-local
|
||||
-I %(bn)s-FORWARD 1 -j %(bn)s-scope
|
||||
-I %(bn)s-FORWARD 2 %(physdev_mod)s --physdev-INGRESS tap_%(port1)s \
|
||||
-I %(bn)s-FORWARD 1 %(physdev_mod)s --physdev-INGRESS tap_%(port1)s \
|
||||
%(physdev_is_bridged)s -j %(bn)s-sg-chain
|
||||
-I %(bn)s-FORWARD 3 %(physdev_mod)s --physdev-EGRESS tap_%(port1)s \
|
||||
-I %(bn)s-FORWARD 2 %(physdev_mod)s --physdev-EGRESS tap_%(port1)s \
|
||||
%(physdev_is_bridged)s -j %(bn)s-sg-chain
|
||||
-I %(bn)s-FORWARD 4 %(physdev_mod)s --physdev-INGRESS tap_%(port2)s \
|
||||
-I %(bn)s-FORWARD 3 %(physdev_mod)s --physdev-INGRESS tap_%(port2)s \
|
||||
%(physdev_is_bridged)s -j %(bn)s-sg-chain
|
||||
-I %(bn)s-FORWARD 5 %(physdev_mod)s --physdev-EGRESS tap_%(port2)s \
|
||||
-I %(bn)s-FORWARD 4 %(physdev_mod)s --physdev-EGRESS tap_%(port2)s \
|
||||
%(physdev_is_bridged)s -j %(bn)s-sg-chain
|
||||
-I %(bn)s-INPUT 1 %(physdev_mod)s --physdev-EGRESS tap_%(port1)s \
|
||||
%(physdev_is_bridged)s -j %(bn)s-o_%(port1)s
|
||||
|
@ -2225,21 +2201,19 @@ IPTABLES_FILTER_2 = """# Generated by iptables_manager
|
|||
:%(bn)s-(%(chains)s) - [0:0]
|
||||
:%(bn)s-(%(chains)s) - [0:0]
|
||||
:%(bn)s-(%(chains)s) - [0:0]
|
||||
:%(bn)s-(%(chains)s) - [0:0]
|
||||
-I FORWARD 1 -j neutron-filter-top
|
||||
-I FORWARD 2 -j %(bn)s-FORWARD
|
||||
-I INPUT 1 -j %(bn)s-INPUT
|
||||
-I OUTPUT 1 -j neutron-filter-top
|
||||
-I OUTPUT 2 -j %(bn)s-OUTPUT
|
||||
-I neutron-filter-top 1 -j %(bn)s-local
|
||||
-I %(bn)s-FORWARD 1 -j %(bn)s-scope
|
||||
-I %(bn)s-FORWARD 2 %(physdev_mod)s --physdev-INGRESS tap_%(port1)s \
|
||||
-I %(bn)s-FORWARD 1 %(physdev_mod)s --physdev-INGRESS tap_%(port1)s \
|
||||
%(physdev_is_bridged)s -j %(bn)s-sg-chain
|
||||
-I %(bn)s-FORWARD 3 %(physdev_mod)s --physdev-EGRESS tap_%(port1)s \
|
||||
-I %(bn)s-FORWARD 2 %(physdev_mod)s --physdev-EGRESS tap_%(port1)s \
|
||||
%(physdev_is_bridged)s -j %(bn)s-sg-chain
|
||||
-I %(bn)s-FORWARD 4 %(physdev_mod)s --physdev-INGRESS tap_%(port2)s \
|
||||
-I %(bn)s-FORWARD 3 %(physdev_mod)s --physdev-INGRESS tap_%(port2)s \
|
||||
%(physdev_is_bridged)s -j %(bn)s-sg-chain
|
||||
-I %(bn)s-FORWARD 5 %(physdev_mod)s --physdev-EGRESS tap_%(port2)s \
|
||||
-I %(bn)s-FORWARD 4 %(physdev_mod)s --physdev-EGRESS tap_%(port2)s \
|
||||
%(physdev_is_bridged)s -j %(bn)s-sg-chain
|
||||
-I %(bn)s-INPUT 1 %(physdev_mod)s --physdev-EGRESS tap_%(port1)s \
|
||||
%(physdev_is_bridged)s -j %(bn)s-o_%(port1)s
|
||||
|
@ -2313,21 +2287,19 @@ IPTABLES_FILTER_2_2 = """# Generated by iptables_manager
|
|||
:%(bn)s-(%(chains)s) - [0:0]
|
||||
:%(bn)s-(%(chains)s) - [0:0]
|
||||
:%(bn)s-(%(chains)s) - [0:0]
|
||||
:%(bn)s-(%(chains)s) - [0:0]
|
||||
-I FORWARD 1 -j neutron-filter-top
|
||||
-I FORWARD 2 -j %(bn)s-FORWARD
|
||||
-I INPUT 1 -j %(bn)s-INPUT
|
||||
-I OUTPUT 1 -j neutron-filter-top
|
||||
-I OUTPUT 2 -j %(bn)s-OUTPUT
|
||||
-I neutron-filter-top 1 -j %(bn)s-local
|
||||
-I %(bn)s-FORWARD 1 -j %(bn)s-scope
|
||||
-I %(bn)s-FORWARD 2 %(physdev_mod)s --physdev-INGRESS tap_%(port1)s \
|
||||
-I %(bn)s-FORWARD 1 %(physdev_mod)s --physdev-INGRESS tap_%(port1)s \
|
||||
%(physdev_is_bridged)s -j %(bn)s-sg-chain
|
||||
-I %(bn)s-FORWARD 3 %(physdev_mod)s --physdev-EGRESS tap_%(port1)s \
|
||||
-I %(bn)s-FORWARD 2 %(physdev_mod)s --physdev-EGRESS tap_%(port1)s \
|
||||
%(physdev_is_bridged)s -j %(bn)s-sg-chain
|
||||
-I %(bn)s-FORWARD 4 %(physdev_mod)s --physdev-INGRESS tap_%(port2)s \
|
||||
-I %(bn)s-FORWARD 3 %(physdev_mod)s --physdev-INGRESS tap_%(port2)s \
|
||||
%(physdev_is_bridged)s -j %(bn)s-sg-chain
|
||||
-I %(bn)s-FORWARD 5 %(physdev_mod)s --physdev-EGRESS tap_%(port2)s \
|
||||
-I %(bn)s-FORWARD 4 %(physdev_mod)s --physdev-EGRESS tap_%(port2)s \
|
||||
%(physdev_is_bridged)s -j %(bn)s-sg-chain
|
||||
-I %(bn)s-INPUT 1 %(physdev_mod)s --physdev-EGRESS tap_%(port1)s \
|
||||
%(physdev_is_bridged)s -j %(bn)s-o_%(port1)s
|
||||
|
@ -2400,21 +2372,19 @@ IPTABLES_FILTER_2_3 = """# Generated by iptables_manager
|
|||
:%(bn)s-(%(chains)s) - [0:0]
|
||||
:%(bn)s-(%(chains)s) - [0:0]
|
||||
:%(bn)s-(%(chains)s) - [0:0]
|
||||
:%(bn)s-(%(chains)s) - [0:0]
|
||||
-I FORWARD 1 -j neutron-filter-top
|
||||
-I FORWARD 2 -j %(bn)s-FORWARD
|
||||
-I INPUT 1 -j %(bn)s-INPUT
|
||||
-I OUTPUT 1 -j neutron-filter-top
|
||||
-I OUTPUT 2 -j %(bn)s-OUTPUT
|
||||
-I neutron-filter-top 1 -j %(bn)s-local
|
||||
-I %(bn)s-FORWARD 1 -j %(bn)s-scope
|
||||
-I %(bn)s-FORWARD 2 %(physdev_mod)s --physdev-INGRESS tap_%(port1)s \
|
||||
-I %(bn)s-FORWARD 1 %(physdev_mod)s --physdev-INGRESS tap_%(port1)s \
|
||||
%(physdev_is_bridged)s -j %(bn)s-sg-chain
|
||||
-I %(bn)s-FORWARD 3 %(physdev_mod)s --physdev-EGRESS tap_%(port1)s \
|
||||
-I %(bn)s-FORWARD 2 %(physdev_mod)s --physdev-EGRESS tap_%(port1)s \
|
||||
%(physdev_is_bridged)s -j %(bn)s-sg-chain
|
||||
-I %(bn)s-FORWARD 4 %(physdev_mod)s --physdev-INGRESS tap_%(port2)s \
|
||||
-I %(bn)s-FORWARD 3 %(physdev_mod)s --physdev-INGRESS tap_%(port2)s \
|
||||
%(physdev_is_bridged)s -j %(bn)s-sg-chain
|
||||
-I %(bn)s-FORWARD 5 %(physdev_mod)s --physdev-EGRESS tap_%(port2)s \
|
||||
-I %(bn)s-FORWARD 4 %(physdev_mod)s --physdev-EGRESS tap_%(port2)s \
|
||||
%(physdev_is_bridged)s -j %(bn)s-sg-chain
|
||||
-I %(bn)s-INPUT 1 %(physdev_mod)s --physdev-EGRESS tap_%(port1)s \
|
||||
%(physdev_is_bridged)s -j %(bn)s-o_%(port1)s
|
||||
|
@ -2486,14 +2456,12 @@ IPTABLES_FILTER_EMPTY = """# Generated by iptables_manager
|
|||
:%(bn)s-(%(chains)s) - [0:0]
|
||||
:%(bn)s-(%(chains)s) - [0:0]
|
||||
:%(bn)s-(%(chains)s) - [0:0]
|
||||
:%(bn)s-(%(chains)s) - [0:0]
|
||||
-I FORWARD 1 -j neutron-filter-top
|
||||
-I FORWARD 2 -j %(bn)s-FORWARD
|
||||
-I INPUT 1 -j %(bn)s-INPUT
|
||||
-I OUTPUT 1 -j neutron-filter-top
|
||||
-I OUTPUT 2 -j %(bn)s-OUTPUT
|
||||
-I neutron-filter-top 1 -j %(bn)s-local
|
||||
-I %(bn)s-FORWARD 1 -j %(bn)s-scope
|
||||
-I %(bn)s-sg-chain 1 -j ACCEPT
|
||||
-I %(bn)s-sg-fallback 1 -j DROP
|
||||
COMMIT
|
||||
|
@ -2515,17 +2483,15 @@ IPTABLES_FILTER_V6_1 = """# Generated by iptables_manager
|
|||
:%(bn)s-(%(chains)s) - [0:0]
|
||||
:%(bn)s-(%(chains)s) - [0:0]
|
||||
:%(bn)s-(%(chains)s) - [0:0]
|
||||
:%(bn)s-(%(chains)s) - [0:0]
|
||||
-I FORWARD 1 -j neutron-filter-top
|
||||
-I FORWARD 2 -j %(bn)s-FORWARD
|
||||
-I INPUT 1 -j %(bn)s-INPUT
|
||||
-I OUTPUT 1 -j neutron-filter-top
|
||||
-I OUTPUT 2 -j %(bn)s-OUTPUT
|
||||
-I neutron-filter-top 1 -j %(bn)s-local
|
||||
-I %(bn)s-FORWARD 1 -j %(bn)s-scope
|
||||
-I %(bn)s-FORWARD 2 %(physdev_mod)s --physdev-INGRESS tap_port1 \
|
||||
-I %(bn)s-FORWARD 1 %(physdev_mod)s --physdev-INGRESS tap_port1 \
|
||||
%(physdev_is_bridged)s -j %(bn)s-sg-chain
|
||||
-I %(bn)s-FORWARD 3 %(physdev_mod)s --physdev-EGRESS tap_port1 \
|
||||
-I %(bn)s-FORWARD 2 %(physdev_mod)s --physdev-EGRESS tap_port1 \
|
||||
%(physdev_is_bridged)s -j %(bn)s-sg-chain
|
||||
-I %(bn)s-INPUT 1 %(physdev_mod)s --physdev-EGRESS tap_port1 \
|
||||
%(physdev_is_bridged)s -j %(bn)s-o_port1
|
||||
|
@ -2579,21 +2545,19 @@ IPTABLES_FILTER_V6_2 = """# Generated by iptables_manager
|
|||
:%(bn)s-(%(chains)s) - [0:0]
|
||||
:%(bn)s-(%(chains)s) - [0:0]
|
||||
:%(bn)s-(%(chains)s) - [0:0]
|
||||
:%(bn)s-(%(chains)s) - [0:0]
|
||||
-I FORWARD 1 -j neutron-filter-top
|
||||
-I FORWARD 2 -j %(bn)s-FORWARD
|
||||
-I INPUT 1 -j %(bn)s-INPUT
|
||||
-I OUTPUT 1 -j neutron-filter-top
|
||||
-I OUTPUT 2 -j %(bn)s-OUTPUT
|
||||
-I neutron-filter-top 1 -j %(bn)s-local
|
||||
-I %(bn)s-FORWARD 1 -j %(bn)s-scope
|
||||
-I %(bn)s-FORWARD 2 %(physdev_mod)s --physdev-INGRESS tap_%(port1)s \
|
||||
-I %(bn)s-FORWARD 1 %(physdev_mod)s --physdev-INGRESS tap_%(port1)s \
|
||||
%(physdev_is_bridged)s -j %(bn)s-sg-chain
|
||||
-I %(bn)s-FORWARD 3 %(physdev_mod)s --physdev-EGRESS tap_%(port1)s \
|
||||
-I %(bn)s-FORWARD 2 %(physdev_mod)s --physdev-EGRESS tap_%(port1)s \
|
||||
%(physdev_is_bridged)s -j %(bn)s-sg-chain
|
||||
-I %(bn)s-FORWARD 4 %(physdev_mod)s --physdev-INGRESS tap_%(port2)s \
|
||||
-I %(bn)s-FORWARD 3 %(physdev_mod)s --physdev-INGRESS tap_%(port2)s \
|
||||
%(physdev_is_bridged)s -j %(bn)s-sg-chain
|
||||
-I %(bn)s-FORWARD 5 %(physdev_mod)s --physdev-EGRESS tap_%(port2)s \
|
||||
-I %(bn)s-FORWARD 4 %(physdev_mod)s --physdev-EGRESS tap_%(port2)s \
|
||||
%(physdev_is_bridged)s -j %(bn)s-sg-chain
|
||||
-I %(bn)s-INPUT 1 %(physdev_mod)s --physdev-EGRESS tap_%(port1)s \
|
||||
%(physdev_is_bridged)s -j %(bn)s-o_%(port1)s
|
||||
|
@ -2668,14 +2632,12 @@ IPTABLES_FILTER_V6_EMPTY = """# Generated by iptables_manager
|
|||
:%(bn)s-(%(chains)s) - [0:0]
|
||||
:%(bn)s-(%(chains)s) - [0:0]
|
||||
:%(bn)s-(%(chains)s) - [0:0]
|
||||
:%(bn)s-(%(chains)s) - [0:0]
|
||||
-I FORWARD 1 -j neutron-filter-top
|
||||
-I FORWARD 2 -j %(bn)s-FORWARD
|
||||
-I INPUT 1 -j %(bn)s-INPUT
|
||||
-I OUTPUT 1 -j neutron-filter-top
|
||||
-I OUTPUT 2 -j %(bn)s-OUTPUT
|
||||
-I neutron-filter-top 1 -j %(bn)s-local
|
||||
-I %(bn)s-FORWARD 1 -j %(bn)s-scope
|
||||
-I %(bn)s-sg-chain 1 -j ACCEPT
|
||||
-I %(bn)s-sg-fallback 1 -j DROP
|
||||
COMMIT
|
||||
|
|
Loading…
Reference in New Issue