CN107770062A - 一种数据包发送方法、装置及网络架构 - Google Patents
一种数据包发送方法、装置及网络架构 Download PDFInfo
- Publication number
- CN107770062A CN107770062A CN201610676669.1A CN201610676669A CN107770062A CN 107770062 A CN107770062 A CN 107770062A CN 201610676669 A CN201610676669 A CN 201610676669A CN 107770062 A CN107770062 A CN 107770062A
- Authority
- CN
- China
- Prior art keywords
- network
- address
- network node
- node
- virtual router
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/44—Distributed routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/12—Shortest path evaluation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/24—Multipath
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/58—Association of routers
- H04L45/586—Association of routers of virtual routers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/10—Packet switching elements characterised by the switching fabric construction
Abstract
本发明实施例公开了一种数据包发送方法、装置及网络架构,该方法应用于网络架构中的数据网交换机,该方法包括:接收第一计算节点发送的目标数据包的第一封装包,基于数据网交换机中配置的开放式最短路径优先路由协议以及等价多路径路由协议,以及网络节点中配置的开放式最短路径优先路由协议,从网络节点中确定第一网络节点;向第一网络节点发送第一封装包,以使得第一网络节点将目标数据包发送给目的主机。应用本发明实施例提供的方案,可以使得服务相同网段的虚拟机的同一组虚拟路由器所转发的数据流量,以在该组中的所有虚拟路由器实现分布式流量转发,进而解决现有技术中用单个虚拟路由器转发数据包时存在的性能瓶颈问题。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种数据包发送方法、装置及网络架构。
背景技术
随着云网络技术的不断发展,应用于云网络的网络架构,例如OpenStack(一种开源的基础设施及服务云计算平台)网络架构,已经进入主流企业市场,并保持着高速增长的态势,正被越来越多的企业关注和使用。此类网络架构中包含多个网络节点以及多个计算节点,计算节点用于负责其中设置的虚拟机的运行,网络节点配置有虚拟路由器,用于为计算节点中的虚拟机的对外网络通信与对内网络通信提供服务。
上述网络架构中,存在多组虚拟路由器,不同组的虚拟路由器提供对应不同网段的虚拟机的数据包转发服务,同一组的各个虚拟路由器提供对应相同网段的虚拟机的数据包转发服务,并且,同一组的各个虚拟路由器被分配在不同的网络节点中。网络架构的工作过程中,同一组的各个虚拟路由器中,仅有一个处于可用(active)状态,其他的虚拟路由器则处于非可用(passive)状态,仅有该处于可用状态的虚拟路由器可以向对应该组虚拟路由器的虚拟机提供数据包转发服务。
由上可见,对于上述同一组虚拟路由器所服务的所有虚拟机,其需要通过虚拟路由器转发的数据包仅由该组虚拟路由器中处于可用状态的虚拟路由器进行转发,由于该组虚拟路由器中,处于可用状态的虚拟路由器的数量只有一个,且该可用状态的虚拟路由器所处网络节点的带宽等网络资源是有限的,因此,当需要通过该可用状态的虚拟路由器转发的所有数据包的总流量大时,该处于可用状态的虚拟路由器的网络负载大,数据包的发送过程在虚拟路由器处存在性能瓶颈问题。
发明内容
本发明实施例公开了一种数据包发送方法、装置及网络架构,以使得服务相同网段的虚拟机的同一组虚拟路由器所转发的数据流量,可以在该组中的所有虚拟路由器实现分布式流量转发,进而解决现有技术中用单个虚拟路由器转发数据包时存在的性能瓶颈问题。技术方案如下:
第一方面,本发明实施例提供了一种数据包发送方法,应用于目标网络架构中的数据网交换机,所述目标网络架构中包括数据网交换机、计算节点和网络节点,所述计算节点与所述网络节点通过所述数据网交换机相连接,所述计算节点与所述网络节点的底层网络为三层网络,所述网络节点中设置有预设数目个分别处理不同网段的虚拟机数据流量的虚拟路由器,任意两个所述网络节点中设置的虚拟路由器都相同,所述虚拟路由器均处于可用状态,所述网络节点的第一隧道本地端点IP地址相同;
所述方法包括:
接收第一计算节点发送的目标数据包的第一封装包,其中,所述目标数据包携带有目的主机的目的IP地址;
从所述网络节点中确定第一网络节点;
向所述第一网络节点发送所述第一封装包,以使得所述第一网络节点对所述第一封装包进行解封装处理得到所述目标数据包,并基于所述目的IP地址,通过所述第一网络节点中的第一虚拟路由器将所述目标数据包发送给所述目的主机,其中,所述第一虚拟路由器为与所述本地虚拟机对应的虚拟路由器。
优选的,所述目标数据包为所述第一计算节点中的本地虚拟机生成的,所述第一封装包为由所述第一计算节点对所述目标数据包进行三层隧道封装得到的。
优选的,所述从所述网络节点中确定第一网络节点,包括:
基于所述数据网交换机中配置的开放式最短路径优先路由协议以及等价多路径路由协议,以及所述网络节点中配置的开放式最短路径优先路由协议,从所述网络节点中确定第一网络节点。
优选的,所述目标网络架构还包括:控制节点,所述控制节点通过以下方法创建虚拟路由器:
所述控制节点接收创建虚拟路由器的创建请求;
发送所述创建请求至所有所述网络节点中的三层代理,以使得所述三层代理基于所述创建请求,在所述网络节点中创建虚拟路由器。
优选的,当所述目的主机为与所述本地虚拟机处于同租户网络且处于不同网段下的虚拟机时,
所述基于所述目的IP地址,通过所述第一网络节点中的第一虚拟路由器将所述目标数据包发送给所述目的主机,包括:
获得所述第一网络节点中的第一虚拟路由器根据所述目的IP地址对应的目的MAC地址发送的所述目标数据包;
根据所述目的MAC地址,确定所述目的主机所在的第二计算节点的第二隧道本地端点IP地址;
基于所述第二隧道本地端点IP地址,对所述目标数据包进行三层隧道封装,得到第二封装包;
通过所述数据网交换机将所述第二封装包发送至所述第二计算节点,以使得所述第二计算节点对所述第二封装包进行解封装处理得到所述目标数据包,并将所述目标数据包发送至所述目的主机。
优选的,所述目的MAC地址为所述第一虚拟路由器根据所述目的IP地址确定的。
优选的,每个所述网络节点中均配置有二层广播机制以及ARP响应机制,
所述第一虚拟路由器通过以下方式获得所述目的MAC地址:
所述第一虚拟路由器根据所述目的IP地址广播ARP请求;
接收所述第一网络节点反馈的所述目的MAC地址,其中,所述目的MAC地址为:所述第一网络节点基于所述ARP请求、所述二层广播机制和ARP响应机制确定的。
优选的,每个所述网络节点中均配置有二层广播机制,
所述根据所述目的MAC地址,确定所述目的主机所在的第二计算节点的第二隧道本地端点的IP地址,包括:
根据所述目的MAC地址以及所述二层广播机制,确定所述目的主机所在的第二计算节点的第二隧道本地端点IP地址。
优选的,所述基于所述数据网交换机中配置的开放式最短路径优先路由协议以及等价多路径路由协议,以及所述网络节点中配置的开放式最短路径优先路由协议,从所述网络节点中确定第一网络节点,包括:
获得所述第一封装包的第一外层源IP地址;
基于所述数据网交换机中配置的开放式最短路径优先路由协议以及等价多路径路由协议,以及网络节点中配置的开放式最短路径优先路由协议,获得当前所述目标网络架构中处于可用状态的所述网络节点;
根据所述第一外层源IP地址,从处于可用状态的所述网络节点中哈希选择一个第一网络节点。
优选的,所述第一封装包为:由所述第一计算节点对所述目标数据包进行三层隧道封装后,交换封装得到的封装包的外层源IP地址与内层目的IP地址所得到的;
所述第一网络节点对所述第一封装包进行解封装处理得到所述目标数据包,包括:
所述第一网络节点接收到所述第一封装包后,交换所述第一封装包的外层源IP地址与内层目的IP地址;
对交换后的所述第一封装包进行解封装处理得到所述目标数据包。
优选的,所述目标网络架构还包括:外网路由器,所述数据网交换机与所述外网路由器通信连接,当所述目的IP地址为外网IP地址,
所述基于所述目的IP地址,通过所述第一网络节点中的第一虚拟路由器将所述目标数据包发送给所述目的主机,包括:
获得所述第一网络节点中的第一虚拟路由器针对所述目标数据包进行源地址转换时的源地址转换信息;
生成并记录与所述源地址转换信息对应的目的地址转换信息;
基于所述目的IP地址,通过所述第一虚拟路由器将源地址转换后的所述目标数据包发送给所述目的主机。
优选的,所述目的IP地址属于第二虚拟路由器所服务的网段,其中,所述第二虚拟路由器所服务的网段不同于所述第一虚拟路由器所服务的网段;
所述基于所述目的IP地址,通过所述第一网络节点中的第一虚拟路由器将所述目标数据包发送给所述目的主机,包括:
获得所述第一网络节点中的第一虚拟路由器针对所述目标数据包进行源地址转换时的源地址转换信息;
生成并记录对应所述源地址转换信息的目的地址转换信息;
获得所述第一虚拟路由器发送的源地址转换后的所述目标数据包,并通过所述第一网络节点中配置的外部网桥将所述目标数据包发送至所述数据网交换机,以使得所述数据网交换机将所述目标数据包转发至第二网络节点中的目标第二虚拟路由器,目标第二虚拟路由器对所述目标数据包进行目的地址转换后,将所述目标数据包发送给所述目的主机;
其中,所述第二网络节点为:所述数据网交换机在接收到所述第一网络节点发送的所述目标数据包时,从该时刻处于可用状态的网络节点中哈希选择的一个网络节点,该时刻处于可用状态的网络节点为:所述数据网交换机根据该时刻所述目标数据包的源IP地址,并基于所述数据网交换机中配置的开放式最短路径优先路由协议以及等价多路径路由协议,以及网络节点中配置的开放式最短路径优先路由协议确定的。
优选的,所述通过所述第一网络节点中配置的外部网桥将所述目标数据包发送至所述数据网交换机,包括:
通过所述第一网络节点中配置的外部网桥所配置的流表,将所述目标数据包发送至所述数据网交换机;
其中,所述流表与经由虚拟路由器的虚拟外网接口直接发送的数据包相匹配,所述流表中包括处理动作信息:所述网络节点通过外部网桥将与所述流表相匹配的数据包发送给所述数据网交换机。
第二方面,本发明实施例提供了一种数据包发送装置,应用于目标网络架构中的数据网交换机,所述目标网络架构中包括数据网交换机、计算节点和网络节点,所述计算节点与所述网络节点通过所述数据网交换机相连接,所述计算节点与所述网络节点的底层网络为三层网络,所述网络节点中设置有预设数目个分别处理不同网段的虚拟机数据流量的虚拟路由器,任意两个所述网络节点中设置的虚拟路由器都相同,所述虚拟路由器均处于可用状态,所述网络节点的第一隧道本地端点IP地址相同;
所述装置包括:
接收模块,用于接收第一计算节点发送的目标数据包的第一封装包,其中,所述目标数据包携带有目的主机的目的IP地址;
确定模块,用于从所述网络节点中确定第一网络节点;
发送模块,用于向所述第一网络节点发送所述第一封装包,以使得所述第一网络节点对所述第一封装包进行解封装处理得到所述目标数据包,并基于所述目的IP地址,通过所述第一网络节点中的第一虚拟路由器将所述目标数据包发送给所述目的主机,其中,所述第一虚拟路由器为与所述本地虚拟机对应的虚拟路由器。
优选的,所述目标数据包为所述第一计算节点中的本地虚拟机生成的,所述第一封装包为由所述第一计算节点对所述目标数据包进行三层隧道封装得到的。
优选的,所述确定模块,具体用于:
基于所述数据网交换机中配置的开放式最短路径优先路由协议以及等价多路径路由协议,以及所述网络节点中配置的开放式最短路径优先路由协议,从所述网络节点中确定第一网络节点。
第二方面,本发明实施例提供了一种网络架构,包括数据网交换机、计算节点和网络节点,所述计算节点与所述网络节点通过所述数据网交换机相连接,所述计算节点与所述网络节点的底层网络为三层网络,所述网络节点中设置有预设数目个分别处理不同网段的虚拟机数据流量的虚拟路由器,任意两个所述网络节点中设置的虚拟路由器都相同,所述虚拟路由器均处于可用状态,所述网络节点的第一隧道本地端点IP地址相同;
所述计算节点中,作为数据包发送端的第一计算节点,用于向所述数据网交换机发送目标数据包的第一封装包,其中,所述目标数据包携带有目的主机的目的IP地址;
所述数据网交换机,用于接收所述第一计算节点发送的所述第一封装包;从所述网络节点中确定第一网络节点;向所述第一网络节点发送所述第一封装包;
所述第一网络节点用于,接收所述数据网交换机发送的所述第一封装包;对所述第一封装包进行解封装处理,得到所述目标数据包;基于所述目的IP地址,通过所述第一网络节点中的第一虚拟路由器将所述目标数据包发送给所述目的主机,其中,所述第一虚拟路由器为与所述本地虚拟机对应的虚拟路由器。
优选的,所述第一计算节点,具体用于将本地虚拟机生成的目标数据包进行三层隧道封装,得到第一封装包;向所述数据网交换机发送所述第一封装包。
优选的,所述数据网交换机,具体用于基于所述数据网交换机中配置的开放式最短路径优先路由协议以及等价多路径路由协议,以及所述网络节点中配置的开放式最短路径优先路由协议,从所述网络节点中确定第一网络节点。
优选的,所述网络架构还包括:控制节点以及管理网交换机,所述控制节点通过所述管理网交换机控制所述计算节点和所述网络节点,
所述控制节点,用于接收创建虚拟路由器的创建请求;发送所述创建请求至所有所述网络节点中的三层代理;
所述三层代理,用于基于所述创建请求,在所述网络节点中创建虚拟路由器。
优选的,当所述目的主机为与所述本地虚拟机处于同租户网络且处于不同网段下的虚拟机时,
所述第一虚拟路由器,用于根据所述目的IP地址对应的目的MAC地址发送所述目标数据包;
所述第一网络节点,具体用于获得所述第一虚拟路由器发送的所述目标数据包;根据所述目标数据包中携带的所述目的MAC地址,确定所述目的主机所在的第二计算节点的第二隧道本地端点IP地址;基于所述第二隧道本地端点IP地址,对所述目标数据包进行三层隧道封装,得到第二封装包;将所述第二封装包发送给所述数据网交换机;
所述数据网交换机,还用于基于所述第二封装包中携带的所述第二隧道本地端点IP地址,将所述第二封装包发送至所述第二计算节点;
所述第二计算节点,用于对所述第二封装包进行解封装处理得到所述目标数据包;将所述目标数据包发送至所述目的主机。
优选的,所述第一虚拟路由器,还用于根据所述目的IP地址确定所述目标数据包对应的目的MAC地址。
优选的,每个所述网络节点中均配置有二层广播机制以及ARP响应机制,
所述第一虚拟路由器,具体用于根据所述目的IP地址广播ARP请求;
所述第一网络节点,还用于接收所述ARP请求;基于所述ARP请求、所述二层广播机制和ARP响应机制,确定对应所述目的IP地址的目的MAC地址;向所述第一虚拟路由器发送所述目的MAC地址;
所述第一虚拟路由器,具体用于接收所述第一网络节点反馈的所述目的MAC地址。
优选的,每个所述网络节点中均配置有二层广播机制,
所述第一网络节点,具体用于根据所述目的MAC地址以及所述二层广播机制,确定所述目的主机所在的第二计算节点的第二隧道本地端点IP地址。
优选的,所述数据网交换机,具体用于获得所述第一封装包的第一外层源IP地址;基于所述数据网交换机中配置的开放式最短路径优先路由协议以及等价多路径路由协议,以及网络节点中配置的开放式最短路径优先路由协议,获得当前网络架构中处于可用状态的所述网络节点;根据所述第一外层源IP地址,从处于可用状态的所述网络节点中哈希选择一个第一网络节点。
优选的,所述第一计算节点,具体用于对所述目标数据包进行三层隧道封装后,交换封装得到的封装包的外层源IP地址与内层目的IP地址,得到第一封装包;
所述第一计算节点,还用于接收到封装包后,交换接收到的封装包的外层源IP地址与内层目的IP地址,对交换后的封装包进行解封装处理,得到数据包;将数据包发送给该计算节点中的虚拟机;
所述第一网络节点,具体用于接收到第一封装包后,交换所述第一封装包的外层源IP地址与内层目的IP地址,对交换后的所述第一封装包进行解封装处理,得到所述目标数据包;
所述第一网络节点,还用于对数据包进行三层隧道封装后,交换封装得到的封装包的外层源IP地址与内层目的IP地址,得到目标封装包,将所述目标封装包发送给所述数据网交换机。
优选的,所述网络架构还包括:外网路由器,所述数据网交换机与所述外网路由器通信连接,当所述目的IP地址为外网IP地址时,
所述数据网交换机,还用于接收外网路由器发送的数据包,获得该数据包的源IP地址;基于所述数据网交换机中配置的开放式最短路径优先路由协议以及等价多路径路由协议,以及网络节点中配置的开放式最短路径优先路由协议,获得当前网络架构中处于可用状态的所述网络节点;根据该数据包的源IP地址,从处于可用状态的所述网络节点中哈希选择一个网络节点;将该数据包发送给哈希选择的网络节点;
所述第一虚拟路由器,用于针对所述目标数据包进行源地址转换,发送源地址转换后的所述目标数据包;
所述第一网络节点,具体用于获得所述第一虚拟路由器针对所述目标数据包进行源地址转换时的源地址转换信息;生成并记录与所述源地址转换信息对应的目的地址转换信息;基于所述目的IP地址,通过所述第一虚拟路由器将源地址转换后的所述目标数据包发送给所述目的主机。
优选的,所述目的IP地址属于第二虚拟路由器所服务的网段,其中,所述第二虚拟路由器所服务的网段不同于所述第一虚拟路由器所服务的网段;
所述第一虚拟路由器,用于针对所述目标数据包进行源地址转换;发送源地址转换后的所述目标数据包;
所述第一网络节点,具体用于获得所述第一虚拟路由器针对所述目标数据包进行源地址转换时的源地址转换信息;生成并记录与所述源地址转换信息对应的目的地址转换信息;获得所述第一虚拟路由器发送的源地址转换后的所述目标数据包,并通过自身配置的外部网桥将所述目标数据包发送至所述数据网交换机;
所述数据网交换机,还用于根据所述目标数据包的源IP地址,并基于所述数据网交换机中配置的开放式最短路径优先路由协议以及等价多路径路由协议,以及网络节点中配置的开放式最短路径优先路由协议,从处于可用状态的网络节点中哈希选择一个第二网络节点;将所述目标数据包发送给第二网络节点中的目标第二虚拟路由器;
所述目标第二虚拟路由器,用于对所述目标数据包进行目的地址转换,将进行目的地址转换后的所述目标数据包发送给所述目的主机。
优选的,所述第一网络节点,具体用于通过自身配置的外部网桥中所配置的流表,将所述目标数据包发送至所述数据网交换机,
其中,所述流表与经由虚拟路由器的虚拟外网接口直接发送的数据包相匹配,所述流表中包括处理动作信息:所述网络节点通过外部网桥将与所述流表相匹配的数据包发送给所述数据网交换机。
由以上可见,本发明实施例提供的方案中,计算节点与网络节点的底层网络为三层网络,所有网络节点的第一隧道本地端点IP地址相同,数据网交换机首先接收第一计算节点发送的目标数据包的第一封装包,然后基于数据网交换机中配置的开放式最短路径优先路由协议以及等价多路径路由协议,以及网络节点中配置的开放式最短路径优先路由协议,从网络节点中确定第一网络节点;向该第一网络节点发送第一封装包,以使得该第一网络节点对第一封装包进行解封装处理得到该目标数据包,并基于目标数据包中携带的目的IP地址,通过第一网络节点中的虚拟路由器将目标数据包发送给目的主机。与现有技术相比,本发明实施例中,每个网络节点中设置有预设数目个分别处理不同网段的虚拟机数据流量的虚拟路由器,任意两个网络节点中设置的虚拟路由器都相同,所有虚拟路由器均处于可用状态,另外,数据网交换机中配置有开放式最短路径优先路由协议以及等价多路径路由协议,网络节点中配置有开放式最短路径优先路由协议,因而,数据网交换机接收到同一组虚拟路由器所对应的数据包后,可以从所有的网络节点中选择一个网络节点中的该虚拟路由器来转发数据包,不同的数据包可以通过不同的网络节点中的该虚拟路由器进行转发,即分布式转发对应同一组虚拟路由器的各个数据包,实现网络流量的负载均衡。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例所应用的网络架构的第一种拓扑结构示意图;
图2为本发明实施例提供的创建虚拟路由器的流程示意图;
图3为本发明实施例所应用的网络架构的第二种拓扑结构示意图;
图4为本发明实施例提供的一种数据包发送方法的流程示意图;
图5为本发明实施例提供的第一网络节点发送目标数据包的第一种流程示意图;
图6为本发明实施例提供的第一网络节点发送目标数据包的第二种流程示意图;
图7为本发明实施例提供的第一网络节点发送目标数据包的第三种流程示意图;
图8为本发明实施例所应用的网络架构的第三种拓扑结构示意图;
图9为本发明实施例提供的一种数据包发送装置的结构示意图;
图10为本发明实施例提供的一种网络架构的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面,首先对本申请文件中涉及到的技术术语进行简单介绍。
开放式最短路径优先路由协议,简称OSPF(Open Shortest Path First)协议,是一个内部网关协议,用于在单一自治系统内决策路由。
等价多路径路由协议,简称ECMP(Equal-Cost Multipath Routing)协议,ECMP协议存在多条不同链路到达同一目的地址的网络环境中,在此类网络环境中,如果使用传统的路由技术,发往该目的地址的数据包只能利用其中的一条链路,其它链路处于备份状态或无效状态,并且在动态路由环境下相互的切换需要一定时间。而使用ECMP协议的路由技术,可以在该网络环境下同时使用多条链路,不仅增加了传输带宽,并且可以无时延、无丢包地备份失效链路的数据传输。
在本发明的方案中,数据网交换机中配置有OSPF协议以及ECMP协议,网络节点中配置有OSPF协议,由于OSPF协议应用于三层网络,所以网络节点以及计算节点的底层网络为三层网络,而且所有网络节点的隧道本地端点IP地址相同。
因此,在数据包传送到数据网交换机时,如果该数据包需要通过虚拟路由器路由转发,数据网交换机可以获知每一个网络节点与该数据网交换机的连接状态,从而判断网络节点是否处于可用状态,该数据网交换机会发现当前每一个处于可用状态的网络节点均对应为一条等价路由路径,进而在多条等价路由路径中选择一条路由路径来传输数据包。
下面从与现有技术进行对比的角度对本发明进行介绍。
上述网络架构中,存在多组虚拟路由器,不同组的虚拟路由器提供对应不同网段的虚拟机的数据包转发服务,同一组的各个虚拟路由器提供对应相同网段的虚拟机的数据包转发服务,并且,同一组的各个虚拟路由器被分配在不同的网络节点中。但是在网络架构的工作过程中,同一组的各个虚拟路由器中,仅有一个处于可用状态,即表示:仅有该处于可用状态的虚拟路由器可以向对应该组虚拟路由器的虚拟机提供数据包转发服务。
例如,网络节点1、2和3中的均配置有虚拟路由器A,虚拟路由器A负责向虚拟机1~10提供路由服务,在现有技术中,虽然网络节点1、2和3中均配置有虚拟路由器A,但是仅会存在一个网络节点中的虚拟路由器处于可用状态,假设某一时刻只有网络节点2中的虚拟路由器A处于可用状态,而网络节点1和3中的虚拟路由器A均处于非可用状态;当前状态下,虚拟机1~10的数据包全部都需要通过网络节点2中的虚拟路由器A进行转发,显然的,网络节点2中的虚拟路由器A的负载较大,数据包的传送在网络节点2中的虚拟路由器A处存在性能瓶颈问题。
而在本发明实施例提供的方案中,每个网络节点中设置有预设数目个分别处理不同网段的虚拟机数据流量的虚拟路由器,任意两个网络节点中设置的虚拟路由器都相同,所有虚拟路由器均处于可用状态,另外,数据网交换机中配置有开放式最短路径优先路由协议以及等价多路径路由协议,网络节点中配置有开放式最短路径优先路由协议,因而,数据网交换机接收到同一组虚拟路由器所对应的数据包后,可以从所有的网络节点中选择一个网络节点中的该虚拟路由器来转发数据包,不同的数据包可以通过不同的网络节点中的该虚拟路由器进行转发,即分布式转发对应同一组虚拟路由器的各个数据包,实现网络流量的负载均衡。
如上例,网络节点1、2和3中的均配置有虚拟路由器A,虚拟路由器A负责向虚拟机1~10提供路由服务,在本发明提供的方案中,网络节点1、2和3中均配置的虚拟路由器A均处于可用状态;在此状态下,虚拟机1~10的数据包到达数据网交换机时,数据网交换机会为数据包选择一个网络节点,并将数据包发送到该选择的网络节点。
例如,数据网交换机将对应虚拟机1~3的数据包全部发送给网络节点2,将对应虚拟机4~7的数据包全部发送给网络节点3,将对应虚拟机8~10的数据包全部发送给网络节点2,以使的网络节点2中虚拟路由器A负责向虚拟机1~3对应的数据包提供路由服务,网络节点3中虚拟路由器A负责向虚拟机4~7对应的数据包提供路由服务,网络节点1中虚拟路由器A负责向虚拟机8~10对应的数据包提供路由服务。
很显然的,数据网交换机接收到同一组虚拟路由器所对应的数据包后,可以从所有的网络节点中选择一个网络节点,并通过该网络节点中对应的虚拟路由器来转发数据包,不同的数据包可以通过不同的网络节点中对应的虚拟路由器进行转发,即分布式转发对应同一组虚拟路由器的各个数据包,实现网络流量的负载均衡。
下面通过具体实施例对本发明进行详细介绍。
本发明实施例提供的一种数据包发送方法,应用于目标网络架构中的数据网交换机,该目标网络架构中包括数据网交换机、计算节点和网络节点,计算节点与网络节点通过该数据网交换机相连接,计算节点与网络节点的底层网络为三层网络,网络节点中设置有预设数目个分别处理不同网段的虚拟机数据流量的虚拟路由器,任意两个网络节点中设置的虚拟路由器都相同,网络结构中的所有虚拟路由器均处于可用(active)状态,所有网络节点的第一隧道本地端点IP地址相同。
为了清楚起见,可以通过图1对本发明实施例中涉及的应用场景做简单介绍。图1为本发明实施例应用的目标网络架构的第一种拓扑结构图,图1中的Eth1以及Eth2表示接口,Internet表示外网,该目标网络架构包含有多个网络节点,多个计算节点,其中的多个网络节点以及多个计算节点通过数据网交换机相连接,应该说明的是,该数据网交换机为三层交换机。
如图1所示,本发明实施例涉及的目标网络架构还包括:控制节点以及管理网交换机,控制节点通过管理网交换机控制计算节点和网络节点,如图2所示的虚拟路由器的创建流程图,控制节点通过以下方法创建虚拟路由器:
S201:控制节点接收创建虚拟路由器的创建请求。
可以理解,当租户需要创建虚拟路由器时,可以向控制节点下发一个创建虚拟路由器的创建请求,例如通过用户界面输入,使得控制节点获得该创建请求。
S202:发送创建请求至所有网络节点中的三层代理,以使得三层代理基于创建请求,在网络节点中创建虚拟路由器。
例如,在Openstack网络架构中,可以修改openstack neutron调度方式,当需要创建一组虚拟路由器时,将该创建请求调度到每一个网络节点中的三层代理(L3agent),使得每个网络节点上都会创建一个新的虚拟路由器,共同处理该组虚拟路由器对应的所有所有虚拟机的数据流量。
图3为本发明实施例应用的目标网络机构的第二种拓扑结构图,假设当前的所有网络节点中,均只配置有虚拟路由器VR1,现在控制节点接收到一个创建虚拟路由器VR2的创建请求,则此时,控制节点将该创建请求调度给所有网络节点中的三层代理,每一个三层代理基于该创建请求,在每一个网络节点中创建虚拟路由器VR2。
另外,如图3所示,每个网络节点中都包含有隧道网桥(br-tun)、综合网桥(br-int)、外部网桥(br-ex),每个计算节点中都包含有隧道网桥(br-tun)、综合网桥(br-int),且每个计算节点中创建有不同的虚拟机,图3中的VR1和VR2表示不同的虚拟路由器,VM1~6表示不同的虚拟机。各网络节点之间、各计算节点之间,以及网络节点与计算节点之间进行通信时,数据包以封装包的形式通过隧道网桥进行传输。
如图4所示的本发明实施例提供的一种数据包发送方法的流程示意图,该方法包括:
S101:接收第一计算节点发送的目标数据包的第一封装包,其中,该目标数据包携带有目的主机的目的IP地址。
在本发明实施例中,该该目标数据包为由该第一计算节点中的本地虚拟机生成的,该第一封装包为由该第一计算节点对该目标数据包进行三层隧道封装得到的。
可以理解,此处的第一计算节点为该目标网络架构中作为数据包发送端的一个计算节点,该目标数据包是由创建在该第一计算节点中的本地虚拟机生成的。
当该目标数据包需要通过虚拟路由器进行转发时,本地虚拟机可以获知对应自身的虚拟路由器的IP(Internet Protocol,网络之间互连的协议)地址,但是并没有记录虚拟路由器的MAC(Medium/Media Access Control,媒介访问控制)地址,所以该本地虚拟机通过计算节点广播对应该虚拟路由器的IP地址的ARP(Address Resolution Protocol,地址解析协议)请求。
由于本发明实施例中,网络节点中设置有预设数目个分别处理不同网段的虚拟机数据流量的虚拟路由器,任意两个网络节点中设置的虚拟路由器都相同,所以每个网络节点都会对该ARP请求作出响应,网络节点向该第一计算节点响应的过程中,该第一计算节点还可以获知网络节点的隧道本地端点IP地址。
然后该目标数据包从该第一计算节点的隧道网桥向数据网交换机发送时,第一计算节点会在隧道网桥处,对该目标数据包封装三层报文头,得到第一封装包,该三层报文头的外层目的IP地址就是上述网络节点的隧道本端点IP地址,然后将该第一封装包发送给数据网交换机。
对于具体的三层封装技术以及计算节点获知网络节点的隧道本端点IP地址所采用的方法属于现有技术,本发明实施例在此不做详细介绍。
S102:从网络节点中确定第一网络节点。
具体的,可以是基于数据网交换机中配置的开放式最短路径优先路由协议以及等价多路径路由协议,以及网络节点中配置的开放式最短路径优先路由协议,从网络节点中确定第一网络节点。
本发明实施例中的所有网络节点的第一隧道本地端点IP地址都相同,并且数据网交换机中配置有开放式最短路径优先路由协议以及等价多路径路由协议,网络节点中配置有开放式最短路径优先路由协议。
本领域技术人员公知的是,数据网交换机基于上述配置以及该第一封装包中的外层目的IP地址,即网络节点的隧道本地端点IP地址,发现从数据网交换机与该外层目的IP地址对应的网络节点之间存在多条等价路由路径,数据网交换机可以基于预设的算法,选择一条路由路径发送该第一封装包,即从所有的网络节点中选择一个第一网络节点。
具体的,数据网交换机从所有的网络节点中选择一个网络节点的方法是多样的,例如,随机选择,或者建立网络节点与IP地址的对应关系,数据网交换机可以基于第一封装包的源IP地址或目的IP地址,选择相应的网络节点。
S103:向第一网络节点发送第一封装包,以使得第一网络节点对第一封装包进行解封装处理得到目标数据包,并基于目的IP地址,通过第一网络节点中的第一虚拟路由器将目标数据包发送给目的主机,其中,第一虚拟路由器为与本地虚拟机对应的虚拟路由器。
参照图3,该第一网络节点接收到该第一封装包后,将第一封装包由第一网络节点中的隧道网桥(br-tun)解封装后,得到上述目标数据包,此时,假设该目标数据包的目的MAC地址配置在虚拟路由器VR1的网关接口,则该第一网络节点将该目标数据包通过其上配置的br-int(综合网桥)发送到请求的虚拟路由器VR1的网关接口后,由虚拟路由器VR1根据该目标数据包携带的目的IP进行选路,进而将该目标数据包发送给该目标数据包对应的目的主机。
由以上可见,本发明实施例提供的方案中,计算节点与网络节点的底层网络为三层网络,所有网络节点的第一隧道本地端点IP地址相同,数据网交换机首先接收第一计算节点发送的目标数据包的第一封装包,然后基于数据网交换机中配置的开放式最短路径优先路由协议以及等价多路径路由协议,以及网络节点中配置的开放式最短路径优先路由协议,从网络节点中确定第一网络节点;向该第一网络节点发送第一封装包,以使得该第一网络节点对第一封装包进行解封装处理得到该目标数据包,并基于目标数据包中携带的目的IP地址,通过第一网络节点中的虚拟路由器将目标数据包发送给目的主机。与现有技术相比,本发明实施例中,每个网络节点中设置有预设数目个分别处理不同网段的虚拟机数据流量的虚拟路由器,任意两个网络节点中设置的虚拟路由器都相同,所有虚拟路由器均处于可用状态,另外,数据网交换机中配置有开放式最短路径优先路由协议以及等价多路径路由协议,网络节点中配置有开放式最短路径优先路由协议,因而,数据网交换机接收到同一组虚拟路由器所对应的数据包后,可以从所有的网络节点中选择一个网络节点中的该虚拟路由器来转发数据包,不同的数据包可以通过不同的网络节点中的该虚拟路由器进行转发,即分布式转发对应同一组虚拟路由器的各个数据包,实现网络流量的负载均衡。
另外,本发明实施例中,当计算节点的数量较多,网络流量较大时,本网络架构还可以灵活地增加网络节点的数量,每增加一个网络节点,就是增加一条等价路由路径,就可以分担一部分的网络流量。本发明实施例可以通过增加网络节点来应对数据流量的增长,对应的,就可以大大增加网络架构中计算节点的数量,也就是说,可以网络架构可以容纳更多的物理主机以及物理服务器的接入。
当目的主机为与本地虚拟机处于同租户网络且处于不同网段下的虚拟机时,如图5所示的第一网络节点发送该目标数据包的第一种流程示意图,上述基于目的IP地址,通过第一网络节点中的第一虚拟路由器将目标数据包发送给目的主机,包括:
S301:获得第一网络节点中的第一虚拟路由器根据目的IP地址对应的MAC地址发送的目标数据包。
在本发明实施例中,该目的MAC地址为第一虚拟路由器根据该目的IP地址确定的。
可以理解,该第一虚拟路由器需要为该目标数据包选路,首先需要确定该目的IP地址所对应的目的MAC地址,因此,第一虚拟路由器会广播对应于该目的IP地址的ARP请求,以获得该目的MAC地址。
本发明实施例中,为了避免对应该ARP请求的响应报文回复到不同于该第一网络节点的其他网络节点,同时为了避免ARP的泛洪,每个网络节点中均配置有二层广播机制(L2population)以及ARP响应机制(ARP Response),本领域技术人员公知的是,L2population用于将网络架构中的所有节点的MAC地址与IP地址信息同步至本地,ARPResponse负责响应本地的ARP请求。
因此,该第一虚拟路由器可以通过以下方式获得目的MAC地址:
第一步:第一虚拟路由器根据目的IP地址广播ARP请求。
第二步:接收第一网络节点反馈的目的MAC地址,其中,该目的MAC地址为:第一网络节点基于该ARP请求、二层广播机制和ARP响应机制确定的。
可以理解,第一网络节点中配置有二层广播机制和ARP响应机制,第一虚拟路由器广播的ARP请求会被第一网络节点中的隧道网桥拦截,由第一网络节点响应该第一虚拟路由器的ARP请求,即将对应该目的IP地址的目的MAC地址发送给第一虚拟路由器。
S302:根据目的MAC地址,确定目的主机所在的第二计算节点的第二隧道本地端点IP地址。
本领域技术人员公知的是,可以基于现有技术获得该第二隧道本地端点IP地址,本发明实施例中,优选的,每个网络节点中均配置有二层广播机制,所以,上述根据目的MAC地址,确定目的主机所在的第二计算节点的第二隧道本地端点的IP地址(S302),包括:
根据目的MAC地址以及二层广播机制,确定目的主机所在的第二计算节点的第二隧道本地端点IP地址。
可以理解,第一网络节点中配置有二层广播机制,第一网络节点的隧道网桥收到该目标数据包时,会根据其中的二层广播机制,匹配该目的MAC地址,获得目的主机所在的第二计算节点的第二隧道本地端点IP地址。
S303:基于第二隧道本地端点IP地址,对目标数据包进行三层隧道封装,得到第二封装包。
该第二封装包的外层源IP地址为第一网络节点的第一隧道本地端点IP地址,外层目的IP地址为该第二隧道本地端点IP地址。
S304:通过数据网交换机将第二封装包发送至第二计算节点,以使得第二计算节点对第二封装包进行解封装处理得到目标数据包,并将目标数据包发送至目的主机。
应该说明的是,该目标网络架构中的每一个计算节点的隧道本地端点IP地址都不相同,所以,数据网交换机接收到该第二封装包后,可以直接基于该第二隧道本地端点IP地址,将第二封装包发送给第二计算节点。
第二计算节点接收到该第二封装包后,会将第二封装包进行解封装处理,得到目标数据包,然后第二计算节点将该目标数据包发送给目的主机。
由以上可见,本发明实施例提供的方案中,计算节点与网络节点的底层网络为三层网络,所有网络节点的第一隧道本地端点IP地址相同,数据网交换机首先接收第一计算节点发送的目标数据包的第一封装包,然后基于数据网交换机中配置的开放式最短路径优先路由协议以及等价多路径路由协议,以及网络节点中配置的开放式最短路径优先路由协议,从网络节点中确定第一网络节点;向该第一网络节点发送第一封装包,以使得该第一网络节点对第一封装包进行解封装处理得到该目标数据包,并基于目标数据包中携带的目的IP地址,通过第一网络节点中的虚拟路由器将目标数据包发送给目的主机。与现有技术相比,本发明实施例中,每个网络节点中设置有预设数目个分别处理不同网段的虚拟机数据流量的虚拟路由器,任意两个网络节点中设置的虚拟路由器都相同,所有虚拟路由器均处于可用状态,另外,数据网交换机中配置有开放式最短路径优先路由协议以及等价多路径路由协议,网络节点中配置有开放式最短路径优先路由协议,因而,数据网交换机接收到同一组虚拟路由器所对应的数据包后,可以从所有的网络节点中选择一个网络节点中的该虚拟路由器来转发数据包,不同的数据包可以通过不同的网络节点中的该虚拟路由器进行转发,即分布式转发对应同一组虚拟路由器的各个数据包,实现网络流量的负载均衡。
在本发明实施例中,上述第一封装包为:由第一计算节点对目标数据包进行三层隧道封装后,交换封装得到的封装包的外层源IP地址与内层目的IP地址所得到的;
上述第一网络节点对第一封装包进行解封装处理得到目标数据包,包括:
第一网络节点接收到第一封装包后,交换第一封装包的外层源IP地址与内层目的IP地址;对交换后的第一封装包进行解封装处理得到目标数据包。
应该强调的是,本发明实施例中,网络节点以及计算节点使用的三层隧道封装技术应该为VXLAN(Virtual eXtensible Local Area Network,虚拟扩展局域网)、GRE(Generic Routing Encapsulation,通用路由封装)等可以封装得到包含内外层报文的隧道封装技术。
在本发明实施例中,上述基于数据网交换机中配置的开放式最短路径优先路由协议以及等价多路径路由协议,以及网络节点中配置的开放式最短路径优先路由协议,从网络节点中确定第一网络节点,包括:
获得第一封装包的第一外层源IP地址;
基于数据网交换机中配置的开放式最短路径优先路由协议以及等价多路径路由协议,以及网络节点中配置的开放式最短路径优先路由协议,获得当前目标网络架构中处于可用状态的网络节点;
根据第一外层源IP地址,从处于可用状态的网络节点中哈希选择一个第一网络节点。
应该说明的是,如果数据网接收到的数据包没有外层封装,则此时此处所述的外层源IP地址即是数据包中携带的源IP地址。
本领域技术人员公知的是,哈希选择即通过哈希算法选择结果,在本发明实施例中,哈希选择的结果与当前状态下,该目标网络架构中存在的处于可用状态的网络节点的目标数量有关,在该目标数量不变的情况下,根据相同的输入值,哈希选择的结果是相同的。
例如,假设该目标网络架构中存在有5个处于可用状态的网络节点1~5,该数据网交换机接收到一个第三封装包,基于该第三封装包的外层源IP地址,哈希选择了网络节点1,如果该数据网交换机同时还接收到另一封装包,该另一封装包与该第三封装包具有相同的外层源IP地址,则数据网交换机同样会对应该另一封装包哈希选择网络节点1。
如果上述网络节点1出现故障,处于不可用状态,当该数据网交换机接收到与上述第三封装包完全相同的封装包时,基于该封装包中与该第三封装包相同的外层源IP地址,会为该封装包从上述网络节点2~5中选择一个进行转发。
现有技术中,每个网络节点都安装配置有L3 agent,L3 agent中的HighAvailability(高可用)功能选项处于打开状态,VRRP(Virtual Router RedundancyProtocol,虚拟路由冗余协议)提供active/passive的弹性以太网服务。
即在现有技术中,同一组的虚拟路由器,仅有处于可用状态的虚拟路由器提供数据包路由服务,处于非可用状态的虚拟路由器不提供数据包路由服务,但是处于非可用状态的虚拟路由器处于一种备用状态,当当前处于可用状态的虚拟路由器所处的网络节点出现故障而不可用时,系统会从处于非可用状态的虚拟路由器中重新选择一个虚拟路由器升级为可用状态的虚拟路由器。
对应于现有技术中的高可用模式,本发明实施例中,如上所述,当某一网络节点出现故障时,数据网交换机仍然可以为数据包从该时刻处于可用状态的网络节点中哈希选择一个网络节点,来通过该网络节点中对应的虚拟路由器转发数据包。
如图1所示,本发明实施例中,目标网络架构还包括:外网路由器,数据网交换机与该外网路由器通信连接,当目的IP地址为外网IP地址时,如图6所示的第一网络节点发送该目标数据包的第二种流程示意图,上述基于目的IP地址,通过第一网络节点中的第一虚拟路由器将目标数据包发送给目的主机,包括:
S305:获得第一网络节点中的第一虚拟路由器针对目标数据包进行源地址转换时的源地址转换信息。
与现有技术相同的是,第一虚拟路由器需要对目标数据包进行源地址转换(SNAT转换),是因为目标数据包中携带的是本地虚拟机的内网私有IP地址,并不是外网公用IP地址。
如果该本地虚拟机分配有Floating(浮动)IP地址,则源地址转换指该第一虚拟路由器会:将该目标数据包中携带的本地虚拟机的内网私有IP地址替换成该浮动IP地址。
如果该本地虚拟机没有被配置浮动IP地址,该虚拟虚拟路由器需要将:该目标数据包中携带的本地虚拟机的内网私有IP地址替换成该第一虚拟路由器上配置的外网接口的IP地址。进一步的,为了区分不同的虚拟机,对于UDP(User Datagram Protocol,用户数据报协议)或者TCP(Transmission Control Protocol,传输控制协议)类型的数据包,虚拟路由器会将虚拟机源IP地址和端口转换为路由器上配置的外网接口地址+未占用的端口;对于ICMP(Internet Control Message Protocol,控制报文协议)类型的数据包,通过ICMP头部的type+identifier进行区分。
对于源地址转换的具体实现方式,可以依据现有技术实现,本发明实施例中,可以
配置iptables(一种Linux内核集成的IP信息包过滤系统)的规则,以实现源地址转换的自
动执行,例如:
iptables-A neutron-l3-agent-snat-s租户网段-j SNAT--to-source虚拟路由
器外网IP。
S306:生成并记录与源地址转换信息对应的目的地址转换信息。
在此应该说明的是,源地址转换信息包含数据包的进行源地址转换前的源IP地址、目的IP地址,以及进行源地址转换后的源IP地址、目的IP地址;相应的,目的地址转换信息包含数据包的进行目的地址转换前的源IP地址、目的IP地址,以及进行目的地址转换后的源IP地址、目的IP地址。另外,源地址转换信息以及目的地址转换信息中除了包含IP地址的转换信息外,还应该包含标识信息的转换关系,如端口或者上述type+identifier。
假设该目标数据包是对于UDP或者TCP类型的数据包,则具体的源地址转换信息以及目的地址转换信息参见下表1,表1中“发包SNAT转换”对应的一行记录的是源地址转换信息,“收包DNAT学习”对应的一行记录的是目的地址转换信息。
表1
S307:基于目的IP地址,通过第一虚拟路由器将源地址转换后的目标数据包发送给目的主机。
可以理解,当该目的IP地址为外网IP地址时,第一虚拟路由器会将源地址转换后的目标数据包发送数据网交换机,然后由数据网交换机发送给外网路由器,最后由外网路由器将该目标数据包发送给目的主机
应该说明的是,如果该本地虚拟机被分配有浮动IP地址,此时的源地址转换为1:1SNAT转换,表1中的源地址转换信息以及目的地址转换信息会存在于目标网络架构中的每一个网络节点中;但是,如果该本地虚拟机未被分配浮动IP地址,此时的源地址转换为N:1SNAT转换,表1中的源地址转换信息以及目的地址转换信息仅会存在于第一虚拟路由器所处的网络节点,即第一网络节点。
应该注意的是,在该本地虚拟机未被分配浮动IP地址的情况下,仅有第一网络节点中存储有上述源地址转换信息以及目的地址转换信息,所以对应该目标数据包的回包必须要通过第一网络节点才能够将对应的回包发送给该本地虚拟机。
本发明实施例中,上述第一封装包为:由第一计算节点对目标数据包进行三层隧道封装后,交换封装得到的封装包的外层源IP地址与内层目的IP地址所得到的,可以理解,交换后的外层源IP地址为目的主机的目的IP地址,然后数据网交换机基于该目的IP地址哈希选择了第一网络节点。
而当该目的IP地址为外网IP地址时,目标数据包对应的回包的源IP地址就是前述目的IP地址,及该外网IP地址,因此该数据网交换机还是会基于该目的IP地址哈希选择第一网络节点来转发该回包。由于第一网络节点中存储有上述源地址转换信息以及目的地址转换信息,所以第一网络节点可以将回包转发给该本地虚拟机。
现有技术中,为了优化虚拟路由器的性能瓶颈,提出有DVR和Dragon flow解决方案。这些方案优化了网络流量,使得同一个租户网络内的流量可以直接在计算机节点间进行转发,减轻网络节点的负载。
DVR方案将路由从专一的网络节点分散到所有计算节点来解决网络性能瓶颈。DVR方案中,除了将L3 agent部署在网络节点,还需要部署在计算节点。当租户创建一个虚拟路由器时,会在每一个计算节点启动一个DVR虚拟路由器,同一个租户内的虚拟机通信可以直接由计算节点上的DVR虚拟路由器转发到属于同一租户网络的其他计算节点的虚拟机。
并且,DVR方案通过为每台计算节点增加一块外网访问网卡,实现本地处理部分南北向流量。即对于配置了浮动IP地址的虚拟机外网访问,数据包在本地虚拟路由器完成将虚拟机内网地址转换成对应的浮动IP地址,并通过本地的外网访问网卡转发出去。
对于没有配置浮动IP地址的虚拟机的外网访问,内网地址会被网络节点的L3agent替换成一个统一的外网地址,进行N:1的SNAT转换。转换的地址是创建虚拟路由时,分配给虚拟路由器的公网IP地址,该地址被分享给所有连接该虚拟路由器的虚拟机使用。通过该公网IP地址+端口区分了该虚拟机路由器下没有配置浮动IP地址的虚拟机的访问流量。因此,对于没有配置浮动IP地址的虚拟机的外网访问,仍然是只能从一个处于可用状态的虚拟路由器上进行转发,DVR实现了部分分布式路由的功能。
Dragon flow通过可插拔,无状态,轻量级的SDN Controller(Software DefinedNetwork,SDN控制器)完全分布式,实现了租户的跨子网(东西向)流量互通,不再需要流经网络节点。但是对于南北向流量,仍然需要通过网络节点实现转发。
综上,为了解决转发性能瓶颈,DVR和Dragon flow方案分离了东西向流量,解决了东西向流量分布式,将同租户下虚拟路由器的东西向流量本地处理。然而,都没有很好地解决南北向流量的性能瓶颈。
DVR方案将三层的转发(L3 Forwarding)和DNAT(目的地址组转换)功能都下发到计算节点上,这意味着计算节点也有了网络节点的功能。计算节点增加了一个外网物理接口,对于配置有浮动IP地址的云主机,可以通过外网接口直接发送到外网;但是对于没有配置浮动IP地址的云主机,DVR方案需要通过网络节点的虚拟路由器运行SNAT功能,实现共享上网,即没有解决虚拟机的南北向流量在没有配置浮动IP地址的情况下网络流量的分布式处理,也就是说,在此情况下,网络架构中还是存在前述性能瓶颈问题。
另外,DVR方案对实际运维也带来了很大的挑战,当网络出现故障时,由于数据包路径过长,同时,网络路径上捕获的数据包的MAC地址都是虚拟MAC地址,很难定位。而Dragon flow方案使用SDN的理念解决了DVR方案调试复杂,转发流程复杂的问题,通过流表的配置实现东西向流量的转发,然而没有解决南北向流量的性能瓶颈问题。
现有技术在处理南北向流量时存在单点性能瓶颈问题,是由于现有技术可以通过active/passive实现虚拟路由器的高可用,然而并不能提供active/active的以太网服务。具体原因如下:
一、对于没有配置浮动IP地址的场景,网络节点上的虚拟路由器使用iptables实
现端口转换,所有的NAT转换信息都存在于该网络节点的内存中,同时该NAT转换信息会有
一个超时时间。当超时时间后,该NAT转换信息会从内存中释放删除。而且网络架构中的其
他网络节点并不共享该NAT转换信息;而对于配置了浮动IP地址的场景,该NAT转换信息为
静态配置,且为1:1映射,故在多台网络节点可以共享。
二、当同一组的虚拟路由器中,存在多个处于可用状态的虚拟路由器时,由于这些虚拟路由器位于多个网络节点上,这些网络节点通过交换机和计算节点连接,但是现有的配置方式下,交换机不能支持有个具有相同的IP地址和MAC地址的虚拟路由器位于不同的交换机端口上。即在交换机层面,一组虚拟路由器中交换机也只能支持一个处于可用状态的虚拟路由器。即使手工创建了多个处于可用状态的虚拟路由器,交换机也会随机选择一个虚拟路由器工作。这样,当数据包发送和接收的路径不一致时,就会造成NAT状态的丢失,使得数据包不能正常转发。
结合图4和6所示方法实施例,本发明实施例提供的方案中,虚拟机的东西向流量和南北向流量都可以通过网络节点进行分布式转发,实现了分布式NAT功能,尤其是对于南北向的数据流量,突破性地实现了分布式SNAT功能,保证了回包的准确性。
与现有技术相比,本发明实施例中,每个网络节点中设置有预设数目个分别处理不同网段的虚拟机数据流量的虚拟路由器,任意两个网络节点中设置的虚拟路由器都相同,所有虚拟路由器均处于可用状态,另外,数据网交换机中配置有开放式最短路径优先路由协议以及等价多路径路由协议,网络节点中配置有开放式最短路径优先路由协议,因而,数据网交换机接收到同一组虚拟路由器所对应的数据包后,可以从所有的网络节点中选择一个网络节点中的该虚拟路由器来转发数据包,不同的数据包可以通过不同的网络节点中的该虚拟路由器进行转发,即分布式转发对应同一组虚拟路由器的各个数据包,实现网络流量的负载均衡。
当该目的IP地址属于第二虚拟路由器所服务的网段,而第二虚拟路由器所服务的网段不同于第一虚拟路由器所服务的网段时;如图7所示的第一网络节点发送该目标数据包的第三种流程示意图,上述基于目的IP地址,通过第一网络节点中的第一虚拟路由器将目标数据包发送给目的主机,包括:
S308:获得第一网络节点中的第一虚拟路由器针对目标数据包进行源地址转换时的源地址转换信息。
S309:生成并记录对应源地址转换信息的目的地址转换信息。
此处的步骤S308以及S309分别同前述步骤S305以及S306相同,本发明实施例在此不再详细说明。
S3010:获得第一虚拟路由器发送的源地址转换后的目标数据包,并通过第一网络节点中配置的外部网桥将目标数据包发送至数据网交换机,以使得数据网交换机将目标数据包转发至第二网络节点中的目标第二虚拟路由器,目标第二虚拟路由器对目标数据包进行目的地址转换后,将目标数据包发送给目的主机;
其中,该第二网络节点为:数据网交换机在接收到第一网络节点发送的目标数据包时,从该时刻处于可用状态的网络节点中哈希选择的一个网络节点,该时刻处于可用状态的网络节点为:数据网交换机根据该时刻目标数据包的源IP地址,并基于数据网交换机中配置的开放式最短路径优先路由协议以及等价多路径路由协议,以及网络节点中配置的开放式最短路径优先路由协议确定的。
应该说明的是,此处该目的IP地址属于第二虚拟路由器所服务的网段,而第二虚拟路由器所服务的网段不同于第一虚拟路由器所服务的网段,该第二虚拟路由器可以是同一租户网络中的一组虚拟路由器,也可以是其它租户网络中的一组虚拟路由器。应该说明的是,此处的第二虚拟路由器表示一组虚拟路由器,而前述第一虚拟路由器表示第一网络节点中对应前述本地虚拟机的一个虚拟路由器。
可以理解,在此情况下,该第一虚拟路由器会基于该目标数据包的目的IP地址查找路由,发现该目的IP地址不属于其下的内网地址,然后,第一虚拟路由器对目标数据包进行源地址转换后,由第一网络节点通过外部网桥将源地址转换后的目标数据包发送给数据网交换机。
如图2所示,假设第一网络节点为图2中的网络节点1,第一虚拟路由器为网络节点1中的虚拟路由器VR1,上述第二虚拟路由器指所有的虚拟路由器VR2,数据网交换机收到该目标数据包后,数据网交换机发现对应该目的IP地址存在多条等价路由,此时数据网交换机再次根据当前目标数据包中的源IP地址,即源地址交换后的源IP地址哈希选择网络节点进行转发,假设哈希选择了网络节点2,则上述数据网交换机将目标数据包发送到网络节点2上的虚拟路由器VR2。
网络节点2上的虚拟路由器VR2接收到目标数据包后,由于目的IP地址是浮动IP地址,所以首先需要进行目的地址转换,而且网络节点2的内存中必然存在有对应的目的地址转换信息,网络节点2上的虚拟路由器VR2将该目的IP地址转换为目的主机的固定私有IP地址。
最后通过网络节点2中的隧道网桥将目标数据包再次封装并发送给目的主机。
相应的,对应于目标数据包的回包,由前述目的主机向该本地虚拟机发送。该回包经该目的主机发送给数据网交换机时,会被该目的主机所在的计算节点封装,同时在封装后交换外层源IP地址以及内层目的IP地址,交换后的外层源IP地址为虚拟路由器VR1的IP地址。
数据网交换机接收到该回包的封装包后,根据虚拟路由器VR1的IP地址进行哈希选择网络节点,由前述数据包的发送过程可知,此时数据网交换机依然会选择网络节点2。网络节点2获得该回包的封装包后,由网络节点2中的虚拟路由器VR2进行源地址转换,并查询路由,同理,网络节点2向数据网交换机发送的回包中,源IP地址为前述目的IP地址,所以数据网交换机选择网络节点1,并向网络节点1发送该回包,由于网络节点1中必然存有NAT转换信息,所以回包可以被发送到前述的本地虚拟机中。
在本发明实施例中,上述通过第一网络节点中配置的外部网桥将目标数据包发送至数据网交换机,可以包括:
通过第一网络节点中配置的外部网桥所配置的流表,将目标数据包发送至数据网交换机;
其中,该流表与经由虚拟路由器的虚拟外网接口直接发送的数据包相匹配,该流表中包括处理动作信息:网络节点通过外部网桥将与该流表相匹配的数据包发送给数据网交换机。
例如,假设第一网络节点为图2中的网络节点1,第一虚拟路由器为网络节点1中的虚拟路由器VR1,上述第二虚拟路由器指所有的虚拟路由器VR2,并且目标数据包的目的IP地址为虚拟路由器VR2对应的虚拟机所被分配的浮动IP地址。
当第一虚拟路由器接收到目标数据包时,会基于该目标数据包的目的IP地址路由,因为网络节点1中同样存在虚拟路由器VR2,所以网络节点1中的虚拟路由器VR1可能直接将目标数据包发送给:网络节点1中的虚拟路由器VR2,为避免此情况的发生,上述配置的流表,使得外部网桥上收到的所有从虚拟外网接口发过来的数据包,直接从物理网卡发送给数据网交换机。
本发明实施例提供的方案中,虚拟机的东西向流量和南北向流量都可以通过网络节点进行分布式转发,实现了分布式NAT功能,尤其是对于南北向的数据流量,突破性地实现了分布式SNAT功能,保证了回包的准确性。
与现有技术相比,本发明实施例中,每个网络节点中设置有预设数目个分别处理不同网段的虚拟机数据流量的虚拟路由器,任意两个网络节点中设置的虚拟路由器都相同,所有虚拟路由器均处于可用状态,另外,数据网交换机中配置有开放式最短路径优先路由协议以及等价多路径路由协议,网络节点中配置有开放式最短路径优先路由协议,因而,数据网交换机接收到同一组虚拟路由器所对应的数据包后,可以从所有的网络节点中选择一个网络节点中的该虚拟路由器来转发数据包,不同的数据包可以通过不同的网络节点中的该虚拟路由器进行转发,即分布式转发对应同一组虚拟路由器的各个数据包,实现网络流量的负载均衡。
另外,在本发明实施例中,如图8所示,当计算节点对应的数据量过多,需要连接多台交换机时,可以采用换机堆叠技术,如图,即将多个TOR交换机堆叠,然后让计算节点连接到TOR交换机上,TOR交换机连接数据网交换机。另外,考虑到数据网络交换机的冗余,本发明还可以采用双数据网交换机对数据流量进行冗余备份。
在本发明实施例中,鉴于LB(负载均衡)、VPN(Virtual Private Network,虚拟专用网络)等服务需要建立一个点对点的连接,如果网络架构中的同一组虚拟路由器中,存在多个处于可用状态的虚拟路由器时,和对端建立的TCP(Transmission Control Protocol,传输控制协议)连接就会出错。此时,可以考虑将L3agent进行分类,增加L3agent的type字段。
当需要部署VPN、LB等服务时,选择创建Legacy或者HA((High Available,高可用)模式的虚拟路由器,此时选择相应的L3agent进行调度。当然,运行HA或者Legacy模式对应的L3agent的网络节点需要设置的隧道本地端点IP地址和其它支持active-active的网络节点不同。
此外,为了提高端口的带宽,可以在网络节点和数据网络交换机上配置双端口bonding(绑定),增加带宽,同时避免单块网卡故障。
为了清楚起见,下面以Openstack网络架构为例,对本发明实施例所涉及的网络架构的配置进行简单介绍。
OpenStack是一个开源的IaaS(基础设施及服务)云计算平台,旨在为公共及私有云的建设与管理提供软件,OpenStack是由一系列相互关联的项目提供云基础设施解决方案的各个组件组成,其中Neutron是负责网络的组件,提供云计算环境下的虚拟网络功能。Neutron的功能包括:支持配置多种租户网络类型及封装技术例如,FLAT、VLAN(VirtualLocal Area Network,虚拟局域网)、VXLAN封装技术、GRE,支持创建虚拟路由器、网络、防火墙,VPN(虚拟专用网络),Load-Balance(负载均衡)等。
Neutron的组件包括:
Neutron Server:这一部分包含守护进程neutron-server和各种插件neutron-*-plugin,它们既可以安装在控制节点也可以安装在网络节点。neutron-server提供API(Application Programming Interface,应用程序编程接口),并把对API的调用请求传给已经配置好的插件进行后续处理。插件需要访问数据库来维护各种配置数据和对应关系,例如路由器、网络、子网、端口、浮动IP地址、安全组等等。
插件代理(Plugin Agent):虚拟网络上的数据包的处理则是由此插件代理来完成的,该插件代理名为neutron-*-agent,在每个计算节点和网络节点上运行,该代理与Neutron Server及其插件的交互通过消息队列来支持。
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)代理(DHCPAgent):名为neutron-dhcp-agent,为各个租户网络提供DHCP服务,部署在网络节点上,各个插件也是使用这一个代理。
3层代理(L3Agent):名为neutron-l3-agent,为虚拟机访问外部网络提供3层转发服务,也部署在网络节点上。
另外对于VPN以及Load-balance都有各自不同的代理。
Neutron对虚拟三层网络的实现是通过其L3Agent,该代理利用Linux(一种操作系
统)IP栈、虚拟路由器和iptables来实现不同网络内的虚拟机之间的网络东西向流量,以及
虚拟机和外网之间网络流量的路由和转发。为了在同一个Linux系统上支持可能的IP地址
空间重叠,Neutron使用了Linux network namespace(命名空间)来提供隔离的转发上下
文。
Neutron现有架构中网络节点集中完成L3agent的运行及虚拟路由器的创建。
部署OpenStack网络架构时,首先,选择若干个节点作为计算节点,若干个节点作为网络节点,若干节点作为计算节点后,开始安装部署Openstack服务。然后开始配置管理网络,通过管理网交换机连接控制节点、计算节点和网络节点。
配置计算节点和网络节点的底层租户网络类型为使用三层隧道封装技术VXLAN的三层网络,并将所有网络节点的隧道本地端点IP地址设置成相同的值,如图3所示,网络节点的隧道本地端点IP地址配置在网络节点的隧道网桥(br-tun),保证多个网络节点对外呈现出是相同的数据通路。配置网络节点的外部网桥(br-ex)映射到Eth2接口,即将Eth2接口添加到外部网桥(br-ex)网桥上。
为了便于介绍,将内外网流量共用一个物理接口转发,即将网络节点中的隧道网桥(br-tun)的IP地址配置到外部网桥(br-ex)上,使得经VXLAN封装后的数据包经过Linux内部路由发送到外部网桥(br-ex)上,再由外部网桥通过Eth2接口将数据包发送到数据网交换机。
当然,在网络节点中可以将内外网分离,隧道网桥(br-tun)的IP地址配置到其他的接口,外部网桥(br-ex)仍连接到Eth2接口,则此时需要在该其他的接口上配置OSPF子接口,外部网桥(br-ex)也需要配置OSPF子接口。外部网桥以及该其他的接口都需要和数据网络交换机建立对等关系。
但是,应该注意,每个计算节点的隧道网桥(br-tun)设置有不同的隧道本地端点IP地址。另外,将计算节点和网络节点的隧道本地端点IP地址配置到不同的网段,他们之间通过数据网交换机这一三层交换机进行连接,并将计算节点的网关配置到数据网交换机上,保证隧道地址的三层连通性。计算节点配置的隧道本地端点IP地址可以直接配置在计算节点中的Eth2接口上。
网络节点配置OSPF协议,OSPF协议可以配置在网络界点中外部网桥(br-ex)的子接口上,不同的网络节点中该子接口的IP地址配置不同,网络节点通过该子接口和数据网交换机建立连接关系,用于通告多个相同的隧道本地端点IP地址对应的路由路径的可达性。
数据网交换机配置OSPF协议,同时配置ECMP协议,设置等价多路径规则为源IP地址哈希算法,即当数据网交换机接收到发往网络节点的封装包时,会根据数据包的外层源IP地址进行哈希选择网络节点,当数据网交换机接收到发往网络节点的数据包时,且该数据包没有封装三层报文头,会根据数据包的源IP地址进行哈希选择网络节点。
在网络节点以及计算节点中配置一个辅助机制,即:无论是网络节点还是计算节点,当接收到封装包时,先交换封装包的外层源IP地址与内层源IP地址,然后再解除封装包的三层隧道封装;当发送封装包时,先交换封装包的外层源IP地址与内层源IP地址,然后再将做了上述交换处理的封装包发送出去。
另外,网络节点开启L2population和ARP Response,用于网络节点给虚拟机发送数据包时,定位虚拟机所在计算节点的VXLAN端口和虚拟机MAC地址。
配置新的创建虚拟路由器的流程:在当从UI(User Interface,用户界面)或者命令行创建一个虚拟路由器后,该请求会被Neutron Server调度到所有网络节点的L3agent,L3agent收到请求后,响应Neutron Server的Rpc(Remote Procedure Call Protocol,远程过程调用协议)消息,创建虚拟路由器。
在上述配置中,网络节点的数据包路径为:通过隧道网桥封装的数据包再通过外部网桥发送出去;虚拟机发往外网的数据包由虚拟路由器的虚拟外网接口经外部网桥发送出去;从外网接收的数据包通过外网路由器,经过数据网交换机后,发送给外部网桥连接的接口。
此外,更具体的,在物理主机中,VXLAN的配置方法如下:
第一步,修改配置文件ovs_neutron_plugin.ini,即:
[OVS]
tenant_network_type=vxlan。
第二步:修改配置文件ml2_conf.ini,即:
[ml2_type_vxlan]
vni_ranges=1001:2000
vxlan_group=239.1.1.1
tunnel_types=vxlan
vxlan_udp_port=8472。
另外,修改配置文件ovs_neutron_plugin.ini,将多个网络节点设置成相同的隧道本地端点IP地址。
integration_bridge=br-int
tunnel_bridge=br-tun
local_ip=192.168.10.75。
为了将Eh2接口绑定到外部网桥上,同时配置隧道网桥对应的所需的隧道本地端点IP地址到外部网桥上。编辑/etc/sysconfig/network-scripts/ifcfg-br-ex,修改下面的内容:
IPADDR=192.168.60.75
GATEWAY=192.168.60.254
NETMASK=255.255.255.0
由于网络节点需要知道计算节点的MAC地址,当存在多个出与可用状态的网络节点,计算节点请求虚拟机MAC地址时,交换机只能将ARP响应发送到某一个网络节点,因此为了让所有的网络节点都能获取到虚拟机的MAC地址和所在计算节点的隧道本地端点IP地址,在网络节点上开启L2population,当虚拟路由器请求虚拟机的MAC地址和虚拟机所在的计算节点的隧道本地端点IP地址时,网络节点中的隧道网桥可以拦截ARP请求,并响应ARP请求。
配置L2 population以及ARP Response的方法为:
l2_population=True,
arp_responder=True。
由于配置的多个网络节点具有相同隧道本地端点IP地址,为了使得让交换机发现这多条等价路径,需要在网络节点配置OSPF协议,以便支持等价多路径功能。现有的开源OSPF路由协议可以从Quagga(一款开源路由软件)套件中安装配置。前述网络节点中外部网桥的子接口的配置和OSPF协议配置如下,以网络节点1为例:
ip addr add 192.168.0.1/30dev br-ex,增加一个网络子接口,
对应连接的数据网络交换机的接口配置为192.168.0.2/30。
通过上述的配置br-ex接口地址为:
br-ex:<BROADCAST,MULTICAST,UP,LOWER_UP>mtu 1500qdisc noqueue stateUNKNOWN
link/ether 80:38:bc:07:5d:33 brd ff:ff:ff:ff:ff:ff
inet 192.168.60.75/24brd 192.168.60.255 scope global br-ex
valid_lft forever preferred_lft forever
inet 192.168.0.1/30brd 192.168.0.3 scope global br-ex:1
valid_lft forever preferred_lft forever
inet6fe80::8238:bcff:fe07:5d33/64 scope link
valid_lft forever preferred_lft forever
网络节点1上配置OSPF命令如下:
router ospf
redistribute connected<通告br-tun地址和floating ip地址>
network 192.168.0.1/30area 0.0.0.0<建立邻接关系>
另外,还需重启Neutron L3 agent、重启Neutron L2 agent。
与上述方法实施例相对应,本发明实施例还提供了一种数据包发送装置,应用于目标网络架构中的数据网交换机,所述目标网络架构中包括数据网交换机、计算节点和网络节点,所述计算节点与所述网络节点通过所述数据网交换机相连接,所述计算节点与所述网络节点的底层网络为三层网络,所述网络节点中设置有预设数目个分别处理不同网段的虚拟机数据流量的虚拟路由器,任意两个所述网络节点中设置的虚拟路由器都相同,所有所述虚拟路由器均处于可用状态,所有所述网络节点的第一隧道本地端点IP地址相同;
如图9所示的本发明实施例提供的一种数据包发送装置的结构示意图,所述装置包括:
接收模块110,用于接收第一计算节点发送的目标数据包的第一封装包,其中,所述目标数据包为:所述第一计算节点中的本地虚拟机生成的,所述目标数据包携带有目的主机的目的IP地址,所述第一封装包为:由所述第一计算节点对所述目标数据包进行三层隧道封装得到的。
确定模块120,用于从所述网络节点中确定第一网络节点。
发送模块130,用于向所述第一网络节点发送所述第一封装包,以使得所述第一网络节点对所述第一封装包进行解封装处理得到所述目标数据包,并基于所述目的IP地址,通过所述第一网络节点中的第一虚拟路由器将所述目标数据包发送给所述目的主机,其中,所述第一虚拟路由器为与所述本地虚拟机对应的虚拟路由器。
具体的,所述目标数据包为所述第一计算节点中的本地虚拟机生成的,所述第一封装包为由所述第一计算节点对所述目标数据包进行三层隧道封装得到的。
具体的,所述确定模块120,具体用于基于所述数据网交换机中配置的开放式最短路径优先路由协议以及等价多路径路由协议,以及所述网络节点中配置的开放式最短路径优先路由协议,从所述网络节点中确定第一网络节点。
具体的,所述第一封装包为:由所述第一计算节点对所述目标数据包进行三层隧道封装后,交换封装得到的封装包的外层源IP地址与内层目的IP地址所得到的;
所述第一网络节点对所述第一封装包进行解封装处理得到所述目标数据包,包括:
所述第一网络节点接收到所述第一封装包后,交换所述第一封装包的外层源IP地址与内层目的IP地址;
对交换后的所述第一封装包进行解封装处理得到所述目标数据包;
所述确定模块120,包括第一获得子模块、第二获得子模块以及哈希选择子模块(图中未示出):
所述第一获得子模块,用于获得所述第一封装包的第一外层源IP地址;
所述第二获得子模块,用于基于所述数据网交换机中配置的开放式最短路径优先路由协议以及等价多路径路由协议,以及网络节点中配置的开放式最短路径优先路由协议,获得当前所述目标网络架构中处于可用状态的所述网络节点;
所述哈希选择子模块,用于根据所述第一外层源IP地址,从处于可用状态的所述网络节点中哈希选择一个第一网络节点。
由以上可见,本发明实施例提供的方案中,计算节点与网络节点的底层网络为三层网络,所有网络节点的第一隧道本地端点IP地址相同,数据网交换机首先接收第一计算节点发送的目标数据包的第一封装包,然后基于数据网交换机中配置的开放式最短路径优先路由协议以及等价多路径路由协议,以及网络节点中配置的开放式最短路径优先路由协议,从网络节点中确定第一网络节点;向该第一网络节点发送第一封装包,以使得该第一网络节点对第一封装包进行解封装处理得到该目标数据包,并基于目标数据包中携带的目的IP地址,通过第一网络节点中的虚拟路由器将目标数据包发送给目的主机。与现有技术相比,本发明实施例中,每个网络节点中设置有预设数目个分别处理不同网段的虚拟机数据流量的虚拟路由器,任意两个网络节点中设置的虚拟路由器都相同,所有虚拟路由器均处于可用状态,另外,数据网交换机中配置有开放式最短路径优先路由协议以及等价多路径路由协议,网络节点中配置有开放式最短路径优先路由协议,因而,数据网交换机接收到同一组虚拟路由器所对应的数据包后,可以从所有的网络节点中选择一个网络节点中的该虚拟路由器来转发数据包,不同的数据包可以通过不同的网络节点中的该虚拟路由器进行转发,即分布式转发对应同一组虚拟路由器的各个数据包,实现网络流量的负载均衡。
与上述方法实施例相对应,本发明实施例还提供了一种网络架构,如图10所示的一种网络架构的结构示意图,包括数据网交换机、计算节点和网络节点,所述计算节点与所述网络节点通过所述数据网交换机相连接;如图,该网络结构中包含有多个网络节点:第一网络节点以及多个网络节点1~N,多个计算节点:第一计算节点以及多个计算节点1~M。
所述计算节点与所述网络节点的底层网络为三层网络,所述网络节点中设置有预设数目个分别处理不同网段的虚拟机数据流量的虚拟路由器,任意两个所述网络节点中设置的虚拟路由器都相同,所有所述虚拟路由器均处于可用状态,所有所述网络节点的第一隧道本地端点IP地址相同;
所述计算节点中,作为数据包发送端的第一计算节点,用于向所述数据网交换机发送目标数据包的第一封装包,其中,所述目标数据包携带有目的主机的目的IP地址;
所述数据网交换机,用于接收所述第一计算节点发送的所述第一封装包;从所述网络节点中确定第一网络节点;向所述第一网络节点发送所述第一封装包;
所述第一网络节点用于,接收所述数据网交换机发送的所述第一封装包;对所述第一封装包进行解封装处理,得到所述目标数据包;基于所述目的IP地址,通过所述第一网络节点中的第一虚拟路由器将所述目标数据包发送给所述目的主机,其中,所述第一虚拟路由器为与所述本地虚拟机对应的虚拟路由器。
具体的,所述第一计算节点,具体用于将本地虚拟机生成的目标数据包进行三层隧道封装,得到第一封装包;向所述数据网交换机发送所述第一封装包。
在实际应用中,具体的,所述数据网交换机,具体用于基于所述数据网交换机中配置的开放式最短路径优先路由协议以及等价多路径路由协议,以及所述网络节点中配置的开放式最短路径优先路由协议,从所述网络节点中确定第一网络节点。
结合图10,如图1所示,所述网络架构还包括:控制节点以及管理网交换机,所述控制节点通过所述管理网交换机控制所述计算节点和所述网络节点,
所述控制节点,用于接收创建虚拟路由器的创建请求;发送所述创建请求至所有所述网络节点中的三层代理;
所述三层代理,用于基于所述创建请求,在所述网络节点中创建虚拟路由器。
由以上可见,本发明实施例提供的方案中,计算节点与网络节点的底层网络为三层网络,所有网络节点的第一隧道本地端点IP地址相同,数据网交换机首先接收第一计算节点发送的目标数据包的第一封装包,然后基于数据网交换机中配置的开放式最短路径优先路由协议以及等价多路径路由协议,以及网络节点中配置的开放式最短路径优先路由协议,从网络节点中确定第一网络节点;向该第一网络节点发送第一封装包,以使得该第一网络节点对第一封装包进行解封装处理得到该目标数据包,并基于目标数据包中携带的目的IP地址,通过第一网络节点中的虚拟路由器将目标数据包发送给目的主机。与现有技术相比,本发明实施例中,每个网络节点中设置有预设数目个分别处理不同网段的虚拟机数据流量的虚拟路由器,任意两个网络节点中设置的虚拟路由器都相同,所有虚拟路由器均处于可用状态,另外,数据网交换机中配置有开放式最短路径优先路由协议以及等价多路径路由协议,网络节点中配置有开放式最短路径优先路由协议,因而,数据网交换机接收到同一组虚拟路由器所对应的数据包后,可以从所有的网络节点中选择一个网络节点中的该虚拟路由器来转发数据包,不同的数据包可以通过不同的网络节点中的该虚拟路由器进行转发,即分布式转发对应同一组虚拟路由器的各个数据包,实现网络流量的负载均衡。
另外,本发明实施例中,当计算节点的数量较多,网络流量较大时,本网络架构还可以灵活地增加网络节点的数量,每增加一个网络节点,就是增加一条等价路由路径,就可以分担一部分的网络流量。本发明实施例可以通过增加网络节点来应对数据流量的增长,对应的,就可以大大增加网络架构中计算节点的数量,也就是说,可以网络架构可以容纳更多的物理主机以及物理服务器的接入。
结合图10与图3,假设图3中网络节点1为所述第一网络节点,网络节点1中的虚拟路由器VR1为所述第一虚拟路由器,计算节点1为所述第一计算节点。当所述目的主机为与所述本地虚拟机处于同租户网络且处于不同网段下的虚拟机时,
所述第一虚拟路由器,用于根据所述目的IP地址对应的目的MAC地址发送所述目标数据包;
所述第一网络节点,具体用于获得所述第一虚拟路由器发送的所述目标数据包;根据所述目标数据包中携带的所述目的MAC地址,确定所述目的主机所在的第二计算节点的第二隧道本地端点IP地址;基于所述第二隧道本地端点IP地址,对所述目标数据包进行三层隧道封装,得到第二封装包;将所述第二封装包发送给所述数据网交换机;
所述数据网交换机,还用于基于所述第二封装包中携带的所述第二隧道本地端点IP地址,将所述第二封装包发送至所述第二计算节点;
所述第二计算节点,用于对所述第二封装包进行解封装处理得到所述目标数据包;将所述目标数据包发送至所述目的主机。
具体的,所述第一虚拟路由器,还用于根据所述目的IP地址确定所述目标数据包对应的目的MAC地址。
在实际应用中,具体的,每个所述网络节点中均配置有二层广播机制以及ARP响应机制,
所述第一虚拟路由器,具体用于根据所述目的IP地址广播ARP请求;
所述第一网络节点,还用于接收所述ARP请求;基于所述ARP请求、所述二层广播机制和ARP响应机制,确定对应所述目的IP地址的目的MAC地址;向所述第一虚拟路由器发送所述目的MAC地址;
所述第一虚拟路由器,具体用于接收所述第一网络节点反馈的所述目的MAC地址。
在实际应用中,具体的,每个所述网络节点中均配置有二层广播机制,
所述第一网络节点,具体用于根据所述目的MAC地址以及所述二层广播机制,确定所述目的主机所在的第二计算节点的第二隧道本地端点IP地址。
由以上可见,本发明实施例提供的方案中,计算节点与网络节点的底层网络为三层网络,所有网络节点的第一隧道本地端点IP地址相同,数据网交换机首先接收第一计算节点发送的目标数据包的第一封装包,然后基于数据网交换机中配置的开放式最短路径优先路由协议以及等价多路径路由协议,以及网络节点中配置的开放式最短路径优先路由协议,从网络节点中确定第一网络节点;向该第一网络节点发送第一封装包,以使得该第一网络节点对第一封装包进行解封装处理得到该目标数据包,并基于目标数据包中携带的目的IP地址,通过第一网络节点中的虚拟路由器将目标数据包发送给目的主机。与现有技术相比,本发明实施例中,每个网络节点中设置有预设数目个分别处理不同网段的虚拟机数据流量的虚拟路由器,任意两个网络节点中设置的虚拟路由器都相同,所有虚拟路由器均处于可用状态,另外,数据网交换机中配置有开放式最短路径优先路由协议以及等价多路径路由协议,网络节点中配置有开放式最短路径优先路由协议,因而,数据网交换机接收到同一组虚拟路由器所对应的数据包后,可以从所有的网络节点中选择一个网络节点中的该虚拟路由器来转发数据包,不同的数据包可以通过不同的网络节点中的该虚拟路由器进行转发,即分布式转发对应同一组虚拟路由器的各个数据包,实现网络流量的负载均衡。
另外,本发明实施例中,当计算节点的数量较多,网络流量较大时,本网络架构还可以灵活地增加网络节点的数量,每增加一个网络节点,就是增加一条等价路由路径,就可以分担一部分的网络流量。本发明实施例可以通过增加网络节点来应对数据流量的增长,对应的,就可以大大增加网络架构中计算节点的数量,也就是说,可以网络架构可以容纳更多的物理主机以及物理服务器的接入。
在本发明实施例中,所述第一计算节点,具体用于对所述目标数据包进行三层隧道封装后,交换封装得到的封装包的外层源IP地址与内层目的IP地址,得到第一封装包;
所述第一计算节点,还用于接收到封装包后,交换接收到的封装包的外层源IP地址与内层目的IP地址,对交换后的封装包进行解封装处理,得到数据包;将数据包发送给该计算节点中的虚拟机;
所述第一网络节点,具体用于接收到第一封装包后,交换所述第一封装包的外层源IP地址与内层目的IP地址,对交换后的所述第一封装包进行解封装处理,得到所述目标数据包;
所述第一网络节点,还用于对数据包进行三层隧道封装后,交换封装得到的封装包的外层源IP地址与内层目的IP地址,得到目标封装包,将所述目标封装包发送给所述数据网交换机。
应该强调的是,上述第一网络节点以及第一计算节点表征:本发明实施例中,所有网络节点以及计算节点的共同设置的一个辅助机制:无论是网络节点还是计算节点,当接收到封装包时,先交换封装包的外层源IP地址与内层源IP地址,然后再解除封装包的三层隧道封装;当发送封装包时,先交换封装包的外层源IP地址与内层源IP地址,然后再将做了上述交换处理的封装包发出去。
另外,所述数据网交换机,具体用于获得所述第一封装包的第一外层源IP地址;基于所述数据网交换机中配置的开放式最短路径优先路由协议以及等价多路径路由协议,以及网络节点中配置的开放式最短路径优先路由协议,获得当前网络架构中处于可用状态的所述网络节点;根据所述第一外层源IP地址,从处于可用状态的所述网络节点中哈希选择一个第一网络节点。
结合图10与图3,所述网络架构还包括:外网路由器,所述数据网交换机与所述外网路由器通信连接,当所述目的IP地址为外网IP地址时,
所述数据网交换机,还用于接收外网路由器发送的数据包,获得该数据包的源IP地址;基于所述数据网交换机中配置的开放式最短路径优先路由协议以及等价多路径路由协议,以及网络节点中配置的开放式最短路径优先路由协议,获得当前网络架构中处于可用状态的所述网络节点;根据该数据包的源IP地址,从处于可用状态的所述网络节点中哈希选择一个网络节点;将该数据包发送给哈希选择的网络节点;
所述第一虚拟路由器,用于针对所述目标数据包进行源地址转换,发送源地址转换后的所述目标数据包;
所述第一网络节点,具体用于获得所述第一虚拟路由器针对所述目标数据包进行源地址转换时的源地址转换信息;生成并记录与所述源地址转换信息对应的目的地址转换信息;基于所述目的IP地址,通过所述第一虚拟路由器将源地址转换后的所述目标数据包发送给所述目的主机。
应该强调的是,在本发明的所有实施例中,数据网交换机中配置有哈希选路机制:即当数据网交换机接收到任意下一跳为网络节点的数据包(包括封装包)时,都会先获得该数据包的源IP地址;基于所述数据网交换机中配置的开放式最短路径优先路由协议以及等价多路径路由协议,以及网络节点中配置的开放式最短路径优先路由协议,获得当前网络架构中处于可用状态的所述网络节点;根据该数据包的源IP地址,从处于可用状态的所述网络节点中哈希选择一个网络节点;将该数据包发送给哈希选择的网络节点。
具体的,在实际应用中,当所述目的IP地址属于第二虚拟路由器所服务的网段,且所述第二虚拟路由器所服务的网段不同于所述第一虚拟路由器所服务的网段;
所述第一虚拟路由器,用于针对所述目标数据包进行源地址转换;发送源地址转换后的所述目标数据包;
所述第一网络节点,具体用于获得所述第一虚拟路由器针对所述目标数据包进行源地址转换时的源地址转换信息;生成并记录与所述源地址转换信息对应的目的地址转换信息;获得所述第一虚拟路由器发送的源地址转换后的所述目标数据包,并通过自身配置的外部网桥将所述目标数据包发送至所述数据网交换机;
所述数据网交换机,还用于根据所述目标数据包的源IP地址,并基于所述数据网交换机中配置的开放式最短路径优先路由协议以及等价多路径路由协议,以及网络节点中配置的开放式最短路径优先路由协议,从处于可用状态的网络节点中哈希选择一个第二网络节点;将所述目标数据包发送给第二网络节点中的目标第二虚拟路由器;
所述目标第二虚拟路由器,用于对所述目标数据包进行目的地址转换,将进行目的地址转换后的所述目标数据包发送给所述目的主机。
具体的,所述第一网络节点,具体用于通过自身配置的外部网桥中所配置的流表,将所述目标数据包发送至所述数据网交换机,
其中,所述流表与经由虚拟路由器的虚拟外网接口直接发送的数据包相匹配,所述流表中包括处理动作信息:所述网络节点通过外部网桥将与所述流表相匹配的数据包发送给所述数据网交换机。
与现有技术相比,本发明实施例中,每个网络节点中设置有预设数目个分别处理不同网段的虚拟机数据流量的虚拟路由器,任意两个网络节点中设置的虚拟路由器都相同,所有虚拟路由器均处于可用状态,另外,数据网交换机中配置有开放式最短路径优先路由协议以及等价多路径路由协议,网络节点中配置有开放式最短路径优先路由协议,因而,数据网交换机接收到同一组虚拟路由器所对应的数据包后,可以从所有的网络节点中选择一个网络节点中的该虚拟路由器来转发数据包,不同的数据包可以通过不同的网络节点中的该虚拟路由器进行转发,即分布式转发对应同一组虚拟路由器的各个数据包,实现网络流量的负载均衡。
另外,本发明实施例中,当计算节点的数量较多,网络流量较大时,本网络架构还可以灵活地增加网络节点的数量,每增加一个网络节点,就是增加一条等价路由路径,就可以分担一部分的网络流量。本发明实施例可以通过增加网络节点来应对数据流量的增长,对应的,就可以大大增加网络架构中计算节点的数量,也就是说,可以网络架构可以容纳更多的物理主机以及物理服务器的接入。
为了更好的理解本发明的方案,下面结合图3,通过几种不同的数据包发送情况来对本发明的方案进行详细介绍。
第一种情况,作为发送端的虚拟机与目的主机处于同租户网络、同网段和同物理机,如果目的主机和该虚拟机同在一个br-int网桥,例如图3中的虚拟机VM1和VM2,虚拟机VM1与虚拟机VM2之间发送的数据包直接在计算节点1中的综合网桥(br-int)上完成二层转发。
除上述第一种情况外,计算节点中的虚拟机发送出来的数据包需要经过计算节点中的隧道网桥(br-tun),并被该隧道网桥封装成VXLAN的三层隧道封装得到封装包,然后再交换封装包的外层源IP地址以及内层目的IP地址。进行此处的交换处理前后,封装包中携带的信息如表2所示。
表2
其中,Tunnel源IP地址为该计算节点的隧道本地端点IP地址,Tunnel目的IP地址为目的计算节点的隧道本地端点IP地址,该地址通过ARP广播学习到,也可以在计算节点配置L2population和ARP Response,使其自动学习ARP。
第二种情况,作为发送端的虚拟机与目的主机处于同租户网络和同网段,但是不属于通物理机同物理机的东西向流量,需要在计算节点间转发,数据包的发送流程如下:
从计算节点发出的封装包,被数据网络交换机接收后,数据网交换机查找去往目的Tunnel IP地址的MAC地址所对应的port(端口),然后将封装包发送给该port,目的计算节点收到后,交换封装包外层源IP地址和内层目的IP地址,此处的交换处理前后,封装包携带的信息如表3所示,解除封装包的外层封装,得到数据包,然后再将数据包通过综合网桥发送到目的虚拟机即该目的主机。
表3
第三种情况,作为发送端的虚拟机与目的主机处于同租户网络单处于不同网段,计算节点发出的数据包需要通过网络节点进行转发,数据包的发送流程如下:
与前述两种情况不同的是,此情况中,计算节点发出的封装包中,目的IP地址为网络节点的隧道本地端点IP地址,数据包经过数据网络交换机时,数据网交换机发现对应到目的IP地址存在多条等价路径,数据网交换机根据封装包的源IP进行选路,此时该封装包的外层源IP地址为目的主机对应的目的IP地址。根据选路结果,数据网交换机将封装包发送到选中的网络节点,进行转发,假设选中了网络节点1。
选中的网络节点1收到封装包后,交换封装包的外层源IP地址和内层目的IP地址,之后,该封装包由该网络节点中的隧道网桥解封装,得到该数据包,此时数据包的目的MAC地址配置在虚拟路由器的网关接口上,该数据包被网络节点通过综合网桥(br-int)并经对应网关接口的发送到虚拟路由器,由虚拟路由器根据目的主机的目的IP进行选路。如图3所示,虚拟路由器(VR1、VR2)中直接连接外部网桥(br-ex)的接口为虚拟外网接口,直接连接综合网桥(br-int)的接口为网关接口。
由于此时访问的目的主机是同虚拟路由器下的不同网段的虚拟机,虚拟路由器查找路由后,广播ARP请求,由于网络节点配置了ARP Response和L2population,该ARP请求被网络节点中的隧道网桥拦截,网络节点向虚拟路由器响应该目的IP地址对应的目的MAC地址,虚拟路由器将数据包重新组装报文头,组装后的数据包的报文头所包含的信息如表4,表中假设作为发送端的虚拟机为虚拟机VM1。
表4
目的MAC地址 | 源MAC地址 | 目的IP地址 | 源IP地址 |
目的主机的MAC地址 | 网关接口的MAC地址 | 目的主机的IP地址 | 虚拟机VM1的IP地址 |
而后虚拟路由器向外路由该数据包,网络节点1中的隧道网桥收到后,匹配目的主机的MAC地址,根据L2 population下发的信息,查找对应该MAC地址的VXLAN VNI,以及目的主机所在的计算节点的隧道本地端点IP地址,然后将目的主机所在的计算节点的隧道本地端点IP地址作为外层目的IP地址,网络节点1的隧道本地端点IP地址作为外层源IP地址,对该数据包进行三层隧道封装。封装完成之后得到另一封装包,将此封装包的外层源IP地址和内层目的IP地址进行互换后发送给数据网交换机。
应该说明的是,VXLAN(Virtual eXtensible Local Area Network)是一种将二层报文用三层协议进行封装的技术,可以对二层网络在三层范围进行扩展。每个覆盖域被称为VXLAN segment,它的ID是由位于VXLAN数据包头中的VXLAN Network Identifier(VNI)标识的。VNI字段包含24bits,故segments最大数量为2的24次方,约合16M个。并且只有在相同VXLAN segment内的虚拟机之间才可以相互通信。
数据网络交换机收到该封装包后,根据此时的封装包的外层目的IP地址找到对应的目的计算节点,并将封装包发送给该目的计算节点。
该目的计算节点收到之后,将数据包的外层源IP地址和内层目的IP地址进行互换后,解除该封装包的三层隧道封装,得到数据包,然后将数据包发送给目的IP地址对应的目的主机。
目的主机收到该数据包后,向上述发送数据包的虚拟机VM1回应回包,回包从目的主机所在的计算节点中发送时,同样会被进行封装以及交换外层源IP地址和内层目的IP地址的操作,交换前后,回包对应的封装包中携带的信息如表5所示。表中,Tunnel IP地址表示隧道本地端点IP地址。
表5
回包对应的封装包被数据网交换机接收后,根据该封装包的外层源IP地址选择一个网络节点,此时选的网络节点不一定是发送数据包时选中的网络节点1,因为数据包发送过程以及回包的传输过程是按照不同的IP地址进行哈希选择的网络节点的,然而由于此时没有存在NAT地址转换,网络节点并不保存NAT状态信息,不同的网络节点收包数据包后,直接转发即可。
第四种情况,对于南北向数据流量的访问,数据包发送的前述过程与第三种情况相同,假设数据网交换机哈希选择了网络节点1,当网络节点1上的虚拟路由器收到该数据包后,判断该数据包的目的IP地址是外网IP地址,并且发送数据包的虚拟机VM1未被分配浮动IP地址,此时需要进行N:1的SNAT转换。
由于虚拟机VM1没有配置浮动IP地址,虚拟路由器需要通过iptables中的
neutron-l3-agent-snat规则进行SNAT转换,将虚拟机源IP地址和端口转换为路由器上配
置的外网接口地址+未占用的端口,转换完成后,通过外部网桥发送出去。源地址转换的规
则如下:
iptables-A neutron-l3-agent-snat-s租户网段-j SNAT--to-source虚拟路由
器外网IP,
源地址转换后,仅在该网络节点1中保存源地址转换信息和目的地址转换信息,其他的网络节点中未保存有源地址转换信息和目的地址转换信息。网络节点1中保存的源地址转换信息和目的地址转换信息如下表6。表中,“发包SNAT转换”对应于源地址转换信息,“回包DNAT转换”对应于目的地址转换信息。
然后虚拟路由器将数据包路由给数据网交换机,数据网交换机再将该数据包经外网路由器发给目的主机。
表6
应该注意的是,目的主机回复的回包首先由数据网交换机接收,由于交换机配置的规则是根据源IP地址哈希选择网络节点,如下表7所示,此时的回包的源IP地址就是上述步骤中访问的外网IP地址,数据网络交换机按照相同的IP地址哈希选择,必然还是会选择网络节点1,此时由于该网络节点1保存了DNAT转换信息,因而能够将虚拟机路由器的IP地址地址映射成虚拟机VM1的私有IP地址,进行回复。
表7
第五种情况,对于虚拟机的外网访问,如果此时虚拟机VM1被分配了浮动IP地址,类似于上述第四种情况:
网络节点1上的虚拟路由器收到数据包后,发现虚拟机VM1配置了浮动IP地址,即
存在1:1的SNAT转换,对应的iptables配置如下:
iptables-A neutron-l3-agent-float-snat-s虚拟机IP-j SNAT--to-source
Floating IP,
源地址转换后,由于是1:1的SNAT转换,因此会在网络架构中的所有网络节点中保存源地址转换信息和目的地址转换信息,因此,对应数据包的回包无论从哪一个网络节点进行转发,都可以基于目的地址转换信息,将回包准确地发送给虚拟机VM1,源地址转换信息和目的地址转换信息如下表8。表中,“发包SNAT转换”对应于源地址转换信息,“回包DNAT转换”对应于目的地址转换信息。
表8
经过上述的SNAT转换后,数据包直接从网络节点1的外部网桥发送出去。
第六种情况,如果数据包中的目的IP地址为本虚拟路由器上的其他浮动IP地址,数据包的发送以及回包的传输过程与第四种情况以及第五种情况类似。
首先,数据网络交换机根据接收到的封装包的外层源IP地址,即该浮动IP地址哈希选择网络节点网络节点1。
网络节点1上的虚拟路由器收到数据包后,查找iptables配置,发现目的IP地址为
浮动IP地址,同理,由于是1:1的DNAT转换,因此会在网络架构中的所有网络节点中保存源
地址转换信息和目的地址转换信息,因此,对应数据包的回包无论从哪一个网络节点进行
转发,都可以将回包准确地发送给虚拟机VM1。然后通过如下iptables规则完成目的地址转
换:
iptables-A neutron-l3-agent-OUTPUT-d Floating IP-j DNAT--to-
destination虚拟机IP,
转换完成后,目的IP地址为对应该浮动IP地址的虚拟机的私有IP地址,然后虚拟路由器将数据包发送给目的主机。
第七种情况,如果数据包中的目的IP地址是其他虚拟路由器下的浮动IP地址,且虚拟机VM1没有配置浮动IP地址。假设虚拟机VM1数据包由图3中的虚拟路由器VR1负责处理,上述其他路由器为图3中的虚拟路由器VR2。
此时数据包的发送需要通过两个虚拟路由器进行转发。具体通信步骤如下:
数据网络交换机根据接收到的封装包的外层源IP地址,即该浮动IP地址哈希选择网络节点1。
网络节点1上的虚拟路由器VR1收到数据包后,查找路由发现该数据包的目的IP地址不属于虚拟路由器VR1下的内网地址,需要通过外网接口进行转发。
从外网接口转发时,网络节点1上的虚拟路由器VR1需要通过iptables中的
neutron-l3-agent-snat规则进行SNAT地址转换,将源IP地址和端口转换为路由器上配置
的外网接口的IP地址地址+未占用的端口,转换的规则如下:
iptables-A neutron-l3-agent-snat-s租户网段-j SNAT--to-source虚拟路由
器外网IP,
源地址转换信息和目的地址转换信息如下表9。表中,“发包SNAT转换”对应于源地址转换信息,“回包DNAT转换”对应于目的地址转换信息。
表9
上述源地址转换信息和目的地址转换信息仅仅存在网络节点1。
网络节点1上的虚拟路由器VR1从外网接口向外发送数据包时,数据包会经过网络节点1中的外部网桥上,由于外部网桥能够学习到所有虚拟路由器上的浮动IP地址,即外部网桥能够学习数据包中携带的浮动IP地址存在与虚拟路由器VR2,按照正常的流程,外部网桥会将数据包发送给网络节点1中的虚拟路由器VR2。
但是本方案中,每个网络节点中都存在有该虚拟路由器VR2,因此需要由数据网交换机来选择使用哪台网络节点的虚拟路由器VR2。本发明实施例中,网络节点的外部网桥上配置有流表,该流表使得外部网桥上收到的所有从虚拟外网接口发过来的数据包,直接从物理网卡发送出去。配置如下:
ovs-ofctl add-flow br0"in_port=qg****,actions=output:Eth2"
上述流表中的qg****表示虚拟路由器绑定的外网接口,Eth2为外部网桥绑定的外网物理接口。
该数据包被数据网交换机收到后,数据网交换机发现对应数据包的目的IP地址存在多条等价路由,此时数据网交换机根据配置的源IP地址哈希规则,根据虚拟路由器VR1的IP地址选择一个网络节点转发该数据包,假设选择了网络节点2。上述数据包就会被发送到网络节点2上的虚拟路由器VR2。
网络节点2上的虚拟路由器VR2收到后,进行如下表10所示的NAT转换后,将数据包发送给对应的目的主机,假设目的主机是图3中的虚拟机VM4。可以理解,此时的NAT转换信息存在于所有的网络节点中。
表10
然后,网络节点2中的虚拟路由器VR2将转换后的数据包通过网关接口向外路由,网络节点2中的隧道网桥队数据包进行三层隧道封装后发送给目的主机虚拟机VM4,后续的发送流程可参考前述其他情况下,数据包的发送过程。
虚拟机VM4收到数据包后,回包回复虚拟机VM1。回包从计算节点2发送给数据网交换机时,对应的封装包在被交换外层源IP地址和内层目的地址前后,封装包所携带的信息包括下表11所示。
表11
数据网交换机收到交换后的封装包后,发现对应网络节点的隧道本地端点IP地址存在多条等价路由路径,然后根据虚拟路由器VR1的IP地址选择一个网络节点,从前述数据包发送过程可知,此时选择的是网络节点2,网络节点2中的虚拟路由器VR2根据当前回包的目的IP地址,即虚拟路由器VR1的IP地址查找路由后,将回包通过外网接口发送出去。回包从外网接口向外路由时,需要进行1:1NAT转换,转换方式参看下表12。NAT转换完成后,网络节点2将回包经外部网桥发送给数据网交换机。
表12
数据网交换机再次收到该回包后,根据外层源IP地址,即该浮动IP地址进行哈希选择网络节点。根据前述发送数据包的过程,虚拟交换机按照该浮动IP地址哈希选择的网络节点仍然是网络节点1。因此,数据网交换机会将回包发送给网络节点1。
网络节点1收到回包后,由于网络节点1中存有对应的NAT转换信息,网络节点1中的虚拟路由器VR1可以进行DNAT转换,然后将DNAT转换后得到的回包发送给虚拟机VM1。
第八种情况,如果数据包中的目的IP地址是其他租户网络下的浮动IP地址,且虚拟机VM1配置了浮动IP地址。此时数据包的发送流程以及回包的传输流程类似于第七种情况中涉及的数据包的发送流程以及回包的传输流程,本发明实施例在此不再详细介绍。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域普通技术人员可以理解实现上述方法实施方式中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机可读取存储介质中,这里所称得的存储介质,如:ROM/RAM、磁碟、光盘等。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (29)
1.一种数据包发送方法,其特征在于,应用于目标网络架构中的数据网交换机,所述目标网络架构中包括数据网交换机、计算节点和网络节点,所述计算节点与所述网络节点通过所述数据网交换机相连接,所述计算节点与所述网络节点的底层网络为三层网络,所述网络节点中设置有预设数目个分别处理不同网段的虚拟机数据流量的虚拟路由器,任意两个所述网络节点中设置的虚拟路由器都相同,所述虚拟路由器均处于可用状态,所述网络节点的第一隧道本地端点IP地址相同;
所述方法包括:
接收第一计算节点发送的目标数据包的第一封装包,其中,所述目标数据包携带有目的主机的目的IP地址;
从所述网络节点中确定第一网络节点;
向所述第一网络节点发送所述第一封装包,以使得所述第一网络节点对所述第一封装包进行解封装处理得到所述目标数据包,并基于所述目的IP地址,通过所述第一网络节点中的第一虚拟路由器将所述目标数据包发送给所述目的主机,其中,所述第一虚拟路由器为与所述本地虚拟机对应的虚拟路由器。
2.根据权利要求1所述的方法,其特征在于,所述目标数据包为所述第一计算节点中的本地虚拟机生成的,所述第一封装包为由所述第一计算节点对所述目标数据包进行三层隧道封装得到的。
3.根据权利要求1所述的方法,其特征在于,所述从所述网络节点中确定第一网络节点,包括:
基于所述数据网交换机中配置的开放式最短路径优先路由协议以及等价多路径路由协议,以及所述网络节点中配置的开放式最短路径优先路由协议,从所述网络节点中确定第一网络节点。
4.根据权利要求1所述的方法,其特征在于,所述目标网络架构还包括:控制节点,所述控制节点通过以下方法创建虚拟路由器:
所述控制节点接收创建虚拟路由器的创建请求;
发送所述创建请求至所有所述网络节点中的三层代理,以使得所述三层代理基于所述创建请求,在所述网络节点中创建虚拟路由器。
5.根据权利要求2所述的方法,其特征在于,当所述目的主机为与所述本地虚拟机处于同租户网络且处于不同网段下的虚拟机时,
所述基于所述目的IP地址,通过所述第一网络节点中的第一虚拟路由器将所述目标数据包发送给所述目的主机,包括:
获得所述第一网络节点中的第一虚拟路由器根据所述目的IP地址对应的目的MAC地址发送的所述目标数据包;
根据所述目的MAC地址,确定所述目的主机所在的第二计算节点的第二隧道本地端点IP地址;
基于所述第二隧道本地端点IP地址,对所述目标数据包进行三层隧道封装,得到第二封装包;
通过所述数据网交换机将所述第二封装包发送至所述第二计算节点,以使得所述第二计算节点对所述第二封装包进行解封装处理得到所述目标数据包,并将所述目标数据包发送至所述目的主机。
6.根据权利要求5所述的方法,其特征在于,所述目的MAC地址为所述第一虚拟路由器根据所述目的IP地址确定的。
7.根据权利要求6所述的方法,其特征在于,每个所述网络节点中均配置有二层广播机制以及ARP响应机制,
所述第一虚拟路由器通过以下方式获得所述目的MAC地址:
所述第一虚拟路由器根据所述目的IP地址广播ARP请求;
接收所述第一网络节点反馈的所述目的MAC地址,其中,所述目的MAC地址为:所述第一网络节点基于所述ARP请求、所述二层广播机制和ARP响应机制确定的。
8.根据权利要求5所述的方法,其特征在于,每个所述网络节点中均配置有二层广播机制,
所述根据所述目的MAC地址,确定所述目的主机所在的第二计算节点的第二隧道本地端点的IP地址,包括:
根据所述目的MAC地址以及所述二层广播机制,确定所述目的主机所在的第二计算节点的第二隧道本地端点IP地址。
9.根据权利要求3所述的方法,其特征在于,所述基于所述数据网交换机中配置的开放式最短路径优先路由协议以及等价多路径路由协议,以及所述网络节点中配置的开放式最短路径优先路由协议,从所述网络节点中确定第一网络节点,包括:
获得所述第一封装包的第一外层源IP地址;
基于所述数据网交换机中配置的开放式最短路径优先路由协议以及等价多路径路由协议,以及网络节点中配置的开放式最短路径优先路由协议,获得当前所述目标网络架构中处于可用状态的所述网络节点;
根据所述第一外层源IP地址,从处于可用状态的所述网络节点中哈希选择一个第一网络节点。
10.根据权利要求9所述的方法,其特征在于,所述第一封装包为:由所述第一计算节点对所述目标数据包进行三层隧道封装后,交换封装得到的封装包的外层源IP地址与内层目的IP地址所得到的;
所述第一网络节点对所述第一封装包进行解封装处理得到所述目标数据包,包括:
所述第一网络节点接收到所述第一封装包后,交换所述第一封装包的外层源IP地址与内层目的IP地址;
对交换后的所述第一封装包进行解封装处理得到所述目标数据包。
11.根据权利要求10所述的方法,其特征在于,所述目标网络架构还包括:外网路由器,所述数据网交换机与所述外网路由器通信连接,当所述目的IP地址为外网IP地址,
所述基于所述目的IP地址,通过所述第一网络节点中的第一虚拟路由器将所述目标数据包发送给所述目的主机,包括:
获得所述第一网络节点中的第一虚拟路由器针对所述目标数据包进行源地址转换时的源地址转换信息;
生成并记录与所述源地址转换信息对应的目的地址转换信息;
基于所述目的IP地址,通过所述第一虚拟路由器将源地址转换后的所述目标数据包发送给所述目的主机。
12.根据权利要求10所述的方法,其特征在于,所述目的IP地址属于第二虚拟路由器所服务的网段,其中,所述第二虚拟路由器所服务的网段不同于所述第一虚拟路由器所服务的网段;
所述基于所述目的IP地址,通过所述第一网络节点中的第一虚拟路由器将所述目标数据包发送给所述目的主机,包括:
获得所述第一网络节点中的第一虚拟路由器针对所述目标数据包进行源地址转换时的源地址转换信息;
生成并记录对应所述源地址转换信息的目的地址转换信息;
获得所述第一虚拟路由器发送的源地址转换后的所述目标数据包,并通过所述第一网络节点中配置的外部网桥将所述目标数据包发送至所述数据网交换机,以使得所述数据网交换机将所述目标数据包转发至第二网络节点中的目标第二虚拟路由器,目标第二虚拟路由器对所述目标数据包进行目的地址转换后,将所述目标数据包发送给所述目的主机;
其中,所述第二网络节点为:所述数据网交换机在接收到所述第一网络节点发送的所述目标数据包时,从该时刻处于可用状态的网络节点中哈希选择的一个网络节点,该时刻处于可用状态的网络节点为:所述数据网交换机根据该时刻所述目标数据包的源IP地址,并基于所述数据网交换机中配置的开放式最短路径优先路由协议以及等价多路径路由协议,以及网络节点中配置的开放式最短路径优先路由协议确定的。
13.根据权利要求12所述的方法,其特征在于,所述通过所述第一网络节点中配置的外部网桥将所述目标数据包发送至所述数据网交换机,包括:
通过所述第一网络节点中配置的外部网桥所配置的流表,将所述目标数据包发送至所述数据网交换机;
其中,所述流表与经由虚拟路由器的虚拟外网接口直接发送的数据包相匹配,所述流表中包括处理动作信息:所述网络节点通过外部网桥将与所述流表相匹配的数据包发送给所述数据网交换机。
14.一种数据包发送装置,其特征在于,应用于目标网络架构中的数据网交换机,所述目标网络架构中包括数据网交换机、计算节点和网络节点,所述计算节点与所述网络节点通过所述数据网交换机相连接,所述计算节点与所述网络节点的底层网络为三层网络,所述网络节点中设置有预设数目个分别处理不同网段的虚拟机数据流量的虚拟路由器,任意两个所述网络节点中设置的虚拟路由器都相同,所述虚拟路由器均处于可用状态,所述网络节点的第一隧道本地端点IP地址相同;
所述装置包括:
接收模块,用于接收第一计算节点发送的目标数据包的第一封装包,其中,所述目标数据包携带有目的主机的目的IP地址;
确定模块,用于从所述网络节点中确定第一网络节点;
发送模块,用于向所述第一网络节点发送所述第一封装包,以使得所述第一网络节点对所述第一封装包进行解封装处理得到所述目标数据包,并基于所述目的IP地址,通过所述第一网络节点中的第一虚拟路由器将所述目标数据包发送给所述目的主机,其中,所述第一虚拟路由器为与所述本地虚拟机对应的虚拟路由器。
15.根据权利要求14所述的装置,其特征在于,所述目标数据包为所述第一计算节点中的本地虚拟机生成的,所述第一封装包为由所述第一计算节点对所述目标数据包进行三层隧道封装得到的。
16.根据权利要求14所述的装置,其特征在于,所述确定模块,具体用于:
基于所述数据网交换机中配置的开放式最短路径优先路由协议以及等价多路径路由协议,以及所述网络节点中配置的开放式最短路径优先路由协议,从所述网络节点中确定第一网络节点。
17.一种网络架构,其特征在于,包括数据网交换机、计算节点和网络节点,所述计算节点与所述网络节点通过所述数据网交换机相连接,所述计算节点与所述网络节点的底层网络为三层网络,所述网络节点中设置有预设数目个分别处理不同网段的虚拟机数据流量的虚拟路由器,任意两个所述网络节点中设置的虚拟路由器都相同,所述虚拟路由器均处于可用状态,所述网络节点的第一隧道本地端点IP地址相同;
所述计算节点中,作为数据包发送端的第一计算节点,用于向所述数据网交换机发送目标数据包的第一封装包,其中,所述目标数据包携带有目的主机的目的IP地址;
所述数据网交换机,用于接收所述第一计算节点发送的所述第一封装包;从所述网络节点中确定第一网络节点;向所述第一网络节点发送所述第一封装包;
所述第一网络节点用于,接收所述数据网交换机发送的所述第一封装包;对所述第一封装包进行解封装处理,得到所述目标数据包;基于所述目的IP地址,通过所述第一网络节点中的第一虚拟路由器将所述目标数据包发送给所述目的主机,其中,所述第一虚拟路由器为与所述本地虚拟机对应的虚拟路由器。
18.根据权利要求17所述的网络架构,其特征在于,所述第一计算节点,具体用于将本地虚拟机生成的目标数据包进行三层隧道封装,得到第一封装包;向所述数据网交换机发送所述第一封装包。
19.根据权利要求17所述的网络架构,其特征在于,所述数据网交换机,具体用于基于所述数据网交换机中配置的开放式最短路径优先路由协议以及等价多路径路由协议,以及所述网络节点中配置的开放式最短路径优先路由协议,从所述网络节点中确定第一网络节点。
20.根据权利要求17所述的网络架构,其特征在于,所述网络架构还包括:控制节点以及管理网交换机,所述控制节点通过所述管理网交换机控制所述计算节点和所述网络节点,
所述控制节点,用于接收创建虚拟路由器的创建请求;发送所述创建请求至所有所述网络节点中的三层代理;
所述三层代理,用于基于所述创建请求,在所述网络节点中创建虚拟路由器。
21.根据权利要求18所述的网络架构,其特征在于,当所述目的主机为与所述本地虚拟机处于同租户网络且处于不同网段下的虚拟机时,
所述第一虚拟路由器,用于根据所述目的IP地址对应的目的MAC地址发送所述目标数据包;
所述第一网络节点,具体用于获得所述第一虚拟路由器发送的所述目标数据包;根据所述目标数据包中携带的所述目的MAC地址,确定所述目的主机所在的第二计算节点的第二隧道本地端点IP地址;基于所述第二隧道本地端点IP地址,对所述目标数据包进行三层隧道封装,得到第二封装包;将所述第二封装包发送给所述数据网交换机;
所述数据网交换机,还用于基于所述第二封装包中携带的所述第二隧道本地端点IP地址,将所述第二封装包发送至所述第二计算节点;
所述第二计算节点,用于对所述第二封装包进行解封装处理得到所述目标数据包;将所述目标数据包发送至所述目的主机。
22.根据权利要求21所述的网络架构,其特征在于,所述第一虚拟路由器,还用于根据所述目的IP地址确定所述目标数据包对应的目的MAC地址。
23.根据权利要求22所述的网络架构,其特征在于,每个所述网络节点中均配置有二层广播机制以及ARP响应机制,
所述第一虚拟路由器,具体用于根据所述目的IP地址广播ARP请求;
所述第一网络节点,还用于接收所述ARP请求;基于所述ARP请求、所述二层广播机制和ARP响应机制,确定对应所述目的IP地址的目的MAC地址;向所述第一虚拟路由器发送所述目的MAC地址;
所述第一虚拟路由器,具体用于接收所述第一网络节点反馈的所述目的MAC地址。
24.根据权利要求21所述的网络架构,其特征在于,每个所述网络节点中均配置有二层广播机制,
所述第一网络节点,具体用于根据所述目的MAC地址以及所述二层广播机制,确定所述目的主机所在的第二计算节点的第二隧道本地端点IP地址。
25.根据权利要求17所述的网络架构,其特征在于,所述数据网交换机,具体用于获得所述第一封装包的第一外层源IP地址;基于所述数据网交换机中配置的开放式最短路径优先路由协议以及等价多路径路由协议,以及网络节点中配置的开放式最短路径优先路由协议,获得当前网络架构中处于可用状态的所述网络节点;根据所述第一外层源IP地址,从处于可用状态的所述网络节点中哈希选择一个第一网络节点。
26.根据权利要求25所述的网络架构,其特征在于,所述第一计算节点,具体用于对所述目标数据包进行三层隧道封装后,交换封装得到的封装包的外层源IP地址与内层目的IP地址,得到第一封装包;
所述第一计算节点,还用于接收到封装包后,交换接收到的封装包的外层源IP地址与内层目的IP地址,对交换后的封装包进行解封装处理,得到数据包;将数据包发送给该计算节点中的虚拟机;
所述第一网络节点,具体用于接收到第一封装包后,交换所述第一封装包的外层源IP地址与内层目的IP地址,对交换后的所述第一封装包进行解封装处理,得到所述目标数据包;
所述第一网络节点,还用于对数据包进行三层隧道封装后,交换封装得到的封装包的外层源IP地址与内层目的IP地址,得到目标封装包,将所述目标封装包发送给所述数据网交换机。
27.根据权利要求26所述的网络架构,其特征在于,所述网络架构还包括:外网路由器,所述数据网交换机与所述外网路由器通信连接,当所述目的IP地址为外网IP地址时,
所述数据网交换机,还用于接收外网路由器发送的数据包,获得该数据包的源IP地址;基于所述数据网交换机中配置的开放式最短路径优先路由协议以及等价多路径路由协议,以及网络节点中配置的开放式最短路径优先路由协议,获得当前网络架构中处于可用状态的所述网络节点;根据该数据包的源IP地址,从处于可用状态的所述网络节点中哈希选择一个网络节点;将该数据包发送给哈希选择的网络节点;
所述第一虚拟路由器,用于针对所述目标数据包进行源地址转换,发送源地址转换后的所述目标数据包;
所述第一网络节点,具体用于获得所述第一虚拟路由器针对所述目标数据包进行源地址转换时的源地址转换信息;生成并记录与所述源地址转换信息对应的目的地址转换信息;基于所述目的IP地址,通过所述第一虚拟路由器将源地址转换后的所述目标数据包发送给所述目的主机。
28.根据权利要求26所述的网络架构,其特征在于,所述目的IP地址属于第二虚拟路由器所服务的网段,其中,所述第二虚拟路由器所服务的网段不同于所述第一虚拟路由器所服务的网段;
所述第一虚拟路由器,用于针对所述目标数据包进行源地址转换;发送源地址转换后的所述目标数据包;
所述第一网络节点,具体用于获得所述第一虚拟路由器针对所述目标数据包进行源地址转换时的源地址转换信息;生成并记录与所述源地址转换信息对应的目的地址转换信息;获得所述第一虚拟路由器发送的源地址转换后的所述目标数据包,并通过自身配置的外部网桥将所述目标数据包发送至所述数据网交换机;
所述数据网交换机,还用于根据所述目标数据包的源IP地址,并基于所述数据网交换机中配置的开放式最短路径优先路由协议以及等价多路径路由协议,以及网络节点中配置的开放式最短路径优先路由协议,从处于可用状态的网络节点中哈希选择一个第二网络节点;将所述目标数据包发送给第二网络节点中的目标第二虚拟路由器;
所述目标第二虚拟路由器,用于对所述目标数据包进行目的地址转换,将进行目的地址转换后的所述目标数据包发送给所述目的主机。
29.根据权利要求28所述的网络架构,其特征在于,所述第一网络节点,具体用于通过自身配置的外部网桥中所配置的流表,将所述目标数据包发送至所述数据网交换机,
其中,所述流表与经由虚拟路由器的虚拟外网接口直接发送的数据包相匹配,所述流表中包括处理动作信息:所述网络节点通过外部网桥将与所述流表相匹配的数据包发送给所述数据网交换机。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610676669.1A CN107770062A (zh) | 2016-08-16 | 2016-08-16 | 一种数据包发送方法、装置及网络架构 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610676669.1A CN107770062A (zh) | 2016-08-16 | 2016-08-16 | 一种数据包发送方法、装置及网络架构 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107770062A true CN107770062A (zh) | 2018-03-06 |
Family
ID=61260982
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610676669.1A Pending CN107770062A (zh) | 2016-08-16 | 2016-08-16 | 一种数据包发送方法、装置及网络架构 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107770062A (zh) |
Cited By (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107846358A (zh) * | 2016-09-19 | 2018-03-27 | 北京金山云网络技术有限公司 | 一种数据传输方法、装置及网络系统 |
CN109005051A (zh) * | 2018-06-27 | 2018-12-14 | 中国铁路信息科技有限责任公司 | 基于OpenStack的路由高可用方法和系统 |
CN109361608A (zh) * | 2018-11-23 | 2019-02-19 | 北京六方领安网络科技有限公司 | 报文处理方法、系统及存储介质 |
CN109587061A (zh) * | 2018-11-08 | 2019-04-05 | 华为技术有限公司 | 一种路由处理的方法、装置及设备 |
CN110011859A (zh) * | 2019-04-15 | 2019-07-12 | 深信服科技股份有限公司 | 一种虚拟机控制方法及集群系统 |
CN110177021A (zh) * | 2019-06-27 | 2019-08-27 | 上海金卓网络科技有限公司 | 基于软件定义的无线自组网节点及数据传输方法 |
CN110266593A (zh) * | 2019-07-15 | 2019-09-20 | 上海仪电(集团)有限公司中央研究院 | 一种基于流量监控的自适应路由切换云网络系统 |
CN110392111A (zh) * | 2019-07-24 | 2019-10-29 | 华云超融合科技有限公司 | 一种基于数据中心的智能虚拟分布式路由器集群系统及其实现方法 |
CN110493074A (zh) * | 2019-07-19 | 2019-11-22 | 珠海金山网络游戏科技有限公司 | 一种服务器与客户端的测试方法及系统 |
CN110708393A (zh) * | 2019-10-21 | 2020-01-17 | 北京百度网讯科技有限公司 | 用于传输数据的方法、装置和系统 |
CN110875888A (zh) * | 2018-08-30 | 2020-03-10 | 中国电信股份有限公司 | 实现网络资源按需处理的方法、装置和云管理系统 |
CN111031056A (zh) * | 2019-12-20 | 2020-04-17 | 紫光云(南京)数字技术有限公司 | 一种在安全组中实现安全域功能的方法 |
CN111181850A (zh) * | 2019-08-12 | 2020-05-19 | 腾讯科技(深圳)有限公司 | 数据包泛洪抑制方法、装置和设备及计算机存储介质 |
CN111641568A (zh) * | 2020-05-09 | 2020-09-08 | 中国电子科技集团公司第五十四研究所 | 一种模块化交换机及网络架构 |
CN112242952A (zh) * | 2019-07-16 | 2021-01-19 | 中移(苏州)软件技术有限公司 | 一种数据转发方法、柜顶式交换机和存储介质 |
CN112291252A (zh) * | 2020-11-02 | 2021-01-29 | 浪潮云信息技术股份公司 | 一种南北向流量对称性引流的实现架构及方法 |
CN112653610A (zh) * | 2020-12-16 | 2021-04-13 | 网宿科技股份有限公司 | 多层虚拟交换机升级方法、装置、电子设备及存储介质 |
CN112738293A (zh) * | 2020-12-29 | 2021-04-30 | 浪潮云信息技术股份公司 | 一种虚机连通外网的方法 |
CN112866107A (zh) * | 2021-01-25 | 2021-05-28 | 网宿科技股份有限公司 | Ip地址通告方法、流量引导方法及网络设备 |
CN113885515A (zh) * | 2021-10-25 | 2022-01-04 | 北京轻舟智航科技有限公司 | 一种连接多种自动驾驶传感器的网络架构系统 |
CN113992574A (zh) * | 2021-09-30 | 2022-01-28 | 济南浪潮数据技术有限公司 | 一种设置路由器绑定节点优先级方法、系统及设备 |
CN114070789A (zh) * | 2021-11-16 | 2022-02-18 | 上海思询信息科技有限公司 | 一种基于OpenStack实现外部网络多线接入的方法 |
CN114301868A (zh) * | 2021-12-30 | 2022-04-08 | 上海观安信息技术股份有限公司 | 快速生成虚拟容器浮动ip的方法及网络直通的方法和装置 |
CN114500169A (zh) * | 2021-12-27 | 2022-05-13 | 天翼云科技有限公司 | 建立vxlan隧道的方法、报文转发的方法及装置 |
CN114553771A (zh) * | 2021-12-24 | 2022-05-27 | 天翼云科技有限公司 | 用于虚拟路由器加载的方法及相关设备 |
CN114827015A (zh) * | 2022-04-29 | 2022-07-29 | 深圳爱捷云科技有限公司 | 一种数据转发方法和虚拟化云网络架构 |
CN116915777A (zh) * | 2023-09-13 | 2023-10-20 | 杭州立方控股股份有限公司 | 一种坐席人员协同的智能停车管理系统及方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1155537A1 (en) * | 1999-02-26 | 2001-11-21 | Redstone Communications, Inc. | Network router search engine using compressed tree forwarding table |
CN105391771A (zh) * | 2015-10-16 | 2016-03-09 | 张陵 | 一种面向多租户的云网络架构 |
CN105515978A (zh) * | 2016-01-08 | 2016-04-20 | 盛科网络(苏州)有限公司 | 实现分布式路由、物理主机接入的方法及装置 |
CN105656796A (zh) * | 2014-11-25 | 2016-06-08 | 杭州华三通信技术有限公司 | 实现虚拟扩展局域网三层转发的方法和装置 |
WO2016095322A1 (zh) * | 2014-12-16 | 2016-06-23 | 北京东土科技股份有限公司 | 一种基于vrrp的数据传输方法及装置 |
-
2016
- 2016-08-16 CN CN201610676669.1A patent/CN107770062A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1155537A1 (en) * | 1999-02-26 | 2001-11-21 | Redstone Communications, Inc. | Network router search engine using compressed tree forwarding table |
CN105656796A (zh) * | 2014-11-25 | 2016-06-08 | 杭州华三通信技术有限公司 | 实现虚拟扩展局域网三层转发的方法和装置 |
WO2016095322A1 (zh) * | 2014-12-16 | 2016-06-23 | 北京东土科技股份有限公司 | 一种基于vrrp的数据传输方法及装置 |
CN105391771A (zh) * | 2015-10-16 | 2016-03-09 | 张陵 | 一种面向多租户的云网络架构 |
CN105515978A (zh) * | 2016-01-08 | 2016-04-20 | 盛科网络(苏州)有限公司 | 实现分布式路由、物理主机接入的方法及装置 |
Cited By (46)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107846358A (zh) * | 2016-09-19 | 2018-03-27 | 北京金山云网络技术有限公司 | 一种数据传输方法、装置及网络系统 |
CN109005051A (zh) * | 2018-06-27 | 2018-12-14 | 中国铁路信息科技有限责任公司 | 基于OpenStack的路由高可用方法和系统 |
CN110875888A (zh) * | 2018-08-30 | 2020-03-10 | 中国电信股份有限公司 | 实现网络资源按需处理的方法、装置和云管理系统 |
CN110875888B (zh) * | 2018-08-30 | 2022-08-19 | 中国电信股份有限公司 | 实现网络资源按需处理的方法、装置和云管理系统 |
CN109587061A (zh) * | 2018-11-08 | 2019-04-05 | 华为技术有限公司 | 一种路由处理的方法、装置及设备 |
CN109587061B (zh) * | 2018-11-08 | 2022-04-22 | 华为技术有限公司 | 一种路由处理的方法、装置及设备 |
CN109361608A (zh) * | 2018-11-23 | 2019-02-19 | 北京六方领安网络科技有限公司 | 报文处理方法、系统及存储介质 |
CN109361608B (zh) * | 2018-11-23 | 2021-04-27 | 北京六方云信息技术有限公司 | 报文处理方法、系统及存储介质 |
CN110011859A (zh) * | 2019-04-15 | 2019-07-12 | 深信服科技股份有限公司 | 一种虚拟机控制方法及集群系统 |
CN110011859B (zh) * | 2019-04-15 | 2022-04-29 | 深信服科技股份有限公司 | 一种虚拟机控制方法及集群系统 |
CN110177021A (zh) * | 2019-06-27 | 2019-08-27 | 上海金卓网络科技有限公司 | 基于软件定义的无线自组网节点及数据传输方法 |
CN110177021B (zh) * | 2019-06-27 | 2022-03-29 | 上海金卓科技有限公司 | 基于软件定义的无线自组网节点及数据传输方法 |
CN110266593A (zh) * | 2019-07-15 | 2019-09-20 | 上海仪电(集团)有限公司中央研究院 | 一种基于流量监控的自适应路由切换云网络系统 |
CN110266593B (zh) * | 2019-07-15 | 2021-10-22 | 上海仪电(集团)有限公司中央研究院 | 一种基于流量监控的自适应路由切换云网络系统 |
CN112242952A (zh) * | 2019-07-16 | 2021-01-19 | 中移(苏州)软件技术有限公司 | 一种数据转发方法、柜顶式交换机和存储介质 |
CN110493074A (zh) * | 2019-07-19 | 2019-11-22 | 珠海金山网络游戏科技有限公司 | 一种服务器与客户端的测试方法及系统 |
CN110392111A (zh) * | 2019-07-24 | 2019-10-29 | 华云超融合科技有限公司 | 一种基于数据中心的智能虚拟分布式路由器集群系统及其实现方法 |
CN110392111B (zh) * | 2019-07-24 | 2022-03-15 | 江苏安超云软件有限公司 | 一种基于数据中心的智能虚拟分布式路由器集群系统及其实现方法 |
CN111181850A (zh) * | 2019-08-12 | 2020-05-19 | 腾讯科技(深圳)有限公司 | 数据包泛洪抑制方法、装置和设备及计算机存储介质 |
CN111181850B (zh) * | 2019-08-12 | 2022-03-11 | 腾讯科技(深圳)有限公司 | 数据包泛洪抑制方法、装置和设备及计算机存储介质 |
CN110708393B (zh) * | 2019-10-21 | 2023-11-21 | 北京百度网讯科技有限公司 | 用于传输数据的方法、装置和系统 |
CN110708393A (zh) * | 2019-10-21 | 2020-01-17 | 北京百度网讯科技有限公司 | 用于传输数据的方法、装置和系统 |
CN111031056B (zh) * | 2019-12-20 | 2021-10-12 | 紫光云(南京)数字技术有限公司 | 一种在安全组中实现安全域功能的方法 |
CN111031056A (zh) * | 2019-12-20 | 2020-04-17 | 紫光云(南京)数字技术有限公司 | 一种在安全组中实现安全域功能的方法 |
CN111641568A (zh) * | 2020-05-09 | 2020-09-08 | 中国电子科技集团公司第五十四研究所 | 一种模块化交换机及网络架构 |
CN112291252B (zh) * | 2020-11-02 | 2022-06-24 | 浪潮云信息技术股份公司 | 一种南北向流量对称性引流的实现架构及方法 |
CN112291252A (zh) * | 2020-11-02 | 2021-01-29 | 浪潮云信息技术股份公司 | 一种南北向流量对称性引流的实现架构及方法 |
CN112653610B (zh) * | 2020-12-16 | 2022-02-18 | 网宿科技股份有限公司 | 多层虚拟交换机升级方法、装置、电子设备及存储介质 |
CN112653610A (zh) * | 2020-12-16 | 2021-04-13 | 网宿科技股份有限公司 | 多层虚拟交换机升级方法、装置、电子设备及存储介质 |
CN112738293A (zh) * | 2020-12-29 | 2021-04-30 | 浪潮云信息技术股份公司 | 一种虚机连通外网的方法 |
CN112738293B (zh) * | 2020-12-29 | 2023-03-10 | 浪潮云信息技术股份公司 | 一种虚机连通外网的方法 |
CN112866107A (zh) * | 2021-01-25 | 2021-05-28 | 网宿科技股份有限公司 | Ip地址通告方法、流量引导方法及网络设备 |
CN113992574A (zh) * | 2021-09-30 | 2022-01-28 | 济南浪潮数据技术有限公司 | 一种设置路由器绑定节点优先级方法、系统及设备 |
CN113885515A (zh) * | 2021-10-25 | 2022-01-04 | 北京轻舟智航科技有限公司 | 一种连接多种自动驾驶传感器的网络架构系统 |
CN113885515B (zh) * | 2021-10-25 | 2023-06-09 | 北京轻舟智航科技有限公司 | 一种连接多种自动驾驶传感器的网络架构系统 |
CN114070789A (zh) * | 2021-11-16 | 2022-02-18 | 上海思询信息科技有限公司 | 一种基于OpenStack实现外部网络多线接入的方法 |
CN114553771A (zh) * | 2021-12-24 | 2022-05-27 | 天翼云科技有限公司 | 用于虚拟路由器加载的方法及相关设备 |
CN114553771B (zh) * | 2021-12-24 | 2023-10-13 | 天翼云科技有限公司 | 用于虚拟路由器加载的方法及相关设备 |
CN114500169A (zh) * | 2021-12-27 | 2022-05-13 | 天翼云科技有限公司 | 建立vxlan隧道的方法、报文转发的方法及装置 |
CN114500169B (zh) * | 2021-12-27 | 2024-01-02 | 天翼云科技有限公司 | 建立vxlan隧道的方法、报文转发的方法及装置 |
CN114301868A (zh) * | 2021-12-30 | 2022-04-08 | 上海观安信息技术股份有限公司 | 快速生成虚拟容器浮动ip的方法及网络直通的方法和装置 |
CN114301868B (zh) * | 2021-12-30 | 2023-07-11 | 上海观安信息技术股份有限公司 | 快速生成虚拟容器浮动ip的方法及网络直通的方法和装置 |
CN114827015A (zh) * | 2022-04-29 | 2022-07-29 | 深圳爱捷云科技有限公司 | 一种数据转发方法和虚拟化云网络架构 |
CN114827015B (zh) * | 2022-04-29 | 2024-04-02 | 深圳爱捷云科技有限公司 | 一种数据转发方法和虚拟化云网络架构 |
CN116915777A (zh) * | 2023-09-13 | 2023-10-20 | 杭州立方控股股份有限公司 | 一种坐席人员协同的智能停车管理系统及方法 |
CN116915777B (zh) * | 2023-09-13 | 2023-12-05 | 杭州立方控股股份有限公司 | 一种坐席人员协同的智能停车管理系统及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107770062A (zh) | 一种数据包发送方法、装置及网络架构 | |
US11411776B2 (en) | Multi-cloud VPC routing and registration | |
CN103997414B (zh) | 生成配置信息的方法和网络控制单元 | |
CN103270736B (zh) | 一种网络设备 | |
US10116559B2 (en) | Operations, administration and management (OAM) in overlay data center environments | |
CN107370642B (zh) | 一种基于云平台多租户网络平稳度监测系统和方法 | |
CN103200069B (zh) | 一种报文处理的方法和设备 | |
US7242665B2 (en) | Network device virtual interface | |
US8923149B2 (en) | L3 gateway for VXLAN | |
CN113169929B (zh) | 包括分解式网络元件的逻辑路由器 | |
CN104396192B (zh) | 不对称网络地址封装 | |
TWI543566B (zh) | 基於軟體定義網路的資料中心網路系統及其封包傳送方法、位址解析方法與路由控制器 | |
CN105049361B (zh) | 针对虚拟网络分组流的物理路径确定 | |
US9225636B2 (en) | Method and apparatus for exchanging IP packets among network layer 2 peers | |
CN104702476B (zh) | 基于分布式网关的报文处理方法及网络虚拟化边缘点 | |
CN104852840A (zh) | 一种控制虚拟机之间互访的方法及装置 | |
CN102891903B (zh) | 一种nat转换方法及设备 | |
CN107547403B (zh) | 报文转发方法、协助方法、装置、控制器及主机 | |
CN108696370A (zh) | 一种服务器与业务绑定和解绑定方法、装置及系统 | |
US20230379190A1 (en) | Method to Build a Service Function Chain in an Overlay Network | |
JP2024503322A (ja) | 仮想化されたクラウド環境におけるレイヤ2ネットワーキングストーム制御 | |
CN115604056A (zh) | 下游vxlan标识符的高效存储实现 | |
CN116648892A (zh) | 虚拟化云环境中的层2联网风暴控制 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180306 |