def external_gateway_nat_rules(self, ex_gw_ip, interface_name, port_id):
mark = '0x%s' % port_id[:8]
rules = [('POSTROUTING', '! -i %(interface_name)s '
'! -o %(interface_name)s -m conntrack ! '
'--ctstate DNAT -j ACCEPT' %
{'interface_name': interface_name}),
('snat', '-o %s -j SNAT --to-source %s' %
(interface_name, ex_gw_ip)),
('snat', '-m mark ! --mark %s '
'-m conntrack --ctstate DNAT '
'-j SNAT --to-source %s' % (mark, ex_gw_ip))]
return rules
def external_gateway_mangle_rules(self, interface_name, port_id):
mark = '0x%s' % port_id[:8]
rules = [('mark', '-i %s -j MARK --set-mark %s' %
(interface_name, mark))]
return rules