OpenContrail架构浅析
虚拟网络(VN)是Contrail的核心概念,SDN的字面意思是软件定义网络,之所以能够对网络进行软件定义,核心也是在虚拟网络上,即根据需要,动态建立虚拟网络,这是理解SDN的关键。Contrail中,每个租户都可以拥有一个或多个虚拟网络,各个虚拟网络除非安全策略允许,一般都是互相隔离的。实现虚拟网络有多种方式,比如VLAN,VPN以及overlay networking。所谓overlay networking就是在物理网络之上建立的逻辑网络。这时,物理网络仅仅提供网络连通性,保证各物理结点,如路由器、交换机以及服务器等,网络可达,低时延、高可用,一般情况下,物理设备不包括任何租户信息,如租户的IP地址、policy等。而通过隧道技术搭建的上层网络,屏蔽了下层物理网络的不同类型、不同地域,甚至不同运营商,建立起各计算节点之间的连接,同时进一步能够通过虚拟路由表、策略等为不同租户隔离出私有网络,如下图。
应用场景
系统组成
Contrail SDN控制器负责管理、控制、分析运行在平台之上的各个虚拟网络,逻辑上集中,物理上分布部署,提供南北向和东西向接口。北向REST API可以被上层应用使用,与上层编排系统集成,例如Openstack,具体集成方式后面会详细讲,也用于与Contrail自己的GUI的交互。南向接口(包括XMPP、BGP、NetConf)用于与虚拟路由器和其他物理网元进行交互。东西向接口负责Contrail控制平面各节点的内部通信。
Contrail的各种Node
配置节点:
控制节点:
分析节点:
除了上述三种node,Contrail系统还包括另外几种node类型。
计算节点:
Computer node上运行vRouter,包括vRouter Agent和一个kernel module。
网关节点:
Gateway node负责将虚拟网络接入物理网络,如Internet。
服务节点:
通信协议
- MPLS over GRE,实际上常见的L3VPN和EVPN使用的是MPLS over MPLS,但是Contrail是over GRE,主要原因是中间设备未必支持MPLS,或者没有使能MPLS。MPLS的payload是IP报文(对于3层overlay)或者Ethernet帧(对于2层overlay)。
- VXLan,只能用于2层overlay
- MPLS over UDP,同样可以用于2层或者3层的overlay。
openstack集成
熟悉Openstack的同学应该清楚,在创建虚拟机时,Nova会向Neutron请求网络服务,并将虚拟机接入网络。Neutron实现了插件机制,支持很多种网络插件,能够提供不同的网络服务,例如DHCP、VPN等,实际上Contrail就是以Neutron plugin的形式集成到Openstack中。Contrail集成Openstack后,Nova创建的虚拟机会接入到Contrail的vRouter中,租户位于不同站点的虚拟机就通过vRouter搭建出属于自己的私有虚拟网络。上图除网络部分与Contrial相关外, 其他都是正常的Openstack组件和交互。
Contrail的数据模型
Contrail系统中任何状态,不管是配置、运行状态或者分析数据,都有对应的模型,都保存在Cassandra数据库中。
<xsd:schemaxmlns:xsd="http://www.w3.org/2001/XMLSchema"xmlns:ifmap="http://www.trustedcomputinggroup.org/2010/IFMAP/2"><xsd:element name="foo" type="ifmap:IdentityType"/>
<xsd:element name="bar" type="ifmap:IdentityType"/><xsd:element name="foo-bar-link"/>
<!-- #IFMAP-SEMANTICS-IDLLink('foo-bar-link', 'foo', 'bar') -->
</xsd:schema>
1.VM1a虚拟机上的一个应用程序发送IP报文给VM2a
- 添加MPLS报文头,MPLS标签由包含routing instance2a的vRouter2分配,这跟L3VPN中内层标签的分配方式一样。
- 添加GRE报文头,Compute Node2的IP地址作为目的地址。
OpenContrail架构浅析相关推荐
- 百度交易中台之账房系统架构浅析
导读:百度交易中台作为集团移动生态战略的基础设施,面向收银交易与清分结算场景,为赋能业务提供高效交易生态搭建.目前支持百度体系内多个产品线,主要包含:小程序,地图打车,百家号,招财猫,好看视频等.本文 ...
- Spark in action on Kubernetes - Playground搭建与架构浅析
前言 Spark是非常流行的大数据处理引擎,数据科学家们使用Spark以及相关生态的大数据套件完成了大量又丰富场景的数据分析与挖掘.Spark目前已经逐渐成为了业界在数据处理领域的行业标准.但是Spa ...
- 云计算学习笔记005---Hadoop HDFS和MapReduce 架构浅析
Java技术qq交流群:JavaDream:251572072 Hadoop HDFS和MapReduce 架构浅析 前言 Hadoop是一个基于Java的分布式密集数据处理和数据分析的软件框架.Ha ...
- Android应用内社区SDK技术架构浅析
Android应用内社区SDK技术架构浅析 图1为雪球财经自选界面,图2是雪球财经App内的社区,也就是动态页面. 一.以友盟微社区为例 简单来说,友盟的微社区就是一款帮助开发者在应用中快速搭建一个社 ...
- 车载USB DVR(行车记录仪)的源码架构浅析(基于AndroiidM)
基于AndroiidM的USB DVR的源码架构浅析,主要讲述大概流程,以便于分析问题. APP层 源码路径: AndroidM/vendor/mediatek/proprietary/package ...
- Android Clean 架构浅析
该原创文章首发于微信公众号"字节流动" Android 常用的架构主要有 MVC,MVP,MVVM 以及 Clean .以上架构设计模式没有绝对的优劣之分,关键要看具体的应用场景. ...
- RISC-V生态架构浅析(认识RISC-V)
个人博客导航页(点击右侧链接即可打开个人博客):大牛带你入门技术栈 RISC-V 生态架构浅析 前言 RISC-V最近越来越多的出现在科技新闻中,大量的公司加入到RISC-V研究和生产中.在越来越多的 ...
- USB 驱动架构浅析
USB 驱动架构浅析 之前一直概念模糊,最近简单总结了一下 1.USB简介 USB,即Universal Serial Bus(通用串行总线)的缩写,是一个外部总线标准,用于规范电脑与外部设备的连接和 ...
- 百度交易中台之订单系统架构浅析
导读:百度交易中台作为集团移动生态战略的基础设施,面向收银交易与清分结算场景,为赋能业务提供高效交易生态搭建.目前支持百度体系内多个产品线,主要包含:小程序,地图打车,百家号,招财猫,好看视频等.本文 ...
- Linux MMC驱动架构浅析
Linux MMC驱动架构浅析 MMC驱动模型 Linux内核设计了MMC子系统,用于管理MMC/SD等设备,MMC/SD存储设备是一种典型的块设备.MMC子系统的框架结构如下图所示. 块设备(MMC ...
最新文章
- glob.glob 函数读取文件
- 创建oracle发邮件job导致的故障
- Eclipse搭建SpringCloud+SSM+Maven项目
- Git学习笔记:分支管理(1)
- 本地项目如何连接码云上的项目
- Linux -su、sudo、限制root远程登录
- C#字符串、字节数组和内存流间的相互转换 - IT浪潮之巅
- 兼容性记录-class属性
- docker 基础操作
- vf更改当前路径_这份 window.location 备忘单,让你更有条理解决地址路径问题!...
- hdu4318 最短路变形
- Linux自学之旅-基础命令(Ext4文件系统)
- PSPNet :语义分割
- 一个帮你记住密码的小程序
- 【科研杂记_3】测高卫星
- redis实现轮询算法_白话分布式系统中的一致性哈希算法
- 3884: 上帝与集合的正确用法 欧拉函数+降幂公式
- putty 中文乱码解决方法
- SpringBoot开发的外卖订餐App
- vs无法引用项目问题
热门文章
- python画微信公众号首图
- python 中 函数的使用!!!
- 基于Java平台实现发送短信功能
- 一名合格的程序员应该是什么样子
- 微信小程序 转发 自定义全局配置
- 那些C++牛人的博客
- dos攻击防范 java_php DOS攻击实现代码(附如何防范)
- uc android flash插件,UC7.3 Android手机上网新体验 支持Flash游戏
- 计算机usb接口电压不稳定,如何处理笔记本电脑USB接口的电源不足或电压不稳定?...
- 基于腾讯云的物联网云端数据传输-STM32F103C8T6(微信小程序显示数据).一