openstack中iptables的使用

  • Post author:
  • Post category:其他



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




Filter表


INPUT链结构:



实例:


INPUT链:

nova-network-INPUT链:



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

nova-compute-INPUT链:



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

nova-api-INPUT链:




开放了nova-metadata的8775端口。


FORWARD链结构:



实例:


FORWARD链:



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

nova-filter-top链:

nova-network-local链:

nova-compute-local链:



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

nova-compute-inst-XXX链:



每个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链结构:



实例:


OUTPUT链:



添加了4条自定义链。

nova-filter-top链同上。

nova-network-OUTPUT链:

nova-compute-OUTPUT链:

nova-api-OUTPUT链:


NAT表



PREROUTING链结构:




实例:


PREROUTING链:

nova-network-PREROUTING链:



metadate和floating ip的DNAT规则。

nova-compute-PREROUTING链:

nova-api-PREROUTING链:


POSTROUTING链结构:



实例:


POSTROUTING链:

nova-network-POSTROUTING链:

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链:



floating ip的SNAT规则。

nova-compute-snat链:

nova-compute-float-snat链:

nova-api-snat链:

nova-api-float-snat链:


OUTPUT链结构:



实例:


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





版权声明:本文为maoliping455mlp455原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。