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

文档序号:9754444阅读:820来源:国知局
实现分布式路由、物理主机接入的方法及装置的制造方法
【技术领域】
[0001]本发明涉及网络通信领域,尤其涉及一种实现分布式路由、物理主机接入的方法及装置。
【背景技术】
[0002]随着当今网络虚拟化技术的不断发展,软件定义网络(Software DefinedNetwork,SDN)和云计算相结合的应用规模在不断地扩大,OpenStack作为虚拟云主机的管理平台之一,其关注度日益加大。伴随着虚拟主机的部署规模越来越大,OpenStack作为管理平台的瓶颈也日益凸显,例如转发性能,单节点故障,虚拟网络与物理网络的相互融合的需求。为解决上述问题,各个厂商提供了多种解决方案,下面以OpenStack Neutron DVR方案和OpenStack DragonFlow方案为例说明。
[0003](I)OpenStack Neutron DVR方案分析
[0004]在OpenStack现有网络架构上,对于虚拟云主机(Virtual Machine,VM)跨网段的通信需求,无论是东西向(East-West,E_W)流量还是南北向(North-South,N_S)的流量都需要绕到虚拟路由器(Virtual Router,VRouter)上,这样,在VM大量部署的情况下,网络节点(Network Node)上的转发性能将急剧下降,同时单一节点的故障率将对网络造成严重影响,虽然OpenStack支持了网络节点的高可用性集群(High Available,HA)功能,但是随着规模的增大这种方式并不利于扩展。
[0005]自OpenStackJuno版本发布以来,对于上述情况提供了一种分布式路由(Distributed Virtual Routing,DVR)的解决方案,将原来只有在网络节点上的虚拟路由器分布式的部署在计算节点(Compute Node)上,即将L3代理器(L3Agent)部署在每一个计算节点上,意在减小单一节点故障所导致的影响,避免单一节点转发性能下降问题。实现东西向流量通过DVR虚拟路由器完全分布式,至于南北向流量,对于分配了浮动IP(FloatingIP)的通过DVR虚拟路由器完全分布式,对于未分配到浮动IP的仍然绕行网络节点的虚拟路由器实现共享上网。其中东西向流量转发目前只支持vxIan模式。
[0006]这里,DVR虚拟路由器起在Iinux命名空间(Namespace)中,也就是说在每个计算节点上都要起一个Iinux命名空间,这样所有流量都需要走Iinux命名空间的协议桟,占用一部分资源,对性能造成浪费,而且实现技术复杂,不利于在生产环境中进行维护。
[0007](2)0penStack DragonFlow方案分析
[0008]由于OpenStack Neutron DVR实现的技术过于复杂,而且带来了不必要的额外开销,DragonFlow方案被提出,主旨解决在计算节点上无需建立I inux命名空间的情况下,通过OpenFlow流表的形式,实现东西向流量的完全分布式。该方案将在网络节点上部署DragonFlow L3控制器,同时在计算节点上部署DragonFlow L2代理器,DragonFlow L3控制器通过开放式APKAEST API)调用Ryu控制器对每个节点进行流表的下发,流表的下发采用被动式,既首包数据报文会上送到DragonFlow L3控制器上,再由其决定流表下发的规则,该方案不对南北向流量产生影响。
[0009]这里,在大规模的情况下,数据报文被大量的送到DragonFlowL3控制器上,由于DragonFlow L3控制器并未支持高可用性集群方案,这样DragonFlow L3控制器将会成为转发性能的瓶颈。
[0010]综上所述,根据现有技术的分析,OpenStack Neutron DVR和OpenStackDragonFlow都能解决东西向流量的完全分布式需求,但是OpenStack Neutron DVR采用的是I inux命名空间的方式,会产生资源和性能的浪费,而OpenStack DragonFlow会产生单一DragonFlow L3控制器的性能瓶颈,因此,第一个需要解决的问题是:避免采用过于复杂的技术实现东西向流量分布式的同时解决单一组件的性能瓶颈。
[0011]随着VM部署的规模越来越大,对于单一节点上建立的隧道(Tunnel)也随之越来越多,伴随而来的是服务器上转发性能越来越差。因此,第二个需要解决的问题是:突破大规模部署虚拟主机的情况下服务器上转发性能瓶颈,实现数据流量高性能转发。
[0012]以上两个方案都未涉及到虚拟网络和物理网络快速融合的方案,因此,第三个需要解决的问题是:实现物理主机即插即用,使得物理网络和虚拟网络方便扩展融合。

【发明内容】

[0013]本发明的目的在于提供一种实现分布式路由、物理主机接入的方法及装置。
[0014]为实现上述发明目的之一,本发明一实施方式提供一种实现分布式路由的方法,openstack的网络节点及计算节点上安装有分布式路由代理器,通过下发多级流表来控制转发路径,所述多级流表包括租户识别表、二层转发表及三层路由表,所述方法包括步骤:
[0015]SI:本地租户识别表识别本地VM和远端VM,若识别成功,则进入步骤S2,若识别失败,则丢弃;
[0016]S2:将报文送至本地二层转发表中,读取所述报文的目的MAC,若目的MAC为网关MAC,则进入步骤S3,若目的MAC为VM的MAC,则进入步骤S4 ;若目的MAC为广播或组播,则在对应网络内进行广播;
[0017]S3:将所述报文送至本地三层路由表中,判断报文的目的IP所属的VM与本地VM是否在同一服务器上,若为同一服务器,将目的MAC改写成远端MAC,进入步骤S5,若为不同服务器,将源MAC改写成特殊MAC,将目的MAC改写成远端VM的MAC,特殊MAC由网关MAC产生,进入步骤S6;
[0018]S4:判断报文的目的MAC所属的VM与本地VM是否在同一服务器上,若为同一服务器,则进入步骤S7,若为不同服务器,则进入步骤S8;
[0019]S5:利用报文的目的IP地址进行匹配,若匹配成功,则接收所述报文,若匹配失败,则丢弃所述报文;
[0020]S6:将所述报文送至远端VM,远端租户识别表识别源MAC,若识别成功,则进入步骤S9,若识别失败,则丢弃所述报文;
[0021 ] S7:利用报文的目的MAC进行匹配,若匹配成功,则接收所述报文,若匹配失败,则丢弃所述报文;
[0022]S8:将所述报文送至远端VM,远端租户识别表识别源MAC,若识别成功,则进入步骤SlO,若识别失败,则丢弃所述报文;
[0023]S9:将所述报文送至远端三层路由表中,利用报文的IP地址进行匹配,若匹配成功,则接收所述报文,若匹配失败,则丢弃所述报文;
[0024]S10:将所述报文送至远端二层转发表中,利用报文目的MAC进行匹配,若匹配成功,则接收所述报文,若匹配失败,则丢弃所述报文。
[0025]作为本发明一实施方式的进一步改进,匹配及识别过程的参数还包括网络ID及/或vlan,其中,二层转发表的网络ID为分布式路由代理器为每个网络分配的本地ID,用于隔离不同网络内的二层流量,三层转发表的网络ID为分布式路由代理器为每个虚拟路由器分配的本地ID,用于隔离不同网络内的三层流量。
[0026]作为本发明一实施方式的进一步改进,步骤SI具体包括:
[0027]本地租户识别表匹配本地VM报文的端口信息及源MAC,若端口信息及源MAC均匹配成功,将本地分布式路由代理器为该网络分配的ID标记到报文上,进入步骤S2,若端口信息及/或源MAC匹配失败,则丢弃所述报文。
[0028]作为本发明一实施方式的进一步改进,当本地VM及远端VM位于不同服务器且服务器对应不同的交换机时,步骤“将所述报文送至远端VM”具体包括:所述报文由第一交换机的上联口通过隧道方式发送至第二交换机的上联口。
[0029]作为本发明一实施方式的进一步改进,当本地VM于所述第一交换机下创建成功时,对所述第一交换机的上联口下发隧道配置信息以及VNI与vlan的映射关系信息,所述vlan为租户对应的本地vlan,所述vlan在报文需要从服务器网卡发送到交换机上时被设置。
[0030]为实现上述发明目的之一,本发明一实施方式提供一种实现分布式路由的装置,包括安装于openstack的网络节点及计算节点上的分布式路由代理器,通过下发多级流表来控制转发路径,所述多级流表包括租户识别表、二层转发表及三层路由表,所述分布式路由代理器用于:
[0031 ] SI:本地租户识别表识别本地VM和远端VM,若识别成功,则进入步骤S2,若识别失败,则丢弃;
[0032]S2:将报文送至本地二层转发表中,读取所述报文的目的MAC,若目的MAC为网关MAC,则进入步骤S3,若目的MAC为VM的MAC,则进入步骤S4 ;若目的MAC为广播或组播,则在对应网络内进行广播;
[0033]S3:将所述报文送至本地三层路由表中,判断报文的目的IP所属的VM与本地VM是否在同一服务器上,若为同一服务器,将目的MAC改写成远端MAC,进入步骤S5,若为不同服务器,将源MAC改写成特殊MAC,将目的MAC改写成远端VM的MAC,特殊MAC由网关MAC产生,进入步骤S6;
[0034]S4:判断报文的目的MAC所属的VM与本地VM是否在同一服务器上,若为同一服务器,则进入步骤S7,若为不同服务器,则进入步骤S8;
[0035]S5:利用报文的目的IP地址进行匹配,若匹配成功,则接收所述报文,若匹配失败,则丢弃所述报文;
[0036]S6:将所述报文送至远端VM,远端租户识别表识别源MAC,若识别成功,则进入步骤S9,若识别失败,则丢弃所述报文;
[0037]S7:利用报文的目的MAC进行匹配,若匹配成功,则接收所述报文,若匹配失败,则丢弃所述报文;
[0038]S8:将所述报文送至远端VM,远端租户识别表识别源MAC,若识别成功,则进入步骤SlO,若识别失败,则丢弃所述报文;
[0039]S9:将所述报文送至远端三层路由表中,利用报文的IP地址进行匹配,若匹配成功,则接收所述报文,若匹配失败,则丢弃所述报文;
[0040]S10:将所述报文送至远端二层转发表中,利用报文目的MAC进行匹配,若匹配成功,则接收所述报文,若匹配失败,则丢弃所述报文。
[0041]为实现上述发明目的之一,本发明一实施方式提供一种实现物理主机接入的方法,openstack的网络节点及计算节点上安装有分布式路由代理器,通过下发多级流表来控制转发路径,所述多级流表包括租户识别表、二层转发表及三层路由表,所述方法包括步骤:
[0042]S1:租户识别表识别本地VM,若识别成功,则进入步骤s2,若识别失败,则丢弃;
[0043]s2:将报文送至二层转发表中,读取所述报文的目的MAC,若目的MAC为网关MAC,则进入步骤s3,若目的MAC不为网关MAC,匹配该网络内通配的二层转发表,进入步骤s4;
[0044]s3:将所述报文送至三层路由表中,匹配默认路由将报文送往虚拟路由器,由虚拟路由器发送ARP报文请求物理主机的MAC,进入步骤s4,若匹配失败,则丢弃所述报文;
[0045]s4:将所述报文送至物理主机接入的交换机上,所述交换机通过识别VNI映射成本地vlan,再利用目的MAC进行匹配,若匹配成功,则接收所述报文,实现物理主机接入,若匹配失败,则丢弃所述报文。
[0046]作为本发明一实施方式的进一步改进,所述报文由第一交换机的上联口通过隧道送至第二交换机的上联口,所述第一交换机与虚拟网络服务器相连,所述第二交换机与物理主机或虚拟路由器相连。
[0047]作为本发明一实施方式的进一步改进,当本地VM于所述第一交换机下创建成功时,对所述第一交换机的上联口下发隧道配置信息以及VNI与vlan的映射关系信息。
[0048]为实现上述发明目的之一,本发明一实施方式提供一种实现物理主机接入的装置,包括安装于openstack的服务器的网络节点及计算节点上的分布式路由代理器,通过下发多级流表来控制转发路径,所述多级流表包括租户识别表、二层转发表及三层路由表,所述分布式路由代理器用于:
[0049]S1:租户识别表识别本地VM,若识别成功,则进入步骤s2,若识别失败,则丢弃;
[0050]s2:将报文送至二层转发表中,读取所述报文的目的MAC,若目的MAC为网关MAC,则进入步骤s3,若目的MAC不为网关MAC,匹配该网络内通配的二层转发表,进入步骤s4;
[0051]s3:将所述报文送至三层路由表中,匹配默认路由将报文送往虚拟路由器,由虚拟路由器发送ARP报文请求物理主机的MAC,进入步骤s4,若匹配失败,则丢弃所述报文;
[0052]s4:将所述报文送至物理主机接入的交换机上,所述交换机通过识别VNI映射成本地vlan,再利用目的MAC进行匹配,若匹配成功,则接收所述报文,实现物理主机接入,若匹配失败,则丢弃所述报文。
[0053]与现有技术相比,本发明的有益效果在于:本发明基于OpenFlow多级流表实现分布式路由,本发明的计算节点及网络节点上均设置有分布式路由代理器,避免了单一节点性能瓶颈,解决了东西向流量的分布式路由功能,本发明还实现物理主机即插即用,使得物理网络
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1