地址获取方法及网络虚拟化边缘设备与流程

文档序号:16649355发布日期:2019-01-18 19:14阅读:164来源:国知局
地址获取方法及网络虚拟化边缘设备与流程

本发明涉及网络通信技术,尤其涉及一种地址获取方法及网络虚拟化边缘设备。



背景技术:

随着虚拟机在数据中心大规模部署,采用物理网络隧道抽象出虚拟覆盖层(Overlay)网络的技术方案,受到广泛关注。现有虚拟化覆盖层网络技术中,网络虚拟化边缘(Network Virtualization Edge,NVE)设备位于虚拟网络与物理网络的边界,负责将主机发送的报文通过物理网络传送到其他主机,以实现主机之间的通信;其中,虚拟网络与至少一个NVE设备相连,NVE设备通过虚拟网络中的交换设备与至少一个主机连接。主机之间进行通信时,NVE设备需要为主机发送的虚拟网络中的报文进行隧道封装,并通过物理网络传送到其他主机。NVE设备进行隧道封装时,需要确定目的主机的对应的NVE设备,才能将报文发送到目的主机。

目前,NVE设备确定目的主机的对应的NVE设备的方法是基于虚拟可扩展虚拟局域网(Virtual Extensible Virtual Local Area Network,VXLAN)控制面进行包学习,通过学习其他NVE设备发送的多播报文或广播报文,来记录主机与NVE设备的对应关系。但是,这种方法需要依赖大量的多播报文或广播报文,将会给规模较大的物理网络带来比较大的处理压力。



技术实现要素:

有鉴于此,本发明实施例提供了一种网络虚拟化方法及网络虚拟化边缘设备,以实现降低物理网络的处理压力。

第一方面,本发明实施例提供了一种网络虚拟化边缘设备,包括:

接收单元,用于接收源主机发送的地址解析请求报文,所述地址解析请求报文中包含目的主机的IP地址;

第一处理单元,用于依据所述目的主机的IP地址确定另一NVE设备,所述另一NVE设备存储有所述目的主机的IP地址与所述目的主机的媒体访问控制MAC地址的对应关系以及所述目的主机的IP地址与所述目的主机对应的目的NVE设备的IP地址的对应关系;

第二处理单元,用于依据所述目的主机的IP地址从所述另一NVE设备获得所述目的主机的MAC地址和所述目的主机对应的目的NVE设备的IP地址。

在第一方面的第一种可能的实现方式中,所述第一处理单元具体用于:

利用分布式哈希表搜索算法,依据所述目的主机的IP地址确定所述另一NVE设备。

结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述第二处理单元进一步包括存储模块、地址获取模块:

所述存储模块,用于在本地查询所述目的主机的IP地址对应的所述目的主机的MAC地址;

所述地址获取模块,用于在所述查询模块查询所述目的主机的MAC地址失败时,依据所述目的主机的IP地址从所述另一NVE设备获得所述目的主机的MAC地址和所述目的主机对应的目的NVE设备的IP地址。

结合第一方面或第一方面的第一种可能的实现方式或第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述NVE设备还包括第一发送单元、报文封装单元、第二发送单元:

所述第一发送单元,用于向所述源主机发送所述地址解析请求报文的响应报文,所述地址解析请求报文的响应报文中包含所述目的主机的MAC地址,或者,向所述NVE设备管理的所有主机发送地址解析请求通告报文,所述地址解析请求通告报文中包含所述目的主机的MAC地址;

所述接收单元,还用于接收所述源主机发送的数据报文,所述数据报文中包含所述目的主机的IP地址;

所述报文封装单元,用于封装所述数据报文,封装后的所述数据报文中包含所述目的主机对应的目的NVE设备的IP地址;

所述第二发送单元,用于向所述目的NVE设备发送封装后的所述数据报文。

第二方面,本发明实施例提供了一种网络虚拟化边缘设备,包括:

接收单元,用于接收源主机发送的地址解析请求报文,所述地址解析请求报文中包含目的主机的IP地址;

第一处理单元,用于依据所述目的主机的IP地址确定另一NVE设备,所述另一NVE设备存储有所述目的主机的IP地址与所述目的主机的MAC地址的对应关系;

第二处理单元,用于依据所述目的主机的IP地址从所述另一NVE设备获得所述目的主机的MAC地址;

所述接收单元,还用于接收数据报文,所述数据报文中包含所述目的主机的IP地址和所述目的主机的MAC地址;

所述第一处理单元,还用于依据所述目的主机的MAC地址确定所述另一NVE设备,所述另一NVE设备存储有所述目的主机的MAC地址与所述目的主机对应的目的NVE设备的IP地址的对应关系;

所述第二处理单元,还用于依据所述目的主机的MAC地址或所述目的主机的IP地址从所述另一NVE设备获得所述目的NVE设备的IP地址。

在第二方面的第一种可能的实现方式中,所述第一处理单元具体用于:

利用分布式哈希表搜索算法,依据所述目的主机的IP地址确定所述另一NVE设备;或者,

利用分布式哈希表搜索算法,依据所述目的主机的MAC地址,确定所述另一NVE设备。

结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述第二处理单元进一步包括存储模块、地址获取模块:

所述存储模块,用于在本地查询所述目的主机的IP地址对应的所述目的主机的MAC地址;

所述地址获取模块,用于在所述查询模块查询所述目的主机的MAC地址失败时,依据所述目的主机的IP地址从所述另一NVE设备获得所述目的主机的MAC地址;

所述存储模块,还用于在本地查询所述目的主机的IP地址或所述目的主机的MAC地址对应的所述目的NVE设备的IP地址;

所述地址获取模块,还用于在所述查询模块查询所述目的NVE设备的IP地址失败时,依据所述目的主机的IP地址或所述目的主机的MAC地址从所述另一NVE设备获得所述目的NVE设备的IP地址。

结合第二方面或第二方面的第一种可能的实现方式或第二方面的第二种可能的实现方式,在第二方面的第三种可能的实现方式,所述NVE设备还包括第一发送单元:

所述第一发送单元,用于向所述源主机发送所述地址解析请求报文的响应报文,所述地址解析请求报文的响应报文中包含所述目的主机的MAC地址,或者,向所述NVE设备管理的所有主机发送地址解析请求通告报文,所述地址解析请求通告报文中包含所述目的主机的标识MAC地址。

结合第二方面或第二方面的第一种可能的实现方式或第二方面的第二种可能的实现方式或第二方面的第三种可能的实现方式,在第二方面的第四种可能的实现方式,所述第二处理单元进一步包括报文封装单元、第二发送单元:

所述报文封装单元,用于封装所述数据报文,所述封装后的数据报文中包含所述目的主机对应的目的NVE设备的IP地址;

所述第二发送单元,用于向所述目的NVE设备发送所述封装后的数据报文。

结合第二方面或第二方面的第一种可能的实现方式或第二方面的第二种可能的实现方式或第二方面的第三种可能的实现方式,在第二方面的第五种可能的实现方式,所述第二处理单元进一步包括报文封装单元、第二发送单元:

所述报文封装单元,用于隧道封装所述数据报文;

所述第二发送单元,用于向所述另一NVE设备发送所述隧道封装后的数据报文,以便于所述另一NVE设备向所述目的NVE设备发送所述隧道封装后的数据报文。

第三方面,本发明实施例提供了一种地址获取方法,包括:

网络虚拟化边缘NVE设备接收源主机发送的地址解析请求报文,所述地址解析请求报文中包含目的主机的IP地址;

所述NVE设备依据所述目的主机的IP地址确定另一NVE设备,所述另一NVE设备存储有所述目的主机的IP地址与所述目的主机的媒体访问控制MAC地址的对应关系以及所述目的主机的IP地址与所述目的主机对应的目的NVE设备的IP地址的对应关系;

所述NVE设备依据所述目的主机的IP地址从所述另一NVE设备获得所述目的主机的MAC地址和所述目的主机对应的目的NVE设备的IP地址。

在第三方面的第一种可能的实现方式中,所述NVE设备依据所述目的主机的IP地址确定另一NVE设备,包括:

所述NVE设备利用分布式哈希表搜索算法,依据所述目的主机的IP地址确定所述另一NVE设备。

结合第三方面的第一种可能的实现方式,在第三方面的第二种可能的实现方式中,所述NVE设备依据所述目的主机的IP地址从所述另一NVE设备获得所述目的主机的MAC地址和所述目的主机对应的目的NVE设备的IP地址,包括:

所述NVE设备在本地查询所述目的主机的IP地址对应的所述目的主机的MAC地址;

在查询所述目的主机的MAC地址失败时,所述NVE设备依据所述目的主机的IP地址从所述另一NVE设备获得所述目的主机的MAC地址和所述目的主机对应的目的NVE设备的IP地址。

结合第三方面或第三方面的第一种可能的实现方式或第三方面的第二种可能的实现方式,在第三方面的第三种可能的实现方式中,所述方法还包括:

所述NVE设备向所述源主机发送所述地址解析请求报文的响应报文,所述地址解析请求报文的响应报文中包含所述目的主机的MAC地址,或者,向所述NVE设备管理的所有主机发送地址解析请求通告报文,所述地址解析请求通告报文中包含所述目的主机的MAC地址;

所述NVE设备接收所述源主机发送的数据报文,所述数据报文中包含所述目的主机的IP地址;

所述NVE设备封装所述数据报文,封装后的所述数据报文中包含所述目的主机对应的目的NVE设备的IP地址;

所述NVE设备向所述目的NVE设备发送封装后的所述数据报文。

第四方面,本发明实施例提供了一种地址获取方法,包括:

NVE设备接收源主机发送的地址解析请求报文,所述地址解析请求报文中包含目的主机的IP地址;

所述NVE设备依据所述目的主机的IP地址确定另一NVE设备,所述另一NVE设备存储有所述目的主机的IP地址与所述目的主机的MAC地址的对应关系;

所述NVE设备依据所述目的主机的IP地址从所述另一NVE设备获得所述目的主机的MAC地址;

所述NVE设备接收数据报文,所述数据报文中包含所述目的主机的IP地址和所述目的主机的MAC地址;

所述NVE设备依据所述目的主机的MAC地址确定所述另一NVE设备,所述另一NVE设备存储有所述目的主机的MAC地址与所述目的主机对应的目的NVE设备的IP地址的对应关系;

所述NVE设备依据所述目的主机的MAC地址或所述目的主机的IP地址或从所述另一NVE设备获得所述目的NVE设备的IP地址。

在第四方面的第一种可能的实现方式中,所述NVE设备依据所述目的主机的IP地址确定另一NVE设备,包括:

所述NVE设备利用分布式哈希表搜索算法,依据所述目的主机的IP地址确定所述另一NVE设备;或者,

利用分布式哈希表搜索算法,依据所述目的主机的MAC地址,确定所述另一NVE设备。

结合第四方面的第一种可能的实现方式,在第四方面的第二种可能的实现方式中,所述NVE设备依据所述目的主机的IP地址从所述另一NVE设备获得所述目的主机的MAC地址,包括:

所述NVE设备在本地查询所述目的主机的IP地址对应的所述目的主机的MAC地址;

所述NVE设备在查询所述目的主机的MAC地址失败时,依据所述目的主机的IP地址从所述另一NVE设备获得所述目的主机的MAC地址;

所述NVE设备依据所述目的主机的IP地址从所述另一NVE设备获得所述目的NVE设备的IP地址,包括:

所述NVE设备在本地查询所述目的主机的IP地址或所述目的主机的MAC地址对应的所述目的NVE设备的IP地址;

所述NVE设备在查询所述目的NVE设备的IP地址失败时,依据所述目的主机的IP地址或所述目的主机的MAC地址从所述另一NVE设备获得所述目的NVE设备的IP地址。

结合第四方面或第四方面的第一种可能的实现方式或第四方面的第二种可能的实现方式,在第四方面的第三种可能的实现方式,所述方法还包括:

所述NVE设备向所述源主机发送所述地址解析请求报文的响应报文,所述地址解析请求报文的响应报文中包含所述目的主机的MAC地址,或者,

所述NVE设备向所述NVE设备管理的所有主机发送地址解析请求通告报文,所述地址解析请求通告报文中包含所述目的主机的标识MAC地址。

结合第四方面或第四方面的第一种可能的实现方式或第四方面的第二种可能的实现方式或第四方面的第三种可能的实现方式,在第四方面的第四种可能的实现方式,所述方法还包括:

所述NVE设备封装所述数据报文,所述封装后的数据报文中包含所述目的主机对应的目的NVE设备的IP地址;

所述NVE设备向所述目的NVE设备发送所述封装后的数据报文。

结合第四方面或第四方面的第一种可能的实现方式或第四方面的第二种可能的实现方式或第四方面的第三种可能的实现方式,在第四方面的第五种可能的实现方式,所述方法还包括:

所述NVE设备隧道封装所述数据报文;

所述NVE设备向所述另一NVE设备发送所述隧道封装后的数据报文,以便于所述另一NVE设备向所述目的NVE设备发送所述隧道封装后的数据报文。

第六方面,本发明实施例提供了一种网络虚拟化边缘设备,包括:

存储器,用于存储包括程序代码的信息;

处理器,用于与所述存储器通信,执行所述程序代码,使所述网络虚拟化边缘设备执行如上述方法。

第七方面,本发明实施例提供了一种网络虚拟化边缘设备,包括:

存储器,用于存储包括程序代码的信息;

处理器,用于与所述存储器通信,执行所述程序代码,使所述网络虚拟化边缘设备执行如上述方法。

通过上述技术方案,NVE设备确定一个查询主机与NVE设备的对应关系的查询点,然后从该查询点获得所需要的地址信息,因此,与现有技术中利用大量的多播报文或广播报文来查询地址信息的方法相比,能够减少对多播报文或广播报文的依赖,降低物理网络的处理压力。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。

图1是本发明实施例所提供的网络虚拟化边缘设备一的功能方块图;

图2是本发明实施例所提供的网络虚拟化边缘设备二的功能方块图;

图3是本发明实施例所提供的地址获取方法一的流程示意图;

图4是本发明实施例所提供的虚拟网络与物理网络的第一示意图;

图5是本发明实施例所提供的地址获取方法的实施例一的流程示意图;

图6是本发明实施例所提供的地址获取方法二的流程示意图;

图7是本发明实施例所提供的虚拟网络与物理网络的第二示意图;

图8是本发明实施例所提供的地址获取方法的实施例二的流程示意图;

图9是本发明实施例所提供的地址获取方法的实施例三的流程示意图;

图10是本发明实施例所提供的网络虚拟化边缘设备一的结构示意图;

图11是本发明实施例所提供的网络虚拟化边缘设备二的结构示意图。

具体实施方式

为了更好的理解本发明的技术方案,下面结合附图对本发明实施例进行详细描述。

应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

请参考图1,其为本发明实施例所提供的一种网络虚拟化边缘设备的实施例一的功能方块图,如图所示,该网络虚拟化边缘设备包括:

接收单元10,用于接收源主机发送的地址解析请求报文,所述地址解析请求报文中包含目的主机的IP地址;

第一处理单元11,用于依据所述目的主机的IP地址确定另一NVE设备,所述另一NVE设备存储有所述目的主机的IP地址与所述目的主机的媒体访问控制MAC地址的对应关系以及所述目的主机的IP地址与所述目的主机对应的目的NVE设备的IP地址的对应关系;

第二处理单元12,用于依据所述目的主机的IP地址从所述另一NVE设备获得所述目的主机的MAC地址和所述目的主机对应的目的NVE设备的IP地址。

其中,所述第一处理单元11具体用于:

利用分布式哈希表搜索算法,依据所述目的主机的IP地址确定所述另一NVE设备。

其中,所述第二处理单元12进一步包括存储模块121、地址获取模块122:

所述存储模块121,用于在本地查询所述目的主机的IP地址对应的所述目的主机的MAC地址;

所述地址获取模块122,用于在所述查询模块查询所述目的主机的MAC地址失败时,依据所述目的主机的IP地址从所述另一NVE设备获得所述目的主机的MAC地址和所述目的主机对应的目的NVE设备的IP地址。

其中,所述NVE设备还包括第一发送单元13、报文封装单元14、第二发送单元15:

所述第一发送单元13,用于向所述源主机发送所述地址解析请求报文的响应报文,所述地址解析请求报文的响应报文中包含所述目的主机的MAC地址,或者,向所述NVE设备管理的所有主机发送地址解析请求通告报文,所述地址解析请求通告报文中包含所述目的主机的MAC地址;

所述接收单元10,还用于接收所述源主机发送的数据报文,所述数据报文中包含所述目的主机的IP地址;

所述报文封装单元14,用于封装所述数据报文,封装后的所述数据报文中包含所述目的主机对应的目的NVE设备的IP地址;

所述第二发送单元15,用于向所述目的NVE设备发送封装后的所述数据报文。

请参考图2,其为本发明实施例所提供的一种网络虚拟化边缘设备的实施例二的功能方块图,如图所示,该网络虚拟化边缘设备包括:

接收单元20,用于接收源主机发送的地址解析请求报文,所述地址解析请求报文中包含目的主机的IP地址;

第一处理单元21,用于依据所述目的主机的IP地址确定另一NVE设备,所述另一NVE设备存储有所述目的主机的IP地址与所述目的主机的MAC地址的对应关系;

第二处理单元22,用于依据所述目的主机的IP地址从所述另一NVE设备获得所述目的主机的MAC地址;

所述接收单元20,还用于接收数据报文,所述数据报文中包含所述目的主机的IP地址和所述目的主机的MAC地址;

所述第一处理单元21,还用于依据所述所述目的主机的MAC地址确定所述另一NVE设备,所述另一NVE设备存储有所述目的主机的MAC地址与所述目的主机对应的目的NVE设备的IP地址的对应关系;

所述第二处理单元22,还用于依据所述目的主机的MAC地址或所述目的主机的IP地址从所述另一NVE设备获得所述目的NVE设备的IP地址。

其中,所述第一处理单元21具体用于:

利用分布式哈希表搜索算法,依据所述目的主机的IP地址确定所述另一NVE设备;或者,

利用分布式哈希表搜索算法,依据所述目的主机的MAC地址,确定所述另一NVE设备。

其中,所述第二处理单元22进一步包括存储模块221、地址获取模块222:

所述存储模块221,用于在本地查询所述目的主机的IP地址对应的所述目的主机的MAC地址;

所述地址获取模块222,用于在所述查询模块查询所述目的主机的MAC地址失败时,依据所述目的主机的IP地址从所述另一NVE设备获得所述目的主机的MAC地址;

所述存储模块221,还用于在本地查询所述目的主机的IP地址或所述目的主机的MAC地址对应的所述目的NVE设备的IP地址;

所述地址获取模块222,还用于在所述查询模块查询所述目的NVE设备的IP地址失败时,依据所述所述目的主机的MAC地址从所述另一NVE设备获得所述目的NVE设备的IP地址。

其中,所述NVE设备还包括第一发送单元23:

所述第一发送单元23,用于向所述源主机发送所述地址解析请求报文的响应报文,所述地址解析请求报文的响应报文中包含所述目的主机的MAC地址,或者,向所述NVE设备管理的所有主机发送地址解析请求通告报文,所述地址解析请求通告报文中包含所述目的主机的标识MAC地址。

其中,所述第二处理单元22进一步包括报文封装单元223、第二发送单元224:

所述报文封装单元223,用于封装所述数据报文,所述封装后的数据报文中包含所述目的主机对应的目的NVE设备的IP地址;

所述第二发送单元224,用于向所述目的NVE设备发送所述封装后的数据报文。

或者,所述第二处理单元22进一步包括报文封装单元223、第二发送单元224:

所述报文封装单元223,用于隧道封装所述数据报文;

所述第二发送单元224,用于向所述另一NVE设备发送所述隧道封装后的数据报文,以便于所述另一NVE设备向所述目的NVE设备发送所述隧道封装后的数据报文。

本发明实施例进一步给出实现上述设备实施例中各单元和各模块的方法实施例。

本发明实施例给出一种地址获取方法,该方法中的NVE设备为图1所示的NVE设备,请参考图3,其为本发明实施例所提供的地址获取方法一的流程示意图;如图3所示,该方法包括以下步骤:

步骤301,NVE设备接收源主机发送的地址解析请求报文,所述地址解析请求报文中包含目的主机的IP地址。

具体的,每个NVE设备都有两侧,一侧与虚拟网络连接,NVE设备可以与主机交互,另一侧与物理网络连接,NVE设备可以与其他NVE设备交互,因此,NVE设备位于虚拟网络与物理网络的边界;请参考图4,其为本发明实施例所提供的虚拟网络与物理网络的示意图,如图所示,源主机与NVE设备相连,源主机与目的主机属于同一个虚拟网络,目的NVE设备与目的主机相连,源主机需要向目的主机发送报文,但是与源主机对应的NVE设备不知道目的主机对应的NVE设备是哪个NVE设备,因此,NVE设备需要从另一个NVE设备获得目的主机对应的NVE设备。

NVE设备接收到源主机发送的地址解析请求报文,其中,所述地址解析请求报文中包含目的主机的IP地址。

步骤302,所述NVE设备依据所述目的主机的IP地址确定另一NVE设备,所述另一NVE设备存储有所述目的主机的IP地址与所述目的主机的媒体访问控制MAC地址的对应关系以及所述目的主机的IP地址与所述目的主机对应的目的NVE设备的IP地址的对应关系。

具体的,所述NVE设备依据所述目的主机的IP地址确定另一NVE设备的方法可以是:所述NVE设备利用分布式哈希表(Distributed Hash Table,DHT)搜索算法,依据所述目的主机的IP地址确定所述另一NVE设备。

例如,所述NVE设备利用分布式哈希表搜索算法,依据所述目的主机的IP地址确定所述另一NVE设备的方法可以是:每个主机和每个NVE设备的IP地址都是一个关键字,NVE设备对其中的每一个关键字进行哈希(Hash)计算,并依据Hash计算的结果判断该关键字对应的IP地址由哪个NVE设备负责存储。本发明实施例中,另一NVE设备接收目的NVE设备发送的相关信息,如目的主机的IP地址、目的主机的MAC地址、目的主机以及与该目的主机对应的目的NVE设备。另一NVE设备存储这些信息,以获得第一对应关系和第二对应关系;所述第一对应关系包括所述目的主机的IP地址与所述目的主机的MAC地址的对应关系,所述第二对应关系包括所述目的主机的IP地址与目的主机对应的目的NVE设备的IP地址的对应关系。因此,NVE设备可以将目的主机的IP地址作为关键字,对目的主机的IP地址进行hash计算,依据Hash计算的结果判断存储该目的主机的IP地址的NVE设备的另一NVE设备。

其中,目的主机对应的目的NVE设备指的是该目的主机所管理的目的NVE设备。

步骤303,所述NVE设备依据所述目的主机的IP地址从所述另一NVE设备获得所述目的主机的MAC地址和所述目的主机对应的目的NVE设备的IP地址。

具体的,所述NVE设备依据目的主机的IP地址,优先在本地查询所述目的主机的IP地址对应的所述目的主机的MAC地址;若所述NVE设备查询所述目的主机的MAC地址失败,所述NVE设备依据所述目的主机的IP地址从所述另一NVE设备获得所述目的主机的MAC地址和所述目的主机对应的目的NVE设备的IP地址。

例如,所述NVE设备可以向确定的另一NVE设备发送查询请求消息,其中携带目的主机的IP地址,以便于另一NVE设备向NVE设备发送目的主机的IP地址对应的目的主机的MAC地址,以及目的主机对应的目的NVE设备的IP地址。

这里,利用源主机在发送数据报文之间通常会先发送地址解析请求报文给NVE设备的特点,NVE设备在收到地址解析请求报文后,同时查询目的主机的IP地址对应的目的主机的MAC地址和目的主机对应的目的NVE设备的IP地址,因此,可以减少NVE设备之间的交互,提高NVE设备获得地址信息的效率。

可选的,所述步骤303之后,上述方法还可以包括:

所述NVE设备向所述源主机发送所述地址解析请求报文的响应报文,所述地址解析请求报文的响应报文中包含所述目的主机的MAC地址,或者,向所述NVE设备管理的所有主机发送地址解析请求通告报文,所述地址解析请求通告报文中包含所述目的主机的MAC地址。

所述NVE设备接收所述源主机发送的数据报文,所述数据报文中包含所述目的主机的IP地址。

所述NVE设备封装所述数据报文,封装后的所述数据报文中包含所述目的主机对应的目的NVE设备的IP地址。

所述NVE设备向所述目的NVE设备发送封装后的所述数据报文。

其中,所述地址解析请求报文可以包括地址解析协议(Address Resolution Protocol,ARP)请求报文或邻居发现协议(Neighbor Discovery Protocol,NDP)请求报文,对应的,地址解析请求报文的响应报文可以包括ARP响应报文或NDP响应报文。

实施例一

请参考图5,其为本发明实施例所提供的地址获取方法的实施例一的流程示意图,本实施例中,以地址解析请求报文为ARP请求报文为例进行说明,NVE设备在收到ARP请求报文后,同时查询目的主机的IP地址对应的目的主机的MAC地址和目的主机对应的目的NVE设备的IP地址;如图5所示,该方法包括以下步骤:

步骤501,NVE设备接收源主机发送的原始报文,该原始报文中包含目的主机的IP地址;判断该原始报文是单播报文还是多播报文,如果是单播报文,执行步骤502,如果是多播报文,执行步骤503。其中,单播报文相当于上述数据报文。

步骤502,NVE设备依据目的主机的IP地址,在本地查询目的主机对应的目的NVE设备的IP地址,如果查询成功,执行步骤504,如果查询失败,执行步骤505。

步骤503,NVE设备判断多播报文是否为ARP请求报文,如果是ARP请求报文,执行步骤506,如果不是ARP请求报文,执行步骤507。

步骤504,NVE设备依据查询到的目的主机对应的目的NVE设备的IP地址,对源主机发送的单播报文进行隧道封装,将封装后获得的单播报文发送给目的主机对应的目的NVE设备,以便于目的NVE设备对该单播报文进行隧道解封装,以及向目的主机发送隧道解封装后获得的报文,这样,源主机就成功向目的主机发送报文。

步骤505,NVE设备丢弃源主机发送的单播报文,结束当前流程。

步骤506,NVE设备依据目的主机的IP地址,在本地查询目的主机的IP地址对应的目的主机的MAC地址,以及目的主机对应的目的NVE设备的IP地址;如果查询失败,执行步骤508,如果查询成功,执行步骤510。

步骤507,NVE设备对多播报文进行隧道封装,将隧道封装后获得的多播报文进行多播转发,以便于虚拟网络中的其他NVE设备接收该多播报文,对该多播报文进行解封装,这样就可以去掉外层的报文头,然后将解封装后获得的报文转发给与自身对应的主机。

步骤508,由于NVE设备在本地查询不到所需要的地址信息,则NVE设备需要从其他NVE设备获得所需要的地址信息,因此,NVE设备利用DHT搜索算法找到另一NVE设备,然后从另一NVE设备获得目的主机的IP地址对应的目的主机的MAC地址,以及目的主机对应的目的NVE设备的IP地址。

步骤509,NVE设备存储获得的目的主机的IP地址对应的目的主机的MAC地址,以及目的主机对应的目的NVE设备的IP地址;可选的,NVE设备可以向所有该NVE设备对应的所有主机发送ARP通告报文,该ARP通告报文中包含目的主机的IP地址对应的目的主机的MAC地址。

步骤510,NVE设备向源主机发送ARP响应报文,该ARP响应报文中包含本地查询获得的目的主机的IP地址对应的目的主机的MAC地址。

本发明实施例给出一种地址获取方法,该方法中的NVE设备为图2所示的NVE设备,请参考图6,其为本发明实施例所提供的地址获取方法二的流程示意图;如图6所示,该方法包括以下步骤:

步骤601,NVE设备接收源主机发送的地址解析请求报文,所述地址解析请求报文中包含目的主机的IP地址。

步骤602,所述NVE设备依据所述目的主机的IP地址确定另一NVE设备,所述另一NVE设备存储有所述目的主机的IP地址与所述目的主机的MAC地址的对应关系。

具体的,本实施例中,NVE设备在收到源主机发送的地址解析请求报文时,先确定一个用于获得目的主机的MAC地址的另一NVE设备。所述NVE设备依据所述目的主机的IP地址确定另一NVE设备的方法可以是:利用分布式哈希表搜索算法,依据所述目的主机的IP地址确定所述另一NVE设备。

例如,所述NVE设备利用分布式哈希表搜索算法,依据所述目的主机的IP地址确定所述另一NVE设备的方法可以是:每个主机和每个NVE设备的IP地址都是一个关键字,NVE设备对其中的每一个关键字进行哈希(Hash)计算,并依据Hash计算的结果判断该关键字对应的IP地址由哪个NVE设备负责存储。本发明实施例中,另一NVE设备接收目的NVE设备发送的相关信息,如目的主机的IP地址、目的主机的MAC地址。另一NVE设备存储这些信息,以获得所述目的主机的IP地址与所述目的主机的MAC地址的对应关系。因此,NVE设备可以将目的主机的IP地址作为关键字,对目的主机的IP地址进行hash计算,依据Hash计算的结果判断存储该目的主机的IP地址的NVE设备的另一NVE设备。

步骤603,所述NVE设备依据所述目的主机的IP地址从所述另一NVE设备获得所述目的主机的MAC地址。

具体的,所述NVE设备依据目的主机的IP地址,优先在本地查询所述目的主机的IP地址对应的所述目的主机的MAC地址;若所述NVE设备查询所述目的主机的MAC地址失败,依据所述目的主机的IP地址从所述另一NVE设备获得所述目的主机的MAC地址。

步骤604,所述NVE设备接收数据报文,所述数据报文中包含所述目的主机的IP地址和所述目的主机的MAC地址。

步骤605,所述NVE设备依据所述目的主机的MAC地址确定所述另一NVE设备,所述另一NVE设备存储有所述目的主机的MAC地址与所述目的主机对应的目的NVE设备的IP地址的对应关系。

具体的,本实施例中,NVE设备在收到数据报文时,再确定一个用于获得目的主机的MAC地址的另一NVE设备。

其中,所述NVE设备可以依据所述目的主机的MAC地址确定所述另一NVE设备,所述另一NVE设备存储有所述目的主机的MAC地址与所述目的主机对应的目的NVE设备的IP地址的对应关系。

所述NVE设备依据所述目的主机的MAC地址确定另一NVE设备的方法可以是:所述NVE设备利用分布式哈希表(Distributed Hash Table,DHT)搜索算法,依据所述目的主机的MAC地址确定所述另一NVE设备。

步骤606,所述NVE设备依据所述目的主机的MAC地址或所述目的主机的IP地址从所述另一NVE设备获得所述目的NVE设备的IP地址。

具体的,所述NVE设备依据所述目的主机的MAC地址或所述目的主机的IP地址从所述另一NVE设备获得所述目的NVE设备的IP地址,包括:所述NVE设备在本地查询所述目的主机的MAC地址或目的主机的IP地址对应的所述目的NVE设备的IP地址;若所述NVE设备在查询所述目的NVE设备的IP地址失败时,依据所述目的主机的IP地址或所述目的主机的MAC地址从所述另一NVE设备获得所述目的NVE设备的IP地址。

可选的,所述步骤606之后,上述方法还包括:

所述NVE设备向所述源主机发送所述地址解析请求报文的响应报文,所述地址解析请求报文的响应报文中包含所述目的主机的MAC地址,或者,所述NVE设备向所述NVE设备管理的所有主机发送地址解析请求通告报文,所述地址解析请求通告报文中包含所述目的主机的标识MAC地址。

或者,所述步骤606之后,上述方法还包括:

请参考图7,其为本发明实施例所提供的虚拟网络与物理网络的第二示意图,如图所示,所述NVE设备封装所述数据报文,所述封装后的数据报文中包含所述目的主机对应的目的NVE设备的IP地址;所述NVE设备向所述目的NVE设备发送所述封装后的数据报文。

或者,所述步骤606之后,上述方法还包括:

如图7所示,所述NVE设备隧道封装所述数据报文;所述NVE设备向所述另一NVE设备发送所述隧道封装后的数据报文,以便于所述另一NVE设备向所述目的NVE设备发送所述隧道封装后的数据报文。

上述方法中,利用源主机在发送单播数据报文之间通常会先发送地址解析请求报文给NVE设备的特点,NVE设备在收到地址解析请求报文后,先查询目的主机的IP地址对应的目的主机的MAC地址,待NVE设备收到主机发送的单播数据报文时,再查询目的主机对应的目的NVE设备的IP地址,即两个地址信息的查询操作是分开的。

实施例二

请参考图8,其为本发明实施例所提供的地址获取方法的实施例二的流程示意图,本实施例中,以地址解析请求报文为ARP请求报文为例进行说明,NVE设备在收到ARP请求报文时,查询目的主机的IP地址对应的目的主机的MAC地址,在收到数据报文时,查询目的主机对应的目的NVE设备的IP地址,如图8所示,该方法包括以下步骤:

步骤801,NVE设备接收源主机发送的原始报文,该原始报文中包含目的主机的IP地址;判断该原始报文是单播报文还是多播报文,如果是单播报文,执行步骤802,如果是多播报文,执行步骤803。其中,所述单播报文相当于上述数据报文。

步骤802,NVE设备依据目的主机的IP地址,在本地查询目的主机对应的目的NVE设备的IP地址,如果查询成功,执行步骤804,如果查询失败,执行步骤805。

步骤803,NVE设备判断多播报文是否为ARP请求报文,如果是ARP请求报文,执行步骤808,如果不是ARP请求报文,执行步骤809。

步骤804,NVE设备依据查询到的目的主机对应的目的NVE设备的IP地址,对源主机发送的单播报文进行隧道封装,将封装后获得的单播报文发送给目的主机对应的目的NVE设备,以便于目的NVE设备对该单播报文进行隧道解封装,以及向目的主机发送隧道解封装后获得的原始报文,这样,源主机就成功向目的主机发送报文。

步骤805,NVE设备丢弃源主机发送的原始报文,结束当前流程。

步骤806,由于NVE设备在本地查询不到所需要的地址信息,则NVE设备需要从其他NVE设备获得所需要的地址信息,因此,NVE设备利用DHT搜索算法找到另一NVE设备,然后从该另一NVE设备获得目的主机对应的目的NVE设备的IP地址。

步骤807,NVE设备存储获得的目的主机对应的目的NVE设备的IP地址。

步骤808,NVE设备依据目的主机的IP地址,在本地查询目的主机的IP地址对应的目的主机的MAC地址;如果查询失败,执行步骤810,如果查询成功,执行步骤812。

步骤809,NVE设备对多播报文进行隧道封装,将隧道封装后获得的多播报文进行多播转发,以便于虚拟网络中的其他NVE设备接收该多播报文,对该多播报文进行解封装,这样就可以去掉外层的报文头,然后将解封装后获得的报文转发给与自身对应的主机。

步骤810,由于NVE设备在本地查询不到所需要的地址信息,则NVE设备需要从其他NVE设备获得所需要的地址信息,因此,NVE设备利用DHT搜索算法找到另一NVE设备,然后从另一NVE设备获得目的主机的IP地址对应的目的主机的MAC地址。

步骤811,NVE设备存储获得的目的主机的IP地址对应的目的主机的MAC地址;可选的,NVE设备向该NVE设备对应的所有主机发送ARP通告报文,该ARP通告报文中包含目的主机的IP地址对应的目的主机的MAC地址。

步骤812,NVE设备向源主机发送ARP响应报文,该ARP响应报文中包含本地查询获得的目的主机的IP地址对应的目的主机的MAC地址。

实施例三

请参考图9,其为本发明实施例所提供的地址获取方法的实施例三的流程示意图,本实施例中,以地址解析请求报文为ARP请求报文为例进行说明,如图9所示,该方法包括以下步骤:

步骤901,NVE设备接收报文,该报文中包含目的主机的IP地址;NVE设备判断该报文是否是NVE设备对应的源主机所发送的原始报文,如果不是原始报文,执行步骤902,如果是原始报文,执行步骤903。

步骤902,如果NVE设备收到的不是原始报文,表示该报文是其他NVE设备发送的隧道报文,该隧道报文中包含某主机发送的原始报文;如果该隧道报文为中继报文,且该隧道报文中的生存时间(Time To Live,TTL)的值不为1,则对该报文进行隧道解封装,以获得原始报文;其中,TTL的值表示该报文可以被NVE设备转发的次数,用来避免该报文被无限次循环转发,避免出现转发环路;TTL具有初始值,依据协议的不同,该初始值也不同,报文每被NVE设备转发依次,TTL的值就减1,直到TTL的值等于0时,该报文就停止被转发,NVE设备需要将停止转发的报文丢弃,从而可以避免报文被无限次循环转发。

步骤903,NVE设备判断该原始报文是单播报文还是多播报文,如果是单播报文,执行步骤904,如果是多播报文,执行步骤905。其中,该单播报文相当于上述数据报文。

步骤904,NVE设备依据目的主机的IP地址,在本地查询目的主机对应的目的NVE设备的IP地址,如果查询成功,执行步骤1106,如果查询失败,执行步骤907。

步骤905,NVE设备判断多播报文是否为ARP请求报文,如果是ARP请求报文,执行步骤908,如果不是ARP请求报文,执行步骤909。

步骤906,NVE设备依据查询到的目的主机对应的目的NVE设备的IP地址,对得到的原始报文进行隧道封装,将封装后获得的隧道报文单播发送给目的主机对应的目的NVE设备,以便于目的NVE设备对该隧道报文进行隧道解封装,以及向目的主机发送隧道解封装后获得的原始报文。

步骤907,所述NVE设备利用DHT搜索算法,确定下一跳的另一NVE设备,如果下一跳的NVE设备为该NVE设备自身,则NVE设备可以丢弃获得的原始报文;如果下一跳的NVE设备为其他NVE设备,则NVE设备将原始报文进行隧道封装,将封装后获得的隧道报文单播发送给该另一NVE设备;这里,如果NVE设备获得的原始报文是依据中继报文获得的,则该隧道报文中TTL的值等于原始报文中的TTL的值减1,如果NVE设备获得的原始报文是NVE设备对应的源主机发送的原始报文,则该隧道报文中TTL的值设置为初始值。

需要说明的是,对于本发明的实施例一至实施例三,DHT搜索算法的作用是为了查找到另一NVE设备。本实施例中,如果NVE设备利用DHT搜索算法查找到的下一跳的NVE设备为自身,可以将原始报文丢弃,也可以将原始报文泛洪到另一NVE设备。

步骤908,NVE设备依据目的主机的IP地址,在本地查询目的主机的IP地址对应的目的主机的MAC地址;如果查询失败,执行步骤910,如果查询成功,执行步骤912。

步骤909,NVE设备对原始报文进行隧道封装,将隧道封装后获得的隧道报文进行多播转发,以便于虚拟网络中的其他多个NVE设备接收该多播报文,对该多播报文进行解封装,这样就可以去掉外层的报文头,然后将解封装后获得的报文转发给与自身对应的主机。

步骤910,由于NVE设备在本地查询不到所需要的地址信息,则NVE设备需要从其他NVE设备获得所需要的地址信息,因此,NVE设备利用DHT搜索算法找到另一NVE设备,然后从另一NVE设备获得目的主机的IP地址对应的目的主机的MAC地址。

步骤911,NVE设备存储获得的目的主机的IP地址对应的目的主机的MAC地址;可选的,NVE设备向该NVE设备对应的所有主机发送ARP通告报文,该ARP通告报文中包含目的主机的IP地址对应的目的主机的MAC地址。

步骤912,NVE设备向该NVE设备对应的源主机发送ARP响应报文,该ARP响应报文中包含本地查询获得的目的主机的IP地址对应的目的主机的MAC地址。

请参考图10,其为本发明实施例所提供的一种网络虚拟化边缘设备的实施例一的结构示意图,如图所示,该网络虚拟化边缘设备包括:

接收器101,用于接收源主机发送的地址解析请求报文,所述地址解析请求报文中包含目的主机的IP地址;

存储器102,用于存储包括程序代码的信息;

处理器103,与存储器102、接收器101通信,用于执行所述程序代码,使所述网络虚拟化边缘设备执行如下方法:依据所述目的主机的IP地址确定另一NVE设备,所述另一NVE设备存储有所述目的主机的IP地址与所述目的主机的媒体访问控制MAC地址的对应关系以及所述目的主机的IP地址与所述目的主机对应的目的NVE设备的IP地址的对应关系;依据所述目的主机的IP地址从所述另一NVE设备获得所述目的主机的MAC地址和所述目的主机对应的目的NVE设备的IP地址。

该网络虚拟化边缘设备具体可以执行上述方法实施例一中的方法。

请参考图11,其为本发明实施例所提供的一种网络虚拟化边缘设备的实施例二的结构示意图,如图所示,该网络虚拟化边缘设备包括:

接收器111,用于接收源主机发送的地址解析请求报文,所述地址解析请求报文中包含目的主机的IP地址;还用于接收数据报文,所述数据报文中包含所述目的主机的IP地址和所述目的主机的MAC地址;

存储器112,用于存储包括程序代码的信息;

处理器113,与接收器111、存储器112通信,用于执行所述程序代码,使所述网络虚拟化边缘设备执行如下方法:依据所述目的主机的IP地址确定另一NVE设备,所述另一NVE设备存储有所述目的主机的IP地址与所述目的主机的MAC地址的对应关系;依据所述目的主机的IP地址从所述另一NVE设备获得所述目的主机的MAC地址;以及,依据所述目的主机的MAC地址确定所述另一NVE设备,所述另一NVE设备存储有所述目的主机的MAC地址与所述目的主机对应的目的NVE设备的IP地址的对应关系;依据所述目的主机的MAC地址或所述目的主机的IP地址从所述另一NVE设备获得所述目的NVE设备的IP地址。

该网络虚拟化边缘设备具体可以执行上述方法实施例二和实施例三中的方法。

本发明实施例提供的技术方案具有以下有益效果:

1、本发明实施例中,NVE设备确定一个查询主机与NVE设备的对应关系的查询点,然后从该查询点获得所需要的地址信息,因此,与现有技术中利用大量的多播报文或广播报文来查询信息的方法相比,能够减少对多播报文或广播报文的依赖,降低物理网络的处理压力。

2、现有技术中还可以利用一个固定的服务器作为查询点,NVE设备都统一通过查询点来查询需要的地址信息,但是,由于查询点单一,如果该查询点出现故障或因为受到攻击而瘫痪,全网的NVE设备都无法查询到地址信息,从而无法正常工作;而且,单一的查询点的处理能力有限,例如单位时间内处理的查询数目等,因此,查询点容易成为性能瓶颈,不易扩展;因此,本发明实施例中,可以将对应关系分布式的存储在各个NVE设备上,不需要依赖集中式控制器来存储对应关系,从而解决该现有技术的上述缺陷。

3、本发明实施例所提供的技术方案,ARP应答报文或ARP通告报文本身是应该由目的主机发送的,但是,本发明实施例中是由NVE设备发送的,即由NVE设备代为处理,因此本发明实施例可以支持部署协议代理。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1