一种数据报文转发方法和装置的制造方法

文档序号:8546117阅读:235来源:国知局
一种数据报文转发方法和装置的制造方法
【技术领域】
[0001]本发明涉及通信技术领域,特别涉及一种数据报文转发方法和装置。
【背景技术】
[0002]在互联网经济高度发达的今天,网络已经成为IT领域至关重要的基础设施之一。特别对于云计算机房,由于虚拟机(VM)和容器(Container)数量巨大,需要花费大量精力去维护网络稳定。
[0003]目前的机房网络大多直接运行在传统TCP/IP物理网络架构之上,这种物理结构在拓扑灵活性方面很差,而且在运维效率上也不高。为了提高机房网络结构的灵活性,网络功能虚拟化(NFV)成为一股浪潮。网络虚拟化是指在机房物理架构的基础上,通过计算机x86平台模拟L2、L3设备的功能,实现网络数据转发的控制。

【发明内容】

[0004]有鉴于此,本申请提供一种数据报文转发方法和装置,能够在节省设备成本的情况下,实现二、三层数据报文的转发。
[0005]为解决上述技术问题,本申请的技术方案是这样实现的:
[0006]一种数据报文转发方法,应用于包括主机、管理服务器和控制器的系统中的主机上,所述主机包括:虚拟交换机和虚拟路由器,该方法包括:
[0007]所述虚拟交换机接收到数据报文时,若不存在转发所述数据报文的流表,则向控制器发送转发所述数据报文的流表请求,使所述控制器根据数据报文的目的媒体访问控制MAC地址下发流表;接收控制器下发的流表时,根据所述流表转发所述数据报文;
[0008]所述虚拟路由器若接收到虚拟交换机转发的数据报文,则将所述数据报文的目的MAC地址替换为目的因特网协议IP地址对应的MAC地址,源MAC地址替换为目的IP地址对应的网关的MAC地址;并根据所述数据报文的目的IP地址对应的路由表项转发。
[0009]一种数据报文转发装置,应用于包括主机、管理服务器和控制器的系统中的主机上,该装置包括:虚拟交换机单元和虚拟路由器单元;
[0010]所述虚拟交换机单元,用于接收到数据报文时,若不存在转发所述数据报文的流表,则向控制器发送转发所述数据报文的流表请求,使所述控制器根据数据报文的目的媒体访问控制MAC地址下发流表;当接收控制器下发的流表时,根据所述流表转发所述数据报文;
[0011]所述虚拟路由器单元,用于若接收到虚拟交换机单元转发的数据报文,则将所述数据报文的目的MAC地址替换为目的因特网协议IP地址对应的MAC地址,源MAC地址替换为目的IP地址对应的网关的MAC地址;并根据所述数据报文的目的IP地址对应的路由表项转发。
[0012]由上面的技术方案可知,本申请中通过在主机中虚拟,虚拟路由器和虚拟交换机,让VM与虚拟交换机直接交换数据,实现二层数据报文的转发;通过虚拟路由器设定虚拟路由,实现三层数据报文的转发。通过该技术方案,能够在节省设备成本的情况下,实现二、三层数据报文的转发。
【附图说明】
[0013]图1为本申请实施例中系统组网示意图;
[0014]图2为本申请实施例中报文传输方法流程示意图;
[0015]图3为本申请实施例中同一主机内部同一子网数据传输示意图;
[0016]图4为本申请实施例中同一主机内部不同子网数据传输示意图;
[0017]图5为本申请实施例中不同主机上的属于不同子网的VM之间的数据传输示意图;
[0018]图6为本申请实施例中不同主机上的属于同一子网的VM之间的数据传输示意图;
[0019]图7为本申请实施例中应用于上述技术的装置结构示意图。
【具体实施方式】
[0020]为了使本发明的目的、技术方案及优点更加清楚明白,下面结合附图并举实施例,对本发明的技术方案进行详细说明。
[0021]本申请实施例中提供一种报文传输方法,应用于包括主机、管理服务器和控制器的系统中。
[0022]参见图1,图1为本申请实施例中系统组网示意图。
[0023]图1中的控制器可以为OpenFlow控制器,负责与虚拟交换机交互OpenFlow控制指令,当虚拟交换机上未匹配到转发数据报文的流表时,向OpenFlow控制器发送转发所述数据报文的流表。
[0024]OpenFlow控制器缓存从管理服务器获取的子网隔离信息和管理员自定义转发策略;基于MAC地址,在L2层面判断数据包的转发策略;根据管理员自定义指令判断数据包的转发策略;定时向管理服务器上报控制器运行状态等。
[0025]图1中以两个主机(宿主机)为例,每个主机设置主机代理,负责与管理服务器进行交互,根据管理服务器的指令在主机上建立和设置虚拟交换机和虚拟路由。主要的功能包括:建立主机L2数据虚拟交换环境,指定虚拟交换机关联的控制器;建立主机虚拟路由策略;接收管理服务器Push过来的L2级指令,应用到虚拟交换机。例如清空流表,促使虚拟交换机重新到控制器拉取转发策略;接收管理服务器Push过来的L3级指令,设置虚拟路由器,对网络数据流进行导向,例如为某一 VM/Container绑定公网IP ;主动向管理服务器上报主机网络状况等。
[0026]主机中包括:主机代理,虚拟交换机、虚拟路由器和VM。
[0027]其中,主机代理用于通过管理服务器获得的相关信息建立虚拟交换机、虚拟路由器和VM。
[0028]虚拟路由器为分布式虚拟路由器,该虚拟路由器还具有网关功能,能够获知各VM的MAC地址和各VM对应的网关的MAC地址。
[0029]VM在具体实现时,可以为KVM、Xen,也可以为Container,如docker,具体使用哪种实现根据实际应用确定。
[0030]图1中的管理服务器向主机代理和控制器发送管理控制指令的服务器。负责的主要功能包括:为管理员提供友好的访问界面,接收并负责下发管理员的管理控制指令;为新加入的虚拟交换机选择合适的控制器,提供负载均衡功能;为主机提供路由转发设置策略,该策略主要用于在L3层面为VM/Container的网络数据流提供出口路由;向OpenFlow控制器推送管理员额外施加的控制策略;及时将主机和控制器的异常状态报警给运维人员。
[0031]下面结合附图,详细说明本申请实施例中实现报文传输的过程。
[0032]参见图2,图2为本申请实施例中报文传输方法流程示意图。具体步骤为:
[0033]步骤201,虚拟交换机当接收到数据报文时,若不存在转发所述数据报文的流表,则向控制器发送转发所述数据报文的流表请求,使所述控制器根据数据报文的目的MAC地址下发流表;接收控制器下发的流表并根据流表转发所述数据报文。
[0034]控制器接收到虚拟交换机发送的转发数据报文的流表请求时,首先确定该数据报文是否为同一租户之间的数据报文的传输;
[0035]当确定该数据报文为同一租户之间的数据报文的传输时,根据数据报文的源MAC地址和目的MAC地址确定该数据报文的合法性,如果合法,则进一步根据所述数据报文的目的MAC地址确定转发给虚拟机还是转发给虚拟路由器;否则,则确定使所述虚拟交换机丢弃接收到的所述数据报文。
[0036]当确定该数据报文为不同租户之间的数据报文的传输,则确定使所述虚拟交换丢弃接收到的所述数据报文。
[0037]当目的MAC地址为本主机上的VM的MAC地址时,为该虚拟交换机下发的流表中的出接口为虚拟交换机与目的VM相连的接口 ;
[0038]当目的MAC地址为其它主机上的VM的MAC地址时,为该虚拟交换机下发的流表中的出接口为虚拟交换机与其他主机相连的接口;
[0039]当目的MAC地址为网关MAC地址时,为该虚拟交换机下发的流表中的出接口为虚拟交换机与虚拟路由器相连的接口。
[0040]因此,在虚拟交换机接收到控制器下发的流表时,根据流表转发接收到的数据报文;
[0041 ] 当目的MAC地址为本主机上的VM的MAC地址时,通过所述流表中的出接口将所述数据报文转发给对应的VM ;
[0042]当目的MAC地址为其它主机上的VM的MAC地址时,通过所述流表中的出接口将所述数据报文转发给所述其它主机;
[0043]当数据报文的目的MAC地址为网关MAC地址时,会通过该接口将所述数据报文转发给虚拟路由器。
[0044]在实际应用中,虚拟机获取目的VM的MAC地址时,同子网的VM获取的是VM的实际MAC地址,不同子网获取的是VM对应的网关MAC地址,因此,发送的数据报文的目的MAC地址为目的VM的MAC地址,或者源MAC地址对应的网关的MAC地址。
[0045]步骤
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1