本发明涉及虚拟化网络技术领域,特别是涉及一种虚拟化网络分布式路由实现方法及系统。
背景技术:
随着云计算、SDN、虚拟化等理念和技术的不断成熟,云计算生产环境部署的规模也在不断增长,在云计算环境中,业务流量模型发生了巨大变化,在传统的数据中心中,业务流量通常情况是南北流量。而随着云计算技术的发展,在新型数据中心中,业务主机是根据业务的需求以及当前服务器的压力而随需漂移的,所以在新型数据中心中会出现大量的东西向流量,业务流量模型变化对网络部署提出了新的要求。
在传统的数据中心中,由于业务流量通常情况下都是南北向,所以TOR交换机只需要支持普通的二层转发,在虚拟化环境中,通常情况下,跨租户流量需要经过集中式网关进行跨租户流量转发,但是这会对网关造成很大的压力,并且对网关的性能以及稳定性要求很高。
因而,如何在数据中心中减轻网关的压力,弥补传统网络实现复杂的不足,是本领域技术人员目前需要解决的技术问题。
技术实现要素:
本发明的目的是提供一种虚拟化网络分布式路由实现方法及系统,可以在数据中心中减轻网关的压力,弥补传统网络实现复杂的不足。
为解决上述技术问题,本发明提供了如下技术方案:
一种虚拟化网络分布式路由实现方法,包括:
获取虚拟机发送出来的业务流量特征;
判断所述虚拟机发出的业务报文的以太目的MAC是否为网关MAC;
若是,则通过与所述虚拟机连接的虚拟交换机中的openflow流表中的三层转发流表对所述业务报文进行路由处理;
将经过所述三层转发流表路由处理后的业务报文通过所述openflow流表中的二层转发流表发送出去。
优选地,所述通过与所述虚拟机连接的虚拟交换机中的openflow流表中的三层转发流表对所述业务报文进行路由处理,包括:
通过所述三层转发流表查找目的IP所对应的目的租户ID;
将所述虚拟机所在的当前租户ID替换为所述目的租户ID。
优选地,还包括:
若所述虚拟机发出的业务报文的以太目的MAC不为网关MAC,则判断所述业务报文是否为已知单播MAC报文;
若是,则通过所述二层转发流表查找目的VM所在的hypervisor,封装对应隧道的头,然后将所述业务报文发送出去;
若否,则将所述报文送到ARP表中进行泛洪。
优选地,还包括:
判断是否存在没有命中流表规则的业务报文;
若有,则对没有命中流表规则的所述业务报文执行DROP动作。
一种虚拟化网络分布式路由实现系统,包括虚拟机,还包括:
虚拟交换机,所述虚拟交换机和各所述虚拟机进行连接,所述虚拟交换机设有用于根据openflow标准协议,指导各所述虚拟机中的业务报文进行转发的openflow流表。
优选地,所述openflow流表包括:
二层转发流表和三层转发流表,其中,所述三层转发流表用于在所述虚拟机发出的业务报文的以太目的MAC为网关MAC时,对所述业务报文进行路由处理,所述二层转发流表用于将所述三层转发流表发送的经路由处理后的业务报文或者已知单播MAC报文进行转发。
优选地,所述三层转发流表包括:
查找单元,用于查找目的IP所对应的目的租户ID;
替换单元,用于将所述虚拟机所在的当前租户ID替换为所述目的租户ID。
优选地,还包括:
报文丢弃单元,用于在所述业务报文没有命中流表规则时,将该业务报文丢弃。
与现有技术相比,上述技术方案具有以下优点:
本发明所提供的一种虚拟化网络分布式路由实现方法,包括:获取虚拟机发送出来的业务流量特征;判断虚拟机发出的业务报文的以太目的MAC是否为网关MAC;若是,则通过与虚拟机连接的虚拟交换机中的openflow流表中的三层转发流表对业务报文进行路由处理;将经过三层转发流表路由处理后的业务报文通过openflow流表中的二层转发流表发送出去。采用openflow流表来指导业务报文的转发,使得控制与转发分离,使得报文的转发更加简单和高效,提高了设计的灵活性,可以根据报文特征下发流表转发规则,以提高设计的适用性,可以减轻数据中心中网关的压力。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一种具体实施方式所提供的虚拟化网络分布式路由实现方法流程图;
图2为本发明一种具体实施方式所提供的虚拟化网络分布式路由实现系统结构示意图。
具体实施方式
本发明的核心是提供一种虚拟化网络分布式路由实现方法及系统,可以在数据中心中减轻网关的压力,弥补传统网络实现复杂的不足。
为了使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的具体实施方式做详细的说明。
在以下描述中阐述了具体细节以便于充分理解本发明。但是本发明能够以多种不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广。因此本发明不受下面公开的具体实施的限制。
请参考图1,图1为本发明一种具体实施方式所提供的虚拟化网络分布式路由实现方法流程图。
本发明的一种具体实施方式提供了一种虚拟化网络分布式路由实现方法,包括:
S11:获取虚拟机发送出来的业务流量特征。
S12:判断虚拟机发出的业务报文的以太目的MAC是否为网关MAC。
即根据虚拟机发送出来的业务流量特征来判断当前业务报文是需要三层转发流表路由还是需要二层转发流表转发。
S13:若是,则通过与虚拟机连接的虚拟交换机中的openflow流表中的三层转发流表对业务报文进行路由处理。
在虚拟机连接的虚拟交换机中下发openflow流表以控制虚拟机业务流量的转发,其中,虚拟交换机中的流表分为二层转发流表和三层转发流表,当虚拟机发出的业务报文的以太目的MAC为网关MAC时,则表示该报文需要查找三层转发流表进行跨租户转发。
具体的,在三层转发流表中,通过三层转发流表查找目的IP所对应的目的租户ID;将虚拟机所在的当前租户ID替换为目的租户ID。
S14:将经过三层转发流表路由处理后的业务报文通过openflow流表中的二层转发流表发送出去。
当业务报文的以太目的MAC为网关MAC时,需要进行跨租户转发,在现有技术中不同租户的虚拟机互相访问需要经过边界网关,这样会对边界网关造成巨大压力。而在本实施方式中,当业务报文的以太目的MAC为网关MAC时,三层转发流表进行路由处理,通过三层转发流表查找目的IP所对应的目的租户ID;将虚拟机所在的当前租户ID替换为目的租户ID,并由二层转发流表进行转发,实现了不同租户的虚拟机互相访问在本地虚拟交换机即可完成,而无需经过边界网关,大大降低了网关的压力。
进一步地,本发明一种实施方式中该方法还包括:
若虚拟机发出的业务报文的以太目的MAC不为网关MAC,则判断业务报文是否为已知单播MAC报文;
若是,则通过二层转发流表查找目的VM所在的hypervisor,封装对应隧道的头,然后将业务报文发送出去;
若否,则将报文送到ARP表中进行泛洪。
在本实施方式中,对于普通的已知单播MAC报文,需要查找二层转发流表,二层转发流表所做的报文转发行为就是查找目的VM所在的hypervisor,封装对应隧道的头然后进行发送。而对于所有的未知单播、组播、广播报文都需要送到ARP表中进行泛洪。
需要说明的是,在本实施方式中,还可以预下发流表以减少广播域内的报文泛洪。
进一步地,还包括:
判断是否存在没有命中流表规则的业务报文;
若有,则对没有命中流表规则的业务报文执行DROP动作。
为控制各个虚拟机业务流量的转发,需要在虚拟交换机下发openflow流表,流表规则匹配报文的源IP、目的IP,openflow流表规则可以匹配十二元组可以根据需求精确匹配报文特征,而若有报文没有命中流表规则,则表示该报文无效,进行丢弃。
请参考图2,图2为本发明一种具体实施方式所提供的虚拟化网络分布式路由实现系统结构示意图。
相应地,本发明一种实施方式还提供了一种虚拟化网络分布式路由实现系统,包括n个虚拟机1,n为不小于2的整数,还包括:
虚拟交换机2,虚拟交换机和各虚拟机进行连接,虚拟交换机设有用于根据openflow标准协议,指导各虚拟机中的业务报文进行转发的openflow流表3。
在本实施方式中,充分利用了openflow控制与转发分离的特性,以及openflow流表的灵活和可扩展性,采用openflow流表指导报文的转发,以替代传统网络设备泛洪、学习转发行为,以流表模拟传统设备转发行为的设计,实现了虚拟网络分布式路由功能,从而大大降低了配置的复杂度,增加了虚拟化网络的灵活性和扩展性。同时,相对于采用硬件设备来说,采用虚拟交换机通过openflow流表来指导跨租户业务流量转发,大大降低了配置的成本。其中,虚拟交换机每一个端口都像物理交换机一样可以用于连接网络设备,各虚拟机分别连接在虚拟交换机的不同的端口,为控制各个虚拟机业务流量的转发,需要在虚拟交换机下发openflow流表,流表规则匹配报文的源IP、目的IP,openflow流表规则可以匹配十二元组可以根据需求精确匹配报文特征,然后送入下一级流表进行处理。
在上述实施方式的基础上,本发明的一种实施方式中,openflow流表包括:
二层转发流表和三层转发流表,其中,三层转发流表用于在虚拟机发出的业务报文的以太目的MAC为网关MAC时,对业务报文进行路由处理,二层转发流表用于将三层转发流表发送的经路由处理后的业务报文或者已知单播MAC报文进行转发。
在本实施方式中,采用基于openflow流表控制报文转发的方法,设计二层转发流表和三层转发流表。在虚拟机连接的虚拟交换机中下发openflow流表以控制虚拟机流量转发,当虚拟机发出的业务报文以太目的MAC为网关MAC时,则表明该报文需要查找三层转发流表进行跨租户转发,在三层转发流表中,流表会查找目的IP所在的租户ID,把当前虚拟机所在的租户ID替换为目的租户ID,然后从对应的隧道接口发送出去。而对于普通已知单播MAC报文,则需要查找二层转发流表,二层转发流表所做的报文转发行为就是查找目的VM所在的hypervisor,封装对应隧道的头然后进行发送。所有的未知单播、组播、广播报文都需要送到ARP表中进行泛洪。
其中,三层转发流表包括:查找单元,即用于查找目的IP所对应的目的租户ID;替换单元,即用于将虚拟机所在的当前租户ID替换为目的租户ID。
进一步地,该系统还包括:报文丢弃单元,用于在业务报文没有命中流表规则时,将该业务报文丢弃。
由上述内容可知,流表规则匹配报文的源IP、目的IP,openflow流表规则可以匹配十二元组可以根据需求精确匹配报文特征。而若有报文不能被流表规则匹配,则将该报文进行丢弃。
综上所述,本发明所提供的虚拟化网络分布式路由实现方法及系统,当业务报文的以太目的MAC为网关MAC时,三层转发流表进行路由处理,通过三层转发流表查找目的IP所对应的目的租户ID;将虚拟机所在的当前租户ID替换为目的租户ID,并由二层转发流表进行转发,实现了不同租户的虚拟机互相访问在本地虚拟交换机即可完成,而无需经过边界网关,大大降低了网关的压力。充分利用了openflow控制与转发分离的特性,以及openflow流表的灵活和可扩展性,采用openflow流表指导报文的转发,以替代传统网络设备泛洪、学习转发行为,以流表模拟传统设备转发行为的设计,实现了虚拟网络分布式路由功能,从而大大降低了配置的复杂度,实现了简单高效地指导报文转发,负荷云计算基础架构设计理念,控制面与转发面解耦,增加了虚拟化网络的灵活性和扩展性。
以上对本发明所提供的一种虚拟化网络分布式路由实现方法及系统进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。