openstack中iptables的使用

openstack中nova使用了iptables实现其网络相关功能,乍看openstack的iptables表比较复杂,整理了一下iptables的filter表和nat表的结构,以一个all in one的openstack的iptables表为例,展示了iptables的filter表和nat表在openstack中的使用。


Filter表

INPUT链结构:

openstack中iptables的使用_第1张图片

实例:

INPUT链:


nova-network-INPUT链:

开放了67和53端口(DHCP 和 DNS端口)。

nova-compute-INPUT链:

开放了67和68端口(Bootps端口和Bootpc端口)

nova-api-INPUT链:

开放了nova-metadata的8775端口。


FORWARD链结构:

openstack中iptables的使用_第2张图片

实例:

FORWARD链:

在系统默认的链中添加了4条自定义链。

nova-filter-top链:


nova-network-local链:


nova-compute-local链:

转到各个instance的nova-compute-inst-XXX链。

nova-compute-inst-XXX链:
openstack中iptables的使用_第3张图片
每个instance的访问控制规则链,由secgroup定义。

nova-compute-provider链:


nova-compute-sg-fallback链:

上述规则都不满足则丢弃。

nova-api-local链:


nova-network-FORWARD链:

实现网关作用。

nova-compute-FORWARD链:

开放了67和68端口(Bootps端口和Bootpc端口)

nova-api-FORWARD链:



OUTPUT链结构:

openstack中iptables的使用_第4张图片


实例:

OUTPUT链:

添加了4条自定义链。

nova-filter-top链同上。

nova-network-OUTPUT链:


nova-compute-OUTPUT链:


nova-api-OUTPUT链:



NAT表

PREROUTING链结构:

openstack中iptables的使用_第5张图片

实例:

PREROUTING链:


nova-network-PREROUTING链:

metadate和floating ip的DNAT规则。

nova-compute-PREROUTING链:


nova-api-PREROUTING链:




POSTROUTING链结构:

openstack中iptables的使用_第6张图片

实例:

POSTROUTING链:
openstack中iptables的使用_第7张图片

nova-network-POSTROUTING链:
openstack中iptables的使用_第8张图片

nova-compute-POSTROUTING链:


nova-api-POSTROUTING链:


nova-postrouting-bottom链:


nova-network-snat链:

从public_interface出去的包进行SNAT,10.224.148.69是public_interface的ip。


nova-network-float-snat链:
openstack中iptables的使用_第9张图片
floating ip的SNAT规则。


nova-compute-snat链:


nova-compute-float-snat链:


nova-api-snat链:


nova-api-float-snat链:





OUTPUT链结构:

openstack中iptables的使用_第10张图片

实例:

OUTPUT链:


nova-network-OUTPUT链:

floating ip的DNAT规则。

nova-compute-OUTPUT链:


nova-api-OUTPUT链:



Refer:

http://www.ibm.com/developerworks/cloud/library/cl-openstack-network/index.html


你可能感兴趣的:(iptables,openstack,nova,nova-network)