一。防火墙与安全组区别


防火墙一般放在网关上,用来隔离子网之间的访问。因此,防火墙即服务也是在网络节点上(具体说来是在路由器命名空间中)来实现。防火墙可以在安全组之前隔离外部过来的恶意流量,但是对于同个子网内部不同虚拟网卡间的通讯不能过滤(除非它要跨子网)。


FWaaS 保护的是 subnet


安全组的对象是虚拟网卡,由L2 Agent来实现,比如neutron_openvswitch_agent 和 neutron_linuxbridge_agent,会在计算节点上通过配置 iptables 规则来限制虚拟网卡的进出访问。


安全组保护的是 instance


 


 


 


二。安全组


创建虚拟机时给虚拟机添加的安全组实际上是给虚拟机的网卡设置的安全组。


虚拟机没有安全组的概念,安全组是在网卡上的。虚拟机里看到的安全组列表是虚拟机所有网卡的安全组的叠加。


安全组有以下特性:


1. 通过宿主机上 iptables 规则控制进出 instance 的流量。


2. 安全组作用在 instance 的 port 上。


3. 安全组的规则都是 allow,不能定义 deny 的规则。


4. instance 可应用多个安全组叠加使用这些安全组中的规则。


三。虚拟机的安全组


 


例如虚拟机有网卡nic1和nic2


安全组的显示:

nic1 的安全组是secgroupA


nic2 的安全组是secgroupB


那虚拟机的安全组是secgroupA,secgroupB

 


添加网卡:

给虚拟机添加一个网卡nic3,指定安全组为secgroupC(默认是安全组default)。


那虚拟机的安全组是secgroupA,secgroupB,secgroupC

 


给虚拟机添加安全组secgroupA

nic1 的安全组是secgroupA


nic2 的安全组是secgroupA,secgroupB


nic3 的安全组是secgroupA,secgroupC


那虚拟机的安全组是secgroupA,secgroupB,secgroupC

给虚拟机添加安全组:遍历虚拟机的所有网卡,如果某个网卡上没这个安全组则给其添加,如果有则不变。


给虚拟机删除安全组secgroupC

nic1 的安全组是secgroupA


nic2 的安全组是secgroupA,secgroupB


nic3 的安全组是secgroupA


那虚拟机的安全组是secgroupA,secgroupB

给虚拟机删除安全组:遍历虚拟机的所有网卡,如果某个网卡上有这个安全组则给其删除,如果没有则不变。


 


 


四。fwaas


 


1.Firewall as a Service(FWaaS)是 Neutron 的一个高级服务。是在虚拟router 中实现的,所以 FWaaS 没有单独的 agent。 已有的 L3 agent 负责提供所有 FWaaS 功能。


2.用户可以使用防火墙在 subnet 的边界上对 layer 3 和 layer 4 的流量进行过滤。


3.FWaaS 有三个重要概念: Firewall、Policy 和 Rule。


============================================================