Neutron的安全组原理
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的安全组原理相关推荐
- 基于 Linux Bridge 的 Neutron 多平面网络实现原理
目录 文章目录 目录 前言 前文列表 多平面网络 Local(本地网络) Flat(扁平网络) 配置 Flat 网络 VLAN 配置 VLAN 网络 VxLAN 配置 VxLAN 网络 GRE 前言 ...
- java 线程组和线程_Java多线程 线程组原理及实例详解
线程组 线程组可以批量管理线程和线程组对象. 一级关联 例子如下,建立一级关联. public class MyThread43 implements Runnable{ public void ru ...
- 多思计组原理虚拟实验室_先睹为快!汽院实验室组团来亮相_搜狐汽车
学思结合,实验为基 创学术之风采,育实践之能力 高校专业实验室 是开展人才培养.科学研究. 社会服务.交流合作. 文化传承创新的基地和重要场所 培养专业人才 自然少不了专业实验室 看 这般种类繁 ...
- 多思计组原理虚拟实验室 实验二 运算器实验
电路图 链接:https://pan.baidu.com/s/1UF8STkWRZYxt0SMp7NsdrA?pwd=2333 提取码:2333 –来自百度网盘超级会员V5的分享 以下为电路连接图 电 ...
- 多思计组原理虚拟实验室_计算机组成原理实验二:运算器实验
实验基于多思计算机组成原理网络虚拟实验系统 实验室地址:http://www.dsvlab.cn/ 实验目的: 通过门电路实现运算器 1)掌握算术逻辑运算单元的工作原理. 2) 熟悉简单运算器的电路组 ...
- 计组原理 : 计算机可靠性概述和性能评价
一. 计算机可靠性概述 计算机系统的可靠性指它开始运行( t = 0 ) 到某时刻 t 这段时间内能正常运行的概率. 用 R(t) 表示.失效率即单位时间内失效的元件数与总数的比例.用λ表示 两次故 ...
- 大二上,计组原理笔记(2)2.2 机器数的定浮点表示
前言: 我的个人听课记录,毕竟是初学,错误在所难免,我知道了错误会改正更新,欢迎指导也欢迎一起讨论学习. 2.2 机器数的定浮点表示 引言 上次课解决了如何表示带符号数的符号在计算机的表示方法--设置 ...
- 多思计组原理虚拟实验室_多思计算机组成原理虚拟实验室-开源分享自编软件...
What is DS-VLAB? DS-VLAB是多思计算机组成原理网络虚拟实验系统的简称,是一款开源的网络虚拟实验软件,采用GPL开源许可协议. 使用DS-VLAB可进行全加器.运算器.存储器.控制 ...
- 剑指 Offer 65. 不用加减乘除做加法(位运算,计组原理:补码、加法器)
一.基础知识 做这题需要用到计算机组成原理的基础知识:二进制的表示以及加法器. 简要提下知识点,最好再去研究下来龙去脉,加深理解. (1)二进制加法 a b 非进位和s 进位c 0 0 0 0 0 1 ...
最新文章
- 面试季:如何在面试中介绍自己的项目经验
- SAP UI5 initialization error
- cifar10 c语言,Python3读取深度学习CIFAR-10数据集出现的若干问题解决
- linux模块加载和模块卸载时出现的问题
- sql语言特殊字符处理
- 认识计算机网络教案小学,初识计算机网络教案
- php移除所有子节点,jQuery删除/清空指定元素下的所有子节点的方法
- GNS3全面详解系列-GNS3的前世今生
- BGP路由选择综合实验(华为设备)
- 截取年月日在hana中怎么写_SAP HANA跟我学HANA系列之日期函数总结
- 游戏编辑器研发第一天,对比思考确定底层技术和从0开发场景编辑器原因
- 如何批量打印PDF文件
- 三步解决error Microsoft Visual C++ 14.0 or greater is required. Get it with “Microsoft C++ Build Tools“
- OSChina 周五乱弹 —— 有一个朝代红薯不能去
- 阿里Java后端开发面经,面试官都替我感到绝望
- 网络钓鱼仍然是安全行业的祸害
- Xavier法与何恺明法初始化权重的意义及原理
- 请教双WAN口路由器设置
- Spicy Restaurant (暴力多源bfs)
- 【邮政编码识别】基于计算机视觉实现邮政编码识别含Matlab源码