Openstack Nova docker实现安全组

Openstack Nova docker实现安全组,docker,openstack,openstack-nova,Docker,Openstack,Openstack Nova,现在,在nova docker项目中,容器通过veth对(ns和tap)直接连接到OVS桥接器 详情如下: iptables -A neutron-openvswi-sa04f7303-2 -s 10.0.0.43/32 -m mac \ --mac-source 1e:b0:df:a3:e7:fa -j RETURN iptables -A neutron-openvswi-FORWARD -m physdev --physdev-out \ $DEVICE --physdev-is-

现在,在nova docker项目中,容器通过veth对(ns和tap)直接连接到OVS桥接器

详情如下:

iptables -A neutron-openvswi-sa04f7303-2 -s 10.0.0.43/32 -m mac \
  --mac-source 1e:b0:df:a3:e7:fa -j RETURN
iptables -A neutron-openvswi-FORWARD -m physdev --physdev-out \
  $DEVICE --physdev-is-bridged -j neutron-openvswi-sg-chain
iptables -A neutron-openvswi-FORWARD -m physdev --physdev-in \
  $DEVICE --physdev-is-bridged -j neutron-openvswi-sg-chain
iptables -A neutron-openvswi-INPUT -m physdev --physdev-in \
  $DEVICE --physdev-is-bridged -j neutron-openvswi-o$ID
iptables -A neutron-openvswi-sg-chain -m physdev --physdev-out \
  $DEVICE --physdev-is-bridged -j neutron-openvswi-i$ID
iptables -A neutron-openvswi-sg-chain -m physdev --physdev-in \
  $DEVICE --physdev-is-bridged -j neutron-openvswi-o$ID
集装箱nsXXX tapXXX br int

我为每个容器创建了一个Linux网桥(qbr),并在Linux网桥和OVS网桥之间使用了veth对连接(qvb和qvo),以及 我在Linux网桥和容器之间使用了veth对连接(ns和ms)

详情如下:

iptables -A neutron-openvswi-sa04f7303-2 -s 10.0.0.43/32 -m mac \
  --mac-source 1e:b0:df:a3:e7:fa -j RETURN
iptables -A neutron-openvswi-FORWARD -m physdev --physdev-out \
  $DEVICE --physdev-is-bridged -j neutron-openvswi-sg-chain
iptables -A neutron-openvswi-FORWARD -m physdev --physdev-in \
  $DEVICE --physdev-is-bridged -j neutron-openvswi-sg-chain
iptables -A neutron-openvswi-INPUT -m physdev --physdev-in \
  $DEVICE --physdev-is-bridged -j neutron-openvswi-o$ID
iptables -A neutron-openvswi-sg-chain -m physdev --physdev-out \
  $DEVICE --physdev-is-bridged -j neutron-openvswi-i$ID
iptables -A neutron-openvswi-sg-chain -m physdev --physdev-in \
  $DEVICE --physdev-is-bridged -j neutron-openvswi-o$ID
集装箱nsXXX msXXX qbrXXX qvbXXX qvoXXX br int

我在nsXXX的MAC(1e:b0:df:a3:e7:fa)和 设备nsXXX(即$device following)

详情如下:

iptables -A neutron-openvswi-sa04f7303-2 -s 10.0.0.43/32 -m mac \
  --mac-source 1e:b0:df:a3:e7:fa -j RETURN
iptables -A neutron-openvswi-FORWARD -m physdev --physdev-out \
  $DEVICE --physdev-is-bridged -j neutron-openvswi-sg-chain
iptables -A neutron-openvswi-FORWARD -m physdev --physdev-in \
  $DEVICE --physdev-is-bridged -j neutron-openvswi-sg-chain
iptables -A neutron-openvswi-INPUT -m physdev --physdev-in \
  $DEVICE --physdev-is-bridged -j neutron-openvswi-o$ID
iptables -A neutron-openvswi-sg-chain -m physdev --physdev-out \
  $DEVICE --physdev-is-bridged -j neutron-openvswi-i$ID
iptables -A neutron-openvswi-sg-chain -m physdev --physdev-in \
  $DEVICE --physdev-is-bridged -j neutron-openvswi-o$ID
不幸的是,它不起作用:不同安全组中的VM可以与其连接


有人能告诉我原因吗?

你的
iptables
规则既不接受也不拒绝任何数据包;他们只是使用
-j
将该决定推迟到其他连锁店,这意味着上述信息不足以回答您的问题。如果通过规则集跟踪数据包的路径,它在什么点与
ACCEPT
DROP
规则匹配?