[转] Neutron FWaaS
OpenStack Neutron FWaaS 学习 ( by quqi99 )
作者:张华 发表于:2013-06-24
版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明
( http://blog.csdn.net/quqi99 )
另一篇和防火墙相关的文章,OpenStack中的防火墙 ( by quqi99 ) http://blog.csdn.net/quqi99/article/details/7447233
OpenStack的网络组件已经从Quantum更名为Neutron了。之前Quantum就有一个安全组的实现,它运行在每一个计算节点上,能够做到:
1)过滤进入到计算节点上虚机的流量
2)过滤从虚机出来的流量(nova-network并不能实现这一点)
3)过滤虚机之间的流量
安全组的一般用法及实现框图如下:
$nova secgroup-create mygroup description
$nova secgroup-add-rule mygroup tcp 22 22 192.168.1.0/24
$nova boot --flavor 1 --image f16f1d2d-71d6-41b7-98a5-319f142d61f5--security_groups
mygroup i1
上述一个安全组由一系列的iptable rule组成,rule都是针对soure/dest ip及tcp port的,它不能像下一代的防火墙一样来表达应用特性像audited
rules,也不能提供边缘防火墙的特性。所以在Neutron提供L4/L7层框架之际,也将推出了FWaaS服务(https://docs.google.com/document/d/1PJaKvsX2MzMRlLGfR0fBkrMraHYF0flvl0sqyZ704tA/edit?pli=1)。
在FWaaS中,tenant可以创建多个Firewall instances,而每一个virtual firewall instance和多个Firewall
Policies关联,每个firewall policies由多个Firewall rules按序组成。不能直接应用一个rule,它必须先加入到一个policy中,因为它需要先审计。如下图:
多层防火墙的应用场景如下图:
Neutron L3 agent运行在gateway host上,它通过linux的namespace特性实例化多个neutron router,一个tenant能用多个router。见下图,router中的qr-XXX虚拟接口用于和tenant网络相连,qg-XXX虚拟接口用于跟外部网络相连,防火墙服务应该是过滤出入tenant网络的所有流量,所以firewallpolicy应该是应用在qr-XXX虚拟接口上(iptables出口rule中添加”-oqr-+”
a即可,入口规则添加”-iqr-+”即可),如果对所以tenant网络都适用的话可以运用在qg-XXX接口上(但havana的这一版本不会实现这一点,并且也不会实现Zones的概念,一组像上面的qr-XXX接口可以组成一个Zone,也不会检查address
sppofing)。所以防火墙规则不仅应该像之前的安全组那个运用到计算节点上,也应该运用在相应的tenant'srouter的主机相应的namespace下(这即是所谓的边缘防火墙规则).
参考实现将会有4个chains,出和入各一个,ipv4和ipv6各一个。:
所以相应地在FWaaSAgent中会有几个方法:
create_firewall(apply_list, fireall),fireall是指一组上面的防火墙规则,apply_list指一些networknamespace
update_firewall(apply_list, fireall)
delete_firewall(apply_list, fireall)
关于将上面的firewallinstance在哪里应用到VM应涉及到L4/L7服务框架了。以前Neutron只有一级插件结构(像OVS插件,像LinuxBridge插件),但现在引入了L4/L7层服务框架之后变成了两层,即实现了在一个核心插件(像OVS插件)下再能添加若干个服务(像LBaaS,像FWaaS)。可参见:https://docs.google.com/document/d/1iLzieNKxM7xip_lRidmalAhF_6-Yf1b_cePF4yeAnkQ/edit?pli=1,
相关进阶的代码和BP:
1)Firewallas a Service (FWaaS) APIs and DB Model,https://review.openstack.org/29004
2) FwaaS agent,https://blueprints.launchpad.net/quantum/+spec/quantum-fwaas-agent
3) FwaaS Plugin, https://blueprints.launchpad.net/quantum/+spec/quantum-fwaas-plugin
4) FwaaS ip tables driver https://blueprints.launchpad.net/quantum/+spec/quantum-fwaas-iptables-driver
[转] Neutron FWaaS的更多相关文章
- 理解 Neutron FWaaS - 每天5分钟玩转 OpenStack(117)
前面我们学习了安全组,今天学习另一个与安全相关的服务 -- FWaaS.理解概念 Firewall as a Service(FWaaS)是 Neutron 的一个高级服务.用户可以用它来创建和管理防 ...
- Neutron FWaaS 原理
理解概念 Firewall as a Service(FWaaS)是 Neutron 的一个高级服务.用户可以用它来创建和管理防火墙,在 subnet 的边界上对 layer 3 和 layer 4 ...
- 实践 Neutron FWaaS - 每天5分钟玩转 OpenStack(118)
前面我们学习了 FWaaS 的理论知识,今天将通过实验来学习 FWaaS. 在我们的实验环境中,有两个 instance: cirros-vm1(172.16.100.3) 和 cirros-vm2( ...
- 理解 neutron(15):Neutron linux-bridge-agent 创建 linux bridge 的简要过程
学习 Neutron 系列文章: (1)Neutron 所实现的虚拟化网络 (2)Neutron OpenvSwitch + VLAN 虚拟网络 (3)Neutron OpenvSwitch + GR ...
- Neutron 理解 (1): Neutron 所实现的虚拟化网络 [How Netruon Virtualizes Network]
学习 Neutron 系列文章: (1)Neutron 所实现的虚拟化网络 (2)Neutron OpenvSwitch + VLAN 虚拟网络 (3)Neutron OpenvSwitch + GR ...
- Neutron 理解 (2): 使用 Open vSwitch + VLAN 组网 [Netruon Open vSwitch + VLAN Virutal Network]
学习 Neutron 系列文章: (1)Neutron 所实现的虚拟化网络 (2)Neutron OpenvSwitch + VLAN 虚拟网络 (3)Neutron OpenvSwitch + GR ...
- Neutron 理解 (3): Open vSwitch + GRE/VxLAN 组网 [Netruon Open vSwitch + GRE/VxLAN Virutal Network]
学习 Neutron 系列文章: (1)Neutron 所实现的虚拟化网络 (2)Neutron OpenvSwitch + VLAN 虚拟网络 (3)Neutron OpenvSwitch + GR ...
- Neutron 理解 (4): Neutron OVS OpenFlow 流表 和 L2 Population [Netruon OVS OpenFlow tables + L2 Population]
学习 Neutron 系列文章: (1)Neutron 所实现的虚拟化网络 (2)Neutron OpenvSwitch + VLAN 虚拟网络 (3)Neutron OpenvSwitch + GR ...
- Neutron 理解(5):Neutron 是如何向 Nova 虚机分配固定IP地址的 (How Neutron Allocates Fixed IPs to Nova Instance)
学习 Neutron 系列文章: (1)Neutron 所实现的虚拟化网络 (2)Neutron OpenvSwitch + VLAN 虚拟网络 (3)Neutron OpenvSwitch + GR ...
随机推荐
- Debian 入门安装与配置1
Debian 入门安装与配置1 最近安装了多个发行版本的Linux,包括Ubuntu.Fedora.Centos和Debian,发现只有Debian在界面和稳定性等综合特性上表现最优,自己也最喜欢,所 ...
- R 读取clipboard内容 (MAC)
在mac上,R读取复制的data.很简单,一行命令 read.table(pipe("pbpaste"))
- Set-常用API及详解
SetAPI: 类别 方法 增 add.addAll 删 remove.removeAll 长 size 遍 iterator 判 isEmpty hashCode 使用与集合大同小异,主要的区别就在 ...
- 图像处理之image stitching
背景介绍 图像拼接是一项应用广泛的图像处理技术.根据特征点的相互匹配,可以将多张小视角的图像拼接成为一张大视角的图像,在广角照片合成.卫星照片处理.医学图像处理等领域都有应用.早期的图像拼接主要是运用 ...
- uestc1888 Birthday Party 组合数学,乘法原理
题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=25539#problem/G 题目意思: 有n个人,每个人有一个礼物,每个人能拿 ...
- jQuery中的ajax服务端返回方式详细说明
http://blog.sina.com.cn/s/blog_6f92e3a70100u3b6.html 上次总结了下ajax的所有参数项,其中有一项dataType是设置具体的服务器返回方式 ...
- leetcode 94 Binary Tree Inorder Traversal ----- java
Given a binary tree, return the inorder traversal of its nodes' values. For example:Given binary tre ...
- 統計數字(2007年NOIP全国联赛提高组)
题目描述 Description [问题描述]某次科研调查时得到了n个自然数,每个数均不超过1500000000(1.5*109).已知不相同的数不超过10000 个,现在需要统计这些自然数各自出现的 ...
- HDU-5536 Chip Factory (字典树)
题目大意:给n个数,编号为1~n,取三个编号不同的数,使表达式(a+b)^c的值最大. 题目分析:将这n个数按二进制位建立一棵trie.枚举i.j的和,查询亦或最大值,但在查询之前要把i.j在trie ...
- CentOS配置LAMP环境
环境:CentOS 6.5 配置防火墙,开启80端口.3306端口 # Firewall configuration written by system-config-firewall # Manua ...