虚拟网络下镜像报文传输协议的设计和实现

来源 :中国新通信 | 被引量 : 0次 | 上传用户:baishe654
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  【摘要】    虚拟网络在很多企业中有大量应用,但是如何更好地监控虚拟网络的流量数据成为了重要的研究方向。本文基于Geneve协议设计一种适合在overlay虚拟网络中传递镜像报文数据的协议。能很好解决在虚拟网络中镜像报文的传输问题。同时文章展示了如何基于OVS实现这种协议。
  【关键词】    虚拟网络    Geneve    镜像报文
  引言:
  虚拟网络[1]这几年正在经历高速发展,越来越多的企业在自己的数据中心开始部署虚拟网络。与此同时,虚拟网络配合Kubernetes、容器、虚拟机等虚拟化技术能快速帮助企业动态扩展服务,虚拟网络则在这之中扮演着极为重要的角色。目前业界中实际落地的虚拟网络一般都是通过overlay网络协议来构建,例如被广泛使用的Geneve[2],VXLAN[3],STT[4]等协议。
  Overlay网络构建于underlay物理网络之上,这使得overlay虚拟网络具有很好的扩展性,并能在很大程度上屏蔽underlay物理网络的变化带来的诸多影响。但是同时这也使得传统的underlay物理网络的很多技术难以去探测和监控overlay虚拟网络,给网络安全带来了新的挑战。
  镜像某些重要域机器的网络报文后用各种分析器来监控和分析来往流量是否有异常是传统物理网络中常用的一种主动防御的信息安全手段,目前用来传输镜像报文到远端分析器的协议主要有思科提出的ERSPAN[5],但是它主要应用在underlay物理网络,镜像的流量数据只能传递给处在underlay网络中三层互通的网络设备。这种方式的弊端在于流量分析设备性能必须非常强大才能实时处理传递过来的巨大流量数据,硬件成本投入大,并且这种方式不易于扩展,一旦我们想监控更多机器流量时候就会发现收集端的网络成为了瓶颈,因此ERSPAN这种协议已经很难适合虚拟网络和当前业务多变的需求。
  本文提出了一种基于Geneve用于镜像网络报文的协议来解决这个困难,协议用于将虚拟网络上需要监控的报文传递到同处于虚拟网络远端处理。最后文章展示了如何使用OVS[6]来实现用这种协议来传输镜像报文。
  一、协议的设计
  Overlay虚拟网络协议被广泛使用的主要有Geneve,VXLAN,STT等,其中Geneve和VXLAN协议都是基于UDP协议实现的,相对基于TCP实现的STT有更好的穿透性。VXLAN的协议的报头大小是固定的,只能携带非常少量的信息。而Geneve更像VXLAN的升级版,它解决了VXLAN协议报文中难以扩展和难以携带metadata的问题。Geneve协议报文的option域可以很方便地被用来进行各种扩展以携带更多的信息,从而实现更多更复杂的功能。我们基于Geneve的option域设计了GRM(Geneve base Remote Mirroring),GRM专门用于在虚拟网络中传递镜像流量到同样处在虚拟网络中的收集分析程序中。这样我们就能充分利用虚拟网络的优势以及各种虚拟化技术来实时动态扩缩容用于收集和分析实例,以前镜像流量必须发到指定的物理设备中,使用GRM后就可以动态分流到实时扩容的收集端,通过分布式处理的方式来解决集中式处理能力的不足问题,这样就不用担心由于单个物理硬件性能不足导致出现收集和分析的瓶颈问题。
  1.1 Geneve协议报文头部的option域
  Geneve协议的报文相对VXLAN有更强的扩展性,如图1所示,一个Geneve报文可以包含多个可变成长度的option。option的作用就是用来让用户自己定制,存入各类需要的信息,通过option域可以插入我们想要传递给接收端的各类描述报文的metadata信息。
  图2展示了Geneve采用了常见的TLV(Type-Length-Value)方式来描述option基本信息,每个option中都有对应的class和type。Class和type用于唯一区分option的标识。Length则描述了该option占用的长度。Option的data域则填入我们希望携带的信息。每个option可以携带4到128byte的数据。
  1.2 GRM协议的设计
  GRM就是利用Geneve的可变长度option域来实现的。我们把option的data域的空间拆分成多个域,放入GRM描述信息、描述镜像报文信息以及如何转发的信息。因为GRM本身是基于Geneve,天然就可以利用Geneve在虚拟网络中传递数据,而GRM携带的信息则在underlay物理网络目的端的VTEP中解析出来,而后就可以根据GRM来二次转发镜像报文到指定接收端中。
  图3展示了GRM协议具体的结构,VER(Version)域占用2个bit空間用于存储GRM的版本信息,VER域用于后续协议版本的升级区别,目前值设为0,表示GRM的第一个版本。Mirror-ID占用14bit空间用于给接收端区分收到的不同的镜像数据流,该值可以人为分配,针对每个镜像流分配一个唯一值。VLAN-ID是Geneve的payload中携带的镜像报文的VLAN-ID,收集端接收到GRM报文后可以直接使用VLAN-ID这个重要信息,而不用再去一层一层解析报文后面的镜像报文数据得到VLAN-ID,可以帮助接收端降低分析成本。T(Truncate)占用一个bit用来表示携带的镜像报文是否因为长度超过镜像限度而被截断,0表示GRM中携带的镜像报文是完整的,没有因为长度原因被截断。1表示GRM中携带的镜像报文是不完整的。在很多时候为了性能考虑,实际应用时候都会对只保留镜像数据的一部分,过大的报文都会被截断。D(Direction)占用1个bit来表示被镜像的原始报文的传输方向是流进还是流出vSwitch,0表示流入vSwitch,而1表示流出vSwtch。GRM在设计上考虑了多个接收端可能链接在同一个VTEP中,为了减少重复发送浪费资源和带宽,GRM指定的最终接收端可以是多个,但是必须能通过同一个VTEP到达,DC(Destination MAC Count)占用2个bit表示要转发给同一个VTEP后面多少个收集端。SeqNum(Sequence Number)占用12个bit用来描述被镜像的原始报文前后关系,因为GRM报文是基于Geneve的,而Geneve是基于UDP协议的,所以GRM最后通过UDP方式在网络中传递的,中间可能有报文丢失和乱序的情况,SeqNum可以帮助收集端重组报文顺序。当然SeqNum中的数字是可以重用的,每4096个报文后都会经历重用,对于接收端重新编排顺序是完全够用的。很多时候报文的镜像工作是在vSwitch中进行,而现在的网卡都支持在网卡硬件处才进行报文的切分,这个时候vSwitch收到的IP报文或者四层TCP报文并没有被物理网卡按照MTU或者MSS切分,可能会非常大,所以设定Length占用16bit表示携带的镜像的报文的大小,以尽可能适应所有网络环境和镜像报文需求。同样,收集端可以根据GRM格式的偏移量加上Length域来准确提取镜像报文。最后的Destination MAC Addresses域是变长的,可存储1至4个目的端的vNic(虚拟网卡)的MAC地址,占用48bit至192bit。接受端的vSwitch收到GRM报文后通过DC域和MAC地址来决定转发到哪个虚拟网卡设备。   GRM中最核心的metadata数据就是Destination MAC Addresses域,其用来告知目的端vSwitch在VTEP接受到GRM后应该如何转发到对应的vNic中。GRM中采用了vNic的MAC地址没有采用vNic的IP作为转发依据主要是考虑了IPV4和IPv6相互兼容问题,以及接收端的vNic虚拟网卡实际上可以不分配IP,单纯用来分析报文数据。采用vNic的MAC地址还有一个好处就是vSwitch是存储有vNic MAC和vNic的对应关系的,能最快匹配和转发。
  1.3 虚拟网络中GRM的传输
  GRM是基于Geneve实现的,天然就能适配使用Geneve的虚拟网络,只要镜像端和接收端上启动的vSwitch能填充和解析GRM报文就能实现虚拟网络中流量的镜像收集和分析。
  如图四所示,同一个宿主机Host-A上VM-A和VM-B在通信时候,数据报文会经过vSwitch转发到VM-B。而因为VM-A是重要域的机器,需要对其进出的流量进行报文分析,vSwitch会截获VM-A发送出来的网络报文,解析出报文的基本信息后填充GRM报文头部之后通过VTEP创建的Geneve管道传递到Host-B中。Host-B的vSwitch收到报文后会解析处GRM报文并将镜像报文同时发送给需要收集端VM-D和Container-E
  二、协议的设计
  OVS(Open Virtual Switch)是Linux、Windows系统中常用的用于构建虚拟网络的开源组件,同时它也很好支持Geneve协议,通过它可以方便地来对各种数据报文进行处理以实现GRM。
  OVS通过给vSwitch配置上不同openflow[7]组合,可以实现各种复杂的网络功能。
  OVS虽然可以通过openflow实现报文转发,但是对于实现GRM收发逻辑来说,仅仅使用openflow还不能对GRM进行填充,需要构建一个运行在用户态的程序GRM-Controller来辅助完成GRM报文的填充。
  图5中GRM-Controller启动后会将自身注册到的vSwitch中,然后告知OVS通过openflow来配置vSwitch,即如果发现某个报文需要被镜像的时候会执行controller 这个action,vSwitch将会把需要镜像报文传递给用户态程序GRM-Controller,GRM-Controller会接收到这个报文,GRM-Controller通过解析镜像报文的报头来填充GRM并存储到OVS的tun_metadata中返回给vSwitch,vSwitch拿到tun_metadata后就可以直接将其当作Geneve报文的option,在后续的VTEP中封包中,OVS将自动帮封装成完整的携带GRM的Geneve报文。
  图6显示在接收端同样要启动GRM-Controller,配置OVS的vSwitch如果接收到带有GRM option的Geneve的报文后会把Geneve的option数据存储到tun_metadata中,而后通过提前设置的openflow将包含了GRM报头的tun_metadata等发送给GRM-Controller。GRM-Controller可以根据tun_metadata来解析出GRM各个域的信息以及需要转发到哪个MAC对应的vNic,而每个链接到vSwitch的vNic都有对应的ovs-port。GRM-Controller后续将转发到哪个ovs-port写入到register中,后续报文就可以根据传递下来的register来自动匹配发送到哪些端口。
  三、結束语
  本文通过利用Geneve协议报文中的高扩展性的option域来设计了基于Geneve虚拟网络下镜像报文传输协议GRM。GRM的引入能很好解决虚拟网络下报文镜像的传输问题,结合各种虚拟化的能力将以前需要集中处理的镜像流量分发到虚拟网络中的各个分布式节点中,很好地解决了集中化处理产生的各类瓶颈问题。本文同时还介绍了如果通过OVS来在实际的Geneve虚拟网络中实现GRM的封装和解析,验证了通过增加编写的用户态的程序就能很好在Geneve虚拟网络中支持GRM。
  参  考  文  献
  [1] N.M. Mosharaf Kabir Chowdhury and Raouf Boutaba. 2010. A survey of network virtualization. Comput. Netw. 54, 5 (April, 2010), 862-876. DOI:https://doi.org/10.1016/j.comnet.2009.10.017
  [2] Gross J, Sridhar T, Garg P, et al. Geneve: Generic network virtualization encapsulation[J]. IETF draft, 2014.
  [3] Mahalingam, M., Dutt, D., Duda, K., Agarwal, P., Kreeger, L., Sridhar, T., Bursell, M., Wright, C.: Virtual eXtensible Local Area Network (VXLAN): A Framework for Overlaying Virtualized Layer 2 Networks over Layer 3 Networks. RFC 7348 (Informational). http://www.ietf.org/rfc/rfc7348.txt
  [4] Davie, B., Gross, J.: A Stateless Transport Tunneling Protocol for Network Virtualization (STT). Internet-Draft draft-davie-stt-08, Internet Engineering Task Force. https://datatracker.ietf.org/doc/html/draft-davie-stt-08. Work in Progress
  [5] Chung C J, Khatkar P, Xing T, et al. NICE: Network intrusion detection and countermeasure selection in virtual network systems[J]. IEEE transactions on dependable and secure computing, 2013, 10(4): 198-211.
  [6] Open vswitch. http://openvswitch.org.
  [7] McKeown N, Anderson T, Balakrishnan H, et al. OpenFlow: enabling innovation in campus networks[J]. ACM SIGCOMM computer communication review, 2008, 38(2): 69-74.
其他文献
随着人脸识别技术的普及与应用,用户对于人脸识别的技术细节以及人脸识别的速度有了技术需求。对于实时非合作性质的人脸识别,其精确度与速度经常难以满足用户需求。本文设计并实现了一种能够自动识别人脸的系统,能筛除掉质量不足以进行人脸识别的人脸图像,加快识别速度,实现对实时视频的高速人脸识别。
【摘要】 计算机技术支持下的社区信息化,可对服务范畴内的数据信息进行采集与处理,并结合相关服务功能的建设,实现数字化服务,降低社会资源的投入力度。基于此,文章以社区信息化的建设价值为切入点,分析计算机技术支撑下的社区信息化组成及设计形式,并对社区信息化在社会服务及管理中的应用进行研究。  【关键词】 計算机技术 社区信息化  引言:  社会经济体系的不断完善下,社会事务的处理模式,必须满足高
【摘要】 当今信息高速发展,随着各行业及个人用户需求不断增加,信息、数据与IT系统储存的重要性日益体现,对灾备需求也日益增多,“两地三中心”的概念亦日渐被市场接受,将有变为硬性需求的趋势,多数据中心部署亦作为灾备的基础条件。传统灾备系统存在着各式各样的问题:界面的差异,以及存储服务器品牌型号不一,导致数据的备份迁移基本都需要业务中断进行,造成用户的经济或运营损失。 在现今用户不同品牌型号设备之间
【摘要】 随着国家教育体制改革进程的有序推进,新时期初中物理课程教学也需要结合新课程标准的要求不断健全相关的教学体系,优化教学模式,这样才能切实提升初中物理教学成效。本文首先探究了初中物理多媒体教学和实验教学融合的意义,然后分析了目前多媒体教学和实验教学融合过程中存在的问题,最后针对如何提升初中物理多媒体教学和实验教学融合成效提出了相关的措施,以供参考。  【关键词】 初中物理 多媒体教学
【摘要】 个性化学习适宜满足学生个体的发展需求和学生特点,依据具体化的教学内容设计教学环节,实现对学生的有效引导和学习习惯、行为模式的有效转变,从而提升学生学习知识的能动性和积极性。在初中物理教学中强调个性化教学和个性化学习是指在物理教学过程中,依照物理教学的理论和教学内容,以帮助学生实现个性化发展为目标,充分考量学生的个体发展层次和特点,实现对学生个性的有效调动和充分展现。在互联网+的时代背景
近年来,社会经济快速发展的同时,计算机信息技术更新的速度不断加快,逐渐渗透到各个领域当中,为人们带了极大的便捷。互联网的普及也使得信息量呈爆炸式增长,卷神经网络能够大幅度提升图像的识别率,从而更加高效的挖掘图片信息数据,人工智能技术越来越成熟,深度学习也备受人们的高度关注。传统图像识别技术相对落后,且识别率低,面对海量的图像信息数据,传统识别方式显然已经无法满足当前的实际需求。
【摘要】 网络既是学习的工具和载体,也是营造学习环境的重要手段。在这样的背景下,高职高等院校面临着教学改革等问题。就目前高职高等数学教学现状,提出教学质量、教学模式、教学手段改革的突出问题,对教学内容进行信息化设计和研究,是提升教学质量的较好手段。在大数据的背景下,人工智能、3D技术、云计算等新兴技术手段的应用为教学改革创造了契机。  【关键词】 大数据 高等数学 信息化教学 教学设计 
【摘要】 随着时代的发展,教育也开始了改革,在新课改的背景下,语文教学开始重视学生语文素养的培养,而且,现今社会信息技术也在飞速的发展,语文教师在课堂活动中运用信息技术可以营造轻松的学习氛围,拓展语文知识视野,有效提升语文课堂效果,因而更有利于学生语文素养的提升。  【关键词】 信息技术 语文素养 方法探究  引言:  随着新课改的到来,在教学模式上越来越多的运用信息技术,在课堂活动中使用
为了实现非接触、低成本隧道围岩形变测量,本文利用单目相机拍摄二维图像,提出了基于深度卷积神经网络的隧道三维重构方法。将二维片图像关键点位置看作潜在变量,利用数据挖掘进行特征提取,通过深度卷积神经网络仿真其不确定性;未知的三维形状通过稀疏表示建立模型,三维参数估计通过期望最大化挖掘算法进行,实现了隧道的可视化三维模型重构,为隧道围岩非接触式测量及预警研究提供参考。
【摘要】 本文详细分析多通路OTDR实时在线监测技术和基于电网GIS应用的光缆故障定位技术,通过利用该技术可以构建电力光缆网多通路在线监测与故障定位系统,提高电力企业电力光缆网的运行稳定性和可靠性。  【关键词】 电力光缆网 多通路 在线监测 故障定位  引言:  电力光缆网一般采用OPGW光缆通过光传输设备进行网络通信组网,承载着调度数据网、通信数据网和信息内网等数据信息的传输,在保障