实现分布式路由、物理主机接入的方法及装置制造方法及图纸

技术编号:14559344 阅读:136 留言:0更新日期:2017-02-05 14:26
本发明专利技术揭示了一种实现分布式路由、物理主机接入的方法及装置,openstack网络节点及计算节点上安装分布式路由代理器,通过下发多级流表控制流量转发,为每个网络的虚拟网关分配特殊MAC,openstack为虚拟网关MAC分配的是以fa开头的MAC地址,特殊MAC以ea开头,其后字段相同。当本地及远端VM处于不同网段不同服务器时,流量做过分布式路由查找后将报文源MAC改写成特殊MAC,用以标记做过分布式路由的流量,将需进行跨服务器通信的流量引流到硬件交换机上转发。本发明专利技术基于OpenFlow多级流表实现分布式路由,避免单一节点性能瓶颈,实现物理主机即插即用,采用软硬结合突破大规模VM时转发性能瓶颈。

【技术实现步骤摘要】

本专利技术涉及网络通信领域,尤其涉及一种实现分布式路由、物理主机接入的方法及装置
技术介绍
随着当今网络虚拟化技术的不断发展,软件定义网络(SoftwareDefinedNetwork,SDN)和云计算相结合的应用规模在不断地扩大,OpenStack作为虚拟云主机的管理平台之一,其关注度日益加大。伴随着虚拟主机的部署规模越来越大,OpenStack作为管理平台的瓶颈也日益凸显,例如转发性能,单节点故障,虚拟网络与物理网络的相互融合的需求。为解决上述问题,各个厂商提供了多种解决方案,下面以OpenStackNeutronDVR方案和OpenStackDragonFlow方案为例说明。(1)OpenStackNeutronDVR方案分析在OpenStack现有网络架构上,对于虚拟云主机(VirtualMachine,VM)跨网段的通信需求,无论是东西向(East-West,E-W)流量还是南北向(North-South,N-S)的流量都需要绕到虚拟路由器(VirtualRouter,VRouter)上,这样,在VM大量部署的情况下,网络节点(NetworkNode)上的转发性能将急剧下降,同时单一节点的故障率将对网络造成严重影响,虽然OpenStack支持了网络节点的高可用性集群(HighAvailable,HA)功能,但是随着规模的增大这种方式并不利于扩展。自OpenStackJuno版本发布以来,对于上述情况提供了一种分布式路由(DistributedVirtualRouting,DVR)的解决方案,将原来只有在网络节点上的虚拟路由器分布式的部署在计算节点(ComputeNode)上,即将L3代理器(L3Agent)部署在每一个计算节点上,意在减小单一节点故障所导致的影响,避免单一节点转发性能下降问题。实现东西向流量通过DVR虚拟路由器完全分布式,至于南北向流量,对于分配了浮动IP(FloatingIP)的通过DVR虚拟路由器完全分布式,对于未分配到浮动IP的仍然绕行网络节点的虚拟路由器实现共享上网。其中东西向流量转发目前只支持vxlan模式。这里,DVR虚拟路由器起在linux命名空间(Namespace)中,也就是说在每个计算节点上都要起一个linux命名空间,这样所有流量都需要走linux命名空间的协议栈,占用一部分资源,对性能造成浪费,而且实现技术复杂,不利于在生产环境中进行维护。(2)OpenStackDragonFlow方案分析由于OpenStackNeutronDVR实现的技术过于复杂,而且带来了不必要的额外开销,DragonFlow方案被提出,主旨解决在计算节点上无需建立linux命名空间的情况下,通过OpenFlow流表的形式,实现东西向流量的完全分布式。该方案将在网络节点上部署DragonFlowL3控制器,同时在计算节点上部署DragonFlowL2代理器,DragonFlowL3控制器通过开放式API(AESTAPI)调用Ryu控制器对每个节点进行流表的下发,流表的下发采用被动式,既首包数据报文会上送到DragonFlowL3控制器上,再由其决定流表下发的规则,该方案不对南北向流量产生影响。这里,在大规模的情况下,数据报文被大量的送到DragonFlowL3控制器上,由于DragonFlowL3控制器并未支持高可用性集群方案,这样DragonFlowL3控制器将会成为转发性能的瓶颈。综上所述,根据现有技术的分析,OpenStackNeutronDVR和OpenStackDragonFlow都能解决东西向流量的完全分布式需求,但是OpenStackNeutronDVR采用的是linux命名空间的方式,会产生资源和性能的浪费,而OpenStackDragonFlow会产生单一DragonFlowL3控制器的性能瓶颈,因此,第一个需要解决的问题是:避免采用过于复杂的技术实现东西向流量分布式的同时解决单一组件的性能瓶颈。随着VM部署的规模越来越大,对于单一节点上建立的隧道(Tunnel)也随之越来越多,伴随而来的是服务器上转发性能越来越差。因此,第二个需要解决的问题是:突破大规模部署虚拟主机的情况下服务器上转发性能瓶颈,实现数据流量高性能转发。以上两个方案都未涉及到虚拟网络和物理网络快速融合的方案,因此,第三个需要解决的问题是:实现物理主机即插即用,使得物理网络和虚拟网络方便扩展融合。
技术实现思路
本专利技术的目的在于提供一种实现分布式路由、物理主机接入的方法及装置。为实现上述专利技术目的之一,本专利技术一实施方式提供一种实现分布式路由的方法,openstack的网络节点及计算节点上安装有分布式路由代理器,通过下发多级流表来控制转发路径,所述多级流表包括租户识别表、二层转发表及三层路由表,所述方法包括步骤:S1:本地租户识别表识别本地VM和远端VM,若识别成功,则进入步骤S2,若识别失败,则丢弃;S2:将报文送至本地二层转发表中,读取所述报文的目的MAC,若目的MAC为网关MAC,则进入步骤S3,若目的MAC为VM的MAC,则进入步骤S4;若目的MAC为广播或组播,则在对应网络内进行广播;S3:将所述报文送至本地三层路由表中,判断报文的目的IP所属的VM与本地VM是否在同一服务器上,若为同一服务器,将目的MAC改写成远端MAC,进入步骤S5,若为不同服务器,将源MAC改写成特殊MAC,将目的MAC改写成远端VM的MAC,特殊MAC由网关MAC产生,进入步骤S6;S4:判断报文的目的MAC所属的VM与本地VM是否在同一服务器上,若为同一服务器,则进入步骤S7,若为不同服务器,则进入步骤S8;S5:利用报文的目的IP地址进行匹配,若匹配成功,则接收所述报文,若匹配失败,则丢弃所述报文;S6:将所述报文送至远端VM,远端租户识别表识别源MAC,若识别成功,则进入步骤S9,若识别失败,则丢弃所述报文;S7:利用报文的目的MAC进行匹配,若匹配成功,则接收所述报文,若匹配失败,则丢弃所述报文;S8:将所述报文送至远端VM,远端租户识别表识别源MAC,若识别成功,则进入步骤S10,若识别失败,则丢弃所述报文;S9:将所述报文送至远端三层路由表中,利用报文的IP地址进行匹配,若匹配成功,则接收所述报文,若匹配失败,则丢弃所述报文;S10:将所述报文送至远端二层转发表中,利用报文目的MAC进行匹配,若匹配成功,则接收所述报文,若匹配失本文档来自技高网
...

【技术保护点】
一种实现分布式路由的方法,其特征在于openstack的网络节点及计算节点上安装有分布式路由代理器,通过下发多级流表来控制转发路径,所述多级流表包括租户识别表、二层转发表及三层路由表,所述方法包括步骤:S1:本地租户识别表识别本地VM和远端VM,若识别成功,则进入步骤S2,若识别失败,则丢弃;S2:将报文送至本地二层转发表中,读取所述报文的目的MAC,若目的MAC为网关MAC,则进入步骤S3,若目的MAC为VM的MAC,则进入步骤S4;若目的MAC为广播或组播,则在对应网络内进行广播;S3:将所述报文送至本地三层路由表中,判断报文的目的IP所属的VM与本地VM是否在同一服务器上,若为同一服务器,将目的MAC改写成远端MAC,进入步骤S5,若为不同服务器,将源MAC改写成特殊MAC,将目的MAC改写成远端VM的MAC,特殊MAC由网关MAC产生,进入步骤S6;S4:判断报文的目的MAC所属的VM与本地VM是否在同一服务器上,若为同一服务器,则进入步骤S7,若为不同服务器,则进入步骤S8;S5:利用报文的目的IP地址进行匹配,若匹配成功,则接收所述报文,若匹配失败,则丢弃所述报文;S6:将所述报文送至远端VM,远端租户识别表识别源MAC,若识别成功,则进入步骤S9,若识别失败,则丢弃所述报文;S7:利用报文的目的MAC进行匹配,若匹配成功,则接收所述报文,若匹配失败,则丢弃所述报文;S8:将所述报文送至远端VM,远端租户识别表识别源MAC,若识别成功,则进入步骤S10,若识别失败,则丢弃所述报文;S9:将所述报文送至远端三层路由表中,利用报文的IP地址进行匹配,若匹配成功,则接收所述报文,若匹配失败,则丢弃所述报文;S10:将所述报文送至远端二层转发表中,利用报文目的MAC进行匹配,若匹配成功,则接收所述报文,若匹配失败,则丢弃所述报文。...

【技术特征摘要】
1.一种实现分布式路由的方法,其特征在于openstack的网络节点及计算节
点上安装有分布式路由代理器,通过下发多级流表来控制转发路径,所述多级
流表包括租户识别表、二层转发表及三层路由表,所述方法包括步骤:
S1:本地租户识别表识别本地VM和远端VM,若识别成功,则进入步骤
S2,若识别失败,则丢弃;
S2:将报文送至本地二层转发表中,读取所述报文的目的MAC,若目的
MAC为网关MAC,则进入步骤S3,若目的MAC为VM的MAC,则进入步骤
S4;若目的MAC为广播或组播,则在对应网络内进行广播;
S3:将所述报文送至本地三层路由表中,判断报文的目的IP所属的VM与
本地VM是否在同一服务器上,若为同一服务器,将目的MAC改写成远端MAC,
进入步骤S5,若为不同服务器,将源MAC改写成特殊MAC,将目的MAC改
写成远端VM的MAC,特殊MAC由网关MAC产生,进入步骤S6;
S4:判断报文的目的MAC所属的VM与本地VM是否在同一服务器上,
若为同一服务器,则进入步骤S7,若为不同服务器,则进入步骤S8;
S5:利用报文的目的IP地址进行匹配,若匹配成功,则接收所述报文,若
匹配失败,则丢弃所述报文;
S6:将所述报文送至远端VM,远端租户识别表识别源MAC,若识别成功,
则进入步骤S9,若识别失败,则丢弃所述报文;
S7:利用报文的目的MAC进行匹配,若匹配成功,则接收所述报文,若匹
配失败,则丢弃所述报文;
S8:将所述报文送至远端VM,远端租户识别表识别源MAC,若识别成功,
则进入步骤S10,若识别失败,则丢弃所述报文;
S9:将所述报文送至远端三层路由表中,利用报文的IP地址进行匹配,若
匹配成功,则接收所述报文,若匹配失败,则丢弃所述报文;
S10:将所述报文送至远端二层转发表中,利用报文目的MAC进行匹配,

\t若匹配成功,则接收所述报文,若匹配失败,则丢弃所述报文。
2.根据权利要求1所述的实现分布式路由的方法,其特征在于,匹配及识
别过程的参数还包括网络ID及/或vlan,其中,二层转发表的网络ID为分布式
路由代理器为每个网络分配的本地ID,用于隔离不同网络内的二层流量,三层
转发表的网络ID为分布式路由代理器为每个虚拟路由器分配的本地ID,用于隔
离不同网络内的三层流量。
3.根据权利要求1所述的实现分布式路由的方法,其特征在于步骤S1具
体包括:
本地租户识别表匹配本地VM报文的端口信息及源MAC,若端口信息及源
MAC均匹配成功,将本地分布式路由代理器为该网络分配的ID标记到报文上,
进入步骤S2,若端口信息及/或源MAC匹配失败,则丢弃所述报文。
4.根据权利要求1所述的实现分布式路由的方法,其特征在于,当本地
VM及远端VM位于不同服务器且服务器对应不同的交换机时,步骤“将所述
报文送至远端VM”具体包括:所述报文由第一交换机的上联口通过隧道方式发
送至第二交换机的上联口。
5.根据权利要求4所述的实现分布式路由的方法,其特征在于,当本地
VM于所述第一交换机下创建成功时,对所述第一交换机的上联口下发隧道配置
信息以及VNI与vlan的映射关系信息,所述vlan为租户对应的本地vlan,所述
vlan在报文需要从服务器网卡发送到交换机上时被设置。
6.一种实现分布式路由的装置,其特征在于包括:
安装于openstack的网络节点及计算节点上的分布式路由代理器,通过下发
多级流表来控制转发路径,所述多级流表包括租户识别表、二层转发表及三层
路由表,所述分布式路由代理器用于:
S1:本地租户识别表识别本地VM和远端VM,若识别成功,则进入步骤
S2,若识别失败,则丢弃;
S2:将报文送至本地二层转发表中,读取所述报文的目的MAC,若目的
MAC为网关MAC,则进入步骤S3,若目的MAC为VM的MAC,则进入步骤

\tS4;若目...

【专利技术属性】
技术研发人员:张东亚魏志君
申请(专利权)人:盛科网络苏州有限公司
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1