​ Security group通过Linux IPtables来实现,为此,在Compute节点上引入了qbr*这样的Linux传统bridge(iptables规则目前无法加载到直接挂在到ovs的tap设备上)

安全组的INPUT、OUTPUT、FORWARD

​ 其中id的前10位数字被用作虚机对外连接的qbr(同时也是tap口)的id。i或o加上前9位数字被用作安全组chain的id。所有的规则默认都在Compute节点上的filter表(默认表)中实现,分别来查看filter表的INPUT、OUTPUT、FORWARD三条链上的规则。

INPUT

iptables –line-numbers -vnL INPUT

可以看到,跟安全组相关的规则被重定向到neutron-openvswi-INPUT。 查看其规则,只有一条。

iptables –line-numbers -vnL neutron-openvswi-INPUT

iptables –line-numbers -vnL neutron-openvswi-o46364368-5

iptables –line-numbers -vnL neutron-openvswi-s46364368-5

这条chain主要检查从vm发出来的网包,是否是openstack所分配的IP和MAC,如果不匹配,则禁止通过。这将防止利用vm上进行一些伪装地址的攻击。

OUTPUT

iptables –line-numbers -vnL OUTPUT

分别跳转到neutron-filter-top和neutron-openvswi-OUTPUT

iptables –line-numbers -vnL neutron-filter-top

该chain目前无规则。

iptables –line-numbers -vnL neutron-openvswi-OUTPUT

该chain目前无规则。

FORWARD

iptables –line-numbers -vnL FORWARD

同样跳转到neutron-filter-top,无规则。跳转到neutron-openvswi-FORWARD。

iptables –line-numbers -vnL neutron-openvswi-FORWARD

iptables –line-numbers -vnL neutron-openvswi-sg-chain

如果是网桥从tap-XXX端口发出到VM的流量,则跳转到neutron-openvswi-i9LETTERID,例如i46364368-5;如果是从tap-XXX端口进入到网桥的(即vm发出来的)流量,则跳转到neutron-openvswi-o9LETTERID,例如o46364368-5。

neutron-openvswi-i9LETTERID允许安全组中配置的策略(允许ssh、ping等)和dhcp reply通过。默认的neutron-openvswi-sg-fallback将drop所有流量。

iptables –line-numbers -vnL neutron-openvswi-i46364368-5

iptables –line-numbers -vnL neutron-openvswi-o46364368-5

neutron-openvswi-o9LETTERID将跳转到 neutron-openvswi-s46364368-5,允许DHCP Request和匹配VM的源IP和源MAC的流量通过,同时允许安全组中配置的策略(允许ssh、ping等)通过。

iptables –line-numbers -vnL neutron-openvswi-s46364368-5

整体逻辑

快速查找安全组规则

从前面分析可以看出,某个vm的安全组相关规则的chain的名字,跟vm的id的前9个字符有关。

因此,要快速查找qbr-XXX上相关的iptables规则,可以用iptables -S列出(默认是filter表)所有链上的规则,其中含有id的链即为虚拟机相关的安全组规则。其中–physdev-in表示即将进入某个网桥的端口,–physdev-out表示即将从某个网桥端口发出。

iptables -S | grep tap4ca9818f-53

可以看出,进出tap-XXX口的FORWARD链上的流量都被扔到了neutron-openvswi-sg-chain这个链,neutron-openvswi-sg-chain上是security group具体的实现(两条规则,访问虚拟机的流量扔给neutron-openvswi-i583c7038-d;从虚拟机出来的扔给neutron-openvswi-o583c7038-d)。

这里提一下远端安全组的概念,使用ipset list 作为源地址,被关联的远端安全组,需要匹配到一台或者几台虚拟机作为源地址

转载于:https://www.cnblogs.com/wanstack/p/8392218.html

Neutron的安全组原理相关推荐

  1. 基于 Linux Bridge 的 Neutron 多平面网络实现原理

    目录 文章目录 目录 前言 前文列表 多平面网络 Local(本地网络) Flat(扁平网络) 配置 Flat 网络 VLAN 配置 VLAN 网络 VxLAN 配置 VxLAN 网络 GRE 前言 ...

  2. java 线程组和线程_Java多线程 线程组原理及实例详解

    线程组 线程组可以批量管理线程和线程组对象. 一级关联 例子如下,建立一级关联. public class MyThread43 implements Runnable{ public void ru ...

  3. 多思计组原理虚拟实验室_先睹为快!汽院实验室组团来亮相_搜狐汽车

    学思结合,实验为基 创学术之风采,育实践之能力 高校专业实验室 ‍是开展人才培养.科学研究. 社会服务.交流合作. 文化传承创新的基地和重要场所 ‍ 培养专业人才 自然少不了专业实验室 看 这般种类繁 ...

  4. 多思计组原理虚拟实验室 实验二 运算器实验

    电路图 链接:https://pan.baidu.com/s/1UF8STkWRZYxt0SMp7NsdrA?pwd=2333 提取码:2333 –来自百度网盘超级会员V5的分享 以下为电路连接图 电 ...

  5. 多思计组原理虚拟实验室_计算机组成原理实验二:运算器实验

    实验基于多思计算机组成原理网络虚拟实验系统 实验室地址:http://www.dsvlab.cn/ 实验目的: 通过门电路实现运算器 1)掌握算术逻辑运算单元的工作原理. 2) 熟悉简单运算器的电路组 ...

  6. 计组原理 : 计算机可靠性概述和性能评价

    一. 计算机可靠性概述 计算机系统的可靠性指它开始运行( t = 0 )  到某时刻 t 这段时间内能正常运行的概率. 用 R(t) 表示.失效率即单位时间内失效的元件数与总数的比例.用λ表示 两次故 ...

  7. 大二上,计组原理笔记(2)2.2 机器数的定浮点表示

    前言: 我的个人听课记录,毕竟是初学,错误在所难免,我知道了错误会改正更新,欢迎指导也欢迎一起讨论学习. 2.2 机器数的定浮点表示 引言 上次课解决了如何表示带符号数的符号在计算机的表示方法--设置 ...

  8. 多思计组原理虚拟实验室_多思计算机组成原理虚拟实验室-开源分享自编软件...

    What is DS-VLAB? DS-VLAB是多思计算机组成原理网络虚拟实验系统的简称,是一款开源的网络虚拟实验软件,采用GPL开源许可协议. 使用DS-VLAB可进行全加器.运算器.存储器.控制 ...

  9. 剑指 Offer 65. 不用加减乘除做加法(位运算,计组原理:补码、加法器)

    一.基础知识 做这题需要用到计算机组成原理的基础知识:二进制的表示以及加法器. 简要提下知识点,最好再去研究下来龙去脉,加深理解. (1)二进制加法 a b 非进位和s 进位c 0 0 0 0 0 1 ...

最新文章

  1. 面试季:如何在面试中介绍自己的项目经验
  2. SAP UI5 initialization error
  3. cifar10 c语言,Python3读取深度学习CIFAR-10数据集出现的若干问题解决
  4. linux模块加载和模块卸载时出现的问题
  5. sql语言特殊字符处理
  6. 认识计算机网络教案小学,初识计算机网络教案
  7. php移除所有子节点,jQuery删除/清空指定元素下的所有子节点的方法
  8. GNS3全面详解系列-GNS3的前世今生
  9. BGP路由选择综合实验(华为设备)
  10. 截取年月日在hana中怎么写_SAP HANA跟我学HANA系列之日期函数总结
  11. 游戏编辑器研发第一天,对比思考确定底层技术和从0开发场景编辑器原因
  12. 如何批量打印PDF文件
  13. 三步解决error Microsoft Visual C++ 14.0 or greater is required. Get it with “Microsoft C++ Build Tools“
  14. OSChina 周五乱弹 —— 有一个朝代红薯不能去
  15. 阿里Java后端开发面经,面试官都替我感到绝望
  16. 网络钓鱼仍然是安全行业的祸害
  17. Xavier法与何恺明法初始化权重的意义及原理
  18. 请教双WAN口路由器设置
  19. Spicy Restaurant (暴力多源bfs)
  20. 【邮政编码识别】基于计算机视觉实现邮政编码识别含Matlab源码

热门文章

  1. Linux下创建虚拟盘
  2. 值得收藏的十种常用的CSS框架,快码住!
  3. tensorflow model几种模型文件
  4. 华为M2 无法写入外置sd卡 文件
  5. 帆软 FineReport 动态列如何设置
  6. 痛惜!34岁研究生猝死!事发当天熬夜到凌晨两点半,生前称被延毕半年…
  7. 一个硕士生导师到底可以带多少学生?
  8. 无法在 Safari 浏览器中打开网站如何解决?
  9. css实现图片的3d旋转-照片墙
  10. [Erlang]好用的NIF外部库