全文阅读传送门:http://www.ustack.com/wp-content/uploads/2013/11/Neutron%E9%98%B2%E7%81%AB%E5%A2%99.pdflinux
原做者:http://www.ustack.com/安全
如下是个人摘录:网络
数据模型
防火墙服务底层数据模型由三个类组成:FirewallPolicy, FirewallRule和Firewall。
FirewallRule是咱们所说的防火墙规则,定义了包过滤所需的信息和匹配后的动做。
FirewallPolicy由若干个FirewallRule组成,它被做为模板来建立Firewall。
Firewall是系统最终要实现的防火墙。
Neutron做为多租户的网络服务模型,防火墙的这几个类都有租户ID属性。这样租户A的防火墙信息和租户B的防火墙信息就隔开了。FirewallPolicy有个audited属性,在参考实现中尚未实现。参考实现目前只支持一个租户只有一个Firewall。spa
防火墙与安全组
安全组很像防火墙参考实现,它们都是使用IPTables规则来作包过滤。他们之间的区别在于:
1. 安全组由L2 Agent来实现,也就是说L2 Agent,好比neutronopenvswitchagent和neutronlinuxbridgeagent,会将安全组规则转换成IPTables规则,并且通常发生在全部计算节点上。防火墙由L3 Agent来实现,它的规则会在租户的Router所在的L3 Agent节点上转化成IPTables规则。
2. 防火墙保护只能做用于跨网段的网络流量,而安全组则能够做用于任何进出虚拟机的流量。
3.防火墙做为高级网络服务,将被用于服务链中,而安全组则不能。
在Neutron中同时部署防火墙和安全组能够达到双重防御。外部恶意访问能够被防火墙过滤掉,避免了计算节点的安全组去处理恶意访问所形成的资源损失。即便防火墙被突破,安全组做为下一到防线还能够保护虚拟机。最重要的是,安全组能够过滤掉来自内部的恶意访问。调试
总结
Neutron的防火墙服务是一个高级网络服务,目标是做为网络服务链中的一个服务节点而存在。它和安全组构成了双重防御。防火墙的参考实现做用在Neutron的路由器上,因此只对跨子网的流量起做用。对于来自同网段的恶意攻击,咱们还须要安全组来防御。
防火墙Policy的规则是有顺序的,并且每一个规则能够被单独禁用和激活。这个特性给防火墙规则的部署和调试都提供了很强的灵活性。资源