自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

redwingz的博客

Linux内核网络、虚拟化

  • 博客(60)
  • 资源 (5)
  • 论坛 (1)
  • 收藏
  • 关注

原创 Neutron中的对象objects

对象版本化是滚动升级的关键概念。自从被Nova社区初始实现后,版本化对象model被加入oslo库,以便其它的project可获得其带来的益处。”Oslo VersionedObjects“ (即 OVO) 是数据库的前端,其中可定义软件与数据库schema之间的中间层。在这一层,每个数据库资源的版本化对象以严格的数据定义和版本号被创建。对于OVO,当你改变数据库schema时,对象的版本也改变...

2019-07-22 18:42:24 186

原创 Neutron升级规划

本文档的大部分内容讨论通过Neutron agents实现的升级相关考虑。期望于每个Neutron插件提供其自身的特定于后端选择的升级讨论文档。例如,OVN不使用Neutron agent,但是确实有本地控制器运行在每个计算节点。OVS支持滚动升级,但是,关于如何工作的文档应包含在networking-ovn(OVN Neutron插件)中。升级规划Neutron支持两种通用的升级场景:关...

2019-07-17 20:04:11 343

原创 Neutron重试操作

在neutron.db.api模块内部有一个修饰符叫做“retry_if_session_inactive”。其应用于保护所有执行DB操作的方法。此修饰符将获取它所保护的方法抛出的任何的死锁错误、RetryRequests、连接错误和单一限制破坏。如果应用的方法在活动会话中调用,此修饰符不会重试操作。这是因为它捕获的大多数异常将会话部分的转到回滚状态,以至于其不再可用。重要的是保证有一个处于事务...

2019-07-17 20:02:05 184 1

原创 OpenStack之Live-migration

我们考虑具有一个port的VM由带有nova-compute1、neutron-l2-agent1 和 neutron-l3-agent1的主机host1,迁移到带有nova-compute2、neutron-l2-agent2 和 neutron-l3agent2的主机host2.由于准备迁移的VM的宿主机为nova-compute1,nova通过RPC向nova-compute1发送live...

2019-07-17 08:14:28 454

原创 OpenStack之Provisioning Blocks管理复杂对象的状态

我们使用对象的STATUS字段表示资源是否可用,如果设置为ACTIVE,外部系统认为可以安全的使用此资源。如果仅有一个实体负责配置(provisioning)给定的对象,很容易知道合适将status设置为ACTIVE。当实体完成配置(provisioning),我们就更新STATUS到ACTIVE。尽管如此,在Neutron内部由许多资源需要在可用之前由多个异步的实体进行配置(provisioni...

2019-07-16 20:29:33 295

原创 OpenStack QoS介绍

Quality of ServiceQuality of Service高级服务设计为一个服务插件。此服务在多个层级上与其与的Neutron代码解耦(见下文)。QoS在没有使用继承自插件的mixins的情况下,通过使用ml2 extension 驱动程序,扩展了核心资源(ports,networks)。关于DB models, API extension, and use cases的详细信...

2019-07-16 08:40:51 963

原创 OpenStack之子网池和地址Scope

本文讨论子网池和地址scopes。子网池 Subnet Pools通过观看Vancouver峰会的视频学习子网池知识.… [#] http://www.youtube.com/watch?v=QqP8yBUUXBM&t=6m12s子网池在Kilo版本中引入。它们相对简单。“SubnetPool” 具有任意数量的 “SubnetPoolPrefix” 对象关联与它。这些前缀为CIDR...

2019-07-13 23:18:02 616

原创 Open vSwitch硬件卸载

本文的目的是描述如何使能OpenStack中可用的Open vSwitch硬件卸载offloading功能(使用OpenStack Networking)。此功能首先在OpenStack Pike版本引入。本文作为一个指南,展示如何配置OpenStack Networking和计算节点,来使能Open vSwitch硬件卸载功能。基础 The basicsOpen vSwitch是一个生成级别...

2019-07-12 23:59:12 1834

原创 OpenStack之BGP动态路由

BGP动态路由可将self-service(私有)网络的前缀信息通告给支持BGP的物理网络设备,如routers,可消除到传统的静态路由的依赖。此特性依赖于OpenStack官方项目文档 address scopes中的地址信息,并需要正确部署的相关知识。BGP动态路由有一个服务插件和一个代理组成。服务插件实现Networking服务扩展,代理管理BGP对端会话。云管理员使用CLI或者API创建...

2019-07-12 23:54:41 557

原创 OVS IPsec 指南

本文档提供了在Open vSwitch下运行IPsec隧道的步骤指南。更详细的关于OVS IPsec隧道及其配置模式的信息可在OVS官方工程的文件:/howto/ipsec中找到。要求 RequirementsOVS IPsec隧道要求Linux内核(>= v3.10.0)和 非内核基础的OVS模块。合适的IKE守护进程为 LibreSwan (>= v3.23) 和 Strong...

2019-07-12 23:30:42 736

原创 OpenStack之OVS L2代理

此代理使用“Open vSwitch”虚拟交换机为实例创建L2层连通性,以及与OpenStack Nova一起创建的网桥执行过滤。ovs-neutron-agent可以配置为使用不同的网络技术,创建project隔离。这些技术被实现为ML2 type驱动程序,与Open vSwitch mechanism驱动程序一起使用。VLAN 标签 TagsOpen vSwitch: http://o...

2019-07-12 08:20:55 367

原创 OpenvSwitch的Bonding接口

Bonding允许两个或多个接口(“slaves”)共享网络流量。从高层的角度来看,Bonded的接口就像一个单一接口,但是它们具有多个网络接口的带宽,例如两个1 GB物理接口就像一个2 GB的接口。Bond也增加了稳健性:只要至少有一个slave是UP的,Bond接口就不会Down。在vswitchd中,Bond总是至少有两个slaves(并且可能有更多)。如果配置等的错误导致Bond只有一个...

2019-07-11 21:21:21 1498

原创 OpenStack Networking网络

OpenStack Networking允许n你创建和管理网络对象,例如网络、子网和端口,其它OpenStack服务可以使用它们。插件可以实现为服务不同的网络设备和软件,为OpenStack架构和部署提供灵活性。名称为Neutron的Networking服务提供了一个API,可以让你在云中定义网络连接和地址。Networking服务使运营者能够利用不同的网络技术为他们的云网络提供动力。Netwo...

2019-07-10 21:42:50 437

原创 Open vSwitch: Provider 网络

本体系结构示例用于提供实例与物理网络基础设施之间使用VLAN(802.1q)实现的二层连接。它支持一个无标签(flat)网络和最多4095个带标签(VLAN)的网络。VLAN网络的实际数量取决于物理网络基础设施。有关provider网络的详细信息,请参阅OpenStack官方文档:intro os networking provider。警告:Linux发行版通常会打包较旧版本的Open v...

2019-07-10 21:35:32 659

原创 Neutron 数据库层

本文包含一些通用的信息,对需要修改DB数据库的开发者而言有用处.列参数 ‘default’ 和 ‘server_default’ 差异对于列而言,可设置’default’ 或 ‘server_default’。两者之间的差别及为何使用它们?解释非常简单:default - SQLAlchemy在用于创建给定模型实例的查询中指定的默认值;server_default - SQLAlche...

2019-07-10 21:26:24 978

原创 Neutron Macvtap mechanism驱动程序

ML2插件的Macvtap mechanism驱动程序通常会提高实例的网络性能。考虑此mechanism驱动程序的以下属性以确定在你的环境中的实用性:仅支持实例端口。用于DHCP和第3层(路由)服务的端口必须使用其它的mechanism驱动程序,如Linux网桥或Open vSwitch(OVS)。仅支持无标签(flat)和标签(VLAN)网络。缺乏对安全组的支持,包括基本(正...

2019-07-09 21:04:45 300

原创 Neutron中的三层网络 - 通过 Layer 3 agent 及 OpenVSwitch

本文讨论使能三层功能的Neutron使用.Neutron 逻辑网络建立 logical network setup vagrant@precise64:~/devstack$ openstack network list +--------------------------------------+---------+------------------------------...

2019-07-09 20:55:57 261

原创 Neutron代理扩展 Agent extensions

所有引用代理都使用一个通用的扩展机制,该机制允许引入和启用核心资源扩展而无需更改代理代码。此机制允许单个代理同时运行多个代理扩展。这种机制对位于Neutron代码树之外的第三方扩展特别有用。在此框架下,代理向其每个扩展公开其API,从而允许扩展访问代理内部的资源。例如,在第2层,在每个端口事件上,代理可以触发其扩展中的handle_port方法。与代理API对象的交互顺序如下:代理初始化代...

2019-07-09 20:49:31 132

原创 Python实现的HTTP并发测试程序

可修改变量thread_count指定最大的并发数量,即线程的数量。完成之后,打印输出失败的次数,以及开始时间和结束时间,单位是毫秒。主要是学习一下Python,仅供参考。#!/usr/bin/python3import sys, time, json, _threadimport http.client, urllib.parsethread_count = 100 #并...

2019-07-09 20:47:47 2811

原创 OpenStack OVS防火墙驱动程序

OVS驱动程序与当前的iptables防火墙驱动程序具有相同的API接口,将安全组和端口的状态保留在防火墙内。创建类“SGPortMap”以保持防火墙状态的一致,并负责从端口映射到安全组,或者相反。每个端口和安全组都通过其封装必要信息的自身对象所表示。注:Open vSwitch防火墙驱动程序使用register 5标识与流关联的端口,使用register 6标识特别应用于conntrack ...

2019-07-09 08:28:09 444

原创 Neutron 消息回调系统

Neutron已经有了callback system - 回调系统, 为进程内资源设置的回调,使得发布者publisher和订阅者subscriber可发布和订阅资源事件。文本介绍的系统与以上不同,本系统旨在通过消息扇出机制(fanout mechanism)实现进程间的回调。在Neutron中,代理可能需要订阅特定的资源细节,这些细节可能会随着时间而改变。此消息回调系统的目的是允许代理订阅这...

2019-07-08 21:21:33 354

原创 Neutron RPC API 层

Neutron使用oslo.messaging库提供服务service模块间的内部通信通道。这种通信通常是通过AMQP完成,但大多数细节被oslo.messaging的使用所隐藏,将来可能使用其它的协议。RPC API在Neutron中定义为两个部分:客户端和服务器端。客户端这里是一个RPC客户端的定义示例: import oslo_messaging from neutron....

2019-07-08 21:19:23 263

原创 neutron 网络IP可用性扩展

此扩展是一个只提供信息的API,它允许用户或进程确定网络及其子网的分配池中已消耗的IP数量。每个网络和内嵌子网返回两个值used_ips 和 total_ips,有这两个值很容易确定网络的IP地址空间消耗量。此API使网络管理员能够定期列出检查IP使用情况(手动或自动),以便在超过阈值时,先一步添加新网络容量。重要事项:此API跟踪网络的“可消耗”IP地址。有什么区别?创建网络及其子网后,可...

2019-07-08 21:18:14 219

原创 Neutron中保持DNS域名服务器顺序

在Neutron子网中,DNS域名服务器在创建或更新时被指定优先级。这意味着如果创建具有多个DNS服务器的子网,顺序将被保存,客户将按你在创建子网时创建DNS服务器的顺序接收到DNS服务器。同样的事情也适用于在子网上添加、删除或更新DNS服务器的修改操作。获取子网详细信息 openstack-1@stack:~/devstack$ neutron subnet-list +---...

2019-07-08 21:16:56 190

原创 Neutron L2 网络与 Linux网桥

此代理agent使用Linux网桥为运行在计算节点上的VM实例提供L2级到public网络的连通性。部署的图示如下所示:在最常见的部署中,有一个计算节点和一个网络节点。在这两个节点上,Linux网桥代理将管理虚拟交换机、它们之间的连接以及通过虚拟端口与其它网络组件的交互,如命名空间和底层接口。此外,在计算节点上,Linux Bridge代理将管理安全组。三个用例及它们的报文流程描述在以下三个...

2019-07-07 22:58:36 265

原创 Neutron Open vSwitch vhost-user 支持

Neutron支持在OVS ML2 驱动和代理agent中直接使用Open vSwitch + DPDK vhost-user interfaces。当前的实现依赖于多个配置值并包括对Open vSwitch的提供这些接口的能力的运行时验证。OVS代理检测底层Open vSwitch的能力,并通过代理使用RPC传递该信息到’configurations’字典。ML2驱动程序使用此信息选择正确的V...

2019-07-07 22:56:17 127

原创 Neutron WSGI/HTTP API层

本文将介绍Neutron的HTTP API的内部实现,以及Neutron中,可以用来创建Neutron API扩展的类。Python网页应用通过Python Web Server Gateway Interface (WSGI) 与 web服务器交互,WSGI定义在文档 PEP 333 中。建立 StartupNeutron的WSGI服务器由 server module 启动,入口点ser...

2019-07-07 22:54:51 265

原创 Neutron的ML2 扩展管理器

ML2的扩展管理器在Juno中介绍(更多详细信息可在批准的 spec中找到。此管理器功能允许扩展ML2资源,而又不必向ML2引入交叉关注点。这个机制已经应用于许多用例,当前使用此框架的扩展可在链接ml2/extensions 中找到,如下;data_plane_status.pydns_integration.pyport_security.pyqos.pyuplink_status_...

2019-07-07 22:53:00 119

原创 Neutron 数据库Model迁移

本文档旨在跟踪并通知开发人员Neutron中的DB model模型将集中化并转移到目录neutron/db/models目录下的一棵新代码树上。这在文档[1]中讨论过。迁移数据库模型的原因是为了解决在实现Neutron资源的oslo版本化对象时,发生的循环导入问题。这种迁移背后的原因是Mixin类和Neutron中一些资源的数据库模型db models处于同一模块中。在Mixin类中,有一些方法...

2019-07-07 22:51:35 141

原创 Neutron L2 代理扩展

L2 agent扩展是通用L2/L3扩展框架的一部分。参见OpenStack官方文档 agent extensions。Open vSwitch agent APIneutron.plugins.ml2.drivers.openvswitch.agent.ovs_agent_extension_apiOpen vSwitch agent API 对象包含两个方法,它们返回封装的网桥对象和...

2019-07-07 22:49:59 154

原创 OpenStack集成外部 DNS 服务

自从Mitaka发行版之后,Neutron有了一个与外部DNS服务交互的接口。这个接口基于一个抽象的驱动程序,其可用作基类以实现与各种DNS服务交互的准确的驱动程序。这种驱动的参考实现集成了Neutron与 _OpenStack Designate.此集成允许用户发布dns_name 和 dns_domain属性,这些属性关联与外部DNS服务的浮动IP地址、端口和网络。Neutron API的...

2019-07-07 22:48:22 254

原创 Neutron调用ML2 插件

在编写扩展、服务插件或Neutron其它部分的代码时,如果你在调用核心插件方法的会话上有一个打开的事务,你不能调用那些会改变状态的核心插件方法。所有ML2中创建和更新端口port、网络network和子网subnet的方法都有一个预提交阶段和提交后阶段。在提交后阶段,数据期望被完全保存到数据库中,并且ML2驱动程序将使用此时间将信息传递到Neutron外部的后端backend。在事务中调用ML2...

2019-07-07 22:46:58 297

原创 Neutron的API 扩展Extensions

API extension扩展是标准的为Neutron项目引入新功能的方式,它允许插件决定是否要支持此新功能。示例 Examples演示API扩展如何书写的最简单方法是学习一个现有的API扩展,并解释不同的层级。… toctree:::maxdepth: 1security_group_apiExtensions for Resources with standard attribut...

2019-07-06 23:50:10 307

原创 Neutron 安全组 API

Neutron安全组APIWiki地址:https://wiki.openstack.org/wiki/Neutron/SecurityGroupsAPI扩展API扩展时代码的"前端"部分,其处理整个工程使用的REST-ful API的定义。REST-ful API: https://git.openstack.org/cgit/openstack/neutron/tree/neutron...

2019-07-06 23:48:44 104

原创 Neutron的Segments 扩展extension

Neutron的一个扩展,允许在/segments资源的API调用上执行CRUD操作,对应于DB 层中的NetworkSegment实体。这个扩展作为服务插件实现。注: segments服务插件默认不会配置. 要配置它,在neutron.conf文件中,,将segments添加为service_plugins的参数。核心插件可以通过注册SEGMENT资源关联事件的回调函数与segments服务...

2019-07-06 23:46:13 197

原创 Neutron的Service服务 Extensions扩展

历史上,Neutron支持以下高级服务:FWaaS (Firewall-as-a-Service): 作为L3 agent的一部分运行.LBaaS (Load-Balancer-as-a-Service): 完全实现在neutron-server内部, 不能直接和agent交互. 在Queens中废弃.VPNaaS (VPN-as-a-Service): 由L3 agent派生出来提供VP...

2019-07-06 23:44:55 158

原创 Neutron的服务service与代理agent

通常Neutron环境由运行在一个或多个节点上的多个服务service和代理agent组成(尽管某些特殊环境可能不需要任何代理)。每个服务都提供了一些网络或API接口。特别感兴趣的有以下几个:neutron-server. 提供API端点以及数据库访问点。它通常在称为控制器Controller的节点上运行。Layer2 agent代理. 通过Open vSwitch, Linuxbri...

2019-07-06 23:42:08 457

原创 Neutron L2网络与支持SR-IOV功能的网卡

SR-IOV (Single Root I/O Virtualization)是一种允许PCIe设备呈现为多个单独的物理PCIe设备的规范。SR-IOV以引入物理功能(Physical Function - PF)和虚拟功能(Virtual Function - VF)的方法而工作。物理功能(PF)是全功能PCIe功能。虚拟功能(VF)是“轻量级”的缺少配置资源的功能SR-IOV支持用于二级网络...

2019-07-06 23:39:33 505

原创 Neutron资源添加TAG

标签(Tag)服务插件允许用户在其资源上设置标签。标签资源可由外部系统或Neutron REST API的任何客户使用(而不是后端驱动程序)。以下用例描述添加标签到网络资源,但也适用于任何其它Neutron资源:映射不同网络到同一个逻辑网络的不同OpenStack位置的能力(用于多站点OpenStack)混合环境下,映射不同的管理/编排系统ID到OpenStack网络的能力,以项目K...

2019-07-06 23:37:48 306

原创 Open Virtual Networking 与 Docker

本文档描述如何使用Open Virtual Networking与Docker 1.9.0版本或更新版本。重要:要求Docker 1.9.0或之后版本。仅Docker 1.9.0+以上版本支持多宿主机网络。咨询 www.docker.com 关于如何安装Docker的指南。注:你必须编译并安装Open vSwitch,在继续以下的指南之前。参考Open vSwitch官方文档/intro/...

2019-07-06 04:59:52 82

WEB Portal 认证完整的交互报文

web认证交互报文,包括WLAN controller与portal server的认证与注销,AC与radius 服务器的认证报文。

2018-04-24

botan-ed25519.pcap

IKEv2协议交互报文,认证方式选用Ed25519算法的证书方式。

2019-10-28

IKEv2-rw-cert2.pcap

strongswan使用linux内核的af_alg加密接口配置,IKEv2协议交互报文。

2019-10-28

IKEv2-camellia.pcap

IKEv2协议使用camellia加密算法的协商报文,交互流程。

2019-10-28

libssh2-1.8.0 and ssh2_batch example

ssh2_batch可执行程序,用于非交互式的ssh命令执行。源代码和libssh2

2018-06-13

redwingz的留言板

发表于 2020-01-02 最后回复 2020-01-02

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除