@ -828,6 +828,18 @@ class SecurityGroupAgentRpcTestCaseForNoneDriver(base.BaseTestCase):
self . assertEqual ( agent . firewall . __class__ . __name__ ,
' NoopFirewallDriver ' )
def test_get_trusted_devices ( self ) :
agent = sg_rpc . SecurityGroupAgentRpc (
context = None , plugin_rpc = mock . Mock ( ) )
device_ids = [ ' port_1_id ' , ' tap_2 ' , ' tap_3 ' , ' port_4_id ' ]
devices = {
' port_1_id ' : { ' device ' : ' tap_1 ' } ,
' port_3_id ' : { ' device ' : ' tap_3 ' } ,
}
trusted_devices = agent . _get_trusted_devices (
device_ids , devices )
self . assertEqual ( [ ' tap_2 ' , ' port_4_id ' ] , trusted_devices )
class BaseSecurityGroupAgentRpcTestCase ( base . BaseTestCase ) :
def setUp ( self , defer_refresh_firewall = False ) :
@ -1460,6 +1472,7 @@ CHAINS_NAT = 'OUTPUT|POSTROUTING|PREROUTING|float-snat|snat'
IPTABLES_ARG [ ' port1 ' ] = ' port1 '
IPTABLES_ARG [ ' port2 ' ] = ' port2 '
IPTABLES_ARG [ ' port3 ' ] = ' port3 '
IPTABLES_ARG [ ' mac1 ' ] = ' 12:34:56:78:9A:BC '
IPTABLES_ARG [ ' mac2 ' ] = ' 12:34:56:78:9A:BD '
IPTABLES_ARG [ ' ip1 ' ] = ' 10.0.0.3/32 '
@ -1840,7 +1853,7 @@ COMMIT
# Completed by iptables_manager
""" % IPTABLES_ARG
IPSET_FILTER_2_ 3 = """ # Generated by iptables_manager
IPSET_FILTER_2_ TRUSTED = """ # Generated by iptables_manager
* filter
: FORWARD - [ 0 : 0 ]
: INPUT - [ 0 : 0 ]
@ -1864,13 +1877,103 @@ IPSET_FILTER_2_3 = """# Generated by iptables_manager
- 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 % ( physdev_mod ) s - - physdev - INGRESS tap_ % ( port1 ) s \
- I % ( bn ) s - FORWARD 1 % ( physdev_mod ) s - - physdev - INGRESS tap_ % ( port3 ) s \
% ( physdev_is_bridged ) s - j ACCEPT
- I % ( bn ) s - FORWARD 2 % ( physdev_mod ) s - - physdev - INGRESS tap_ % ( port1 ) s \
% ( physdev_is_bridged ) s - j % ( bn ) s - sg - chain
- I % ( bn ) s - FORWARD 2 % ( physdev_mod ) s - - physdev - EGRESS tap_ % ( port1 ) s \
- I % ( bn ) s - FORWARD 3 % ( physdev_mod ) s - - physdev - EGRESS tap_ % ( port1 ) s \
% ( physdev_is_bridged ) s - j % ( bn ) s - sg - chain
- I % ( bn ) s - FORWARD 3 % ( physdev_mod ) s - - physdev - INGRESS tap_ % ( port2 ) s \
- I % ( bn ) s - FORWARD 4 % ( physdev_mod ) s - - physdev - INGRESS tap_ % ( port2 ) s \
% ( physdev_is_bridged ) s - j % ( bn ) s - sg - chain
- I % ( bn ) s - FORWARD 4 % ( physdev_mod ) s - - physdev - EGRESS tap_ % ( port2 ) s \
- I % ( bn ) s - FORWARD 5 % ( 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
- I % ( bn ) s - INPUT 2 % ( physdev_mod ) s - - physdev - EGRESS tap_ % ( port2 ) s \
% ( physdev_is_bridged ) s - j % ( bn ) s - o_ % ( port2 ) s
- I % ( bn ) s - i_ % ( port1 ) s 1 - m state - - state RELATED , ESTABLISHED - j RETURN
- I % ( bn ) s - i_ % ( port1 ) s 2 - s 10.0 .0 .2 / 32 - p udp - m udp - - sport 67 \
- - dport 68 - j RETURN
- I % ( bn ) s - i_ % ( port1 ) s 3 - p tcp - m tcp - - dport 22 - j RETURN
- I % ( bn ) s - i_ % ( port1 ) s 4 - m set - - match - set NIPv4security_group1 src - j RETURN
- I % ( bn ) s - i_ % ( port1 ) s 5 - m state - - state INVALID - j DROP
- I % ( bn ) s - i_ % ( port1 ) s 6 - j % ( bn ) s - sg - fallback
- I % ( bn ) s - i_ % ( port2 ) s 1 - m state - - state RELATED , ESTABLISHED - j RETURN
- I % ( bn ) s - i_ % ( port2 ) s 2 - s 10.0 .0 .2 / 32 - p udp - m udp - - sport 67 \
- - dport 68 - j RETURN
- I % ( bn ) s - i_ % ( port2 ) s 3 - p tcp - m tcp - - dport 22 - j RETURN
- I % ( bn ) s - i_ % ( port2 ) s 4 - m set - - match - set NIPv4security_group1 src - j RETURN
- I % ( bn ) s - i_ % ( port2 ) s 5 - m state - - state INVALID - j DROP
- I % ( bn ) s - i_ % ( port2 ) s 6 - j % ( bn ) s - sg - fallback
- I % ( bn ) s - o_ % ( port1 ) s 1 - s 0.0 .0 .0 / 32 - d 255.255 .255 .255 / 32 - p udp - m udp \
- - sport 68 - - dport 67 - j RETURN
- I % ( bn ) s - o_ % ( port1 ) s 2 - j % ( bn ) s - s_ % ( port1 ) s
- I % ( bn ) s - o_ % ( port1 ) s 3 - p udp - m udp - - sport 68 - - dport 67 - j RETURN
- I % ( bn ) s - o_ % ( port1 ) s 4 - p udp - m udp - - sport 67 - - dport 68 - j DROP
- I % ( bn ) s - o_ % ( port1 ) s 5 - m state - - state RELATED , ESTABLISHED - j RETURN
- I % ( bn ) s - o_ % ( port1 ) s 6 - j RETURN
- I % ( bn ) s - o_ % ( port1 ) s 7 - m state - - state INVALID - j DROP
- I % ( bn ) s - o_ % ( port1 ) s 8 - j % ( bn ) s - sg - fallback
- I % ( bn ) s - o_ % ( port2 ) s 1 - s 0.0 .0 .0 / 32 - d 255.255 .255 .255 / 32 - p udp - m udp \
- - sport 68 - - dport 67 - j RETURN
- I % ( bn ) s - o_ % ( port2 ) s 2 - j % ( bn ) s - s_ % ( port2 ) s
- I % ( bn ) s - o_ % ( port2 ) s 3 - p udp - m udp - - sport 68 - - dport 67 - j RETURN
- I % ( bn ) s - o_ % ( port2 ) s 4 - p udp - m udp - - sport 67 - - dport 68 - j DROP
- I % ( bn ) s - o_ % ( port2 ) s 5 - m state - - state RELATED , ESTABLISHED - j RETURN
- I % ( bn ) s - o_ % ( port2 ) s 6 - j RETURN
- I % ( bn ) s - o_ % ( port2 ) s 7 - m state - - state INVALID - j DROP
- I % ( bn ) s - o_ % ( port2 ) s 8 - j % ( bn ) s - sg - fallback
- I % ( bn ) s - s_ % ( port1 ) s 1 - s % ( ip1 ) s - m mac - - mac - source % ( mac1 ) s - j RETURN
- I % ( bn ) s - s_ % ( port1 ) s 2 - j DROP
- I % ( bn ) s - s_ % ( port2 ) s 1 - s % ( ip2 ) s - m mac - - mac - source % ( mac2 ) s - j RETURN
- I % ( bn ) s - s_ % ( port2 ) s 2 - j DROP
- I % ( bn ) s - sg - chain 1 % ( physdev_mod ) s - - physdev - INGRESS tap_ % ( port1 ) s \
% ( physdev_is_bridged ) s - j % ( bn ) s - i_ % ( port1 ) s
- I % ( bn ) s - sg - chain 2 % ( physdev_mod ) s - - physdev - EGRESS tap_ % ( port1 ) s \
% ( physdev_is_bridged ) s - j % ( bn ) s - o_ % ( port1 ) s
- I % ( bn ) s - sg - chain 3 % ( physdev_mod ) s - - physdev - INGRESS tap_ % ( port2 ) s \
% ( physdev_is_bridged ) s - j % ( bn ) s - i_ % ( port2 ) s
- I % ( bn ) s - sg - chain 4 % ( physdev_mod ) s - - physdev - EGRESS tap_ % ( port2 ) s \
% ( physdev_is_bridged ) s - j % ( bn ) s - o_ % ( port2 ) s
- I % ( bn ) s - sg - chain 5 - j ACCEPT
- I % ( bn ) s - sg - fallback 1 - j DROP
COMMIT
# Completed by iptables_manager
""" % IPTABLES_ARG
IPSET_FILTER_2_3_TRUSTED = """ # Generated by iptables_manager
* filter
: FORWARD - [ 0 : 0 ]
: INPUT - [ 0 : 0 ]
: OUTPUT - [ 0 : 0 ]
: neutron - filter - top - [ 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 ]
: % ( 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 ]
: % ( 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 % ( physdev_mod ) s - - physdev - INGRESS tap_ % ( port3 ) s \
% ( physdev_is_bridged ) s - j ACCEPT
- I % ( bn ) s - FORWARD 2 % ( 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 \
% ( physdev_is_bridged ) s - j % ( bn ) s - sg - chain
- I % ( bn ) s - FORWARD 4 % ( 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 \
% ( 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
@ -2014,6 +2117,94 @@ COMMIT
# Completed by iptables_manager
""" % IPTABLES_ARG
IPTABLES_FILTER_2_TRUSTED = """ # Generated by iptables_manager
* filter
: FORWARD - [ 0 : 0 ]
: INPUT - [ 0 : 0 ]
: OUTPUT - [ 0 : 0 ]
: neutron - filter - top - [ 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 ]
: % ( 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 ]
: % ( 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 % ( physdev_mod ) s - - physdev - INGRESS tap_ % ( port3 ) s \
% ( physdev_is_bridged ) s - j ACCEPT
- I % ( bn ) s - FORWARD 2 % ( 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 \
% ( physdev_is_bridged ) s - j % ( bn ) s - sg - chain
- I % ( bn ) s - FORWARD 4 % ( 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 \
% ( 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
- I % ( bn ) s - INPUT 2 % ( physdev_mod ) s - - physdev - EGRESS tap_ % ( port2 ) s \
% ( physdev_is_bridged ) s - j % ( bn ) s - o_ % ( port2 ) s
- I % ( bn ) s - i_ % ( port1 ) s 1 - m state - - state RELATED , ESTABLISHED - j RETURN
- I % ( bn ) s - i_ % ( port1 ) s 2 - s 10.0 .0 .2 / 32 - p udp - m udp - - sport 67 \
- - dport 68 - j RETURN
- I % ( bn ) s - i_ % ( port1 ) s 3 - p tcp - m tcp - - dport 22 - j RETURN
- I % ( bn ) s - i_ % ( port1 ) s 4 - s % ( ip2 ) s - j RETURN
- I % ( bn ) s - i_ % ( port1 ) s 5 - m state - - state INVALID - j DROP
- I % ( bn ) s - i_ % ( port1 ) s 6 - j % ( bn ) s - sg - fallback
- I % ( bn ) s - i_ % ( port2 ) s 1 - m state - - state RELATED , ESTABLISHED - j RETURN
- I % ( bn ) s - i_ % ( port2 ) s 2 - s 10.0 .0 .2 / 32 - p udp - m udp - - sport 67 \
- - dport 68 - j RETURN
- I % ( bn ) s - i_ % ( port2 ) s 3 - p tcp - m tcp - - dport 22 - j RETURN
- I % ( bn ) s - i_ % ( port2 ) s 4 - s % ( ip1 ) s - j RETURN
- I % ( bn ) s - i_ % ( port2 ) s 5 - m state - - state INVALID - j DROP
- I % ( bn ) s - i_ % ( port2 ) s 6 - j % ( bn ) s - sg - fallback
- I % ( bn ) s - o_ % ( port1 ) s 1 - s 0.0 .0 .0 / 32 - d 255.255 .255 .255 / 32 - p udp - m udp \
- - sport 68 - - dport 67 - j RETURN
- I % ( bn ) s - o_ % ( port1 ) s 2 - j % ( bn ) s - s_ % ( port1 ) s
- I % ( bn ) s - o_ % ( port1 ) s 3 - p udp - m udp - - sport 68 - - dport 67 - j RETURN
- I % ( bn ) s - o_ % ( port1 ) s 4 - p udp - m udp - - sport 67 - - dport 68 - j DROP
- I % ( bn ) s - o_ % ( port1 ) s 5 - m state - - state RELATED , ESTABLISHED - j RETURN
- I % ( bn ) s - o_ % ( port1 ) s 6 - j RETURN
- I % ( bn ) s - o_ % ( port1 ) s 7 - m state - - state INVALID - j DROP
- I % ( bn ) s - o_ % ( port1 ) s 8 - j % ( bn ) s - sg - fallback
- I % ( bn ) s - o_ % ( port2 ) s 1 - s 0.0 .0 .0 / 32 - d 255.255 .255 .255 / 32 - p udp - m udp \
- - sport 68 - - dport 67 - j RETURN
- I % ( bn ) s - o_ % ( port2 ) s 2 - j % ( bn ) s - s_ % ( port2 ) s
- I % ( bn ) s - o_ % ( port2 ) s 3 - p udp - m udp - - sport 68 - - dport 67 - j RETURN
- I % ( bn ) s - o_ % ( port2 ) s 4 - p udp - m udp - - sport 67 - - dport 68 - j DROP
- I % ( bn ) s - o_ % ( port2 ) s 5 - m state - - state RELATED , ESTABLISHED - j RETURN
- I % ( bn ) s - o_ % ( port2 ) s 6 - j RETURN
- I % ( bn ) s - o_ % ( port2 ) s 7 - m state - - state INVALID - j DROP
- I % ( bn ) s - o_ % ( port2 ) s 8 - j % ( bn ) s - sg - fallback
- I % ( bn ) s - s_ % ( port1 ) s 1 - s % ( ip1 ) s - m mac - - mac - source % ( mac1 ) s - j RETURN
- I % ( bn ) s - s_ % ( port1 ) s 2 - j DROP
- I % ( bn ) s - s_ % ( port2 ) s 1 - s % ( ip2 ) s - m mac - - mac - source % ( mac2 ) s - j RETURN
- I % ( bn ) s - s_ % ( port2 ) s 2 - j DROP
- I % ( bn ) s - sg - chain 1 % ( physdev_mod ) s - - physdev - INGRESS tap_ % ( port1 ) s \
% ( physdev_is_bridged ) s - j % ( bn ) s - i_ % ( port1 ) s
- I % ( bn ) s - sg - chain 2 % ( physdev_mod ) s - - physdev - EGRESS tap_ % ( port1 ) s \
% ( physdev_is_bridged ) s - j % ( bn ) s - o_ % ( port1 ) s
- I % ( bn ) s - sg - chain 3 % ( physdev_mod ) s - - physdev - INGRESS tap_ % ( port2 ) s \
% ( physdev_is_bridged ) s - j % ( bn ) s - i_ % ( port2 ) s
- I % ( bn ) s - sg - chain 4 % ( physdev_mod ) s - - physdev - EGRESS tap_ % ( port2 ) s \
% ( physdev_is_bridged ) s - j % ( bn ) s - o_ % ( port2 ) s
- I % ( bn ) s - sg - chain 5 - j ACCEPT
- I % ( bn ) s - sg - fallback 1 - j DROP
COMMIT
# Completed by iptables_manager
""" % IPTABLES_ARG
IPTABLES_FILTER_2_2 = """ # Generated by iptables_manager
* filter
: FORWARD - [ 0 : 0 ]
@ -2187,6 +2378,95 @@ COMMIT
# Completed by iptables_manager
""" % IPTABLES_ARG
IPTABLES_FILTER_2_3_TRUSTED = """ # Generated by iptables_manager
* filter
: FORWARD - [ 0 : 0 ]
: INPUT - [ 0 : 0 ]
: OUTPUT - [ 0 : 0 ]
: neutron - filter - top - [ 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 ]
: % ( 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 ]
: % ( 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 % ( physdev_mod ) s - - physdev - INGRESS tap_ % ( port3 ) s \
% ( physdev_is_bridged ) s - j ACCEPT
- I % ( bn ) s - FORWARD 2 % ( 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 \
% ( physdev_is_bridged ) s - j % ( bn ) s - sg - chain
- I % ( bn ) s - FORWARD 4 % ( 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 \
% ( 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
- I % ( bn ) s - INPUT 2 % ( physdev_mod ) s - - physdev - EGRESS tap_ % ( port2 ) s \
% ( physdev_is_bridged ) s - j % ( bn ) s - o_ % ( port2 ) s
- I % ( bn ) s - i_ % ( port1 ) s 1 - m state - - state RELATED , ESTABLISHED - j RETURN
- I % ( bn ) s - i_ % ( port1 ) s 2 - s 10.0 .0 .2 / 32 - p udp - m udp - - sport 67 \
- - dport 68 - j RETURN
- I % ( bn ) s - i_ % ( port1 ) s 3 - p tcp - m tcp - - dport 22 - j RETURN
- I % ( bn ) s - i_ % ( port1 ) s 4 - s % ( ip2 ) s - j RETURN
- I % ( bn ) s - i_ % ( port1 ) s 5 - p icmp - j RETURN
- I % ( bn ) s - i_ % ( port1 ) s 6 - m state - - state INVALID - j DROP
- I % ( bn ) s - i_ % ( port1 ) s 7 - j % ( bn ) s - sg - fallback
- I % ( bn ) s - i_ % ( port2 ) s 1 - m state - - state RELATED , ESTABLISHED - j RETURN
- I % ( bn ) s - i_ % ( port2 ) s 2 - s 10.0 .0 .2 / 32 - p udp - m udp - - sport 67 \
- - dport 68 - j RETURN
- I % ( bn ) s - i_ % ( port2 ) s 3 - p tcp - m tcp - - dport 22 - j RETURN
- I % ( bn ) s - i_ % ( port2 ) s 4 - s % ( ip1 ) s - j RETURN
- I % ( bn ) s - i_ % ( port2 ) s 5 - p icmp - j RETURN
- I % ( bn ) s - i_ % ( port2 ) s 6 - m state - - state INVALID - j DROP
- I % ( bn ) s - i_ % ( port2 ) s 7 - j % ( bn ) s - sg - fallback
- I % ( bn ) s - o_ % ( port1 ) s 1 - s 0.0 .0 .0 / 32 - d 255.255 .255 .255 / 32 - p udp - m udp \
- - sport 68 - - dport 67 - j RETURN
- I % ( bn ) s - o_ % ( port1 ) s 2 - j % ( bn ) s - s_ % ( port1 ) s
- I % ( bn ) s - o_ % ( port1 ) s 3 - p udp - m udp - - sport 68 - - dport 67 - j RETURN
- I % ( bn ) s - o_ % ( port1 ) s 4 - p udp - m udp - - sport 67 - - dport 68 - j DROP
- I % ( bn ) s - o_ % ( port1 ) s 5 - m state - - state RELATED , ESTABLISHED - j RETURN
- I % ( bn ) s - o_ % ( port1 ) s 6 - j RETURN
- I % ( bn ) s - o_ % ( port1 ) s 7 - m state - - state INVALID - j DROP
- I % ( bn ) s - o_ % ( port1 ) s 8 - j % ( bn ) s - sg - fallback
- I % ( bn ) s - o_ % ( port2 ) s 1 - s 0.0 .0 .0 / 32 - d 255.255 .255 .255 / 32 - p udp - m udp \
- - sport 68 - - dport 67 - j RETURN
- I % ( bn ) s - o_ % ( port2 ) s 2 - j % ( bn ) s - s_ % ( port2 ) s
- I % ( bn ) s - o_ % ( port2 ) s 3 - p udp - m udp - - sport 68 - - dport 67 - j RETURN
- I % ( bn ) s - o_ % ( port2 ) s 4 - p udp - m udp - - sport 67 - - dport 68 - j DROP
- I % ( bn ) s - o_ % ( port2 ) s 5 - m state - - state RELATED , ESTABLISHED - j RETURN
- I % ( bn ) s - o_ % ( port2 ) s 6 - j RETURN
- I % ( bn ) s - o_ % ( port2 ) s 7 - m state - - state INVALID - j DROP
- I % ( bn ) s - o_ % ( port2 ) s 8 - j % ( bn ) s - sg - fallback
- I % ( bn ) s - s_ % ( port1 ) s 1 - s % ( ip1 ) s - m mac - - mac - source % ( mac1 ) s - j RETURN
- I % ( bn ) s - s_ % ( port1 ) s 2 - j DROP
- I % ( bn ) s - s_ % ( port2 ) s 1 - s % ( ip2 ) s - m mac - - mac - source % ( mac2 ) s - j RETURN
- I % ( bn ) s - s_ % ( port2 ) s 2 - j DROP
- I % ( bn ) s - sg - chain 1 % ( physdev_mod ) s - - physdev - INGRESS tap_ % ( port1 ) s \
% ( physdev_is_bridged ) s - j % ( bn ) s - i_ % ( port1 ) s
- I % ( bn ) s - sg - chain 2 % ( physdev_mod ) s - - physdev - EGRESS tap_ % ( port1 ) s \
% ( physdev_is_bridged ) s - j % ( bn ) s - o_ % ( port1 ) s
- I % ( bn ) s - sg - chain 3 % ( physdev_mod ) s - - physdev - INGRESS tap_ % ( port2 ) s \
% ( physdev_is_bridged ) s - j % ( bn ) s - i_ % ( port2 ) s
- I % ( bn ) s - sg - chain 4 % ( physdev_mod ) s - - physdev - EGRESS tap_ % ( port2 ) s \
% ( physdev_is_bridged ) s - j % ( bn ) s - o_ % ( port2 ) s
- I % ( bn ) s - sg - chain 5 - j ACCEPT
- I % ( bn ) s - sg - fallback 1 - j DROP
COMMIT
# Completed by iptables_manager
""" % IPTABLES_ARG
IPTABLES_ARG [ ' chains ' ] = CHAINS_EMPTY
IPTABLES_FILTER_EMPTY = """ # Generated by iptables_manager
@ -2358,6 +2638,94 @@ COMMIT
# Completed by iptables_manager
""" % IPTABLES_ARG
IPTABLES_FILTER_V6_2_TRUSTED = """ # Generated by iptables_manager
* filter
: FORWARD - [ 0 : 0 ]
: INPUT - [ 0 : 0 ]
: OUTPUT - [ 0 : 0 ]
: neutron - filter - top - [ 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 ]
: % ( 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 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 % ( physdev_mod ) s - - physdev - INGRESS tap_ % ( port3 ) s \
% ( physdev_is_bridged ) s - j ACCEPT
- I % ( bn ) s - FORWARD 2 % ( 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 \
% ( physdev_is_bridged ) s - j % ( bn ) s - sg - chain
- I % ( bn ) s - FORWARD 4 % ( 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 \
% ( 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
- I % ( bn ) s - INPUT 2 % ( physdev_mod ) s - - physdev - EGRESS tap_ % ( port2 ) s \
% ( physdev_is_bridged ) s - j % ( bn ) s - o_ % ( port2 ) s
- I % ( bn ) s - i_ % ( port1 ) s 1 - p ipv6 - icmp - m icmp6 - - icmpv6 - type 130 - j RETURN
- I % ( bn ) s - i_ % ( port1 ) s 2 - p ipv6 - icmp - m icmp6 - - icmpv6 - type 135 - j RETURN
- I % ( bn ) s - i_ % ( port1 ) s 3 - p ipv6 - icmp - m icmp6 - - icmpv6 - type 136 - j RETURN
- I % ( bn ) s - i_ % ( port1 ) s 4 - m state - - state RELATED , ESTABLISHED - j RETURN
- I % ( bn ) s - i_ % ( port1 ) s 5 - m state - - state INVALID - j DROP
- I % ( bn ) s - i_ % ( port1 ) s 6 - j % ( bn ) s - sg - fallback
- I % ( bn ) s - i_ % ( port2 ) s 1 - p ipv6 - icmp - m icmp6 - - icmpv6 - type 130 - j RETURN
- I % ( bn ) s - i_ % ( port2 ) s 2 - p ipv6 - icmp - m icmp6 - - icmpv6 - type 135 - j RETURN
- I % ( bn ) s - i_ % ( port2 ) s 3 - p ipv6 - icmp - m icmp6 - - icmpv6 - type 136 - j RETURN
- I % ( bn ) s - i_ % ( port2 ) s 4 - m state - - state RELATED , ESTABLISHED - j RETURN
- I % ( bn ) s - i_ % ( port2 ) s 5 - m state - - state INVALID - j DROP
- I % ( bn ) s - i_ % ( port2 ) s 6 - j % ( bn ) s - sg - fallback
- I % ( bn ) s - o_ % ( port1 ) s 1 - s : : / 128 - d ff02 : : / 16 - p ipv6 - icmp - m icmp6 \
- - icmpv6 - type 131 - j RETURN
- I % ( bn ) s - o_ % ( port1 ) s 2 - s : : / 128 - d ff02 : : / 16 - p ipv6 - icmp - m icmp6 \
- - icmpv6 - type 135 - j RETURN
- I % ( bn ) s - o_ % ( port1 ) s 3 - s : : / 128 - d ff02 : : / 16 - p ipv6 - icmp - m icmp6 \
- - icmpv6 - type 143 - j RETURN
- I % ( bn ) s - o_ % ( port1 ) s 4 - p ipv6 - icmp - m icmp6 - - icmpv6 - type 134 - j DROP
- I % ( bn ) s - o_ % ( port1 ) s 5 - p ipv6 - icmp - j RETURN
- I % ( bn ) s - o_ % ( port1 ) s 6 - p udp - m udp - - sport 546 - - dport 547 - j RETURN
- I % ( bn ) s - o_ % ( port1 ) s 7 - p udp - m udp - - sport 547 - - dport 546 - j DROP
- I % ( bn ) s - o_ % ( port1 ) s 8 - m state - - state RELATED , ESTABLISHED - j RETURN
- I % ( bn ) s - o_ % ( port1 ) s 9 - m state - - state INVALID - j DROP
- I % ( bn ) s - o_ % ( port1 ) s 10 - j % ( bn ) s - sg - fallback
- I % ( bn ) s - o_ % ( port2 ) s 1 - s : : / 128 - d ff02 : : / 16 - p ipv6 - icmp - m icmp6 \
- - icmpv6 - type 131 - j RETURN
- I % ( bn ) s - o_ % ( port2 ) s 2 - s : : / 128 - d ff02 : : / 16 - p ipv6 - icmp - m icmp6 \
- - icmpv6 - type 135 - j RETURN
- I % ( bn ) s - o_ % ( port2 ) s 3 - s : : / 128 - d ff02 : : / 16 - p ipv6 - icmp - m icmp6 \
- - icmpv6 - type 143 - j RETURN
- I % ( bn ) s - o_ % ( port2 ) s 4 - p ipv6 - icmp - m icmp6 - - icmpv6 - type 134 - j DROP
- I % ( bn ) s - o_ % ( port2 ) s 5 - p ipv6 - icmp - j RETURN
- I % ( bn ) s - o_ % ( port2 ) s 6 - p udp - m udp - - sport 546 - - dport 547 - j RETURN
- I % ( bn ) s - o_ % ( port2 ) s 7 - p udp - m udp - - sport 547 - - dport 546 - j DROP
- I % ( bn ) s - o_ % ( port2 ) s 8 - m state - - state RELATED , ESTABLISHED - j RETURN
- I % ( bn ) s - o_ % ( port2 ) s 9 - m state - - state INVALID - j DROP
- I % ( bn ) s - o_ % ( port2 ) s 10 - j % ( bn ) s - sg - fallback
- I % ( bn ) s - sg - chain 1 % ( physdev_mod ) s - - physdev - INGRESS tap_ % ( port1 ) s \
% ( physdev_is_bridged ) s - j % ( bn ) s - i_ % ( port1 ) s
- I % ( bn ) s - sg - chain 2 % ( physdev_mod ) s - - physdev - EGRESS tap_ % ( port1 ) s \
% ( physdev_is_bridged ) s - j % ( bn ) s - o_ % ( port1 ) s
- I % ( bn ) s - sg - chain 3 % ( physdev_mod ) s - - physdev - INGRESS tap_ % ( port2 ) s \
% ( physdev_is_bridged ) s - j % ( bn ) s - i_ % ( port2 ) s
- I % ( bn ) s - sg - chain 4 % ( physdev_mod ) s - - physdev - EGRESS tap_ % ( port2 ) s \
% ( physdev_is_bridged ) s - j % ( bn ) s - o_ % ( port2 ) s
- I % ( bn ) s - sg - chain 5 - j ACCEPT
- I % ( bn ) s - sg - fallback 1 - j DROP
COMMIT
# Completed by iptables_manager
""" % IPTABLES_ARG
IPTABLES_ARG [ ' chains ' ] = CHAINS_EMPTY
IPTABLES_FILTER_V6_EMPTY = """ # Generated by iptables_manager
* filter
@ -2607,10 +2975,12 @@ class TestSecurityGroupAgentWithIptables(base.BaseTestCase):
def test_security_group_rule_updated ( self ) :
self . rpc . security_group_rules_for_devices . return_value = self . devices2
self . _replay_iptables ( IPTABLES_FILTER_2 , IPTABLES_FILTER_V6_2 ,
IPTABLES_RAW_BRIDGE_NET_2 )
self . _replay_iptables ( IPTABLES_FILTER_2_3 , IPTABLES_FILTER_V6_2 ,
IPTABLES_RAW_BRIDGE_NET_2 )
self . _replay_iptables (
IPTABLES_FILTER_2_TRUSTED , IPTABLES_FILTER_V6_2_TRUSTED ,
IPTABLES_RAW_BRIDGE_NET_2 )
self . _replay_iptables (
IPTABLES_FILTER_2_3_TRUSTED , IPTABLES_FILTER_V6_2_TRUSTED ,
IPTABLES_RAW_BRIDGE_NET_2 )
self . agent . prepare_devices_filter ( [ ' tap_port1 ' , ' tap_port3 ' ] )
self . rpc . security_group_rules_for_devices . return_value = self . devices3
@ -2724,10 +3094,12 @@ class TestSecurityGroupAgentEnhancedRpcWithIptables(
def test_security_group_rule_updated ( self ) :
self . sg_info . return_value = self . devices_info2
self . _replay_iptables ( IPTABLES_FILTER_2 , IPTABLES_FILTER_V6_2 ,
IPTABLES_RAW_BRIDGE_NET_2 )
self . _replay_iptables ( IPTABLES_FILTER_2_3 , IPTABLES_FILTER_V6_2 ,
IPTABLES_RAW_BRIDGE_NET_2 )
self . _replay_iptables (
IPTABLES_FILTER_2_TRUSTED , IPTABLES_FILTER_V6_2_TRUSTED ,
IPTABLES_RAW_BRIDGE_NET_2 )
self . _replay_iptables (
IPTABLES_FILTER_2_3_TRUSTED , IPTABLES_FILTER_V6_2_TRUSTED ,
IPTABLES_RAW_BRIDGE_NET_2 )
self . agent . prepare_devices_filter ( [ ' tap_port1 ' , ' tap_port3 ' ] )
self . sg_info . return_value = self . devices_info3
@ -2795,10 +3167,12 @@ class TestSecurityGroupAgentEnhancedIpsetWithIptables(
self . ipset . _get_new_set_ips = mock . Mock ( return_value = [ ' 10.0.0.3 ' ] )
self . ipset . _get_deleted_set_ips = mock . Mock ( return_value = [ ] )
self . sg_info . return_value = self . devices_info2
self . _replay_iptables ( IPSET_FILTER_2 , IPTABLES_FILTER_V6_2 ,
IPTABLES_RAW_BRIDGE_NET_2 )
self . _replay_iptables ( IPSET_FILTER_2_3 , IPTABLES_FILTER_V6_2 ,
IPTABLES_RAW_BRIDGE_NET_2 )
self . _replay_iptables (
IPSET_FILTER_2_TRUSTED , IPTABLES_FILTER_V6_2_TRUSTED ,
IPTABLES_RAW_BRIDGE_NET_2 )
self . _replay_iptables (
IPSET_FILTER_2_3_TRUSTED , IPTABLES_FILTER_V6_2_TRUSTED ,
IPTABLES_RAW_BRIDGE_NET_2 )
self . agent . prepare_devices_filter ( [ ' tap_port1 ' , ' tap_port3 ' ] )
self . sg_info . return_value = self . devices_info3
@ -2918,10 +3292,12 @@ class TestSecurityGroupAgentWithOVSIptables(
def test_security_group_rule_updated ( self ) :
self . ipconntrack . _device_zone_map = { }
self . rpc . security_group_rules_for_devices . return_value = self . devices2
self . _replay_iptables ( IPTABLES_FILTER_2 , IPTABLES_FILTER_V6_2 ,
IPTABLES_RAW_DEVICE_2 )
self . _replay_iptables ( IPTABLES_FILTER_2_3 , IPTABLES_FILTER_V6_2 ,
IPTABLES_RAW_DEVICE_2 )
self . _replay_iptables (
IPTABLES_FILTER_2_TRUSTED , IPTABLES_FILTER_V6_2_TRUSTED ,
IPTABLES_RAW_DEVICE_2 )
self . _replay_iptables (
IPTABLES_FILTER_2_3_TRUSTED , IPTABLES_FILTER_V6_2_TRUSTED ,
IPTABLES_RAW_DEVICE_2 )
self . agent . prepare_devices_filter ( [ ' tap_port1 ' , ' tap_port3 ' ] )
self . rpc . security_group_rules_for_devices . return_value = self . devices3