neutron中目前安全组的实现是使用iptables来实现的
创建安全组
创建安全组的时候默认有两条“出”规则(ipv4和ipv6)
“default”安全组不仅有“出”规则,还有“入”规则。默认有四条规则,分为为“进出”的ipv4和ipv6规则
代码位置:neutron\db\securitygroups_db.py
方法:create_security_group
ps:安全组的优先级是用来对安全组进行排序的key
查看安全组规则
#iptables -L -v
查看包装链:neutron-centec-o-sg-chain
找到对应tap设备:如tap8f196371-77
每个tap设备会分别对应两条包装链,分为是:neutron-centec-o-i8f196371-7(对进数据的过滤)和neutron-centec-o-o8f196371-7(对出数据的过滤)
查看neutron-centec-o-i8f196371-7和neutron-centec-o-o8f196371-7
此时可以和dashboard中你看到的安全组规则一一对应起来看,同时可以看到每条规则过滤的数据流量
代码分析
http://squarey.me/cloud-virtualization/iptables_usage_in_l3_agent.html