openstack中iptables的使用

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

Filter表

INPUT链结构:

openstack中iptables的使用

实例:

INPUT链:
openstack中iptables的使用

nova-network-INPUT链:
openstack中iptables的使用
开放了67和53端口(DHCP 和 DNS端口)。

nova-compute-INPUT链:
openstack中iptables的使用
开放了67和68端口(Bootps端口和Bootpc端口)

nova-api-INPUT链:
openstack中iptables的使用

开放了nova-metadata的8775端口。

FORWARD链结构:

openstack中iptables的使用

实例:

FORWARD链:
openstack中iptables的使用
在系统默认的链中添加了4条自定义链。

nova-filter-top链:
openstack中iptables的使用

nova-network-local链:
openstack中iptables的使用

nova-compute-local链:
openstack中iptables的使用
转到各个instance的nova-compute-inst-XXX链。

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

nova-compute-provider链:
openstack中iptables的使用

nova-compute-sg-fallback链:
openstack中iptables的使用
上述规则都不满足则丢弃。

nova-api-local链:
openstack中iptables的使用

nova-network-FORWARD链:
openstack中iptables的使用
实现网关作用。

nova-compute-FORWARD链:
openstack中iptables的使用

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

nova-api-FORWARD链:
openstack中iptables的使用

OUTPUT链结构:

openstack中iptables的使用

实例:

OUTPUT链:
openstack中iptables的使用
添加了4条自定义链。

nova-filter-top链同上。

nova-network-OUTPUT链:
openstack中iptables的使用

nova-compute-OUTPUT链:
openstack中iptables的使用

nova-api-OUTPUT链:
openstack中iptables的使用

NAT表

PREROUTING链结构:

openstack中iptables的使用

实例:

PREROUTING链:
openstack中iptables的使用

nova-network-PREROUTING链:
openstack中iptables的使用
metadate和floating ip的DNAT规则。

nova-compute-PREROUTING链:
openstack中iptables的使用

nova-api-PREROUTING链:
openstack中iptables的使用

POSTROUTING链结构:

openstack中iptables的使用

实例:

POSTROUTING链:
openstack中iptables的使用

nova-network-POSTROUTING链:
openstack中iptables的使用

nova-compute-POSTROUTING链:
openstack中iptables的使用

nova-api-POSTROUTING链:
openstack中iptables的使用

nova-postrouting-bottom链:
openstack中iptables的使用

nova-network-snat链:
openstack中iptables的使用
从public_interface出去的包进行SNAT,10.224.148.69是public_interface的ip。

nova-network-float-snat链:
openstack中iptables的使用
floating ip的SNAT规则。

nova-compute-snat链:
openstack中iptables的使用

nova-compute-float-snat链:
openstack中iptables的使用

nova-api-snat链:
openstack中iptables的使用

nova-api-float-snat链:
openstack中iptables的使用

OUTPUT链结构:

openstack中iptables的使用

实例:

OUTPUT链:
openstack中iptables的使用

nova-network-OUTPUT链:
openstack中iptables的使用
floating ip的DNAT规则。

nova-compute-OUTPUT链:
openstack中iptables的使用

nova-api-OUTPUT链:
openstack中iptables的使用

Refer:

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

上一篇:Linux环境下JDK/Eclipse一键安装脚本


下一篇:Python标准模块--concurrent.futures(进程池,线程池)