本发明涉及云网络,特别涉及一种云虚拟机和传统网络互通的方法及系统。
背景技术:
1、当前主流云网络方案中,云虚拟机和传统网络互通场景时,通常使用一个集中式的网关集群来承载对overlay网络的封装和解封装,以及对传统网络做传统路由的对接和转发,该方案有如下缺点:
2、集中式的网关集群一般使用x86的物理服务器,其性能和带宽吞吐有限制,在处理上tbps的业务流量场景时会有性能瓶颈,即使网关集群能进行横向扩展,其在资源性价比上也是不可取的,其可能需要十几或者几十台x86物理服务器才能承载上tbps的带宽流量;
3、集中式的网关集群方案中,由于有对overlay的封装和解封装的过程,将会影响整体转发性能和增加转发时延;
4、集中式的网关集群在资源故障时会影响整体的带宽能力,若预留足够的资源做冗余,其会影响资源使用率,同时在故障时可能会影响整体业务流量的丢包或者延迟;
5、一种基于分布式网关方式实现云虚拟机和传统网络互通,可避免集中式网关集群存在的以上问题。
技术实现思路
1、本方法和系统旨在一种基于分布式网关实现云虚拟机和传统网络互通,可避免集中式网关集群在处理大带宽流量时性能不足、资源整体使用率低、网络转发性能降低、转发时延增加、以及资源故障时对整体业务的影响等问题,同时无需使用专有资源来部署相关的网关集群,分布式网关部署在计算节点上,分布式网关能力随计算资源规模的增加而动态增加,可以提升转发性能和减少时延。
2、本发明的技术方案如下:
3、第一方面,提出一种云虚拟机和传统网络互通的方法,该方法包括如下步骤:
4、s1、kvm物理服务器的ovs实现云虚拟机和物理服务器系统网络之间的网络打通,同时按需配置nat规则;
5、s2、使用动态路由组件实现kvm物理服务器系统网络和交换机之间的动态路由学习,kvm物理服务器侧对云虚拟机的地址进行/32的主机路由发布,实现kvm物理服务器上的/32地址和传统网络路由的互通;
6、s3、结合ovs和动态路由进行实现云虚拟机和传统网络之间的互通。
7、本发明的进一步改进在于,所述s1中kvm物理服务器上ovs主要对云虚拟机的数据包进行overlay封装和解封装,在此基础上添加基于网段的流表规则用于区分目的地址为传统网络的数据包并对该部分数据包不进行overlay封装而直接发送到kvm物理服务器的系统网络。
8、本发明的进一步改进在于,所述s1中kvm物理服务器的ovs实现云虚拟机和物理服务器系统网络之间的网络打通用以实现分布式网关。
9、本发明的进一步改进在于,所述分布式网关实现逻辑为:通过云虚拟机发送数据包到传统网络;云虚拟机接收来自传统网络的数据包。
10、本发明的进一步改进在于,所述s2中在物理服务器系统中部署动态路由组件实现kvm物理服务器系统网络和对应交换机之间动态路由,所有调度到该kvm物理服务器上的云虚拟机都在其系统的动态路由中发布/32的主机路由,交换机侧通过传统路由方式打通和传统网络的通信,同时在ovs针对发送到kvm物理服务器系统网络中目的地址为云虚拟机的/32的数据包转发到对应的云虚拟机的流表,从而实现了云虚拟机和传统网络的双向互通。
11、本发明的进一步改进在于,特别地,若云虚拟机为不同租户vpc地址可重叠的方式,则在ovs上对传统网络流量进行分流的同时对云虚拟机进行nat的规则设置,nat后的地址为全局唯一用于和传统网络的互通,则动态路由发布的为nat后的/32的主机地址。
12、本发明的进一步改进在于,所述s3中结合ovs和动态路由进行实现云虚拟机和传统网络之间的互通,ovs流表中针对发送到kvm物理服务器系统网络中目的地址为云虚拟机nat后的/32的数据包进行nat和转发到对应的云虚拟机。
13、第二方面,提出一种云虚拟机和传统网络互通的系统,该系统包括:
14、配置模块、动态学习模块、网关互通模块:
15、所述配置模块,用于kvm物理服务器的ovs实现云虚拟机和物理服务器系统网络之间的网络打通,同时按需配置nat规则;
16、所述动态学习模块,用于使用动态路由组件实现kvm物理服务器系统网络和交换机之间的动态路由学习,kvm物理服务器侧对云虚拟机的地址进行/32的主机路由发布,实现kvm物理服务器上的/32地址和传统网络路由的互通;
17、所述网关互通模块,用于结合ovs和动态路由进行实现云虚拟机和传统网络之间的互通。
18、本发明的技术效果如下:
19、提出一种云虚拟机和传统网络互通的方法及系统,可避免集中式网关集群在处理大带宽流量时性能不足、资源整体使用率低、网络转发性能降低、转发时延增加、以及资源故障时对整体业务的影响等问题,同时无需使用专有资源来部署相关的网关集群,分布式网关部署在计算节点上,分布式网关能力随计算资源规模的增加而动态增加,可以提升转发性能和减少时延,因而可操作性好、灵活性高、效率高。
1.一种云虚拟机和传统网络互通的方法,其特征在于:包括以下具体步骤:
2.根据权利要求1所述的一种云虚拟机和传统网络互通的方法,其特征在于:所述s1中kvm物理服务器上ovs主要对云虚拟机的数据包进行overlay封装和解封装,在此基础上添加基于网段的流表规则用于区分目的地址为传统网络的数据包并对该部分数据包不进行overlay封装而直接发送到kvm物理服务器的系统网络。
3.根据权利要求2所述的一种云虚拟机和传统网络互通的方法,其特征在于:所述s1中kvm物理服务器的ovs实现云虚拟机和物理服务器系统网络之间的网络打通用以实现分布式网关。
4.根据权利要求3所述的一种云虚拟机和传统网络互通的方法,其特征在于:所述分布式网关实现逻辑为:通过云虚拟机发送数据包到传统网络;云虚拟机接收来自传统网络的数据包。
5.根据权利要求4所述的一种云虚拟机和传统网络互通的方法,其特征在于:所述s2中在物理服务器系统中部署动态路由组件实现kvm物理服务器系统网络和对应交换机之间动态路由,所有调度到该kvm物理服务器上的云虚拟机都在其系统的动态路由中发布/32的主机路由,交换机侧通过传统路由方式打通和传统网络的通信,同时在ovs针对发送到kvm物理服务器系统网络中目的地址为云虚拟机的/32的数据包转发到对应的云虚拟机的流表,从而实现了云虚拟机和传统网络的双向互通。
6.根据权利要求5所述的一种云虚拟机和传统网络互通的方法,其特征在于:特别地,若云虚拟机为不同租户vpc地址可重叠的方式,则在ovs上对传统网络流量进行分流的同时对云虚拟机进行nat的规则设置,nat后的地址为全局唯一用于和传统网络的互通,则动态路由发布的为nat后的/32的主机地址。
7.根据权利要求6所述的一种云虚拟机和传统网络互通的方法,其特征在于:所述s3中结合ovs和动态路由进行实现云虚拟机和传统网络之间的互通,ovs流表中针对发送到kvm物理服务器系统网络中目的地址为云虚拟机nat后的/32的数据包进行nat和转发到对应的云虚拟机。
8.一种云虚拟机和传统网络互通的系统,基于权利要求1-7任一项所述的一种云虚拟机和传统网络互通的方法实现,其特征在于,包括:配置模块、动态学习模块、网关互通模块:
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时,实现权利要求1-7中任一项所述的一种云虚拟机和传统网络互通的方法。
10.一种电子设备,其特征在于,包括存储器,用于存储指令;处理器,用于执行所述指令,使得所述设备执行实现权利要求1-7中任一项所述的一种云虚拟机和传统网络互通的方法的操作。