数据包的处理方法与装置的制造方法

文档序号:8489948阅读:330来源:国知局
数据包的处理方法与装置的制造方法
【技术领域】
[0001]本发明涉及通讯技术领域,尤其涉及一种数据包的处理方法与装置。
【背景技术】
[0002]为了实现灾难备份和虚拟机跨数据中心动态迁移等业务,,目前,通过将跨广域网(Wide Area Network,简称:WAN)的(Software Defined Network,简称:SDN)SDN集群控制技术与虚拟扩展局域网(Virtua I Extensib Ie LAN,简称:VXLAN)技术相结合,进而实现多个数据中心之间的叠加(over lay) 二层网络,为客户提供灵活的扩展能力。
[0003]如图1-A所示,SDN集群控制技术与VXLAN技术相结合实现多个数据中心之间的二层网络互连。每个数据中心中具有SDN控制器、汇聚交换机、接入交换机以及多个物理服务器,在每个物理服务器上加载虚拟交换器以及虚拟机,并且,任意一个SDN控制器存储的信息需与其他SDN控制器进行信息共享、同步,每个SDN控制器均可对数据包的传输路径进行管理。
[0004]在图1中,由于SDN控制器对全局信息的掌握,数据中心A中的第一虚拟机与数据中心B中的第二虚拟机之间进行通信交互时,从叠加网络层面看,两个虚拟机直接相连。实际穿过的物理网络如图中虚线所示,第一物理服务器上加载的第一虚拟机将数据包传输至第一虚拟交换器,并由第一虚拟交换器将数据包传输至第一接入交换机,第一接入交换机将数据包传输至第一核心交换机,第一核心交换机通过路由网络将数据包传输至数据中心B中的第二核心交换机,第二核心交换机将数据包传输至第二接入交换机,第二接入交换机将数据包传输至对应的第二虚拟交换器,并由第二虚拟交换器传输至第二虚拟机,由第二虚拟机对数据包进行后续处理,进而实现数据中心之间的二层网络互连。前述的通信流程中,虚拟交换器、接入交换机以及核心交换机在传输数据包时,均根据VXLAN外层报头信息,按照转发设备存储的转发规则将数据包进行转发。
[0005]但是,现有技术中的方案也暴露出以下问题:1)由于每个SDN控制器存储的信息需进行共享、同步,大量信息的跨WAN共享、同步将导致网络开销变大,增加SDN控制器的处理负担;2)由于虚拟机在相互通信时,通信虚拟机之间具有一条传输路径,如图1-B所示,虚拟机之间为全网状网络,增加网络系统的复杂度,同时,SDN控制器需实时管理每两个通信虚拟机之间的传输路径,浪费SDN控制器的处理资源,也降低了 SDN控制器对数据包的处理效率。

【发明内容】

[0006]本发明实施例提供了一种数据包的处理方法与装置,实现多个数据中心之间的二层网络互连和VM通信。
[0007]在第一方面,本发明实施例提供了一种数据包的处理方法,所述方法包括:
[0008]源控制器接收源虚拟交换器转发的由源虚拟机发送的数据包,所述数据包携带有所述数据包的目标地址,所述目标地址包括与所述源虚拟机通信的目的虚拟机的TP地址;
[0009]根据所述目标虚拟机的TP地址,所述源控制器识别所述目的虚拟机的TP地址是否已存储在地址列表中;
[0010]如果所述目的虚拟机的TP地址未存储在所述地址列表中,则所述源控制器确定所述目的虚拟机未处于所述源数据中心;
[0011 ] 所述源控制器确定用于将所述数据包转发至所述目的虚拟机的第一转发规则;
[0012]所述源控制器分别向所述源虚拟交换器和源虚拟代理发送所述第一转发规则,以使得所述源虚拟交换器利用所述第一转发规则将所述数据包转发至所述源虚拟代理,所述源虚拟代理利用所述第一转发规则和已存储的路由转发表的信息将所述数据包转发至所述目的虚拟机所在的目的数据中心;
[0013]其中,所述源控制器、所述源虚拟交换器、所述源虚拟机以及所述源虚拟代理同处于所述源数据中心。
[0014]在第一种可能的实现方式中,所述目标地址还包括所述目的虚拟机的MAC地址;
[0015]所述如果所述目的虚拟机未处于所述源数据中心,则所述源控制器确定用于将所述数据包转发至所述目的虚拟机的第一转发规则具体包括:
[0016]如果所述目的虚拟机未处于所述源数据中心,且所述目的虚拟机与所述源虚拟机处于同一网段,则所述源控制器根据所述目的虚拟机的MAC地址以及所述目的虚拟机的TP地址,确定用于将所述数据包转发至所述目的虚拟机的第一转发规则。
[0017]结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述源控制器接收源虚拟交换器转发的由源虚拟机发送的数据包之前还包括:
[0018]所述源控制器接收所述源虚拟交换器转发的由所述源虚拟机发送的ARP请求,所述ARP请求用于获取所述目的虚拟机的MAC地址,所述ARP请求包括所述目的虚拟机的TP地址;
[0019]根据所述目的虚拟机的TP地址,所述源控制器查找所述地址列表中是否已存储与所述目的虚拟机的TP地址匹配的所述目的虚拟机的MAC地址;
[0020]如果所述源控制器未查找到所述目的虚拟机的MAC地址,则所述源控制器确定转发所述数据包的传输路径;
[0021]根据所述传输路径,所述源控制器确定用于将所述ARP请求转发至所述目的虚拟机的第二转发规则;
[0022]所述源控制器分别向所述源虚拟交换器和所述源虚拟代理发送第二转发规则,以使得所述源虚拟交换器利用所述第二转发规则将所述ARP请求转发至所述源虚拟代理,所述源虚拟代理利用所述第二转发规则和已存储的路由转发表将所述ARP请求转发至所述目的数据中心,并将接收到的所述目的虚拟机发送的ARP响应通过所述源虚拟交换器向所述源虚拟机发送,所述ARP响应包括所述目的虚拟机的MAC地址。
[0023]在第三种可能的实现方式中,所述如果所述目的虚拟机未处于所述源数据中心,则所述源控制器确定用于将所述数据包转发至所述目的虚拟机的第一转发规则具体包括:
[0024]如果所述目的虚拟机未处于所述源数据中心,且所述目的虚拟机与所述源虚拟机处于不同网段,则所述源控制器根据所述目的虚拟机的TP地址,获取目的虚拟网关的MAC地址;
[0025]根据所述目的虚拟网关的MAC地址以及所述目的虚拟机的TP地址,所述源控制器确定转发所述数据包的传输路径;
[0026]根据所述传输路径,所述源控制器确定用于将所述数据包转发至所述目的虚拟机的第一转发规则。
[0027]结合第一方面的第三种可能的实现方式,在第四种可能的实现方式中,所述目标地址还包括源虚拟网关的MAC地址;
[0028]所述源控制器分别向所述源虚拟交换器和源虚拟代理发送所述第一转发规则之前还包括:
[0029]所述源控制器将所述目的虚拟网关的MAC地址携带在所述第一转发规则内,以使得所述源虚拟交换器利用所述第一转发规则,将所述源网关的MAC地址以及所述目的网关的MAC地址封装在所述数据包内,并将封装后的所述数据包转发至所述源虚拟代理。
[0030]结合第一方面的第四种可能的实现方式,在第五种可能的实现方式中,所述源控制器接收源虚拟交换器转发的由源虚拟机发送的数据包之前还包括:
[0031]所述源控制器接收所述源虚拟交换器转发的由所述源虚拟机发送的ARP请求,所述ARP请求用于获取所述源虚拟网关的MAC地址,所述ARP请求包括所述源虚拟网关的TP地址;
[0032]根据所述源虚拟网关的TP地址,所述源控制器查找所述地址列表中是否已存储与所述TP地址匹配的所述源虚拟网关的MAC地址;
[0033]如果所述源控制器查找到所述源虚拟网关的MAC地址,则所述源控制器通过所述源虚拟交换器向所述源虚拟机发送ARP响应,所述ARP响应包括所述源虚拟网关的MAC地址。
[0034]在第二方面,本发明实施例提供了一种数据包的处理方法,所述方法包括:
[0035]目的控制器接收目的虚拟代理转发的由源虚拟代理发送的数据包,所述数据包携带有所述数据包的目标地址,所述目标地址包括目的虚拟机的TP地址;
[0036]根据所述目的虚拟机的TP地址,所述目的控制器识别所述目的虚拟机的TP地址是否已存储在地址列表中;
[0037]如果所述目的虚拟机的TP地址存储在所述地址列表中,则所述目的控制器确定所述目的虚拟机处于所述目的数据中心;
[0038]所述目的控制器确定用于将所述数据包转发至所述目的虚拟机的第一转发规则;
[0039]所述目的控制器分别向所述目的虚拟代理和目的虚拟交换器发送第一转发规则,以使得所述目的虚拟代理利用所述第一转发规则将所述数据包转发至所述目的虚拟交换器,所述目的虚拟交换器利用所述第一转发规则将所述数据包转发至所述目的虚拟机;
[0040]其中,所述目的控制器、所述目的虚拟代理以及所述目的虚拟交换器处于目的数据中心,所述源虚拟代理处于源数据中心。
[0041 ] 在第一种可能的实现方式中,所述目标地址还包括所述目的虚拟机的MAC地址;
[0042]所述如果所述目的虚拟机处于所述目的数据中心,则所述目的控制器确定用于将所述数据包转发至所述目的虚拟机的第一转发规则具体包括:
[0043]如果所述目的虚拟机处于所述目的数据中心,且所述目的虚拟机与所述源虚拟机处于相同网段,则根据所述目的虚拟机的MAC地址,所述目的控制器查找是否存在与所述目的虚拟机匹配连接的所述目的虚拟交换器;
[0044]如果所述目的控制器查找到与所述目的虚拟机匹配连接的所述目的虚拟交换器,则所述目的控制器根据所述目的虚拟网关的MAC地址以及所述目的虚拟机的TP地址,确定转发所述数据包的传输路径;
[0045]根据所述传输路径,所述目的控制器确定用于将所述数据包转发至所述目的虚拟机的第一转发规则。
[0046]结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述目的控制器接收目的虚拟代理转发的由源虚拟代理发送的数据包之前还包括:
[0047]所述目的控制器接收所述目的虚拟代理转发的由所述源虚拟代理发送的ARP请求,所述ARP请求用于获取所述目的虚拟机的MAC地址,所述ARP请求包括所述目的虚拟机的TP地址;
[0048]根据所述目的虚拟机的TP地址,所述目的控制器查找是否存在与所述目的虚拟机匹配连接的所述目的虚拟交换器;
[0049]如果所述目的控制器查找到与所述目的虚拟机匹配连接的所述目的虚拟交换器,则所述目的控制器确定用于将所述ARP请求转发至所述目的虚拟机的第二转发规则;
[0050]所述目的控制器分别向所述目的虚拟代理和所述目的虚拟交换器发送所述第二转发规则,以使得所述目的虚拟代理利用所述第二转发规则将所述ARP请求转发至所述目的虚拟交换器,所述目的虚拟交换器利用所述第二转发规则将所述ARP请求转发至所述目的虚拟机,并接收所述目的虚拟机发送的ARP响应,并通过所述目的虚拟代理向所述源虚拟代理发送所述ARP响应,所述ARP响应包括所述目的虚拟机的MAC地址。
[0051]在第三种可能的实现方式中,所述如果所述目的虚拟机处于所述目的数据中心,则所述目的控制器确定用于将所述数据包转发至所述目的虚拟机的第一转发规则具体包括:
[0052]如果所述目的虚拟机处于目的数据中心,且所述目的虚拟机与所述源虚拟机处于不同网段,则根据所述目的虚拟机的TP地址,所述目的控制器获取所述目的虚拟机的MAC地址;
[0053]根据所述目的虚拟机的MAC地址,所述目的控制器查找是否存在与所述目的虚拟机匹配连接的所述目的虚拟交换器;
[0054]如果所述目的控制器查找到与所述目的虚拟机匹配链接的所述目的虚拟交换器,则所述目的控制器根据所述目的虚拟的MAC地址以及所述目的虚拟机的TP地址,确定转发所述数据包的传输路径;
[0055]根据所述传输路径,所述目的控制器确定用于将所述数据包转发至所述目的虚拟机的第一转发规则。
[0056]在第三方面,本发明实施例提供了一种数据包的处理装置,所述装置包括:
[0057]接收单元,用于接收源虚拟交换器转发的由源虚拟机发送的数据包,所述数据包携带有所述数据包的目标地址,所述目标地址包括与所述源虚拟机通信的目的虚拟机的TP地址;
[0058]识别单元,用于根据所述目的虚拟机的TP地址,识别所述目的虚拟机的TP地址是否已存储在地址列表中;
[0059]确定单元,用于如果所述目的虚拟机的TP地址未存储在所述地址列表中,则确定所述目的虚拟机未处于所述源数据中心;
[0060]所述确定单元还用于,确定用于将所述数据包转发至所述目的虚拟机的第一转发规则;
[0061]发送单元,用于分别向所述源虚拟交换器和源虚拟代理发送所述第一转发规则,以使得所述源虚拟交换器利用所述第一转发规则将所述数据包转发至所述源虚拟代理,所述源虚拟代理利用所述第一转发规则和已存储的路由转发表将所述数据包转发至所述目的虚拟机所在的目的数据中心;
[0062]其中,所述数据包的处理装置、所述源虚拟交换器、所述源虚拟机以及所述源虚拟代理同处于所述源数据中心。
[0063]在第一种可能的实现方式中,所述接收单元接收的所述数据包的目标地址还包括所述目的虚拟机的MAC地址;
[0064]所述确定单元具体用于,如果所述目的虚拟机未处于所述源数据中心,且所述目的虚拟机与所述源虚拟机处于同一网段,则根据所述目的虚拟机的MAC地址以及所述目的虚拟机的TP地址,确定转发所述数据包的传输路径;
[0065]根据所述传输路径,确定用于将所述数据包转发至所述目的虚拟机的第一转发规则。
[0066]结合第三方面的第一种可能的实现方式,在第二种可能的实现方式中,所述接收单元还用于,接收所述源虚拟交换器转发的由所述源虚拟机发送的ARP请求,所述ARP请求用于获取所述目的虚拟机的MAC地址,所述ARP请求包括所述目的虚拟机的TP地址;
[0067]所述装置还包括:第一查找单元,用于根据所述目的虚拟机的TP地址,查找所述地址列表中是否已存储与所述目的虚拟机的TP地址匹配的所述目的虚拟机的MAC地址;
[0068]所述确定单元还用于,如果未查找到所述目的虚拟机的MAC地址,则确定用于将所述ARP请求转发至所述目的虚拟机的第二转发规则;
[0069]所述发送单元还用于,分别向所述源虚拟交换器和所述源虚拟代理发送第二转发规则,以使得所述源虚拟交换器利用所述第二转发规则将所述ARP请求转发至所述源虚拟代理,所述源虚拟代理利用所述第二转发规则和已存储的路由转发表将所述ARP请求转发至所述目的数据中心,并将接收到的所述目的虚拟机发送的ARP响应通过所述源虚拟交换器向所述源虚拟机发送,所述ARP响应包括所述目的虚拟机的MAC地址。
[0070]在第三种可能的实现方式中,所述确定单元具体用于,如果所述目的虚拟机未处于所述源数据中心,且所述目的虚拟机与所述源虚拟机处于不同网段,则根据所述目的虚拟机的TP地址,获取目的虚拟网关的MAC地址;
[0071]根据所述目的虚拟网关的MAC地址以及所述目的虚拟机的TP地址,确定转发所述数据包的传输路径;
[0072]根据所述传输路径,确定用于将所述数据包转发至所述目的虚拟机的第一转发规则。
[0073]结合第三方面的第三种可能的实现方式,在第四种可能的实现方式中,所述接收单元接收的所述数据包的目标地址还包括源虚拟网关的MAC地址;
[0074]所述装置还包括:处理单元,用于将所述目的虚拟网关的MAC地址携带在所述第一转发规则内,以使得所述源虚拟交换器利用所述第一转发规则,将所述源网关的MAC地址以及所述目的网关的MAC地址封装在所述数据包内,并将封装后的所述数据包转发至所述源虚拟代理。
[0075]结合第三方面的第四种可能的实现方式,在第五种可能的实现方式中,所述接收单元还用于,接收所述源虚拟交换器转发的由所述源虚拟机发送的ARP请求,所述ARP请求用于获取所述源虚拟网关的MAC地址,所述ARP请求包括所述源虚拟网关的TP地址;
[0076]所述装置还包括:第二查找单元,用于根据所述源虚拟网关的TP地址,查找所述地址列表中是否已存储与所述TP地址匹配的所述源虚拟网关的MAC地址;
[0077]所述发送单元还用于,如果查找到所述源虚拟网关的MAC地址,则通过所述源虚拟交换器向所述源虚拟机发送ARP响应,所述ARP响应包括所述源虚拟网关的MAC地址。
[0078]在第四方面,本发明实施例提供了一种数据包的处理装置,所述装置包括:
[0079]接收单元,用于接收目的虚拟代理转发的由源虚拟代理发送的数据包,所述数据包携带有所述数据包的目标地址,所述目标地址包括目的虚拟机的TP地址;
[0080]识别单元,用于根据所述目的虚拟机的TP地址,识别所述目的虚拟机的TP地址是否已存储在地址列表中;
[0081]确定单元,用于如果所述目的虚拟机的TP地址存储在所述地址列表中,则确定所述目的虚拟机处于所述目的数据中心;
[0082]所述确定单元还用于,如果所述目的虚拟机处于所述目的数据中心,则确定用于将所述数据包转发至所述目的虚拟机的第一转发规则;
[0083]发送单元,用于分别向所述目的虚拟代理和目的虚拟交换器发送第一转发规则,以使得所述目的虚拟代理利用所述第一转发规则将所述数据包转发至所述目的虚拟交换器,所述目的虚拟交换器利用所述第一转发规则将所述数据包转发至所述目的虚拟机;
[0084]其中,所述数据包的处理装置、所述目的虚拟代理以及所述目的虚拟交换器处于目的数据中心,所述源虚拟代理处于源数据中心。
[0085]在第一种可能的实现方式中,所述接收单元接收的所述数据包的目标地址还包括所述目的虚拟机的MAC地址;
[0086]所述确定单元具体用于,如果所述目的虚拟机处于所述目的数据中心,且所述目的虚拟机与所述源虚拟机处于相同网段,则根据所述目的虚拟机的MAC地址,查找是否存在与所述目的虚拟机匹配连接的所述目的虚拟交换器;
[0087]如果查找到与所述目的虚拟机匹配连接的所述目的虚拟交换器,则根据所述目的虚拟机的MAC地址以及所述目的虚拟机的TP地址,确定转发所述数据包的传输路径;
[0088]根据所述传输路径,确定用于将所述数据包转发至所述目的虚拟机的第一转发规则。
[0089]结合第四方面的第一种可能的实现方式,在第二种可能的实现方式中,所述接收单元还用于,接收所述目的虚拟代理转发的由所述源虚拟代理发送的ARP请求,所述ARP请求用于获取所述目的虚拟机的MAC地址,所述ARP请求包括所述目的虚拟机的TP地址;
[0090]所述确定单元还用于,根据所述目的虚拟机的TP地址,查找是否存在与所述目的虚拟机匹配连接的所述目的虚拟交换器;
[0091]如果查找到与所述目的虚拟机匹配连接的所述目的虚拟交换器,则确定用于将所述ARP请求转发至所述目的虚拟机的第二转发规则;
[0092]所述发送单元还用于,分别向所述目的虚拟代理和所述目的虚拟交换器发送所述第二转发规则,以使得所述目的虚拟代理利用所述第二转发规则将所述ARP请求转发至所述目的虚拟交换器,所述目的虚拟交换器利用所述第二转发规则将所述ARP请求转发至所述目的虚拟机,并接收所述目的虚拟机发送的ARP响应,并通过所述目的虚拟代理向所述源虚拟代理发送所述ARP响应,所述ARP响应包括所述目的虚拟机的MAC地址。
[0093]在第三种可能的实现方式中,所述确定单元具体用于,如果所述目的虚拟机处于目的数据中心,且所述目的虚拟机与所述源虚拟机处于不同网段,则根据所述目的虚拟机的TP地址,获取所述目的
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1