在学习OpenStack网络的过程中,很多时候可能会涉及到防火墙,那么iptables到底是如何工作的了。这一篇主要记录防火墙的基本知识,这样有助于分析虚拟机的包在主机中到底经过了什么样的变换,处于vlan中的虚拟机通过NAT完成与外界通信的,NAT到底是如何完成了成private ip到public ip的相互转换,熟悉了iptables那么就知道此过程。
ptables的基本概念包括:规则,链,表。
有了上面的基础知识之外,那么对于进入主机的包或者从主机发出去的包在iptables中经过了哪些工序了?先看下面这张简单的流程图。
这儿还有一张更加具体的图可以参考。
知道iptables是如何处理数据包了,再看network controller节点的iptables,我们就知道虚拟机的包在iptables中经过了怎样的变化,所谓的NAT也就是采用iptables转换实现的。所以使用vlan方式使虚拟机上网则需要以下几个过程:
这样,虚拟机的ip地址最终就可以通过iptables转换成public network中的ip地址,然后使用public ip地址上网,访问public ip的数据包最终也会转换成虚拟机的ip,然后路由到虚拟机来。
对于NAT的转换,可以部分参考上一篇文章OpenStack-Network学习四。
参考文档(二):http://blog.chinaunix.net/uid-24960107-id-204362.html
参考文档(三):http://www.ibm.com/developerworks/cn/cloud/library/cl-openstack-network/
参考文档(四):http://blog.youlingman.info/debugging-iptables-with-raw-table/