基于虚拟二层网络中数据包的处理方法和装置的制造方法

文档序号:10626738阅读:377来源:国知局
基于虚拟二层网络中数据包的处理方法和装置的制造方法
【专利摘要】本发明实施例提供一种基于虚拟二层网络中数据包的处理方法和装置。该方法包括:入口边缘交换机接收源服务器发送的第一数据包;查找封装信息映射表;若未获取到映射表项,则向控制器发送第一端口的端口标识、第一LTID和所述目的虚拟机的MAC地址,以使得所述控制器根据第一端口的端口标识、第一LTID和所述目的虚拟机的MAC地址获取对应的映射表项,并将所述映射表项返回给入口边缘交换机;入口边缘交换机将所述映射表项中的第二LTID替换第一数据包中的第一LTID,并根据映射表项对替换后的第一数据包进行封装,以获取第二数据包;将第二数据包发送给与目的虚拟机的MAC地址对应的出口边缘交换机。
【专利说明】
基于虚拟二层网络中数据包的处理方法和装置
技术领域
[0001] 本发明实施例涉及通信技术,尤其涉及一种基于虚拟二层网络中数据包的处理方 法和装置。
【背景技术】
[0002] 图1为现有技术中虚拟数据中心的网络架构示意图。如图1所示,虚拟数据中心 的网络架构包括核心层交换机1、接入层交换机2和物理主机3,其中,物理主机3包括虚拟 交换机4和虚拟主机5。需要说明的是,在图1中,物理主机3可以用H1、H2、H3和H4等表 示,虚拟主机可以用vml_vml2等表示,其中,vml、vm2、vm7、vm8属于租户1,vm3、vm6、vm9、 vml2属于租户2, vm4、vm5、vml0、vmll属于租户3。在现有的网络虚拟化技术中,需要解决 隔离和减少二层网络交换机的转发表的表项数目这两个问题。
[0003] 为了解决上述两个问题,出现了虚拟扩展局域网(Virtual extensible Local Area Network,简称VXLAN)技术,VXLAN是一种将二层报文用三层协议进行封装的技术, VXLAN技术通过对租户的源虚拟机发出的以太网数据进行MAC-in-UDP封装,并增加了一个 额外的VXLAN头部,包含了一个24bit的虚拟网络标识,可以支持2 24= 16777216个虚拟网 络。表1为VXLAN的报文格式。
[0004] 表1 VXLAN的报文格式
[0005]
[0006] 如图1所示,假设租户的VXLAN ID为10,H1上的租户1的vml想要跟H3上的租户 1的vm8通信,当虚拟主机5发送的报文到达虚拟交换机4时,虚拟交换机5将原始的报文 封装为UDP报文,具体封装为,在原始的报文中添加外层介质访问控制头(Outer Medium/ Media Access Control Header,简称 Outer MAC Header),外层互联网协议头(Outer Internet Protocol Header,简称 Outer IP Header),外层用户数据报协议头(Outer User Datagram Protocol Header,简称 Outer UDP Header), VXLAN 头(VXLAN Header),源 IP 地 址为HI的IP地址,目的地址为H3的IP地址,VXLAN Header中VXLAN ID设为10。封装完 成后,HI上的虚拟交换机将封装报文发出,H3上的虚拟交换机收到该封装报文后解封装, 将 Outer MAC Header,Outer IP Header,Outer UDP Header,VXLAN Header 剥离,然后根 据VXLAN ID以及Original L2 Frame的目的MAC地址将原始的报文发送到目的虚拟主机 即vm8。VXLAN技术中,虚拟主机发送的二层报文到达虚拟交换机时被封装在了 UDP报文中, 因此二层网络交换机感知不到虚拟主机的MAC地址,只需满足物理主机与物理主机之间的 通信即可。采用VXLAN技术既保证了各不同虚拟网络之间的隔离,对于二层网络交换机的 转发表的容量需求也没有增加。
[0007] 但是,VXLAN技术使用了多达50个字节的额外的VXLAN头部,使得网络带宽开销 大,网络的通信效率降低。

【发明内容】

[0008] 本发明实施例提供一种基于虚拟二层网络中数据包的处理方法、装置和系统,有 效减少了网络带宽开销,提高了网络的通信效率。
[0009] 本发明实施例第一方面提供一种基于虚拟二层网络中数据包的处理方法,包括:
[0010] 入口边缘交换机接收源服务器发送的第一数据包;其中,所述第一数据包为所述 源服务器将第一虚拟网络局部标识LTID插入原始数据包后获取的数据包,且所述第一数 据包包括所述第一 LTID和目的虚拟机的介质访问控制MAC地址;其中,所述第一 LTID为虚 拟网络在所述源服务器中上的LTID ;
[0011] 所述入口边缘交换机根据第一端口的端口标识、所述第一 LTID和所述目的虚拟 机的MAC地址,查找封装信息映射表,其中所述第一端口是所述入口边缘交换机接收所述 第一数据包的端口;
[0012] 若所述入口边缘交换机未从所述封装信息映射表中获取到与所述第一端口的端 口标识、第一 LTID和所述目的虚拟机的MAC地址对应的映射表项,则向控制器发送所述第 一端口的端口标识、第一 LTID和所述目的虚拟机的MAC地址,以使得所述控制器根据所述 第一端口的端口标识、第一 LTID和所述目的虚拟机的MAC地址获取对应的映射表项,并将 所述映射表项返回给所述入口边缘交换机,其中,所述映射表项包括第二LTID,所述第二 LTID为所述虚拟网络在所述目的服务器上的LTID ;
[0013] 所述入口边缘交换机将所述第二LTID替换所述第一数据包中第一 LTID,并根据 所述映射表项对替换后的第一数据包进行封装,以获取第二数据包;
[0014] 所述入口边缘交换机向与所述目的虚拟机的MAC地址对应的出口边缘交换机发 送所述第二数据包,以使所述出口边缘交换机将所述第二数据包进行解析并将解析后的所 述第二数据包发送给目的服务器。
[0015] 结合第一方面,在第一方面的第一种可能实现方式中,所述入口边缘交换机根据 第一端口的端口标识、第一 LTID和所述目的虚拟机的MAC地址,查找封装信息映射表之后, 还包括:
[0016] 若所述入口边缘交换机从封装信息映射表中获取到与所述第一端口的端口标识、 第一 LTID和所述目的虚拟机的MAC地址对应的映射表项,则所述入口边缘交换机将所述映 射表项中的第二LTID替换所述第一数据包中的第一 LITD,并根据所述映射表项对替换后 的第一数据包进行封装,以获取第二数据包,其中,所述第二LTID为所述虚拟网络在所述 目的服务器上的LTID。
[0017] 结合第一方面或第一方面的第一种可能实现方式,在第一方面的第二种可能实现 方式中,所述映射表项还包括出口边缘交换机的MAC地址和第二端口的端口标识;
[0018] 则所述根据所述映射表项对替换后的第一数据包进行封装,以获取第二数据包, 具体包括:
[0019] 根据所述出口边缘交换机的MAC地址和第二端口的端口标识,以及入口边缘交换 机的MAC地址,为所述替换后的第一数据包添加一个报文头部,以获取第二数据包;其中, 所述报文头部中的所述出口边缘交换机的目的地址为所述第一数据包的目的MAC地址、所 述入口边缘交换机的MAC地址为所述第一数据包的源MAC地址、所述虚拟局域网VLAN字段 中设置所述第二端口的端口标识,所述第二端口为所述目的服务器接入的所述出口边缘交 换机的端口。
[0020] 结合第一方面的第二种可能实现方式,在第一方面的第三种可能实现方式中,所 述入口边缘交换机向与所述目的虚拟机的MAC地址对应的出口边缘交换机发送所述第二 数据包,以使所述出口边缘交换机将所述第二数据包进行解析并将解析后的所述第二数据 包发送给目的服务器,具体包括:
[0021] 所述入口边缘交换机查询本地转发表,确定第三端口,并通过所述第三端口向所 述出口边缘交换机发送所述第二数据包,以使所述出口边缘交换机将所述第二数据包解 析,从解析结果中获取所述VLAN字段的所述第二端口,并将所述第二数据包通过所述第二 端口发送给所述目的服务器。
[0022] 本发明实施例第二方面提供一种基于虚拟二层网络中数据包的处理方法,所述方 法包括:
[0023] 源服务器根据第一端口的端口标识查询本地映射关系表,获第一虚拟网络局部标 识LTID ;其中,所述第一 LTID为虚拟网络在源服务器上的LTID,所述第一端口为源虚拟交 换机接收源虚拟机发送的原始数据包的端口;
[0024] 所述源服务器将所述第一 LTID插入所述原始数据包,以获取的第一数据包;
[0025] 所述源服务器将所述第一数据包发送给入口边缘交换机。
[0026] 本发明实施例第三方面提供一种虚拟二层网络数据处理方法,所述方法包括:
[0027] 控制器接收入口边缘交换机发送的第一端口的端口标识、第一虚拟网络局部标识 LTID和目的虚拟机的介质访问控制MAC地址;其中,所述第一 LTID为虚拟网络在源服务器 上的LTID,所述第一端口为所述入口边缘交换机接收第一数据包的端口;
[0028] 所述控制器根据所述第一端口的端口标识,以及所述第一 LTID和所述目的虚拟 机的MAC地址获取对应的映射表项;
[0029] 所述控制器将所述映射表项发送给所述入口边缘交换机,以使所述入口边缘交换 机将所述映射表项中的第二LTID替换所述第一数据包中的所述第一 LITD,并根据所述映 射表项对替换后的第一数据包进行封装,以获取第二数据包;其中,所述第二LTID为虚拟 网络在目的服务器上的LTID。
[0030] 结合第三方面,在第三方面的第一种可能实现方式中,所述控制器根据所述第一 端口的端口标识、所述第一 LTID和所述目的虚拟机的MAC地址获取对应的映射表项,具体 包括:
[0031] 所述控制器根据所述第一端口的端口标识获取所述源服务器的标识;
[0032] 所述控制器根据所述源服务器的标识和所述第一 LTID获取所述虚拟网络全局标 识 GTID ;
[0033] 所述控制器根据所述GTID和所述目的虚拟机的MAC地址获取所述第二LTID ;
[0034] 所述控制器根据所述第二LTID获取所述出口边缘交换机的MAC地址和第二端口 的端口标识;其中,所述第二端口为目的服务器接入的所述出口边缘交换机的端口;
[0035] 所述控制器根据所述第二LTID、所述出口边缘交换机的MAC地址和所述第二端口 的端口标识生成所述映射表项。
[0036] 本发明实施例第四方面提供一种基于虚拟二层网络中数据包的处理装置,包括:
[0037] 收发模块,用于接收源服务器发送的第一数据包;其中,所述第一数据包为所述源 服务器将第一虚拟网络局部标识LTID插入原始数据包后获取的数据包,且所述第一数据 包包括目的虚拟机的介质访问控制MAC地址;其中,所述第一 LTID为虚拟网络在所述源服 务器上的LTID ;
[0038] 查询模块,用于根据接收第一端口的端口标识、所述第一 LTID和所述目的虚拟机 的MAC地址,查找封装信息映射表,其中,所述第一端口是所述入口边缘交换机接收所述第 一数据包的端口;
[0039] 所述收发模块,还用于若所述查询模块未从所述封装信息映射表中获取到与所述 第一端口的端口标识、所述第一 LTID和所述目的虚拟机的MAC地址对应的映射表项,则向 控制器发送所述第一端口的端口标识、所述第一 LTID和所述目的虚拟机的MAC地址,以使 得所述控制器根据所述第一端口的端口标识、所述第一 LTID和所述目的虚拟机的MAC地址 获取对应的映射表项,并将所述映射表项返回给所述入口边缘交换机,其中,所述映射表项 包括第二LTID,所述第二LTID为所述虚拟网络在所述目的服务器上的LTID ;
[0040] 处理模块,用于将所述第二LTID替换所述第一数据包的中所述第一 LITD,并根据 所述映射表项对替换后的第一数据包进行封装,以获取第二数据包;
[0041] 所述收发模块,还用于向与所述目的虚拟机的MAC地址对应的出口边缘交换机发 送所述第二数据包,以使所述出口边缘交换机将所述第二数据包进行解析并将解析后的所 述第二数据包发送给目的服务器。
[0042] 结合第四方面,在第四方面的第一种可能实现方式中,所述处理模块,还用于若所 述查询模块从封装信息映射表中获取到与所述第一端口的端口标识、所述第一 LTID和所 述目的虚拟机的MAC地址对应的映射表项,则将所述映射表项中的第二LTID替换所述第一 数据包中的所述第一 LITD,并根据所述映射表项对替换后的第一数据包进行封装,以获取 第二数据包,其中,所述第二LTID为所述虚拟网络在所述目的服务器上的LTID。
[0043] 结合第四方面或第四方面的第一种可能实现方式,在第四方面的第二种可能实现 方式中,所述映射表项还包括出口边缘交换机的MAC地址和第二端口的端口标识;
[0044] 所述处理模块,具体用于根据所述出口边缘交换机的MAC地址和第二端口的端口 标识,以及入口边缘交换机的MAC地址,为所述替换后的第一数据包添加一个报文头部,以 获取第二数据包;其中,所述报文头部中的所述出口边缘交换机的目的地址为所述第一数 据包中的目的MAC地址、所述入口边缘交换机的MAC地址为所述第一数据包中的源MAC地 址、所述虚拟局域网VLAN字段中设置所述第二端口的端口标识,所述第二端口为所述目的 服务器接入的所述出口边缘交换机的端口。
[0045] 结合第四方面的第二种可能实现方式中,在第四方面的第三种可能实现方式中, 所述查询模块,还用于查询本地转发表,确定第三端口;所述收发模块通过所述第三端口 向所述出口边缘交换机发送所述第二数据,以使所述出口边缘交换机将所述第二数据包解 析,从解析结果中获取所述VLAN字段的所述第二端口,并将所述第二数据包通过所述第二 端口发送给所述目的服务器。
[0046] 本发明实施例第五方面提供一种基于虚拟二层网络中数据包的处理装置,包括:
[0047] 查询模块,用于根据第一端口的端口标识查询本地映射关系表,获取与第一虚拟 网络局部标识LTID ;其中,所述第一 LTID为虚拟网络在源服务器上的LTID,所述第一端口 为源虚拟交换机接收源虚拟机发送的原始数据包的端口;
[0048] 处理模块,用于将所述第一 LTID插入所述原始数据包,以获取的第一数据包;
[0049] 收发模块,用于将所述第一数据包发送给入口边缘交换机。
[0050] 本发明实施例第六方面提供一种基于虚拟二层网络中数据包的处理装置,包括:
[0051] 收发模块,用于收入口边缘交换机发送的第一端口的端口标识、第一虚拟网络局 部标识LTID和目的虚拟机的介质访问控制MAC地址;其中,所述第一 LTID为虚拟网络在源 服务器上的LTID,所述第一端口为所述入口边缘交换机接收第一数据包的端口;
[0052] 获取模块,用于根据所述第一端口的端口标识,以及所述第一 LTID和所述目的虚 拟机的MAC地址获取对应的映射表项;
[0053] 所述收发模块,还用于将所述映射表项发送给所述入口边缘交换机,以使所述入 口边缘交换机将所述映射表项中的第二LTID替换所述第一数据包中的第一 LITD,并根据 所述映射表项对替换后的第一数据包进行封装,以获取第二数据包;其中,所述第二LTID 为虚拟网络在目的服务器上的LTID。
[0054] 结合第六方面,在第六方面的第一种可能实现方式中,所述获取模块,具体用于根 据所述第一端口的端口标识获取所述源服务器的标识;根据所述源服务器的标识和所述第 一 LTID获取所述虚拟网络全局标识GTID ;根据所述GTID和所述目的虚拟机的MAC地址获 取所述第二LTID ;根据所述第二LTID获取所述出口边缘交换机的MAC地址和第二端口的 端口标识;其中,所述第二端口为目的服务器接入的所述出口边缘交换机的端口;根据所 述第二LTID、所述出口边缘交换机的MAC地址和所述第二端口的端口标识生成所述映射表 项。
[0055] 本实施例提供的基于虚拟二层网络中数据包的处理方法,通过入口边缘交换机接 收第一数据包,根据第一端口的端口标识、第一数据包携带的第一 LTID和目的虚拟机的 MAC地址,查找封装信息映射表,若未从封装信息映射表获取到对应的映射表项,则向控制 器发送第一端口的端口标识、第一 LTID和目的虚拟机的MAC地址,以使得控制器返回对应 的映射表项后,将映射表项中的第二LTID替换第一数据包中第一 LITD,并根据映射表项对 替换后的第一数据包进行封装,以获取第二数据包,将第二数据包发送给与目的虚拟机的 MAC地址对应的出口边缘交换机,以使出口边缘交换机将接第二数据包进行解析处理后发 送给目的服务器。本实施例中,使用控制器维护整个虚拟网络信息,入口边缘交换机根据接 收到的控制器发送的映射表项,对第一数据包进行封装,获取第二数据包后发送给出口边 缘交换机,由于封装过程只采用了很小的额外包头,有效减少了网络带宽开销,提高了网络 的通信效率。
【附图说明】
[0056] 为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中 所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施 例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图 获得其他的附图。
[0057] 图1为现有技术中虚拟数据中心的网络架构示意图;
[0058] 图2为本发明实施例的基于虚拟二层网络中数据包的处理方法基于的虚拟网络 的组网结构示意图;
[0059] 图3为本发明实施例一提供的基于虚拟二层网络中数据包的处理方法流程图;
[0060] 图4为本发明实施例二提供的基于虚拟二层网络中数据包的处理方法流程图;
[0061] 图5为本发明实施例四提供的基于虚拟二层网络中数据包的处理方法流程图;
[0062] 图6为本发明实施例五提供的基于虚拟二层网络中数据包的处理方法流程图;
[0063] 图7为本发明实施例六提供的基于虚拟二层网络中数据包的处理方法流程图;
[0064] 图8为本发明实施例七提供的基于虚拟二层网络中数据包的处理方法流程图;
[0065] 图9为本发明实施例八提供的基于虚拟二层网络中数据包的处理方法的一实例 流程图;
[0066] 图10为本发明实施例九提供的基于虚拟二层网络中数据包的处理装置;
[0067] 图11为本发明实施例^^一提供的入口边缘交换机的结构示意图;
[0068] 图12为本发明实施例十二提供的基于虚拟二层网络中数据包的处理装置;
[0069] 图13为本发明实施例十三提供的源服务器的结构示意图;
[0070] 图14为本发明实施例十四提供的基于虚拟二层网络中数据包的处理装置;
[0071] 图15为本发明实施例十五提供的控制器的结构示意图。
【具体实施方式】
[0072] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例 中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是 本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员 在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0073] 图2为本发明实施例的基于虚拟二层网络中数据包的处理方法基于的虚拟网络 的组网结构示意图。如图2所示,该虚拟网络的组网结构中包括源服务器11、入口边缘交换 机12、控制器13、出口边缘交换机14、二层核心网络15和目的服务器16,其中,源服务器包 括源虚拟机17和源虚拟交换机18,目的虚拟机包括目的虚拟机20和目的虚拟交换机1。
[0074] 图3为本发明实施例一提供的基于虚拟二层网络中数据包的处理方法流程图。如 图3所示,该方法包括如下步骤。
[0075] 步骤101、入口边缘交换机接收源服务器发送的第一数据包。
[0076] 其中,第一数据包为源服务器将第一虚拟网络局部标识(Local Tag ID,简称 LTID)插入原始数据包后获取的数据包,且第一数据包包括目的虚拟机的介质访问控制 (Medium/Media Access Control,简称MAC)地址;第一 LTID为虚拟网络在源服务器上的 LTID〇
[0077] 本实施例中,源服务器包括源虚拟交换机和源虚拟机,第一 LTID为源服务器根据 源虚拟交换机接收源虚拟机发送的原始数据包的端口,查询本地映射关系表获得的,并且, 第一 LTID实际上为虚拟网络在源服务器中的某一个源虚拟机上的LTID,一个源服务器中 包括多个源虚拟机,一个源服务器中的不同的源虚拟机可以属于同一个虚拟网络,也可以 属于不同的虚拟网络,虚拟网络在不同的源虚拟上的LTID不同。具体的,源虚拟机发送原 始数据包给源虚拟交换机,源虚拟交换机根据第一端口标识查询本地映射关系表,将获取 到的与第一端口标识对应的第一 LTID插入原始数据包,以获取第一数据包,其中,本地映 射关系表中存储了第一端口的端口标识与第一 LTID之间的映射关系。
[0078] 步骤102、入口边缘交换机根据第一端口的端口标识、第一 LTID和目的虚拟机的 MAC地址,查找封装信息映射表。
[0079] 其中,第一端口是入口边缘交换机接收第一数据包的端口。
[0080] 本实施例中,第一端口为入口边缘交换机接收源服务器发送的第一数据包的端 口,封装信息映射表中包括第一端口的端口标识、第一 LTID和目的虚拟机的MAC地址与映 射表项之间的映射关系,以及映射表项,例如,通过查询封装信息映射表获取第一端口的端 口标识、第一 LTID和目的虚拟机的MAC地址与映射表项之间的映射关系,再根据该映射关 系获取对应的映射表项,该映射表项中具体包括目的服务器的LTID、目的虚拟机的MAC地 址对应的出口边缘交换机的MAC地址、目的服务器接入出口边缘的交换机的端口标识等。
[0081] 需要说明的是,本实施例中,第一数据包中还可以携带数据包的源虚拟机的MAC 地址。
[0082] 步骤103、若入口边缘交换机未从封装信息映射表中获取到与第一端口的端口标 识、第一 LTID和目的虚拟机的MAC地址对应的映射表项,则向控制器发送第一端口的端口 标识、第一 LTID和目的虚拟机的MAC地址,以使得控制器根据第一端口的端口标识、第一 LTID和目的虚拟机的MAC地址获取对应的映射表项,并将映射表项返回给入口边缘交换 机。
[0083] 其中,映射表项包括第二LTID,第二LTID为虚拟网络在目的服务器上的LTID。
[0084] 本实施例中,入口边缘交换机查询本地封装信息映射表,并没有查找到与第一端 口的端口标识、第一 LTID和目的虚拟机的MAC地址对应的映射表项,则将上述信息发送给 控制器,控制器根据接收到的第一端口的端口标识、第一 LTID和目的虚拟机的MAC地址查 找到对应的出口边缘交换机和目的服务器的信息生成映射表项,将该映射表项发送给入口 边缘交换机,该映射表项中具体包括目的服务器的LTID、出口边缘交换机的MAC地址和目 的服务器接入出口边缘交换机的端口的端口标识。其中,控制器用于维护该虚拟网络的全 网信息,包括入口边缘交换机、出口边缘交换机、源服务器以及目的服务器的信息。
[0085] 步骤104、入口边缘交换机将第二LTID替换第一数据包中的第一 LITD,并根据映 射表项对替换后的第一数据包进行封装,以获取第二数据包。
[0086] 本实施例中,对封装的具体方法和格式并不限制,例如,可以在替换后的第一数据 包中加入一个额外的以太网头部,将映射表项中的信息封装到该以太网头部,也可以采用 其它的封装方式,本发明中并不以此为限。
[0087] 需要说明的是,在本实施例中,目的服务器包括目的虚拟交换机和目的虚拟机,第 二LTID实际上为虚拟网络在目的服务器中的目的虚拟机上的 LTID,该目的虚拟机和源服 务器中发送原始数据包的源虚拟机属于同一个虚拟网络,但是该虚拟网络在该目的虚拟机 上LTID和在源虚拟机上的LTID不相同。
[0088] 步骤105、入口边缘交换机向与目的虚拟机的MAC地址对应的出口边缘交换机发 送所述第二数据包,以使出口边缘交换机将第二数据包进行解析并将解析后的第二数据包 后发送给目的服务器。
[0089] 本实施例中,二层核心网络中包括一个或者多个交换机,第二数据包在二层核心 网络中经过多次转发之后到达出口边缘交换机,该出口边缘交换机为第二数据包中与目的 虚拟机的MAC地址对应的出口边缘交换机,出口边缘交换机对第二数据包进行解析,获取 目的服务器的信息,如目的服务器的LTID等,将第二数据包发送给目的服务器。
[0090] 本实施例提供的基于虚拟二层网络中数据包的处理方法,通过入口边缘交换机接 收第一数据包,根据第一端口的端口标识、第一数据包携带的第一 LTID和目的虚拟机的 MAC地址,查找封装信息映射表,若未从封装信息映射表中获取到对应的映射表项,则向控 制器发送第一端口的端口标识、第一 LTID和目的虚拟机的MAC地址,以使得控制器返回对 应的映射表项后,将映射表项中的第二LTID替换第一数据包中第一 LITD,并根据映射表项 对替换后的第一数据包进行封装,以获取第二数据包,将第二数据包发送给与目的虚拟机 的MAC地址对应的出口边缘交换机,以使出口边缘交换机将接第二数据包进行解析处理后 发送给目的服务器。本实施例中,使用控制器维护整个虚拟网络信息,入口边缘交换机根据 接收到的控制器发送的映射表项,对第一数据包进行封装,获取第二数据包后发送给出口 边缘交换机,由于封装过程只采用了很小的额外包头,有效减少了网络带宽开销,提高了网 络的通信效率。
[0091] 图4为本发明实施例二提供的基于虚拟二层网络中数据包的处理方法流程图。如 图4所示,该方法包括如下步骤。
[0092] 步骤201、入口边缘交换机接收源服务器发送的第一数据包。
[0093] 其中,第一数据包为源服务器将第一 LTID插入原始数据包后获取的数据包,且第 一数据包包括第一 LTID和目的虚拟机的MAC地址;第一 LTID为虚拟网络在源服务器上的 LTID〇
[0094] 步骤202、入口边缘交换机根据第一端口的端口标识、第一 LTID和目的虚拟机的 MAC地址,查找封装信息映射表。
[0095] 其中,第一端口是入口边缘交换机接收第一数据包的端口。
[0096] 本实施例中,步骤201和步骤202与上述图3所示实施例中步骤101和步骤202 相同,此处不再赘述。
[0097] 步骤203、若入口边缘交换机从封装信息映射表中获取到与第一端口的端口标识、 第一 LTID和目的虚拟机的MAC地址对应的映射表项,则入口边缘交换机将映射表项中的第 二LTID替换第一数据包中的第一 LTID,并根据映射表项对替换后的第一数据包进行封装, 以获取第二数据包。
[0098] 其中,第二LTID为虚拟网络在目的服务器上的LTID。
[0099] 本实施例中,与上述图3所示实施例一中不同的是,入口边缘交换机查询本地封 装信息映射表,在本地封装信息映射表中获取到与第一端口的端口标识、第一 LTID和目的 虚拟机的MAC地址对应的映射表项,即本地封装信息映射表中已经存在与第一数据包中的 第一端口的端口标识、第一 LTID和目的虚拟机的MAC地址对应的映射表项,不必再向控制 器发送第一端口的端口标识、第一 LTID和目的虚拟机的MAC地址以获取对应的映射表项。
[0100] 步骤204、入口边缘交换机向与目的虚拟机的MAC地址对应的出口边缘交换机发 送第二数据包,以使出口边缘交换机将第二数据包进行解析并将解析后的第二数据包发送 给目的服务器。
[0101] 本实施例中,步骤204和上述图3所示实施例一中的步骤205相同,此处不再赘 述。
[0102] 本实施例提供的基于虚拟二层网络中数据包的处理方法,通过入口边缘交换机接 收第一数据包,根据第一端口的端口标识、第一数据包携带的第一 LTID和目的虚拟机的 MAC地址,查找封装信息映射表,若入口边缘交换机从封装信息映射表获取到与第一端口的 端口标识、第一 LTID和目的虚拟机的MAC地址对应的映射表项,则入口边缘交换机根据本 地获取的映射表项,将映射表项中的第二LTID替换第一数据包中第一 LTID,并根据映射表 项对替换后的第一数据包进行封装,以获取第二数据包,并将第二数据包发送给与目的虚 拟机的MAC地址对应的出口边缘交换机,以使出口边缘交换机将接第二数据包进行解析并 将解析后的第二数据包发送给目的服务器。由于入口边缘交换机将映射表项中的第二LTID 替换第一数据包中的第一 LTID,使用LTID隔离不同的虚拟网络,并且使用控制器维护整个 虚拟网络信息,如第一 LTID和第二LTID之间的映射关系,能够支持无限多的虚拟网络,根 据映射表项对替换后的第一数据包进行封装获取第二数据包,减少了二层网络交换机转发 表项的数目,而且封装过程只增加了较小的额外报文头,有效减少了网络带宽开销,提高了 网络的通信效率。
[0103] 进一步的,在上述实施例一或实施例二的基础上,在本发明实施例三提供的基于 虚拟二层网络中数据包的处理方法中,映射表项还包括出口边缘交换机的MAC地址和第二 端口的端口标识;则根据映射表项对替换后的第一数据包进行封装,以获取第二数据包,具 体包括:
[0104] 根据出口边缘交换机的MAC地址和第二端口的端口标识,以及入口边缘交换机的 MAC地址,为替换后的第一数据包添加一个报文头部,以获取第二数据包;其中,报文头部 中的出口边缘交换机的目的地址为第一数据包的目的MAC地址、入口边缘交换机的MAC地 址为第一数据包的源MAC地址、虚拟局域网(Virtual extensible Local Area Network,简 称VLAN)字段中设置第二端口的端口标识,第二端口为目的服务器接入的出口边缘交换机 的端口。
[0105] 本实施例中,根据映射表项中的出口边缘交换机的MAC地址和第二端口的端口标 识,以及入口边缘交换机的MAC地址,构建一个新的二层报文头部,在该报文头部中将第一 数据包的目的MAC地址设置为出口边缘交换机的目的地址、将第一数据包的源MAC地址设 置为入口边缘交换机的MAC地址、并在在虚拟局域网VLAN字段中设置第二端口的端口标 识,将该报文头部封装在第一数据包的报文头部,以获取到第二数据包,使得二层网络交换 机感知不到虚拟机的MAC地址,只需要通过入口边缘交换机和出口边缘交换机之间的MAC 地址来进行数据通信即可,从而减少了二层核心网络中交换机的转发表项的数目。
[0106] 图5为本发明实施例四提供的基于虚拟二层网络中数据包的处理方法流程图。在 上述实施例三的基础上,如图5所示,步骤"入口边缘交换机向与目的虚拟机的MAC地址对 应的出口边缘交换机发送第二数据包,以使出口边缘交换机将第二数据包进行解析并将解 析后的第二数据包发送给目的服务器"具体包括如下步骤:
[0107] 步骤301、入口边缘交换机查询本地转发表,确定第三端口。
[0108] 本实施例中,根据目的虚拟机的MAC地址来确定对应的出口边缘交换机,本地转 发表存储出口边缘交换机与第三端口的端口标识的对应关系,第三端口为入口边缘交换机 接入二层核心网络中下一个交换机的端口。
[0109] 步骤302、入口边缘交换机通过第三端口向出口边缘交换机发送第二数据包,以使 出口边缘交换机将第二数据包解析,从解析结果中获取VLAN字段的第二端口,并将第二数 据包通过第二端口发送给目的服务器。
[0110] 本实施例中,入口边缘交换机通过第三端口将第二数据包发送给核心网络中下一 个交换,经过核心网络中多个交换机的转发,将第二数据包转发给出口边缘交换机,出口边 缘交换机将第二数据包解析,去除外层的MAC头部,获取到VLAN字段的第二端口,即目的服 务器接入出口边缘交换机的端口,通过该第二端口将第二数据包发送给目的服务器。
[0111] 本实施例中,目的服务器包括目的虚拟交换机和目的虚拟机,目的虚拟交换机接 收到入口边缘发送的数据包之后,将该第二数据包进行解析,获取该第二数据包中的目的 虚拟机的MAC地址,根据目的虚拟机的MAC地址查询本地转发表,以获取与目的虚拟机的 MAC地址对应的目的虚拟交换机接入目的虚拟机的端口,并通过该端口将第二数据包发送 给目的虚拟机。
[0112] 图6为本发明实施例五提供的基于虚拟二层网络中数据包的处理方法流程图。本 实施例的执行主体为源服务器,如图6所示,该方法包括以下步骤。
[0113] 步骤401、源服务器根据第一端口的端口标识查询本地映射关系表,获取第一 LTID〇
[0114] 其中,第一 LTID为虚拟网络在源服务器上的LTID,第一端口为源虚拟交换机接收 源虚拟机发送的原始数据包的端口。
[0115] 步骤402、源服务器将获取到的第一 LTID插入接收到的原始数据包,以获取的第 一数据包。
[0116] 本实施例中,源虚拟交换机查询本地映射关系表,将获取到的与第一端口标识对 应的第一 LTID插入原始数据包,以获取第一数据包,其中,本地映射关系表中存储了第一 端口的端口标识与第一 LTID之间的映射关系。
[0117] 步骤403、源服务器将第一数据包发送给入口边缘交换机。
[0118] 本实施例中提供的基于虚拟二层网络中数据包的处理方法,源服务器查询本地映 射关系表,以获取与第一端口的端口标识对应的第一 LTID,将获取到的第一 LTID插入接收 到的原始数据包,以获取的第一数据包,并将第一数据包发送给入口边缘交换机,本实施例 中在数据包中插入了 LTID,采用LTID实现了不同的虚拟网络之间的隔离,保证的租户的通 信安全。
[0119] 图7为本发明实施例六提供的基于虚拟二层网络中数据包的处理方法流程图。本 实施例的执行主体为控制器,如图7所示,该方法包括以下步骤。
[0120] 步骤501、控制器接收入口边缘交换机发送的第一端口的端口标识、第一 LTID和 目的虚拟机的MAC地址。
[0121] 其中,第一 LTID为虚拟网络在源服务器上的LTID,第一端口为入口边缘交换机接 收第一数据包的端口。
[0122] 步骤502、控制器根据第一端口的端口标识、第一LTID和目的虚拟机的MAC地址获 取对应的映射表项。
[0123] 步骤503、控制器将映射表项发送给入口边缘交换机,以使入口边缘交换机将映射 表项中的第二LTID替换第一数据包中的第一 LTID,并根据映射表项对替换后的第一数据 包进行封装,以获取第二数据包。
[0124] 其中,第二LTID为虚拟网络在目的服务器上的LTID。
[0125] 本实施例提供的基于虚拟二层网络中数据包的处理方法,控制器接收入口边缘交 换机发送的第一端口的端口标识、第一 LTID和目的虚拟机的MAC地址,根据第一端口的端 口标识、第一 LTID和目的虚拟机的MAC地址获取对应的映射表项,将映射表项发送给入 口边缘交换机,以使入口边缘交换机将映射表项中的第二LTID替换第一数据包中的第一 LTID,并根据映射表项对替换后的第一数据包进行封装,以获取第二数据包,通过控制器维 护保并保存虚拟网络构建时形成的映射关系,能够支持无限多的虚拟网络,实现了不同的 虚拟网络之间的隔离,使得入口边缘交换机根据映射表项对替换后的第一数据包进行封装 获取第二数据包,减少了二层网络交换机转发表项的数目,而且封装过程只增加了较小的 额外报文头,有效减少了网络带宽开销,提高了网络的通信效率。
[0126] 图8为本发明实施例七提供的基于虚拟二层网络中数据包的处理方法流程图。本 实施例的执行主体为控制器,如图8所示,该方法包括以下步骤。
[0127] 步骤601、控制器接收入口边缘交换机发送的第一端口的端口标识、第一 LTID和 目的虚拟机的MAC地址。
[0128] 其中,第一 LTID为虚拟网络在源服务器上的LTID,第一端口为入口边缘交换机接 收第一数据包的端口。
[0129] 步骤602、控制器根据第一端口的端口标识获取源服务器的标识。
[0130] 步骤603、控制器根据源服务器的标识和第一 LTID获取虚拟网络全局标识 (Global Tag ID,简称 GTID)。
[0131] 步骤604、控制器根据GTID和目的虚拟机的MAC地址获取第二LTID。
[0132] 步骤605、控制器根据第二LTID获取出口边缘交换机的MAC地址和第二端口的端 口标识。
[0133] 其中,第二端口为目的服务器接入的出口边缘交换机的端口号。
[0134] 步骤606、控制器根据第二LTID、出口边缘交换机的MAC地址和第二端口号生成映 射表项。
[0135] 步骤607、控制器将映射表项发送给入口边缘交换机,以使入口边缘交换机将映射 表项中的第二LTID替换第一数据包中的第一 LTID,并根据映射表项对替换后的第一数据 包进行封装,以获取第二数据包。
[0136] 本实施例提供的基于虚拟二层网络中数据包的处理方法,控制器根据入口边缘交 换机发送的第一端口的端口标识、第一 LTID和目的虚拟机的MAC地址,获取对应的第二 LTID、出口边缘交换机的MAC地址和第二端口的端口标识生成映射表项,将该生成映射表 项发送给入口边缘交换机,通过控制器维护保并保存虚拟网络构建时形成的映射关系,能 够支持无限多的虚拟网络,实现了不同的虚拟网络之间的隔离,使得入口边缘交换机根据 映射表项对替换后的第一数据包进行封装获取第二数据包,减少了二层网络交换机转发表 项的数目,而且封装过程只增加了较小的额外报文头,有效减少了网络带宽开销,提高了网 络的通信效率。
[0137] 图9为本发明实施例八提供的基于虚拟二层网络中数据包的处理方法的一实例 信令图。该方法基于图2所示的系统架构,如图9所示,该方法包括以下步骤。
[0138] 步骤701、源虚拟机向源虚拟交换机发送原始数据包。
[0139] 步骤702、源虚拟交换机收到源虚拟机发送的原始数据包,根据原始数据包的进入 端口的端口标识SRC_VIRTUAL_SWITCH_PORT,查询该源虚拟机所属虚拟网络在源物理主机 上的局部网络标识SRC_LTID,并在原始数据包中插入SRC_LTID,获取第一数据包。
[0140] 本实施例中,SRC_VIRTUAL_SWITCH_PORT为源虚拟机在源虚拟交换机上的接入端 口的端口标识,SRC_LTID为虚拟网络在源物理主机上的局部网络标识,源虚拟交换机中保 存源虚拟交换机接入源虚拟机的端口的端口标识与虚拟网络在源物理主机上的局部网络 标识的映射关系为(SRC_VIRTUAL_SWITCH_PORT:SRC_LTID)。插入SRC_LTID时,可以复用数 据包中的VLAN ID字段,也可以插入在数据包的其他位置。
[0141] 步骤703、源虚拟交换机将第一数据包转发到入口边缘交换机。
[0142] 步骤704、入口边缘交换机接收到源虚拟交换机发送的第一数据包,根据第一数据 包的(SRC_MAC,DST_MAC,SRC_LTID)在存储模块中查询封装信息映射表,查看是否有匹配 的映射表项。
[0143] 本实施例中,SRC_MAC为发出数据包的源虚拟机的MAC地址,DST_MAC为目的虚拟 机的MAC地址。也可以根据(SRC_PORT,DST_MAC,SRC_LTID)来查询封装信息映射表,其中, SRC_P0RT为源虚拟机所在物理主机在入口边缘交换机的接入端口的端口标识,此时,入口 边缘交换机中对应的映射表项包含(SRC_P0RT,DST_MAC,SRC_LTID,DST_SW_MAC,DST_LTID, DST_P0RT),其中,DST_SW_MAC为目的虚拟机所在物理主机所连接的边缘交换机的MAC地 址,DST_LTID为虚拟网络在目的物理主机上的局部网络标识,其中,DST_P0RT为目的虚拟 机所在物理主机在出口边缘交换机的接入端口号。或者,根据(DST_MAC,SRC_LTID)来查询 封装信息映射表,此时,入口边缘交换机中对应的映射表项包含(DST_MAC,SRC_LTID,DST_ SW_MAC,DST_LTID,DST_P0RT),还可以设置其它的映射表项,本发明中并不以此为限。
[0144] 步骤705、入口边缘交换机若没有查询到匹配的条目,则将数据包的信息,包括 (SRC_MAC,DST_MAC, SRC_LTID,SRC_SW_MAC,SRC_P0RT)发送到控制器,请求映射表项。
[0145] 步骤706、控制器接收入口边缘交换机发来的请求映射表项消息,并根据请求映射 表项消息中的数据包信息,查询匹配的映射表项。
[0146] 本实施例中,数据包信息包括(SRC_MAC,DST_MAC,SRC_LTID,SRC_SW_MAC,SRC_ PORT),映射表项包括(SRC_MAC,DST_MAC,SRC_LTID,DST_SW_MAC,DST_LTID,DST_P0RT)。
[0147] 为了完成上述查询,控制器至少要保存下面四组映射关系,如表2所示:
[0148] 1) (SID,LTID)与GTID之间的映射关系,根据虚拟机的MAC地址及LTID识别对应 的虚拟网络的GTID,其中,SID为服务器的标识,LTID为虚拟网络局部标识,GTID为虚拟网 络全局标识。
[0149] 2) (GTID,VMAC)与(SID,LTID)之间的映射关系,其中,VMAC为虚拟机的MAC地址。 基于虚拟网络的GTID及该虚拟网络内的一台虚拟机的MAC地址VMAC,可以识别出这台虚拟 机放置在哪台物理服务器上以及它所属的虚拟网络在该服务器上对应的LTID。
[0150] 3) SID与(SW_MAC,PORT)之间的映射关系,SW_MAC表示该物理主机接入的边缘交 换机MAC地址,PORT表示该物理主机接入的边缘交换机的端口号。
[0151] 4) (SW_MAC,PORT)与 SID 之间的映射关系。
[0152] 表2数据包信息与映射表项之间的映射关系
[0153]
[0154] 本实施例中,SRC_SW_ID为入口边缘交换机在控制器中的ID,控制器还可以和云 管理系统协同工作,云管理系统能够保证所有虚拟机的MAC地址都不相同,因此可以直接 建立〈VMAC,SID>之间的映射关系,在这种情况下,控制器至少要保存下面两组映射关系:
[0155] 1)VMAC与(SID,LTID)之间的映射,基于一台虚拟机的MAC地址,可以识别出这台 虚拟机放置在哪台物理服务器上以及它所属的虚拟网络在该服务器上对应的LTID。
[0156] 2) SID与(SW_MAC,PORT)之间的映射,SW_MAC表示该物理主机接入的边缘交换机 MAC地址,PORT表示该物理主机接入的边缘交换机的端口号。
[0157] 步骤707、控制器将映射表项发送给入口边缘交换机。
[0158] 步骤708、入口边缘交换机接收控制器下发的映射表项,并根据下发的映射表项对 数据进行Mac-in-Mac的封装,获取第二数据包。
[0159] 本实施例中,封装过程具体分为以下两步:
[0160] a)将第一数据包的LTID的值改为DST_LTID ;
[0161] b)在第一数据包的外层添加二层包头。
[0162] 在本实施例中,二层包头中具体设置源MAC地址为SRC_SW_MAC,目的MAC地址为 DST_SW_MAC,VLAN ID的值为DST_P0RT,及目的物理主机在出口边缘交换机上的接入端口 号。
[0163] 步骤709、入口边缘交换机根据本地的转发表将第二数据包发送出去。
[0164] 步骤710、出口边缘交换机收到第二数据包之后,对第二数据包进行解封装,去掉 外面的二层包头,并将解封装之后的第二数据包从外层包头中的VLAN ID域指示的端口中 转发出去。
[0165] 步骤711、目的虚拟交换机收到解封装之后第二数据包之后,根据解封装之后第二 数据包中的LTID和DST_MAC查询转发表,根据查询得到的端口标识DST_VIRTUAL_SWITCH_ PORT将解封装之后第二数据包转发给目的虚拟机。
[0166] 其中,转发表存储的是(LITD,DST_MAC)到端口号的映射关系,DST_VIRTUAL_ SWITCH_P0RT为目的虚拟机在目的虚拟机交换机上的接入端口号
[0167] 本实施例提供的基于虚拟二层网络中数据包的处理方法,通过入口边缘交换机 接收第一数据包,根据第一端口的端口标识、第一 LTID和目的虚拟机的MAC地址,查找封 装信息映射表,若未获取到对应的映射表项,则将第一端口的端口标识、第一 LTID和目的 虚拟机的MAC地址发送给控制器,以使控制器返回对应的映射表项后,将映射表项中的第 二LTID替换第一数据包中第一 LTID,并根据映射表项对替换后的第一数据包进行封装,以 获取第二数据包,将第二数据包发送给与目的虚拟机的MAC地址对应的出口边缘交换机, 以使出口边缘交换机将接第二数据包进行解析,并将解析后的第一数据包发送给目的服务 器。由于入口边缘交换机将映射表项中的第二LTID替换第一数据包中第一 LTID,使用LTID 隔离不同的虚拟网络,并且使用控制器维护整个虚拟网络信息,如第一 LTID和第二LTID之 间的映射关系,能够支持无限多的虚拟网络,根据映射表项对替换后的第一数据包进行封 装获取第二数据包,减少了二层网络交换机转发表项的数目,而且封装过程只增加了较小 的额外报文头,有效减少了网络带宽开销,提高了网络的通信效率。
[0168] 图10为本发明实施例九提供的基于虚拟二层网络中数据包的处理装置。如图10 所示,该装置包括收发模块21、查询模块22和处理模块23。
[0169] 收发模块21用于接收源服务器发送的第一数据包;其中,第一数据包为源服务器 将第一 LTID插入原始数据包后获取的数据包,且第一数据包包括第一 LTID和目的虚拟机 的介质访问控制MAC地址;其中,第一 LTID为虚拟网络在所述源服务器上的LTID。
[0170] 查询模块22用于根据接收第一端口的端口标识、第一 LTID和目的虚拟机的MAC 地址,查找封装信息映射表,其中,第一端口是入口边缘交换机接收第一数据包的端口。
[0171] 收发模块21还用于若查询模块22未从所述封装信息映射表中获取到与第一端口 的端口标识、第一 LTID和目的虚拟机的MAC地址对应的映射表项,则向控制器发送第一端 口的端口标识、第一 LTID和目的虚拟机的MAC地址,以使得控制器根据第一端口的端口标 识、第一 LTID和目的虚拟机的MAC地址获取对应的映射表项,并将映射表项返回给入口边 缘交换机,其中,映射表项包括第二LTID,第二LTID为虚拟网络在目的服务器上的LTID。
[0172] 处理模块23用于将第二LTID替换第一数据包中第一 LTID,并根据映射表项对替 换后的第一数据包进行封装,以获取第二数据包。
[0173] 收发模块21还用于向与目的虚拟机的MAC地址对应的出口边缘交换机发送第二 数据包,以使出口边缘交换机将第二数据包进行解析并将解析后第二数据包发送给目的服 务器。
[0174] 本实施例的装置,可以用于执行图3所示方法实施例的技术方案,其实现原理和 技术效果类似,此处不再赘述。
[0175] 进一步地,在上述实施例九的基础上,本发明实施例十提供的基于虚拟二层网络 中数据包的处理装置中,
[0176] 处理模块23还用于若查询模块从封装信息映射表中获取到与第一端口的端口标 识、第一 LTID和目的虚拟机的MAC地址对应的映射表项,则根据本地获取的映射表项,将映 射表项中的第二LTID替换第一数据包中的第一 LTID,并根据映射表项对替换后的第一数 据包进行封装,以获取第二数据包,其中,第二LTID为虚拟网络在目的服务器上的LTID。
[0177] 本实施例的装置,可以用于执行图4所示方法实施例的技术方案,其实现原理和 技术效果类似,此处不再赘述。
[0178] 更近一步地,在上述实施例九或者实施例十的基础上,映射表项还包括出口边缘 交换机的MAC地址和第二端口的端口标识;
[0179] 处理模块23具体用于根据出口边缘交换机的MAC地址和第二端口的端口标识,以 及入口边缘交换机的MAC地址,为替换后的第一数据包添加一个报文头部,以获取第二数 据包;其中,报文头部中的出口边缘交换机的目的地址为第一数据包中的目的MAC地址、入 口边缘交换机的MAC地址为第一数据包中的源MAC地址、虚拟局域网VLAN字段中设置第二 端口的端口标识,第二端口为目的服务器接入的出口边缘交换机的端口。
[0180] 本实施例中,处理模块23根据映射表项中的出口边缘交换机的MAC地址和第二端 口的端口标识,以及入口边缘交换机的MAC地址,构建一个报文头部,将第一数据包的目的 MAC地址设置为出口边缘交换机的目的地址、第一数据包的源MAC地址设置为入口边缘交 换机的MAC地址、在虚拟局域网VLAN字段中设置第二端口的端口标识,并将该报文头部封 装到第一数据包的报文头部,以获取第二数据包,使得二层网络交换机感知不到虚拟机的 MAC地址,只需要通过入口边缘交换机和出口边缘交换机之间的MAC地址来进行数据通信 即可,从而减少了二层核心网络中交换机的转发表项的数目。
[0181] 再进一步地,在上述实施例在上述实施例九或者实施例十的基础上,
[0182] 查询模块22还用于查询本地转发表,确定第三端口;
[0183] 收发模块21用于通过该第三端口向出口边缘交换机发送第二数据包,以使出口 边缘交换机将第二数据包解析,从解析结果中获取VLAN字段的第二端口,并将第二数据包 通过第二端口发送给目的服务器。
[0184] 本实施例的装置,可以用于执行图5所示方法实施例的技术方案,其实现原理和 技术效果类似,此处不再赘述。
[0185] 图11为本发明实施例十一提供的入口边缘交换机的结构示意图。如图11所示, 该入口边缘交换机包括发射器31、接收器32、处理器33。其中,接收器32用于接收源服务 器发送的第一数据包;其中,第一数据包为源服务器将第一虚拟网络局部标识LTID插入原 始数据包后获取的数据包,且第一数据包包括第一 LTID和目的虚拟机的介质访问控制MAC 地址;其中,第一 LTID为虚拟网络在源服务器上的LTID。
[0186] 处理器33用于根据第一端口的端口标识、第一 LTID和目的虚拟机的MAC地址,查 找封装信息映射表,其中第一端口是入口边缘交换机接收第一数据包的端口。
[0187] 发射器31用于若处理器33未从封装信息映射表中获取到与第一端口的端口标 识、第一 LTID和目的虚拟机的MAC地址对应的映射表项,则向控制器发送第一端口的端口 标识、第一 LTID和目的虚拟机的MAC地址,以使得控制器根据第一端口的端口标识、第一 LTID和目的虚拟机的MAC地址获取对应的映射表项,并将映射表项返回给入口边缘交换 机,其中,映射表项包括第二LTID,第二LTID为虚拟网络在目的服务器上的LTID。
[0188] 处理器33还用于将第二LTID替换第一数据包中第一 LTID,并根据映射表项对替 换后的第一数据包进行封装,以获取第二数据包。发射器31还用于向与目的虚拟机的MAC 地址对应的出口边缘交换机发送第二数据包,以使出口边缘交换机将第二数据包进行解析 并将解析后第二数据包发送给目的服务器。
[0189] 进一步地,在本实施例中,处理器33还用于若从封装信息映射表中获取到与第一 端口的端口标识、第一 LTID和目的虚拟机的MAC地址对应的映射表项,则将映射表项中的 第二LTID替换第一数据包中的第一 LTID,并根据映射表项对替换后的第一数据包进行封 装,以获取第二数据包,其中,第二LTID为虚拟网络在目的服务器上的LTID。
[0190] 更近一步地,映射表项还包括出口边缘交换机的MAC地址和第二端口的端口标 识;则处理器33具体用于根据出口边缘交换机的MAC地址和第二端口的端口标识,以及入 口边缘交换机的MAC地址,为替换后的第一数据包添加一个报文头部,以获取第二数据包; 其中,报文头部中的出口边缘交换机的目的地址为第一数据包中的目的MAC地址、入口边 缘交换机的MAC地址为第一数据包中的源MAC地址、虚拟局域网VLAN字段中设置第二端口 的端口标识,第二端口为目的服务器接入的出口边缘交换机的端口。处理器33还用于查询 本地转发表,确定第三端口;发射器31通过第三端口向出口边缘交换机发送第二数据包, 以使出口边缘交换机将第二数据包解析,从解析结果中获取VLAN字段的第二端口,并将第 二数据包通过第二端口发送给目的服务器。
[0191] 可选地,在本实施例中,入口边缘交换机还可以包括存储器(图中未示出),用于 存储封装信息映射表和本地转发表。
[0192] 本实施例的入口边缘交换机,可以用于执行实施例一至实施例四任一实施例的技 术方案,其实现原理和技术效果类似,此处不再赘述。
[0193] 图12为本发明实施例十二提供的基于虚拟二层网络中数据包的处理装置。如图 12所示,该装置包括查询模块41、处理模块42和收发模块43。其中,查询模块41用于根据 第一端口的端口标识查询本地映射关系表,获取第一 LTID ;其中,第一 LTID为虚拟网络在 源服务器上的LTID,第一端口为源虚拟交换机接收源虚拟机发送的原始数据包的端口。处 理模块42用于将第一 LTID插入原始数据包,以获取的第一数据包。收发模块43用于将第 一数据包发送给入口边缘交换机。
[0194] 本实施例的装置,可以用于执行图6所示方法实施例的技术方案,其实现原理和 技术效果类似,此处不再赘述。
[0195] 图13为本发明实施例十三提供的源服务器的结构示意图。如图13所示,源服务 器包括处理器45和发射器46。其中,处理器45用于根据第一端口的端口标识查询本地映 射关系表,获取第一 LTID,并将第一 LTID插入原始数据包,以获取的第一数据包;其中,第 一 LTID为虚拟网络在源服务器上的LTID,第一端口为源虚拟交换机接收源虚拟机发送的 原始数据包的端口。发射器46用于将第一数据包发送给入口边缘交换机。
[0196] 本实施例的源服务器,可以用于执行图6所示方法实施例的技术方案,其实现原 理和技术效果类似,此处不再赘述。
[0197] 图14为本发明实施例十四提供的基于虚拟二层网络中数据包的处理装置。如图 14所示,该装置包括收发模块51和获取模块52。其中,收发模块51用于收入口边缘交换 机发送的第一端口的端口标识、第一LTID和目的虚拟机的介质访问控制MAC地址;其中,第 一端口为入口边缘交换机接收第一数据包的端口。获取模块52用于根据第一端口的端口 标识、第一 LTID和目的虚拟机的MAC地址获取对应的映射表项。收发模块51还用于将映 射表项发送给入口边缘交换机,以使入口边缘交换机将映射表项中的第二LTID替换第一 数据包中的第一 LTID,并根据映射表项对替换后的第一数据包进行封装,以获取第二数据 包。
[0198] 进一步地,在本实施例中,所述获取模块52具体用于根据第一端口的端口标识获 取源服务器的标识;根据源服务器的标识和第一 LTID获取虚拟网络全局标识GTID ;根据 GTID和目的虚拟机的MAC地址获取第二LTID ;根据第二LTID获取出口边缘交换机的MAC 地址和第二端口的端口标识;其中,第二端口为目的服务器接入的出口边缘交换机的端口; 根据第二LTID、出口边缘交换机的MAC地址和第二端口的端口标识生成映射表项。
[0199] 本实施例的装置,可以用于执行图7或图8所示方法实施例的技术方案,其实现原 理和技术效果类似,此处不再赘述。
[0200] 图15为本发明实施例十五提供的控制器的结构示意图。如图15所示,该控制器 包括发射器53、接收器54和处理器55。其中,接收器54用于收入口边缘交换机发送的第 一端口的端口标识、第一 LTID和目的虚拟机的介质访问控制MAC地址;其中,第一端口为入 口边缘交换机接收第一数据包的端口。处理器55用于根据第一端口的端口标识、第一和目 的虚拟机的MAC地址获取对应的映射表项。发射器53用于将映射表项发送给入口边缘交 换机,以使入口边缘交换机将映射表项中的第二LTID替换第一数据包中的第一 LTID,并根 据映射表项对替换后的第一数据包进行封装,以获取第二数据包。
[0201] 进一步地,在本实施例中,处理器55具体用于根据第一端口的端口标识获取源服 务器的标识;根据源服务器的标识和第一 LITD获取虚拟网络全局标识GTID ;根据GTID和 目的虚拟机的MAC地址获取第二LTID ;根据第二LTID获取出口边缘交换机的MAC地址和 第二端口的端口标识;其中,第二端口为目的服务器接入的出口边缘交换机的端口;根据 第二LTID、出口边缘交换机的MAC地址和第二端口的端口标识生成映射表项。
[0202] 本实施例的装置,可以用于执行图7或图8所示方法实施例的技术方案,其实现原 理和技术效果类似,此处不再赘述。
[0203] 本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通 过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该 程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:只读存储器 (Read-Only Memory,简称 ROM)、随机存取存储器(random access memory,简称 RAM)、磁碟 或者光盘等各种可以存储程序代码的介质。
[0204] 最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制; 尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其 依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征 进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技 术方案的范围。
【主权项】
1. 一种基于虚拟二层网络中数据包的处理方法,其特征在于,包括: 入口边缘交换机接收源服务器发送的第一数据包;其中,所述第一数据包为所述源服 务器将第一虚拟网络局部标识LTID插入原始数据包后获取的数据包,且所述第一数据包 包括目的虚拟机的介质访问控制MAC地址;其中,所述第一 LTID为虚拟网络在所述源服务 器中上的LTID ; 所述入口边缘交换机根据第一端口的端口标识、所述第一 LTID和所述目的虚拟机的 MAC地址,查找封装信息映射表,其中,所述第一端口是所述入口边缘交换机接收所述第一 数据包的端口; 若所述入口边缘交换机未从所述封装信息映射表中获取到与所述第一端口的端口标 识、第一 LTID和所述目的虚拟机的MAC地址对应的映射表项,则向控制器发送所述第一端 口的端口标识、第一 LTID和所述目的虚拟机的MAC地址,以使得所述控制器根据所述第一 端口的端口标识、第一 LTID和所述目的虚拟机的MAC地址获取对应的映射表项,并将所述 映射表项返回给所述入口边缘交换机,其中,所述映射表项包括第二LTID,所述第二LTID 为所述虚拟网络在所述目的服务器上的LTID ; 所述入口边缘交换机将所述第二LTID替换所述第一数据包中的第一 LTID,并根据所 述映射表项对替换后的第一数据包进行封装,以获取第二数据包; 所述入口边缘交换机向与所述目的虚拟机的MAC地址对应的出口边缘交换机发送所 述第二数据包,以使所述出口边缘交换机将所述第二数据包进行解析并将解析后的所述第 二数据包发送给所述目的服务器。2. 根据权利要求1所述的方法,其特征在于,所述入口边缘交换机根据第一端口的端 口标识、第一 LTID和所述目的虚拟机的MAC地址,查找封装信息映射表之后,还包括: 若所述入口边缘交换机从封装信息映射表中获取到与所述第一端口的端口标识、第一 LTID和所述目的虚拟机的MAC地址对应的映射表项,则所述入口边缘交换机将所述映射表 项中的第二LTID替换所述第一数据包中的第一 LITD,并根据所述映射表项对替换后的第 一数据包进行封装,以获取第二数据包,其中,所述第二LTID为所述虚拟网络在所述目的 服务器上的LTID。3. 根据权利要求1或2所述的方法,其特征在于,所述映射表项还包括出口边缘交换机 的MAC地址和第二端口的端口标识; 所述根据所述映射表项对替换后的第一数据包进行封装,以获取第二数据包,具体包 括: 根据所述出口边缘交换机的MAC地址和第二端口的端口标识,以及入口边缘交换机的 MAC地址,为所述替换后的第一数据包添加一个报文头部,以获取第二数据包;其中,所述 报文头部中的所述出口边缘交换机的目的地址为所述第一数据包的目的MAC地址、所述入 口边缘交换机的MAC地址为所述第一数据包的源MAC地址、所述虚拟局域网VLAN字段中设 置所述第二端口的端口标识,所述第二端口为所述目的服务器接入的所述出口边缘交换机 的端口。4. 根据权利要求3所述的方法,其特征在于,所述入口边缘交换机向与所述目的虚拟 机的MAC地址对应的出口边缘交换机发送所述第二数据包,以使所述出口边缘交换机将所 述第二数据包进行解析并将解析后的所述第二数据包发送给目的服务器,具体包括: 所述入口边缘交换机查询本地转发表,确定第三端口,并通过所述第三端口向所述出 口边缘交换机发送所述第二数据包,以使所述出口边缘交换机将所述第二数据包解析,从 解析结果中获取所述VLAN字段的所述第二端口,并将所述第二数据包通过所述第二端口 发送给所述目的服务器。5. -种基于虚拟二层网络中数据包的处理方法,其特征在于,包括: 源服务器根据第一端口的端口标识查询本地映射关系表,获取第一虚拟网络局部标识 LTID ;其中,所述第一 LTID为虚拟网络在源服务器上的LTID,所述第一端口为源虚拟交换 机接收源虚拟机发送的原始数据包的端口; 所述源服务器将所述第一 LTID插入所述原始数据包,以获取的第一数据包; 所述源服务器将所述第一数据包发送给入口边缘交换机。6. -种虚拟二层网络数据处理方法,其特征在于,包括: 控制器接收入口边缘交换机发送的第一端口的端口标识、第一虚拟网络局部标识LTID 和目的虚拟机的介质访问控制MAC地址;其中,所述第一 LTID为虚拟网络在源服务器上的 LTID,所述第一端口为所述入口边缘交换机接收第一数据包的端口; 所述控制器根据所述第一端口的端口标识、所述第一 LTID和所述目的虚拟机的MAC地 址获取对应的映射表项; 所述控制器将所述映射表项发送给所述入口边缘交换机,以使所述入口边缘交换机将 所述映射表项中的第二LTID替换所述第一数据包中的所述第一 LITD,并根据所述映射表 项对替换后的第一数据包进行封装,以获取第二数据包;其中,所述第二LTID为虚拟网络 在目的服务器上的LTID。7. 根据权利要求6所述的方法,其特征在于,所述控制器根据所述第一端口的端口标 识、所述第一 LTID和所述目的虚拟机的MAC地址获取对应的映射表项,具体包括: 所述控制器根据所述第一端口的端口标识获取所述源服务器的标识; 所述控制器根据所述源服务器的标识和所述第一 LTID获取所述虚拟网络全局标识 GTID ; 所述控制器根据所述GTID和所述目的虚拟机的MAC地址获取所述第二LTID ; 所述控制器根据所述第二LTID获取所述出口边缘交换机的MAC地址和第二端口的端 口标识;其中,所述第二端口为目的服务器接入的所述出口边缘交换机的端口; 所述控制器根据所述第二LTID、所述出口边缘交换机的MAC地址和所述第二端口的端 口标识生成所述映射表项。8. -种基于虚拟二层网络中数据包的处理装置,其特征在于,包括: 收发模块,用于接收源服务器发送的第一数据包;其中,所述第一数据包为所述源服务 器将第一虚拟网络局部标识LTID插入原始数据包后获取的数据包,且所述第一数据包包 括目的虚拟机的介质访问控制MAC地址;其中,所述第一 LTID为虚拟网络在所述源服务器 上的LTID ; 查询模块,用于根据第一端口的端口标识、所述第一 LTID和所述目的虚拟机的MAC地 址,查找封装信息映射表,其中,所述第一端口是所述入口边缘交换机接收所述第一数据包 的端口; 所述收发模块,还用于若所述查询模块未从所述封装信息映射表中获取到与所述第一 端口的端口标识、所述第一 LTID和所述目的虚拟机的MAC地址对应的映射表项,则向控制 器发送所述第一端口的端口标识、所述第一 LTID和所述目的虚拟机的MAC地址,以使得所 述控制器根据所述第一端口的端口标识、所述第一 LTID和所述目的虚拟机的MAC地址获取 对应的映射表项,并将所述映射表项返回给所述入口边缘交换机,其中,所述映射表项包括 第二LTID,所述第二LTID为所述虚拟网络在所述目的服务器上的LTID ; 处理模块,用于将所述第二LTID替换所述第一数据包的中所述第一 LITD,并根据所述 映射表项对替换后的第一数据包进行封装,以获取第二数据包; 所述收发模块,还用于向与所述目的虚拟机的MAC地址对应的出口边缘交换机发送所 述第二数据包,以使所述出口边缘交换机将所述第二数据包进行解析并将解析后的所述第 二数据包发送给所述目的服务器。9. 根据权利要求8所述的装置,其特征在于,所述处理模块,还用于若所述查询模块从 所述封装信息映射表中获取到与所述第一端口的端口标识、所述第一 LTID和所述目的虚 拟机的MAC地址对应的映射表项,则将所述映射表项中的第二LTID替换所述第一数据包中 的所述第一 LITD,并根据所述映射表项对替换后的第一数据包进行封装,以获取第二数据 包,其中,所述第二LTID为所述虚拟网络在所述目的服务器上的LTID。10. 根据权利要求8或9所述的装置,其特征在于,所述映射表项还包括出口边缘交换 机的MAC地址和第二端口的端口标识; 所述处理模块,具体用于根据所述出口边缘交换机的MAC地址和第二端口的端口标 识,以及入口边缘交换机的MAC地址,为所述替换后的第一数据包添加一个报文头部,以获 取第二数据包;其中,所述报文头部中的所述出口边缘交换机的目的地址为所述第一数据 包中的目的MAC地址、所述入口边缘交换机的MAC地址为所述第一数据包中的源MAC地址、 所述虚拟局域网VLAN字段中设置所述第二端口的端口标识,所述第二端口为所述目的服 务器接入的所述出口边缘交换机的端口。11. 根据权利要求10所述的装置,其特征在于, 所述查询模块,还用于查询本地转发表,确定第三端口, 所述收发模块,还用于通过所述第三端口向所述出口边缘交换机发送所述第二数据 包,以使所述出口边缘交换机将所述第二数据包解析,从解析结果中获取所述VLAN字段的 所述第二端口,并将所述第二数据包通过所述第二端口发送给所述目的服务器。12. -种基于虚拟二层网络中数据包的处理装置,其特征在于,包括: 查询模块,用于根据第一端口的端口标识查询本地映射关系表,获取第一虚拟网络局 部标识LTID ;其中,所述第一 LTID为虚拟网络在源服务器上的LTID,所述第一端口为源虚 拟交换机接收源虚拟机发送的原始数据包的端口; 处理模块,用于将所述第一 LTID插入所述原始数据包,以获取的第一数据包; 收发模块,用于将所述第一数据包发送给入口边缘交换机。13. -种基于虚拟二层网络中数据包的处理装置,其特征在于,包括: 收发模块,用于收入口边缘交换机发送的第一端口的端口标识、第一虚拟网络局部标 识LTID和目的虚拟机的介质访问控制MAC地址;其中,所述第一 LTID为虚拟网络在源服务 器上的LTID,所述第一端口为所述入口边缘交换机接收第一数据包的端口; 获取模块,用于根据所述第一端口的端口标识、所述第一 LTID和所述目的虚拟机的 MAC地址获取对应的映射表项; 所述收发模块,还用于将所述映射表项发送给所述入口边缘交换机,以使所述入口边 缘交换机将所述映射表项中的第二LTID替换所述第一数据包中的第一 LITD,并根据所述 映射表项对替换后的第一数据包进行封装,以获取第二数据包;其中,所述第二LTID为虚 拟网络在目的服务器上的LTID。14.根据权利要求13所述的装置,其特征在于,所述获取模块,具体用于根据所述第 一端口的端口标识获取所述源服务器的标识;根据所述源服务器的标识和所述第一 LTID 获取虚拟网络全局标识GTID ;根据所述GTID和所述目的虚拟机的MAC地址获取所述第二 LTID ;根据所述第二LTID获取所述出口边缘交换机的MAC地址和第二端口的端口标识;其 中,所述第二端口为目的服务器接入的所述出口边缘交换机的端口;根据所述第二LTID、 所述出口边缘交换机的MAC地址和所述第二端口的端口标识生成所述映射表项。
【文档编号】H04L12/937GK105991438SQ201510049926
【公开日】2016年10月5日
【申请日】2015年1月30日
【发明人】李丹, 陈聪捷, 蔡启申
【申请人】华为技术有限公司, 清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1