OpenStack
xjtu_qyq
个人的bug与patch持续更新 https://bugs.launchpad.net/~qianyuqiao
展开
-
[总结篇3]Provider_network的含义
1.命令行格式neutron net-create public --shared --provider:physical_network public --provider:network_type flat如果是vlan,还需要加上segment_idneutron net-create public --shared --provider:physical_network public --provider:network_type vlan --provider:segment.原创 2020-08-31 22:50:44 · 2440 阅读 · 0 评论 -
[总结篇4] l2-agent的细节
先看Ml2Plugin:class Ml2Plugin(db_base_plugin_v2.NeutronDbPluginV2, external_net_db.External_net_db_mixin, sg_db_rpc.SecurityGroupServerRpcMixin, agentschedulers_db.DhcpAgentSchedulerDbMixin,原创 2020-09-01 15:32:42 · 742 阅读 · 0 评论 -
RYU控制器的学习笔记(三) 利用观察者模式通知app处理报文
当一个流量包通过tcp报文发送到6633端口的时候,会发生什么?def _recv_loop(self): ........ msg = ofproto_parser.msg( self, version, msg_type, msg_len, xid, buf[:msg_len]) # LOG.debug('queue msg %s cls %s', msg, msg.__class__) if msg: ev = ofp_event.ofp_原创 2020-08-27 21:30:47 · 525 阅读 · 0 评论 -
[总结篇2]Taas的实现
1.本地镜像流量的实现br-int/* 下面这条流表是对虚机流出方向流量的匹配.其中ovs_port_id为source port在br-int上对应的ofport值,source port出来的流量执行normal动作完成普通业务流的转发.除此之外,修改报文VLAN值为taas_id,之后送给br-tap做流量镜像策略判断 */table=0,priority=20,in_port=ovs_port_id,actions=normal,mod_vlan_vid:taas_id,ou原创 2020-08-17 20:12:42 · 405 阅读 · 0 评论 -
[总结篇1]openstack neutron 中是如何做到二层隔离的
先马克原创 2020-03-10 23:08:09 · 387 阅读 · 0 评论 -
VXLAN和GRE的区别
1)主要的内容重点在vxlan的封装形式,多了50字节的tunnel长度;(14帧头+20ip头+8udp头+8vxlan头),其中vxlan头(00000100+24bit保留+24bit vxlanID+8bit保留)2)正常来说一个64-1518帧长的数据包,去掉vxlan的tunnel头部+FCS(帧校验序列-CRC)之后,只有10-1464长度可以使用,但是vxlan的封装是为了传输内层的来自vm的数据包,所以实际的传输过程需要调大整个网络环境的MTU,才能正常传输;3) GRE封装的是i原创 2020-08-05 11:55:36 · 2246 阅读 · 0 评论 -
tap/tun设备 veth设备
tap/tun设备 veth设备是openstack网络虚拟化中的重要的概念参考资料:https://zhuanlan.zhihu.com/p/74634285https://blog.csdn.net/sld880311/article/details/77854651TAP/TUN1.TAP/TUN 是 Linux 内核实现的一对虚拟网络设备,TAP 工作在二层,TUN 工作在三层。Linux 内核通过 TAP/TUN 设备向绑定该设备的用户空间程序发送数据,反之,用户空间程序也可以原创 2020-08-05 11:29:27 · 669 阅读 · 0 评论 -
RYU控制器的学习笔记(一) ryu.app.rest_router的分析
先mark原创 2020-05-20 16:21:11 · 1862 阅读 · 0 评论 -
RYU控制器的学习笔记(二)
0.SDN交换机的TCP主动连接 8s一个包1.ryu控制器是如何发现SDN交换机的? def serve(self): send_thr = hub.spawn(self._send_loop) # send hello message immediately hello = self.ofproto_parser.OFPHello(self) self.send_msg(hello) // 这一行是最重要的~~原创 2020-06-03 22:48:33 · 802 阅读 · 0 评论 -
inspect.getmembers
import inspectdef public(name=None): def _(f): f._public_name = name or f.__name__ return f return _class abc(): def __init__(self): self.a = 1 self.b = 2 self.method_map = {} @public("func1") .原创 2020-05-15 19:42:39 · 422 阅读 · 0 评论 -
OpenStack AMQP与kombu
1.历史: 2004年,摩根大通和iMatrix开始着手Advanced Message Queuing Protocol (AMQP)开放标准的开发。2006年,AMQP规范发布。2007年,Rabbit技术公司基于AMQP标准开发的RabbitMQ 1.0 发布AMQP是规范,rabbitmq是具体的一种实现技术2.AMQP模型通信模型: 1.建立一个连接Connec...原创 2018-11-23 18:32:07 · 231 阅读 · 0 评论 -
rabbitmq 消息队列 多重绑定
今天遇到了个多重绑定的问题两个不同的实例接收消息,相同的队列、相同的交换机、相同的routingkey,但是数据是交替接收的,不能两个实例同时接收同一条消息想要解决其实很容易,只需要没两个实例所绑定的队列不同即可,最简单的就是以不同的名字申明所绑定的队列...原创 2019-01-04 22:28:36 · 4872 阅读 · 0 评论 -
利用Mininet进行VxLAN验证实验
1.什么是VXLAN?具体而言,就是基于IPV4实现跨节点的二层网络,有点类似于IPSec的作用,只不过ip头包裹着的是二层报文,与VLAN相比,VXLAN具有以下几个优势:支持更多的二层网段VLAN使用12bit标记VLAN ID最多支持4096个VLAN,这对于大型云部署会成为瓶颈。VXLAN的ID(VNI或者VNID)使用24bit标记,支持16777216(2的24方)个二层网...原创 2018-09-18 14:15:22 · 3263 阅读 · 3 评论 -
openstack代码解读之 neutron.agent.linux.iptables_manager模块
关于这个模块,我开始有以下几个问题:1.研究过他的人一定会对里面的chain的命名方式感到奇怪,为什么会有unwrapped_chain与wrapped_chain同时存在呢,这个按照他注释里面写的意思# Add a neutron-filter-top chain. It's intended to be shared# among the various neutron compo...原创 2019-05-21 14:44:05 · 378 阅读 · 0 评论 -
OpenStack 关于admin-openrc.sh的作用(Queens版本)
在许多安装文档中,都要source admin-openrc.sh。那么这一步具体有什么用呢?还是要从代码看起。不执行source admin-openrc.sh,直接执行neutron port-list会出现以下错误:Auth plugin requires parameters which were not given: auth_urlneutron port-list的入口...原创 2019-04-18 16:15:58 · 12143 阅读 · 0 评论 -
openstack(Queens) neutron-l3-agent 代码解析1(从命令行启动到同步plugin数据)
1.代码入口/usr/bin/neutron-l3-agentimport sysfrom neutron.cmd.eventlet.agents.l3 import mainif __name__ == "__main__": sys.exit(main())neutron.cmd.eventlet.agent.l3:from neutron.agent i...原创 2019-03-04 20:51:59 · 1323 阅读 · 0 评论 -
OpenStack 云平台流量监控插件tap-as-a-service(Taas)代码解析(二):
在上一篇文章中,以create_tap_service为例,讲解了OpenStack中云端流量捕获插件Tap-as-a-service的Plugin的代码流程(https://blog.csdn.net/m0_37313888/article/details/82693789)先回顾一下Taas的结构,这篇文章我将继续讲解Taas Agent与Taas Driver的工作流程(neut...原创 2018-11-06 16:48:46 · 3051 阅读 · 0 评论 -
查看OpenStack版本
可以根据nova版本反查openstack版本1.查看nova版本cd /usr/lib/python2.7/dist-packagesls -a | grep nova我的是这样的,nova版本为17.05novanova-17.0.5.egg-infonovaclientpython_novaclient-9.1.1.egg-info2.进入下面这个网站h...原创 2018-10-25 00:04:07 · 7287 阅读 · 0 评论 -
OpenStack 云平台流量监控插件tap-as-a-service(Taas)安装步骤(OpenStack queens版本,非devstack)
网上貌似没有任何相关的博客。。。。下面我来讲一讲怎么将devstack下的openstack插件Tap-as-a-service 集成到手工搭建的openstack上首先,github上面放的都是devstack版本,这一点对openstack开发运维人员就很不友好,实际生产环境中上需要在多个节点上上同步安装插件的plugin与agent,为了将插件同步部署到我们的生产环境中,我读了一下taa...原创 2019-02-20 18:59:22 · 4323 阅读 · 4 评论 -
OpenvSwitch命令总结
主要还是参考的这篇文章https://blog.csdn.net/rocson001/article/details/73163041但是有些流表操作是网上查了没有给出,比如更新流表,只能-h查看ovs命令行帮助界面。我在此做一个总结流规则管理基本字段包括: 已经生效的时间: duration_sec所属表项:table_id优先级:priority处理的数据包数:n_pa...原创 2018-11-02 20:03:13 · 1336 阅读 · 0 评论 -
OpenStack neutron中AsyncProcess类
在openstack/neutron的源代码中,在neutron-openvswitch-agent中有个函数daemon_loop(): def daemon_loop(self): .......... with polling.get_polling_manager( self.minimize_polling,...原创 2018-11-29 14:14:48 · 466 阅读 · 0 评论 -
subprocess.Popen.stdout.readlines()
这个函数真的是坑爹,我把这个函数写到eventlet的greenthread里面读取子进程的实时输出结果结果greenthread直接卡死应该去掉s改为subprocess.Popen.stdout.readline()才对...原创 2018-12-14 15:48:21 · 5673 阅读 · 5 评论 -
openstack rootwrap详解
1.前言网上关于openstack rootwrap的讲解还是有一些的,只知道是一个控制nova,neutron等普通用户权限的工具。但是这些代码是怎么实现以nova,neutron用户启动的呢?这个问题我研究了一下,还是要从openstack每一项服务的开机启动脚本看起。先总结一下,openstack 实现nova,neutron普通用户的权限控制的基本方法可以概括为“以普通用户运行,只...原创 2018-12-11 19:09:36 · 3050 阅读 · 0 评论 -
openstack 同一网络 多个subnet
我的版本是queens,今天发现这种情况还可以正常运行,一个网络下面可以创建多个子网然后对于openstack里的router,这个和平常的router还有点不同,这个router不但可以连接同一网络下的不同子网,还可以连接不同网络中的子网但是创建实例的时候还是默认从最早创建的subnet ip池里面分配,比如同一个网络中,先创建subnet3,后创建s3,会先从subnet3...原创 2018-12-25 22:46:47 · 2903 阅读 · 0 评论 -
tox.ConfigError: ConfigError: substitution key 'posargs' not found
网上搜了一堆回答发现根本没用,最后还是我自己试出来了解决方案:我安装了tox==3.7.0后一直报这个错。可以用pip show tox查看自己的tox 版本把版本降到3.6.0就好了pip install tox==3.6.0reboot ...原创 2019-01-17 14:56:04 · 540 阅读 · 0 评论 -
AssertionError: backend 'postgresql' unavailable 与 AssertionError: backend 'mysql' unavailable
Openstack 版本:Queens我在运行neutron-fwaas 与tap-as-a-service的单元测试时都遇到了这个问题AssertionError: backend 'mysql' unavailableAssertionError: backend 'postgresql' unavailable网上搜了两三天,没有任何解决方案,对,是任何!!!最后我着急了...原创 2019-01-18 13:58:30 · 805 阅读 · 0 评论 -
openstack(Queens版) 安装FWaaS
首先,我的环境是ubuntu16.04网上我看到只有这一篇博客讲了安装步骤,不过我按这篇博客的方法走下来发现dashboard与fwaas都有问题.........简直了,然后就自己按照官方文档配了一遍,发现官方文档也有问题。。1.关于安装dashboard开始我是按照neutron-fwaas-dashboard的官方文档安装的,结果在下面这个地方遇到问题,无法汉化,在此记录....原创 2019-01-16 22:11:36 · 3091 阅读 · 1 评论 -
openstack neutron-fwaas 中的几个概念
1.firewall rule就是一条单独的防火墙规则,一条firewall rule只能添加到一个firewall policy上2.firewall policy一组防火墙规则的集合, a set of firewall rules,一个firewall policy可以添加到多个firewall上3.firewall一个可以与routers进行绑定的实体,一个router...原创 2019-01-23 11:20:41 · 545 阅读 · 0 评论 -
openstack neutron-fwaas 防火墙之iptables实现细节详解
我在操作neutron-fwaas的时候发现了一个有趣的现象当我设置了目的ip为114.114.114.114的包可以通过防火墙时,内部的虚拟机可以ping通114.114.114.114但是仔细一想这么做难道没问题吗?因为即使内部的ping 114.114.114.114的包可以通过防火墙,114.114.114.114的返回的包仍然无法通过啊于是我从iptables的变化来看了...原创 2019-02-21 16:03:48 · 911 阅读 · 0 评论 -
OpenStack 云平台流量监控插件tap-as-a-service(Taas)源码解析(一):
由于最近在整合一个云端流量捕获插件,所以特意的把OpenStack中的Tap-as-a-service的源代码拿来学习。项目的具体文件在github上.https://github.com/openstack/tap-as-a-service目前,市面上的云端流量采集主要有三种方法,策略采集,网元采集以及代理采集,见https://www.sdnlab.com/21092.html,Ope...原创 2018-09-13 21:13:29 · 3585 阅读 · 4 评论