理解概念

Firewall as a Service(FWaaS)是 Neutron 的一个高级服务。
用户可以用它来创建和管理防火墙,在 subnet 的边界上对 layer 3 和 layer 4 的流量进行过滤。

传统网络中的防火墙一般放在网关上,用来控制子网之间的访问。 FWaaS 的原理也一样,是在 Neutron 虚拟 router 上应用防火墙规则,控制进出租户网络的数据。

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

Firewall
租户能够创建和管理的逻辑防火墙资源。 Firewall 必须关联某个 Policy,因此必须先创建 Policy。

Firewall Policy
Policy 是 Rule 的集合,Firewall 会按顺序应用 Policy 中的每一条 Rule。

Firewall Rule
Rule 是访问控制的规则,由源与目的子网 IP、源与目的端口、协议、allow 或 deny 动作组成。
例如,我们可以创建一条 Rule,允许外部网络通过 ssh 访问租户网络中的 instance,端口为 22。

与 FWaaS 容易混淆的概念是安全组(Security Group)。

安全组的应用对象是虚拟网卡,由 L2 Agent 实现,比如 neutron_openvswitch_agent 和 neutron_linuxbridge_agent。
安全组会在计算节点上通过 iptables 规则来控制进出 instance 虚拟网卡的流量。
也就是说:安全组保护的是 instance

FWaaS 的应用对象是 router,可以在安全组之前控制外部过来的流量,但是对于同一个 subnet 内的流量不作限制。
也就是说:FWaaS 保护的是 subnet

所以,可以同时部署 FWaaS 和安全组实现双重防护。

启用 FWaaS

因为 FWaaS 是在 router 中实现的,所以 FWaaS 没有单独的 agent。 已有的 L3 agent 负责提供所有 FWaaS 功能。

要启用 FWaaS,必须在 Neutron 的相关配置文件中做些设置。

配置 firewall driver

Neutron 在 /etc/neutron/fwaas_driver.ini 文件中设置 FWaaS 使用的 driver。 如下图所示:

这里 driver 为 iptables。如果以后支持更多的 driver,可以在这里替换。

配置 Neutron

在 Neutron 配置文件 /etc/neutron/neutron.conf  中启用 FWaaS plugin。

转载于:https://www.cnblogs.com/wangjq19920210/p/9186899.html

Neutron FWaaS 原理相关推荐

  1. 理解 Neutron FWaaS - 每天5分钟玩转 OpenStack(117)

    前面我们学习了安全组,今天学习另一个与安全相关的服务 -- FWaaS. 理解概念 Firewall as a Service(FWaaS)是 Neutron 的一个高级服务. 用户可以用它来创建和管 ...

  2. OpenStack Neutron浅析(三)

    1. 基础知识 1.1 防火墙(firewall) 防火墙是依照特定的规则来控制进出它的网络流量的网络安全系统.一个典型的场景是在一个受信任的内网和不受信任的外网比如 Internet 之间建立一个屏 ...

  3. 理解 neutron(15):Neutron Linux Bridge + VLAN/VXLAN 虚拟网络

    学习 Neutron 系列文章: (1)Neutron 所实现的虚拟化网络 (2)Neutron OpenvSwitch + VLAN 虚拟网络 (3)Neutron OpenvSwitch + GR ...

  4. Neutron 分布式虚拟路由(Neutron Distributed Virtual Routing)

    本系列会分析OpenStack 的高可用性(HA)概念和解决方案: (1)OpenStack 高可用方案概述 (2)Neutron L3 Agent HA - VRRP (虚拟路由冗余协议) (3)N ...

  5. 深入理解 OpenStack Neutron:VXLAN

    深入理解 OpenStack Neutron:VXLAN 原创: 李宗标 网事如烟云 2017-02-01 3.8 VXLAN 终于用上了这张图: 老爷子,鸡年大吉! 好吧,我们言归正传!(老爷子说: ...

  6. 【neutron】OpenStack Neutron -- 学习资料

    OpenStack Neutron -- 学习资料 学习什么 neutron代码的整体架构,消息通知.rpc如何实现,RESTful API如何实现 neutron的部署,常见问题的定位方法 neut ...

  7. Neutron 理解 (2): 使用 Open vSwitch + VLAN 组网 [Neutron Open vSwitch + VLAN Virtual Network]

    学习 Neutron 系列文章: (1)Neutron 所实现的虚拟化网络 (2)Neutron OpenvSwitch + VLAN 虚拟网络 (3)Neutron OpenvSwitch + GR ...

  8. Neutron 理解 (6): Neutron 是怎么实现虚拟三层网络的 [How Neutron implements virtual L3 network]

    Neutron 理解 (6): Neutron 是怎么实现虚拟三层网络的 [How Neutron implements virtual L3 network] 学习 Neutron 系列文章: (1 ...

  9. OpenStack Neutron运行机制解析概要

    问题导读: 1.有OpenVswitch为什么还会有Linux Bridge? 2.整个运行流程是怎样的? 3.什么是TAP设备? 自从开学以来,玩OpenStack也已经3个月了,这段时间主要把精力 ...

最新文章

  1. CrudRepository/JpaRepository/PagingAndSortingRepository之间的区别
  2. 【数据库】通用的存储过程
  3. 牛客网笔记之JAVA运算符
  4. 字符串处理 —— 回文串相关 —— 回文串的判断
  5. 我的docker随笔5:docker-compose的安装与使用
  6. 基于JAVA+SpringMVC+Mybatis+MYSQL的商场人员管理系统
  7. 数据结构笔记(十)-- 循环队列
  8. 怎么用html打开图片,viewerjs 在html打开图片或打开pdf文件使用案例
  9. Unity 基础 之 特殊文件夹
  10. android开机自动启动app,android如何实现开机自动启动Service或app
  11. 数据结构与算法分析:C语言描述(原书第2版) PDF
  12. java 自动化报表_SpringMvc JDBC jQWidgets项目案例JasperReport自动化报表系统
  13. 席慕容的诗歌——《我愿为莲》
  14. Cesium专栏-空间分析之坡向分析(附源码下载)
  15. react组件React slick的使用
  16. Python等编程语言学习资料分享
  17. C++多维数组:存储方式、访问方式和作为函数参数
  18. overflow 溢出处理
  19. 解决plt.show()闪退
  20. 80篇各ajax框架入门教程

热门文章

  1. 在Centos环境下搭建Confluence
  2. rocketmq namesrv 第一章启动过程
  3. PhotoSwipe源码解读系列(二)
  4. Flex DataGrid的labelFunction用法例子
  5. 从C# 到 Java 点滴
  6. 使用Ant制作发布版本
  7. Spring处理log4j
  8. vspy如何在图形面板显示报文_Vspy工程之C Code Interface的使用(Vspy系列其三)
  9. Python——列表生成式变形
  10. 翁恺老师C语言学习笔记(十一)字符串