0 引言
虚拟化技术已经改变了我们的计算方式,例如,许多数据中心完全虚拟化用以提供快速配置,基于虚拟化的
云计算可以更好的利用资源。通过虚拟化可以对包括基础计算机设施、计算机系统和软件等资源进行统一管理和抽象,以此来提供弹性可扩展的云服务。
随着虚拟化技术的发展,一个新的网络接入层被引入用以建立虚拟机内部的网络连接,提供许多与物理层相同的功能。服务器虚拟化技术目前发展已经相对成熟,而虚拟化在网络方面的进展才刚刚开始。特别是服务器虚拟化对网络的可移动性,弹性扩展以及网络隔离的要求远远超出了目前物理网络的处理能力。
数据中心可以负载成百上千的虚拟机,因此多租户之间的网络隔离要求变的愈加重要。
网络虚拟化还提供一些附加功能,使网络管理更容易。例如,在虚拟化环境中,虚拟化层可以提供有关虚拟主机动态迁移的相关信息。
本文的其余部分安排如下:第一节描述了虚拟机内部的网络结构;第二节描述了实际物理网络与虚拟网络环境的不同之处;第三节介绍软件实现的虚拟交换层设计;第四节是虚拟交换机的主要应用场景。
1 基于流的虚拟交换技术
基于流的网络交换技术提供了一个有效的网络交换方案,采取用软件定义网络的方式,使得用户可以忽略底层硬件的具体情况,直接对流量进行管理并设置数据报文以何种方式通过网络。
用软件来统一管理物理设备,借鉴网络TCP/IP协议的数据链路层桥接原理和网络层协议的设计思想,利用软件实现和硬件实现结合的方式对现有的网络结构予以重新定义,在系统上实现一个虚拟的交换层,除了具有高效的传输能力还可以为云基础网络提供智能的监控服务。
用软件实现的方式具有强壮的伸缩性,灵活性和移动性,方便系统扩展。
2 流分组交换的层次结构
流分组交换分为两层,物理设备虚拟化和网络协议层虚拟化。
2.1物理设备虚拟化
物理设备虚拟化是指利用软件来对网卡设备进行抽象,使用用户层软件对物理网卡实现逻辑划分,划分后的设备既可以实施流量控制和负载均衡策略又能高效的利用设备资源,虚拟化后的网卡设备具有和物理网卡一样的功能,硬件实现的资源划分不易动态扩展,软件虚拟以后可以按照需求动态进行资源划分。
通过虚拟技术将一台或多台独占物理设备虚拟成至少一台逻辑设备,供多个用户进程同时使用,通常把这种经过虚拟的设备称为虚拟设备。虚拟设备一定和实际的物理设备绑定才可以使用。
2.1.1虚拟设备模型
虚拟设备是建立在一个或者多个真实设备之上的抽象。合理使用虚拟设备可以在一个物理设备上构建多个逻辑上的虚拟设备,通过软件的配置,这些虚拟设备可以实现硬件所具有的功能。虚拟设备和真实设备可能的模型有如下几种,实际上应用可根据需求选择其中几种模式。
图1-图3
虚拟设备的建立和管理需要统一的虚拟软件的支持。在虚拟软件的控制下,物理设备可以根据上层需求灵活高效的配置组织出虚拟设备。这可以极大的提高硬件设备的利用率,在规模上可以化大为小又可以积少成多。
2.1.2虚拟设备的管理
虚拟设备管理分为两个部分:用户态虚拟平台管理,可以用来配置和查看设备的状态,用户可以在用户空间查看和修改虚拟设备的属性文件。通过内核模块编程管理,由内核直接管理,主要负责物理设备运行和数据通信。
2.2网络协议层虚拟化
利用软件抽象的灵活性重新定义数据链路层和网络层结构,引入一个虚拟管理层来实现数据链路层和网络层,把传统定义的OSI七层协议的网络层和物理链路层压缩为虚拟网络层。
图4重新定义网络层和物理链路层
这样就可以把数据链路层和网络层的数据整合成一个数据流,扁平化了网络结构。每个经过虚拟网络层的数据报文均被重新标记。这个数据报文既包含了链路层信息又包含了网络层信息,基本可以对每个数据报文按照逻辑链路准确分类。网络中的数据报文就可以组织成一个一个的数据流,组织成数据流的好处在于用户可以根据需要对每个数据流进行属性定义,比如QoS策略定制,数据报文的检测和隔离,网络负载均衡等等。
报文基于流分类,就不再需要在物理链路层运行生成树协议,减少了数据报文的转发延迟,降低了网络的流量负载。
3 流分组交换
应用基于流分组交换技术对已有的网络协议不用改动,所有的交换工作都在内核协议栈部分完成,大大增加数据交换效率,但是需要在内核协议栈数据结构上添加一些关于数据流控制相关信息用以标识当前处理的数据报文属于哪个数据流。
图5数据报文控制信息
经过标记后的逻辑数据报文头部结构如下,逻辑报文的生存时间TTL是为了防止逻辑报文在网络中过久滞留而导致网络队列太长而溢出,同时也能保证数据帧不会在成环的链路中被无限次转发,这是实现两点之间多路径转发的基础。
图6逻辑报文头结构
虚拟机的虚拟网卡对每个发出的数据报文的控制信息进行标记,与之相连的交换节点接收到数据包后,会根据垒局控制器的数据建立一张虚拟连接表,交换节点根据数据报文的控制信息查找虚拟表然后将敬据报文转发到目的端口完成一次数据报文交换。
每条虚拟连接可以包含多个虚拟端口.这些虚拟端口被划分为一个逻辑组。有了这个逻辑组可以进行更复杂的交换功能,例如多路径转发,快速路由,链路集成,负载均衡,流量整形。例如图x所示,每个数据流会根据流量使用多个端口,以加快数据报文的转发,多个虚拟连接的数据流可以转发到具有同样操作需求的端口。
基于流的分组变换可以在虚拟机内部网络通信时设定较大的MTU数据包来提高数据报文的转发效率.因为在内核协议栈可以避免IP分组和重装的过程,降低了数据报文的转发延时。
对于每个虚拟端口和虚拟连接,可以自由配置匹配规则用以对数据报文进行匹配和过滤。比如某个端口限制IP地址为10.0.0.·的数据包发送,如果接收到类似的数据包,就抛弃掉。
图7逻辑端口组
流分组交换需要维护一张虚拟连接表.每个表项唯一标识了一条数据流、应用在经过该数据流的报文需要执行的操作和该数据流的统计信息。
图8级联的虚拟连接表
虚拟连接表表项组成
匹配规则
这个域可以唯一的确定一条数据流,里面包含数据报文的物理地址,IP地址,虚拟局域网ID等等。虚拟连接计数器
该域定义了一组计数器,用来统计该虚拟连接接收和发送数据包总教,连接的端口总数等等。虐拟连接规定执行的操作
这个t定义了数据报文经过该虚拟连接时需要执行的操作,倒如,匹配规则的修改.数据报文转发,数据报文丢弃等等,用户可以自定义。
3.1流分组交换控制
流分组交换可以实现的重要前提就是流分组交换控制器。流分组交换控制器负责建立和移除虚拟连接表,虚拟连接表的规则设置,物理虚拟设备的参数配置,数据统计信息获取,QoS设置,虚拟防火墙配置,VLAN划分等等。
流分组变换控制器负责监控所有的虚拟连接表,这样虚拟机内部网络的流量状况就可以全方位的被监测.凭借以前的物理设备这是做不到的。
图9控制器
基于流交换的数据报文若不与外界通信,则数据报文就可以不用经过物理网卡而直接在内存中进行交换,这个机制也非常大的提高了变换的性能,提高了报文的转发速度。
传统的数据链路层需要运行生成树协议来去除回环通路,MAC地址学习也占用了数目可观的网络流量,现在可以用控制器来为所有的虚拟设备维护一个全局的转发路径,这就省去了生成树协议造成的数据帧转发的延迟以及增加的额外网络流量。
流交换分组控制器要根据配置文件生成虚拟连接表,创建或者移除虚拟连接.维护虚拟螭口和虚拟连接的存储队列,为虚拟连接和虚拟端口配置数据报文处理规则。
3.2流分组控制协议
流分组交换控制器通过Netlink套接字和内核进程通信通信,也是网络应用程序与内核通信的最常用的接口。Netlink是一种异步通信机制,在内核与用户态应用之间传递的稍息保存在socket缓存队列中,发送消息只是把消息保存在接收者的socket的接收队列,而不需要等待接收者收到消息。
流分组交换控制器和流分组交换模块之间通过NetUnk建立一个普通的TCP连接,是一种基于进程问通信机制。流交换控制器和交换模块之间信息交换采用自定义的一套协议。
协议头结构:
图10控制信息头部结构
控制信息事务ID用以标识同一对流分组交换控制器和流交换模块之间的配置过程,例如本次A发送给B的控制信息,B必须要用同一个事务ID来回复A的请求,以区分A发送给B的另外的控制信息。
控制信息类型:
控制信息大致分为下列几种:
图11控制信息分类
配置信息主要是通知流分组交换模块端口配置数据,端口队列配置数据等等。流分组交换控制器通过控制协议获取各个交换模块和内置的虚拟端口信息,可以对虚拟连接表进行全局性操作,又可以高效的检测网络的状态,未来的工作还会实现根据网络监控结果自动化的调节各个交换节点的配置信息。
4 结论
利用虚拟网络设备的特性以及软件抽象的灵活,构建虚拟交换机来实现可扩展的数据链路层。虚拟化技术在一般的网络基础设施本身方面还有很多工作要做。旨在获得虚拟化的优势,如隔离性,灵活性和流动性。可实现弹性、安全、自适应以及易管理的云计算基础网络。
核心关注:拓步ERP系统平台是覆盖了众多的业务领域、行业应用,蕴涵了丰富的ERP管理思想,集成了ERP软件业务管理理念,功能涉及供应链、成本、制造、CRM、HR等众多业务领域的管理,全面涵盖了企业关注ERP管理系统的核心领域,是众多中小企业信息化建设首选的ERP管理软件信赖品牌。
转载请注明出处:拓步ERP资讯网http://www.toberp.com/
本文标题:基于虚拟设备的虚拟交换机设计
本文网址:http://www.toberp.com/html/support/11121510233.html