neutron openvswitch agent实现安全组的方法
关于openstack安全组,采用一问一答的形式记录如下
1. 是加载在计算节点的还是网络节点的?
是加载在计算节点的
2. 是使用iptable规则实现的吗?
M版的neutron实现了openvswitch 基于流表的防火墙
之前常见的是用iptables实现的,一般会创建neutron-openvswi-XXX链
3. iptables实现的防火墙方法中,添加的规则都是accept,其余的包都是drop的吗?
是的添加的规则一般都在最后默认drop规则的前面return掉。安全组利用iptables实现原理如下

其中需要说明两点
(1). ipset
0 0 RETURN all -- any any anywhere anywhere match-set NIPv4de0fc679-6a26-43d6-a3f6- src,规则的意思是利用ipset来指定src集合,在这个集合中的srcIP报文都可以通过。
通过命令ipset list可以查看到所有的ipset集合
[root@node-129 var]# ipset list
Name: NIPv4de0fc679-6a26-43d6-a3f6-
Type: hash:net
Revision: 3
Header: family inet hashsize 1024 maxelem 65536
Size in memory: 16816
References: 1
Members:
192.168.188.19
Name: NIPv6de0fc679-6a26-43d6-a3f6-
Type: hash:net
Revision: 3
Header: family inet6 hashsize 1024 maxelem 65536
Size in memory: 17552
References: 1
Members:
(2).security-group 远端
如果选择一个安全组作为来访源地址,则该安全组中的任何云主机实例都被允许使用该规则访问任一其它云主机。
例如host-1绑定安全组default, host-2绑定安全组secg1, 这时在default中添加一条规则并且指定远程为secg1, 那么这条规则适用于src-ip是host-2的报文。
4. neutron-openvswitch-agent实现firewall的代码结构是怎么样的?
(1) 首先在/etc/neutron/plugins/ml2/openvswitch_agent.ini 中设置firewall_driver的类名(用于指定加载类的路径),并打开安全组开关。
#firewall_driver = <None>
#firewall_driver = neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver
firewall_driver = neutron.agent.linux.openvswitch_firewall.OVSFirewallDriver
enable_security_group = true
(2) 所有的firewall基于父类FirewallDriver,每种firewall都需要实现该父类的几个接口;
prepare_port_filter : port创建时调用一次,初始化安全组信息
apply_port_filter
update_port_filter : port安全组更新时被调用
remove_port_filter : port安全组删除时被调用
filter_defer_apply_on
filter_defer_apply_off
ports
defer_apply
update_security_group_members
update_security_group_rules
security_group_updated
这些接口由securitygroups_rpc.py调用。
neutron openvswitch agent实现安全组的方法的更多相关文章
- 理解 OpenStack 高可用(HA)(2):Neutron L3 Agent HA 之 虚拟路由冗余协议(VRRP)
本系列会分析OpenStack 的高可用性(HA)概念和解决方案: (1)OpenStack 高可用方案概述 (2)Neutron L3 Agent HA - VRRP (虚拟路由冗余协议) (3)N ...
- JVM插码之五:Java agent+ASM实战--监控所有方法执行时间
本文建立在对instrumentation和agent有初步的了解的前提下阅读,关于这2个类的讲解在其它文章中. 这是一个maven项目,pom中需要的配置,lib中有asm的jar包 pom.xml ...
- 2019-10-30-C#-dotnet-core-局域网组播方法
title author date CreateTime categories C# dotnet core 局域网组播方法 lindexi 2019-10-30 9:0:48 +0800 2019- ...
- Development of a High Coverage Pseudotargeted Lipidomics Method Based on Ultra-High Performance Liquid Chromatography−Mass Spectrometry(基于超高效液相色谱-质谱法的高覆盖拟靶向脂质组学方法的开发)
文献名:Development of a High Coverage Pseudotargeted Lipidomics Method Based on Ultra-High Performance ...
- 3种用组策略将域帐号加入本地管理员组的方法_jinifly_新浪博客
次当前系统域帐号是怎么在第一次登录时,自动加入域客户端本地管理员组的?我猜不外乎就是脚本.计算机策略或虚拟机初始化的自动应答脚本,结果系统的前任同事找到了答案--GPO的用户策略(确切讲是用户首选项) ...
- javascript----数组的方法
1---join() //1----->join()方法将数组中所有元素都转化<<字符串>> //并连接在一起 //array.join()方法是string.split ...
- 删除新版UniAccess Agent 办公室监控软件的方法
UniAccess Agent 是在由LeagSoft开发的监控软件,老版本的一般安装在C:\Program Files\LeagSoft\UniAccess Agent这个目录下,一般找到这个目录点 ...
- MySQL学习笔记:三种组内排序方法
由于MySQ没有提供像Oracle的dense_rank()或者row_number() over(partition by)等函数,来实现组内排序,想实现这个功能,还是得自己想想办法,最终通过创建行 ...
- c#Udp分包组包方法
udp通信协议,相信大家都知道这个.由于是无连接的协议,所有udp的传输效率比tcp高.但是udp协议传输较大的数据文件得分包 最近写了个分包组包的方法,拿来和大家分享,如果有什么不妥的地方,欢迎点评 ...
随机推荐
- Hexo站点之域名配置
摘要 因为Hexo个人博客是托管在github之上,每次访问都要使用githubname.github.io这么一个长串的域名来访问,会显得非常繁琐.这个时候我们可以购买一个域名,设置DNS跳转,以达 ...
- 从ICassFactory为CLSID为{17BCA6E8-A950-497E-B2F9-AF6AA475916F}的COM组件创建实例失败,原因是出现以下错误:c001f011.(Microsoft.Server.manageDTS
从ICassFactory为CLSID为{17BCA6E8-A950-497E-B2F9-AF6AA475916F}的COM组件创建实例失败,原因是出现以下错误:c001f011.(Microsoft ...
- js中常用的Math方法总结
1.min()和max()方法 Math.min()用于确定一组数值中的最小值.Math.max()用于确定一组数值中的最大值. alert(Math.min(2,4,3,6,3,8,0,1,3)); ...
- 【CSS学习】字符实体
在html开发中,有一些字符,不适于直接写出,比如:大于号>小于号<<br />一般格式:&+实体名+;实体有很多,记住常用的大于号>小于号<双引号&quo ...
- Java实践 — SSH远程执行Shell脚本(转)
原文地址:http://www.open-open.com/lib/view/open1384351384024.html 1. SSH简介 SSH是Secure Shell的缩写,一 ...
- cocos2d-x中DrawNode常见的图像绘制函数
//绘制矩形 ('起始点' , '目标点' , '填充颜色') auto rect=DrawNode::create(); rect->drawRect(Vec2(0,0),Vec2(100, ...
- mac下virtualbox配置全网通
mac下virtualbox实现主机和虚拟机.虚拟机和外网互访的方案 全局添加Host-Only网络 Adapter IPv4 Address:192.168.56.1 IPv4 Network Ma ...
- MATLAB ' : ' 官方解释
1.冒号的作用 产生矢量,阵列标注以及for-loop迭代子 2.描述 冒号是MATLAB中最有用的操作符之一.它使用下述规则来创建有规则的空间矢量: j:k is the same as [j,j+ ...
- js中访问action
jsp中 <a href="javascript:Excel();" class="easyui-linkbutton" plain="true ...
- openstack私有云布署实践【19 通过python客户端 创建实例VM指定IP地址】
还有一种创建方式 是使用py开发工具,调用openstackclient的方法进行创建实例 ,好处就是可随意指定我们要的虚拟机IP地址,需求的场景就是,某天我们需要主动分配一个比较熟知的IP用作某个服 ...