概述
Neutron 安全组,是端口级别的安全手段,这一点跟fwass是区别的,fwass是子网间的流量安全防护,比如,同一租户的subnet A 与subnet B 之间,一般生效在子网间的路由器上,neutron原生实现是通过Iptables来做,业界厂商像cisco是由 VSA 来做的,fwass不在本文的描述范围。回到安全租,安全租是不仅仅局限在L2,L3也是可以的,L2,L3是解决网络连通性问题,而安全组,解决端口级别的安全问题,两个不同的侧面,所以,在neutron里,network本身是隔离的,为什么安全组还是有存在必要。安全组的安全语义是:属于同一个安全组的所有port可以访问的,因为,安全组默认有两条规则,出方向默认可以出去,入方向默认同安全组的可以进来。
API 模型
neutron 安全组,有两个对象,一个是security_group,另一个是security_group_rule,一个security_group里可以包含若干个security_group_rule,详细API 模型及支持的操作请参考: Security Group API
安全组通过port 生效在虚拟机上,port,security_group和security_group_rule的关系图如下:
安全组分类
安全组分位用户定义和系统默认的,系统默认安全组,是当port没绑定安全组的任何安全组的时候,系统自动绑定的安全组,默认安全组是属于租户级别的
,关于对端的指定,既可以通过字段remote_ip_prefix,也可以通过字段remote_group_id 来指定,推荐使用 remote_ip_prefix来指定,这样在数据面的生成的iptables规则要少的多。
安全组的生成过程
当创建的port的时候,