一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于IPv6的多云跨网互通方法及装置与流程

2022-11-30 13:33:11 来源:中国专利 TAG:
一种基于ipv6的多云跨网互通方法及装置
技术领域
:1.本发明涉及多云跨网互通
技术领域
:,尤其涉及一种基于ipv6的多云跨网互通方法及装置。
背景技术
::2.云网络中,虚拟机一般通过ovs(openvswitch开源的虚拟交换机)发送数据,在出节点时默认要使用geneve(genericnetworkvirtualizationencapsulatio通用网络虚拟化封装)隧道协议进行封装(一种l2overl4的报文封装模式);当目的地为本云内其它节点的虚拟机时,按外层ip在云内转发报文到指定节点,收包后反向解封geneve头,送往节点内的虚拟机;当多云跨网通信时,出外网的数据要被剥掉geneve头,打上通信网络的外层标签供其转发,到达目的云后,要剥掉通信网标签,封装geneve头到达指定节点,到节点后还要剥掉头与对应虚拟机进行数据交互。3.综上,使用geneve协议封装数据的方法,不管在云内还是在云网之间,现在看来都显得十分繁琐,目前还没有一种能够统一云内与云网的技术,既能不使用隧道协议来携带云内虚拟机数据,又能直接利用外层报文在通信网络中实现转发。技术实现要素:4.针对现有技术中存在的问题,本发明实施例提供一种基于ipv6的多云跨网互通方法及装置。5.本发明实施例提供一种基于ipv6的多云跨网互通方法,包括:接收到跨网通信请求时,根据所述跨网通信请求确定对应的发送节点、接收节点以及节点之间的通信网,并获取所述发送节点的ovn中的配置信息,将所述配置信息发送至对应的ovs,供ovs基于所述配置信息建立对应的openflow流表;向所述通信网发送sid流表约定信息,并根据所述通信网的反馈信息确定对应的sid流表;获取所述跨网通信请求对应的报文数据,并将所述报文数据与所述发送节点的内核态中的datapath流表集合进行匹配,并当所述报文数据与datapath流表集合中的任意datapath流表均不匹配时,将所述报文数据与用户态中的openflow流表集合进行匹配,得到对应的匹配结果;基于所述匹配结果,通过所述openflow流表对所述报文数据进行ipv6封装,通过所述sid流表对所述报文数据进行srv6封装,并根据所述ipv6封装及srv6封装得到对应的封装协议,基于所述封装协议设置所述发送节点的发送端口、接收节点的接收端口;将封装后的报文数据通过所述发送节点的发送端口发送至所述通信网,所述通信网基于所述srv6封装将所述报文数据转发至所述接收端口,供所述接收节点接收所述报文数据。6.在其中一个实施例中,所述方法还包括:提取用户态中的所述openflow流表的match信息、发送端口、接收端口及action字段;基于所述match信息、发送端口、接收端口、action字段,在内核态建立对应的datapath流表,并基于所述datapath流表的信息计算对应的哈希值,将所述哈希值与对应的datapath流表对应保存。7.在其中一个实施例中,所述方法还包括:当接收所述跨网通信请求中与所述报文数据对应的次包数据时,根据所述次包数据的报文类型解析对应字段,并结合预定义的哈希算法,计算得到所述次包数据对应的哈希值;基于所述哈希值与所述发送节点的内核态中的datapath流表集合进行匹配,并根据匹配结果中的datapath流表对所述次包数据进行ipv6封装,通过所述sid流表对所述次包数据进行srv6封装。8.在其中一个实施例中,所述方法还包括:将所述报文数据与用户态中的openflow流表集合中的任意openflow流表进行匹配,匹配到所述openflow流表,并将所述报文数据与所述openflow流表中的各个流表table中的每条流表规则进行轮询匹配,当匹配结果命中,则根据命中结果确定对应的action。9.在其中一个实施例中,所述方法还包括:通过udp伪头和sid流表对所述报文数据进行srv6封装。10.在其中一个实施例中,所述方法还包括:在所述发送节点、接收节点的用户态新建netdev,并将所述封装协议的协议配置写入所述netdev,并将所述netdev插入对应节点的全局链表,存入对应的数据库;在所述发送节点、接收节点的内核态建立新的vport,并注册与所述发送节点对应的发包函数,与所述接收节点对应的收包函数。11.在其中一个实施例中,所述配置信息,包括:逻辑交换机、逻辑交换机端口。12.本发明实施例提供一种基于ipv6的多云跨网互通装置,包括:接收模块,用于接收到跨网通信请求时,根据所述跨网通信请求确定对应的发送节点、接收节点以及节点之间的通信网,并获取所述发送节点的ovn中的配置信息,将所述配置信息发送至对应的ovs,供ovs基于所述配置信息建立对应的openflow流表;约定模块,用于向所述通信网发送sid流表约定信息,并根据所述通信网的反馈信息确定对应的sid流表;匹配模块,用于获取所述跨网通信请求对应的报文数据,并将所述报文数据与所述发送节点的内核态中的datapath流表集合进行匹配,并当所述报文数据与datapath流表集合中的任意datapath流表均不匹配时,将所述报文数据与用户态中的openflow流表集合进行匹配,得到对应的匹配结果;封装模块,用于基于所述匹配结果,通过所述openflow流表对所述报文数据进行ipv6封装,通过所述sid流表对所述报文数据进行srv6封装,并根据所述ipv6封装及srv6封装得到对应的封装协议,基于所述封装协议设置所述发送节点的发送端口、接收节点的接收端口;互通模块,用于将封装后的报文数据通过所述发送节点的发送端口发送至所述通信网,所述通信网基于所述srv6封装将所述报文数据转发至所述接收端口,供所述接收节点接收所述报文数据。13.本发明实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述基于ipv6的多云跨网互通方法的步骤。14.本发明实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述基于ipv6的多云跨网互通方法的步骤。15.本发明实施例提供的一种基于ipv6的多云跨网互通方法及装置,接收到跨网通信请求时,根据跨网通信请求确定对应的发送节点、接收节点以及节点之间的通信网,并获取发送节点的ovn中的配置信息,将配置信息发送至对应的ovs,供ovs基于配置信息建立对应的openflow流表;向通信网发送sid流表约定信息,并根据通信网的反馈信息确定对应的sid流表;获取跨网通信请求对应的报文数据,并将报文数据与发送节点的内核态中的datapath流表集合进行匹配,并当报文数据与datapath流表集合中的任意datapath流表均不匹配时,将报文数据与用户态中的openflow流表集合进行匹配,得到对应的匹配结果;基于匹配结果,通过openflow流表对报文数据进行ipv6封装,通过sid流表对报文数据进行srv6封装,并根据ipv6封装及srv6封装得到对应的封装协议,基于封装协议设置发送节点的发送端口、接收节点的接收端口;将封装后的报文数据通过发送节点的发送端口发送至所述通信网,通信网基于srv6封装将所述报文数据转发至所述接收端口,供接收节点接收报文数据。这样能够通过修改ovs和ovn的代码,可以用ipv6的新增拓展头功能完全取代geneve的处理逻辑,与通信网交换配置后,可以叠加srv6功能实现云中数据在通信网络中的转发。附图说明16.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。17.图1为本发明实施例中一种基于ipv6的多云跨网互通方法的流程图;图2为本发明另一实施例中一种基于ipv6的多云跨网互通方法的组网构架图;图3为本发明实施例中一种基于ipv6的多云跨网互通装置的结构图;图4为本发明实施例中电子设备结构示意图。具体实施方式18.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。19.图1为本发明实施例提供的一种基于ipv6的多云跨网互通方法的流程示意图,如图1所示,本发明实施例提供了一种基于ipv6的多云跨网互通方法,包括:步骤s101,接收到跨网通信请求时,根据所述跨网通信请求确定对应的发送节点、接收节点以及节点之间的通信网,并获取所述发送节点的ovn中的配置信息,将所述配置信息发送至对应的ovs,供ovs基于所述配置信息建立对应的openflow流表。20.具体地,在接收到云内的跨网通信请求时,根据跨网通信请求确定对应的发送节点、接收节点以及节点之间的通信网,其中,发送节点可以为云a中的节点,接收节点可以为云b中的节点,而通信网为独立云a、云b外的通信网,获取发送节点的ovn(openvirtualnetwork开放虚拟网络)中的配置信息,其中,配置信息可以为ovn存储的ls(logicalswitch逻辑交换机)、lsp(logicalswitchport逻辑交换机端口)等信息,将配置信息发送至对应的ovs(openvswitch开源的虚拟交换机),供ovs基于配置信息建立对应的openflow流表。21.步骤s102,向所述通信网发送sid流表约定信息,并根据所述通信网的反馈信息确定对应的sid流表。22.具体地,向通信网发送sid流表(segmentidentifier,sid)约定信息,用于将发送节点与通信网之间约定使用相同的sid,当通信网对约定信息的反馈信息为确定时,根据通信网的反馈信息确定约定信息中对应的sid流表。23.步骤s103,获取所述跨网通信请求对应的报文数据,并将所述报文数据与所述发送节点的内核态中的datapath流表集合进行匹配,并当所述报文数据与datapath流表集合中的任意datapath流表均不匹配时,将所述报文数据与用户态中的openflow流表集合进行匹配,得到对应的匹配结果。24.具体地,获取跨网通信请求对应的报文数据,其中,报文数据分为首包数据及次包数据,当接收到跨网通信请求初次处理时,对应的报文数据为首包数据,将报文数据与发送节点的内核态中的datapath流表集合进行匹配,通常,发送节点在接收到报文数据后,会将报文数据与更方便的内核态中的datapath流表集合进行匹配,但对于首包数据来说,并不会存在对应的datapath流表,则报文数据与datapath流表集合中的任意datapath流表均不匹配,将报文数据会经upcall(内核态往用户态转发的一种方式)流程到达用户态,与用户态中的openflow流表集合进行匹配,得到对应的匹配结果,其中,匹配过程可以包括:将报文数据与用户态中的openflow流表集合中的任意openflow流表进行匹配,匹配到openflow流表,并将报文数据与openflow流表中的各个流表table中的每条流表规则进行轮询匹配,当匹配结果命中,则根据命中结果确定对应的action。25.另外,当首包的报文数据命中openflow流表后,用户态会将消息经netlink(一种用户态和内核态通信的协议)通知到内核态,内核态主要提取match字段、出入端口以及action这几个关键信息,来构造内核态对应的的datapath流表,并计算hash值进行与datapath流表对应存储,供后续报文查询。26.另外,在内核态建立对应的datapath流表后,接收到跨网通信请求中与报文数据对应的次包数据后,会根据报文类型解析相关字段,将其存放到自定义的报文特征结构体中,然后按预定义的哈希算法算出key值后去匹配datapath表对应保存的哈希值,若能匹配成功,则按action操作次包数据并进行转发,按此action进行封包操作,根据datapath流表对次包数据进行ipv6封装,封装完后可以根据拓展头信息计算udp端口信息并封一个udp伪头,之后再去匹配内核态的sid表项,若匹配成功则再封srv6头和sid列表,然后再继续匹配action,直至次包数据转发。27.步骤s104,基于所述匹配结果,通过所述openflow流表对所述报文数据进行ipv6封装,通过所述sid流表对所述报文数据进行srv6封装,并根据所述ipv6封装及srv6封装得到对应的封装协议,基于所述封装协议设置所述发送节点的发送端口、接收节点的接收端口。28.具体地,基于匹配结果命中,则根据命中结果确定对应的action,其中,action包括通过openflow流表对报文数据进行ipv6封装,通过sid流表对报文数据进行srv6封装,然后根据ipv6封装及srv6封装得到对应的封装协议,基于封装协议设置对应的虚拟端口,包括发送节点的发送端口、接收节点的接收端口,具体包括在action执行后,用户态新建netdev(用户态端口的数据结构),将封装协议配置写入其中,并插入全局链表,存入数据库,还会打通用户态和内核态的连接,在内核态建立新的vport,注册内核收发包函数,对于跨网发送的报文来说,当此报文包含有自定义的ipv6拓展头,会被此vport来接收。[0029]另外,在通过sid流表对报文数据进行srv6封装,可以通过udp伪头(userdatagramprotocol用户数据报协议)和sid流表对报文数据进行srv6封装,通过udp伪头封装后,能够供报文进入接收节点网卡时以五元组信息参与rss(receivesidescaling接收端缩放)计算,防止报文信息散列不好,能同时能够兼容ipv6协议。[0030]步骤s105,将封装后的报文数据通过所述发送节点的发送端口发送至所述通信网,所述通信网基于所述srv6封装将所述报文数据转发至所述接收端口,供所述接收节点接收所述报文数据。[0031]具体地,将封装后的报文数据通过发送节点的发送端口发送至通信网,srv6用于指示跨网通信的目标节点,通信网基于srv6封装将报文数据转发至目标节点,即接收端口,供接收节点接收报文数据。[0032]本发明实施例提供的一种基于ipv6的多云跨网互通方法,接收到跨网通信请求时,根据跨网通信请求确定对应的发送节点、接收节点以及节点之间的通信网,并获取发送节点的ovn中的配置信息,将配置信息发送至对应的ovs,供ovs基于配置信息建立对应的openflow流表;向通信网发送sid流表约定信息,并根据通信网的反馈信息确定对应的sid流表;获取跨网通信请求对应的报文数据,并将报文数据与发送节点的内核态中的datapath流表集合进行匹配,并当报文数据与datapath流表集合中的任意datapath流表均不匹配时,将报文数据与用户态中的openflow流表集合进行匹配,得到对应的匹配结果;基于匹配结果,通过openflow流表对报文数据进行ipv6封装,通过sid流表对报文数据进行srv6封装,并根据ipv6封装及srv6封装得到对应的封装协议,基于封装协议设置发送节点的发送端口、接收节点的接收端口;将封装后的报文数据通过发送节点的发送端口发送至所述通信网,通信网基于srv6封装将所述报文数据转发至所述接收端口,供接收节点接收报文数据。这样能够通过修改ovs和ovn的代码,可以用ipv6的新增拓展头功能完全取代geneve的处理逻辑,与通信网交换配置后,可以叠加srv6功能实现云中数据在通信网络中的转发。[0033]在另一实施例中,基于ipv6的多云跨网互通方法对应的组网构架图可以如图2所示,包括云1、云2、通信网络,在云1的节点接收到跨网通信请求时,获取节点1的ovn中的配置信息,将配置信息发送至对应的ovs,供ovs基于配置信息建立对应的openflow流表,然后与通信网络约定对应的sid流表,根据openflow流表对报文数据进行ipv6封装,通过sid流表对所述报文数据进行srv6封装,将封装后的报文数据通过云1的节点端口发送至ipv6通信网络,转发至云2的节点端口接收。[0034]在另一实施例中,基于ipv6的多云跨网互通方法可以作sdn(softwaredefinednetwork软件定义网络)控制器方向的应用,因为云网流量通过统一的协议打通,可以统一云和通信网的sdn控制器,做到路径信息下发;此控制器向云中某节点下发srv6的sid流表,保证出云的流量携带自己的转发路径信息,往通信网中下发转发规则,保证云中数据包到通信网后可以按srv6的sid流表进行转发,直至进入目的云节点中;此应用方向将会大大降低运维成本。[0035]另外,本实施例还可应用于sfc(servicefunctionchain服务链),sdn控制器下发sfc控制信息到云内或者通信网(包含sfc的五元组与srv6、sid),流量转发过程中可匹配sfc的五元组规则,命中后在srv6报文头中增加sfc的sid流表,并指向此sid流表,修改目的ip,这样报文信息就能到达指定服务。[0036]图3为本发明实施例提供的一种基于ipv6的多云跨网互通装置,包括:接收模块s201、约定模块s202、匹配模块s203、封装模块s204、互通模块s205,其中:接收模块s201,用于接收到跨网通信请求时,根据所述跨网通信请求确定对应的发送节点、接收节点以及节点之间的通信网,并获取所述发送节点的ovn中的配置信息,将所述配置信息发送至对应的ovs,供ovs基于所述配置信息建立对应的openflow流表。[0037]约定模块s202,用于向所述通信网发送sid流表约定信息,并根据所述通信网的反馈信息确定对应的sid流表。[0038]匹配模块s203,用于获取所述跨网通信请求对应的报文数据,并将所述报文数据与所述发送节点的内核态中的datapath流表集合进行匹配,并当所述报文数据与datapath流表集合中的任意datapath流表均不匹配时,将所述报文数据与用户态中的openflow流表集合进行匹配,得到对应的匹配结果。[0039]封装模块s204,用于基于所述匹配结果,通过所述openflow流表对所述报文数据进行ipv6封装,通过所述sid流表对所述报文数据进行srv6封装,并根据所述ipv6封装及srv6封装得到对应的封装协议,基于所述封装协议设置所述发送节点的发送端口、接收节点的接收端口。[0040]互通模块s205,用于将封装后的报文数据通过所述发送节点的发送端口发送至所述通信网,所述通信网基于所述srv6封装将所述报文数据转发至所述接收端口,供所述接收节点接收所述报文数据。[0041]关于基于ipv6的多云跨网互通装置的具体限定可以参见上文中对于基于ipv6的多云跨网互通方法的限定,在此不再赘述。上述基于ipv6的多云跨网互通装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。[0042]图4示例了一种电子设备的实体结构示意图,如图4所示,该电子设备可以包括:处理器(processor)301、存储器(memory)302、通信接口(communicationsinterface)303和通信总线304,其中,处理器301,存储器302,通信接口303通过通信总线304完成相互间的通信。处理器301可以调用存储器302中的逻辑指令,以执行如下方法:接收到跨网通信请求时,根据跨网通信请求确定对应的发送节点、接收节点以及节点之间的通信网,并获取发送节点的ovn中的配置信息,将配置信息发送至对应的ovs,供ovs基于配置信息建立对应的openflow流表;向通信网发送sid流表约定信息,并根据通信网的反馈信息确定对应的sid流表;获取跨网通信请求对应的报文数据,并将报文数据与发送节点的内核态中的datapath流表集合进行匹配,并当报文数据与datapath流表集合中的任意datapath流表均不匹配时,将报文数据与用户态中的openflow流表集合进行匹配,得到对应的匹配结果;基于匹配结果,通过openflow流表对报文数据进行ipv6封装,通过sid流表对报文数据进行srv6封装,并根据ipv6封装及srv6封装得到对应的封装协议,基于封装协议设置发送节点的发送端口、接收节点的接收端口;将封装后的报文数据通过发送节点的发送端口发送至所述通信网,通信网基于srv6封装将所述报文数据转发至所述接收端口,供接收节点接收报文数据。[0043]此外,上述的存储器302中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。[0044]另一方面,本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的传输方法,例如包括:接收到跨网通信请求时,根据跨网通信请求确定对应的发送节点、接收节点以及节点之间的通信网,并获取发送节点的ovn中的配置信息,将配置信息发送至对应的ovs,供ovs基于配置信息建立对应的openflow流表;向通信网发送sid流表约定信息,并根据通信网的反馈信息确定对应的sid流表;获取跨网通信请求对应的报文数据,并将报文数据与发送节点的内核态中的datapath流表集合进行匹配,并当报文数据与datapath流表集合中的任意datapath流表均不匹配时,将报文数据与用户态中的openflow流表集合进行匹配,得到对应的匹配结果;基于匹配结果,通过openflow流表对报文数据进行ipv6封装,通过sid流表对报文数据进行srv6封装,并根据ipv6封装及srv6封装得到对应的封装协议,基于封装协议设置发送节点的发送端口、接收节点的接收端口;将封装后的报文数据通过发送节点的发送端口发送至所述通信网,通信网基于srv6封装将所述报文数据转发至所述接收端口,供接收节点接收报文数据。[0045]以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。[0046]通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。[0047]最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。当前第1页12当前第1页12
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献