主机路由获取方法、装置及系统的制作方法

文档序号:8004873阅读:232来源:国知局
主机路由获取方法、装置及系统的制作方法
【专利摘要】本发明实施例提供一种主机路由获取方法、装置及系统。本发明主机路由获取方法,包括:第一网关设备接收第一主机发送的第一地址解析协议ARP请求报文,第一ARP请求报文包含第二主机的互联网络协议IP地址;若第一网关设备确定不存在与第二主机的IP地址对应的路由,则第一网关设备广播第一边界网关协议BGP更新报文,第一BGP更新报文包含类型标识信息和第二主机的IP地址,以使第二网关设备根据第一BGP更新报文向第一网关设备发布与第二主机的IP地址对应的路由;第一网关设备接收并保存第二网关设备发布的与第二主机的IP地址对应的路由。本发明实施例实现了虚拟子网中的网关设备按需获取其下挂的主机的路由。
【专利说明】
主机路由获取方法、装置及系统

【技术领域】
[0001]本发明实施例涉及通信技术,尤其涉及一种主机路由获取方法、装置及系统。

【背景技术】
[0002]数据中心(data center,简称DC)大二层组网环境中,存在大量虚拟主机(virtualmachine,简称VM),VM规模可达到数十万级甚至百万级规模,因此低成本可扩展互联技术对数据中心网络规划至关重要。虚拟子网(virtual subnet,简称VS)是目前一种性价比比较高的网络虚拟化互联技术,数据中心大二层组网中有多个虚拟子网,每个虚拟子网有一个网关设备,每个网关设备下挂有多个虚拟主机。
[0003]为了实现DC域内出入虚拟子网的数据流量的路径最优,各个虚拟子网中的网关设备需要获取并发布其下挂的虚拟主机的路由,但是由于VM的加入,网关设备及时发布虚拟主机的路由成为一个需要解决的问题。


【发明内容】

[0004]本发明实施例提供一种主机路由获取方法、装置及系统,以实现虚拟子网中的网关设备按需获取其下挂的主机的路由并及时发布该路由。
[0005]第一方面,本发明实施例提供一种主机路由获取方法,包括:
[0006]第一网关设备接收第一主机发送的第一地址解析协议ARP请求报文,所述第一ARP请求报文包含第二主机的互联网络协议IP地址;所述第一网关设备和所述第一主机位于第一虚拟子网内;
[0007]若所述第一网关设备确定不存在与所述第二主机的IP地址对应的路由,则所述第一网关设备广播第一边界网关协议BGP更新报文,所述第一 BGP更新报文包含类型标识信息和所述第二主机的IP地址,以使第二网关设备根据所述第一 BGP更新报文发布与所述第二主机的IP地址对应的路由;所述第一网关设备接收并保存所述第二网关设备发布的与所述第二主机的IP地址对应的路由,所述第二网关设备和所述第二主机位于第二虚拟子网内。
[0008]在第一方面的第一种可能的实现方式中,还包括:
[0009]若所述第一网关设备确定存在与所述第二主机的IP地址对应的路由,则所述第一网关设备确定所述第二主机的IP地址对应的路由是否为所述第一虚拟子网内的路由;
[0010]若为所述第一虚拟子网内的路由,则所述第一网关设备丢弃所述第一 ARP请求报文;
[0011]若不为所述第一虚拟子网内的路由,则所述第一网关设备代替所述第二主机应答所述第一 ARP请求报文。
[0012]根据第一方面或第一方面的第一种可能的实现方式,在第二种可能的实现方式中,还包括:
[0013]所述第一网关设备接收来自第二网关设备的第二 BGP更新报文,所述第二 BGP更新报文包含所述类型标识信息和第三主机的IP地址;
[0014]根据所述第二 BGP更新报文确定所述第一网关设备是否存在与所述第三主机的IP地址对应的路由;
[0015]若确定存在与所述第三主机的IP地址对应的路由,则所述第一网关设备发布与所述第三主机的IP地址对应的路由,以使所述第二网关设备接收并保存与所述第三主机的IP地址对应的路由;
[0016]若确定不存在与所述第三主机的IP地址对应的路由,则所述第一网关设备在所述第一虚拟子网内广播第二 ARP请求报文,所述第二 ARP请求报文包含所述第三主机的IP地址;所述第一网关设备接收所述第三主机发送的ARP应答报文,所述ARP应答报文包含所述第三主机的IP地址和MAC地址;所述第一网关设备根据所述ARP应答报文生成与所述第三主机的IP地址对应的路由,向所述第二网关设备发布与所述第三主机的IP地址对应的路由,以使所述第二网关设备接收并保存与所述第三主机的IP地址对应的路由。
[0017]第二方面,本发明实施例提供一种主机路由获取装置,所述装置部署在第一网关设备上,所述装置包括:
[0018]报文接收模块,用于接收第一主机发送的第一地址解析协议ARP请求报文,所述第一ARP请求报文包含第二主机的互联网络协议IP地址;所述第一网关设备和所述第一主机位于第一虚拟子网内;
[0019]第一确定模块,用于确定所述第一网关设备是否存在与所述第二主机的IP地址对应的路由;
[0020]第一报文广播模块,用于当所述第一确定模块确定所述第一网关设备不存在与所述第二主机的IP地址对应的路由时,广播第一边界网关协议BGP更新报文,所述第一 BGP更新报文包含类型标识信息和所述第二主机的IP地址;
[0021]路由获取模块,用于接收并保存第二网关设备发布的所述第二主机的IP地址对应的路由。
[0022]在第二方面的第一种可能的实现方式中,还包括:
[0023]第二确定模块,用于当所述第一确定模块确定所述第一网关设备存在与所述第二主机的IP地址对应的路由时,确定所述第二主机的IP地址对应的路由是否为所述第一虚拟子网内的路由;
[0024]报文丢弃模块,用于当所述第二确定模块确定所述第二主机的IP地址对应的路由为所述第一虚拟子网内的路由,丢弃所述第一 ARP请求报文;
[0025]报文代答模块,用于当所述第二确定模块确定所述第二主机的IP地址对应的路由不为所述第一虚拟子网内的路由,代替所述第二主机应答所述第一 ARP请求报文。
[0026]根据第二方面或第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述装置还包括:第二报文广播模块和路由发布模块;
[0027]所述报文接收模块,还用于接收来自第二网关设备发送的第二 BGP更新报文,所述第二 BGP更新报文包含所述类型标识信息和第三主机的IP地址;
[0028]所述第一确定模块,还用于根据所述第二 BGP更新报文确定所述第一网关设备是否存在与所述第三主机的IP地址对应的路由;
[0029]第二报文广播模块,用于当所述第一确定模块确定不存在与所述第三主机的IP地址对应的路由,在所述第一虚拟子网内广播第二 ARP请求报文,所述第二 ARP请求报文包含所述第三主机的IP地址;所述报文接收模块,还用于接收所述第三主机发送的ARP应答报文,所述ARP应答报文包含所述第三主机的IP地址和MAC地址;
[0030]所述路由获取模块,还用于根据所述报文接收模块接收的所述ARP应答报文,生成与所述第三主机的IP地址对应的路由;
[0031]所述路由发布模块,用于在所述第一确定模块确定存在与所述第三主机的IP地址对应的路由时,发布与所述第三主机的IP地址对应的路由;在所述第一确定模块确定不存在与所述第三主机的IP地址对应的路由时,发布所述路由获取模块生成的与所述第三主机的IP地址对应的路由。
[0032]第三方面,本发明实施例提供一种主机路由获取系统,包括:第一网关设备和第二网关设备;
[0033]所述第一网关设备位于第一虚拟子网内,所述第二网关设备位于第二虚拟子网内;
[0034]所述第一网关设备,用于接收第一主机发送的第一地址解析协议ARP请求报文,所述第一 ARP请求报文包含第二主机的互联网络协议IP地址,所述第一主机位于所述第一虚拟子网内;当确定所述第一网关设备不存在与所述第二主机的IP地址对应的路由时,广播第一边界网关协议BGP更新报文,所述第一 BGP更新报文包含类型标识信息和所述第二主机的IP地址;
[0035]所述第二网关设备,用于接收所述第一网关设备发送的所述第一 BGP更新报文,根据所述第一 BGP更新报文确定所述第二网关设备是否存在与所述第二主机的IP地址对应的路由;当确定存在与所述第二主机的IP地址对应的路由时,发布与所述第二主机的IP地址对应的路由;还用于当确定不存在与所述第二主机的IP地址对应的路由时,在所述第二虚拟子网内广播第二 ARP请求报文,所述第二 ARP请求报文包含所述第二主机的IP地址;接收所述第二主机发送的第二 ARP应答报文,并根据所述第二 ARP应答报文生成与所述第二主机的IP地址对应的路由,所述第二 ARP应答报文包含所述第二主机的IP地址和MAC地址;发布所述第二主机的IP地址对应的路由;
[0036]所述第一网关设备,还用于接收并保存所述第二网关设备发布的与所述第二主机的IP地址对应的路由。
[0037]在第三方面的第一种可能的实现方式中,所述第一网关设备,还用于当确定所述第一网关设备存在与所述第二主机的IP地址对应的路由时,确定所述第二主机的IP地址对应的路由是否为所述第一虚拟子网内的路由;若为所述第一虚拟子网内的路由,则丢弃所述第一 ARP请求报文;若不为所述第一虚拟子网内的路由,则代替所述第二主机应答所述第一 ARP请求报文。
[0038]本发明实施例主机路由获取方法、装置及系统,通过接收第一主机发送的第一 ARP请求报文,第一 ARP请求报文包含第二主机的IP地址;若第一网关设备确定不存在与第二主机的IP地址对应的路由,则第一网关设备广播第一 BGP更新报文,第一 BGP更新报文包含类型标识信息和所述第二主机的IP地址,以使第二网关设备根据第一 BGP更新报文向第一网关设备发布与第二主机的IP地址对应的路由;第一网关设备接收并保存第二网关设备发布的第二主机的IP地址对应的路由,解决了虚拟子网的网关设备如何及时获取并发布其下挂的虚拟主机的路由的问题。

【专利附图】

【附图说明】
[0039]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0040]图1为本发明实施例提供的一种主机路由获取方法的流程图;
[0041]图2为本发明实施例提供的另一种主机路由获取方法的流程图;
[0042]图3为本发明实施例提供的又一种主机路由获取方法的流程图;
[0043]图4A为本发明实施例提供的数据中心组网示意图;
[0044]图4B为本发明实施例提供的图4A组网下主机路由获取方法的流程图;
[0045]图5为本发明实施例提供的主机路由获取装置500的结构示意图;
[0046]图6为本发明实施例提供的主机路由获取装置600的结构示意图;
[0047]图7为本发明实施例提供的主机路由获取系统700的结构示意图。

【具体实施方式】
[0048]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0049]图1为本发明实施例提供的一种主机路由获取方法的流程图。该方法由配置在网关设备中的主机路由获取装置执行,该装置可通过硬件和/或软件的方式来实现。所述方法包括:
[0050]110、第一网关设备接收第一主机发送的第一地址解析协议(address resolut1nprotocol,简称ARP)请求报文,第一 ARP请求报文包含第二主机的互联网协议(Internetprotocol,简称 IP)地址;
[0051]所述第一网关设备和所述第一主机位于第一虚拟子网内。
[0052]具体地,当第一虚拟子网内的第一主机需要和第二虚拟子网内的第二主机进行通信时,第一主机在子网内广播发送包含所述第二主机的IP地址的第一 ARP请求报文。
[0053]120、若第一网关设备确定第一网关设备不存在与第二主机的IP地址对应的路由,贝1J第一网关设备广播第一边界网关协议(border gateway protocol,简称BGP)更新报文,第一 BGP更新报文包含类型标识信息和第二主机的IP地址;
[0054]这样,可以使第二网关设备根据第一 BGP更新报文向第一网关设备发布与第二主机的IP地址对应的路由。其中,所述第二主机和所述第二网关设备位于第二虚拟子网内。
[0055]类型标识信息用来表示第一 BGP更新报文的类型,可以指示第二网关设备根据所述第一 BGP更新报文获取与第二主机的IP地址对应的路由,并向第一网关设备发布该路由。例如,类型标识信息可以通过设定BGP更新报文中的属性类型(attribute type)字段中预留的比特位的值来实现。
[0056]130、第一网关设备接收并保存第二网关设备发布的与第二主机的IP地址对应的路由。通常,可以采用虚拟迁移机制,通过虚拟主机管理设备把虚拟主机的加入及时通知虚拟子网对应的网关设备,从而使网关设备获取其对应虚拟子网的DC域内的主机路由信息,但是在没有部署虚拟迁移技术的组网环境中不可实施;或者,也可以由网关设备定时扫描其对应虚拟子网的DC域内虚拟主机可能使用的与该网关设备同网段的IP地址,从而感知到该DC域内主机路由信息,但是这需要网关设备频繁扫描同网段内虚拟主机的IP地址,会导致网络内充满大量ARP广播报文,占用网络带宽,从而影响网络业务和其它数据流量的转发。而在本实施例的120和130中,第一网关设备在接收到第一主机发送的第一 ARP请求报文后,若确定不存在与第二主机的IP地址对应的路由,贝1J第一网关设备广播第一 BGP更新报文,以使第二主机所在第二虚拟子网的第二网关设备根据第一 BGP更新报文向第一网关设备发布与第二主机的IP地址对应的路由,然后第一网关设备接收并保存第二网关设备发布的第二主机的IP地址对应的路由。这样,第二网关设备是在收到第一网关设备发送的第一 BGP更新报文后,才向第一网关设备发布与第二主机的IP地址对应的路由,这样即使没有部署虚拟迁移技术,第一网关设备也可以及时获取DC域内主机路由,也可以避免定时扫描同网段内虚拟主机的IP地址导致广播流量大、浪费网络带宽的问题。
[0057]需要说明的是,本发明中涉及的主机包括虚拟主机VM,计算机主机(host)等。
[0058]本实施例提供的主机路由获取方法,通过第一网关设备确定不存在与第二主机的IP地址对应的路由后,广播第一 BGP更新报文,使第二网关设备根据第一 BGP更新报文向第一网关设备发布与第二主机的IP地址对应的路由,从而使第一网关设备能够接收并保存第二网关设备发布的与第二主机的IP地址对应的路由。这样,在虚拟主机的加入的情况下,网关设备能够及时发布其下挂的虚拟主机的路由。
[0059]图2为本发明实施例所提供的另一种主机路由获取方法的流程图。参照图2,本实施例的方法可以包括:
[0060]210、第一网关设备接收第一主机发送的第一 ARP请求报文,第一 ARP请求报文包含第二主机的IP地址;第一网关设备和第一主机位于第一虚拟子网内。
[0061]220、第一网关设备确定第一网关设备是否存在与第二主机的IP地址对应的路由;若确定第一网关设备存在与第二主机的IP地址对应的路由时,执行230 ;否则执行260。
[0062]230、第一网关设备确定第二主机的IP地址对应的路由是否为第一虚拟子网内的路由;若确定第二主机的IP地址对应的路由是第一虚拟子网内的路由,则执行240 ;否则执行 250。
[0063]例如,第一网关设备可以根据本地存储的路由标识信息,确定目的主机的IP地址对应的路由是否为第一虚拟子网内的路由。
[0064]240、第一网关设备丢弃第一 ARP请求报文。
[0065]250、第一网关设备对第一 ARP请求报文进行代答。
[0066]在250中,如果第一网关设备确定与第二主机的IP地址对应的路由不是第一虚拟子网内的路由,则第一网关设备可以代替第二主机应答第一 ARP请求报文;具体地,第一网关设备向第一主机发送第一 ARP应答报文,所述第一 ARP应答报文中包括第二主机的IP地址和媒体访问控制(media access control,简称MAC)地址。
[0067]260、第一网关设备广播第一 BGP更新报文,第一 BGP更新报文包含类型标识信息和第二主机的IP地址。
[0068]这样,可以使第二网关设备根据第一 BGP更新报文向第一网关设备发布与第二主机的IP地址对应的路由,其中,所述第二主机和所述第二网关设备位于第二虚拟子网内;并执行270。
[0069]270、第一网关设备接收并保存第二网关设备发布的与第二主机的IP地址对应的路由。
[0070]进一步的,第一网关设备代替第二主机应答第一 ARP请求报文;具体地,第一网关设备向第一主机发送第一 ARP应答报文,所述第一 ARP应答报文中包括第二主机的IP地址和MAC地址。
[0071]本实施例提供的主机路由获取方法,通过第一网关设备确定不存在与第二主机的IP地址对应的路由后,广播第一 BGP更新报文,使第二网关设备根据第一 BGP更新报文向第一网关设备发布与第二主机的IP地址对应的路由,第一网关设备接收并保存第二网关设备发布的与第二主机的IP地址对应的路由,实现了第一网关设备也能获得该路由,从而使第一网关设备再次收到包含第二主机的IP地址的ARP请求报文后,能够直接代替第二主机应答ARP请求报文。
[0072]在上述实施例提供的主机路由获取方法的基础上,图3为本发明实施例提供的又一种主机路由获取方法的流程图。参照图3,本实施例的方法可以包括:
[0073]310、第一网关设备接收来自第二网关设备发送的第二 BGP更新报文,第二 BGP更新报文包含类型标识信息和第三主机的IP地址。
[0074]320、第一网关设备根据第二 BGP更新报文确定第一网关设备是否存在与第三主机的IP地址对应的路由,若确定第一网关设备存在与第三主机的IP地址对应的路由,则执行步骤330,否则执行340。
[0075]330、第一网关设备发布与第三主机的IP地址对应的路由,以使第二网关设备接收并保存与第三主机的IP地址对应的路由。
[0076]340、在第一虚拟子网内广播第二 ARP请求报文,第二 ARP请求报文包含第三主机的IP地址,并执行步骤350。
[0077]350、第一网关设备接收第三主机发送的第二 ARP应答报文,第二 ARP应答报文包含第三主机的IP地址和MAC地址。
[0078]360、第一网关设备根据第二 ARP应答报文生成与第三主机的IP地址对应的路由。
[0079]370、第一网关设备发布生成的与第三主机的IP地址对应的路由,以使第二网关设备接收并保存与第三主机的IP地址对应的路由。
[0080]本实施例中,以所述第三主机位于所述第一虚拟子网内为例,说明本发明技术方案。可以理解的是,对于所述第三主机不位于所述第一虚拟子网内的场景,所述第一网关设备将不会收到对所述第二 ARP请求报文的应答,相应地,所述第一网关设备不会执行本实施例中360和370。
[0081]本实施例提供的主机路由获取方法,通过第一网关设备接收到第二 BGP更新报文后,使第一网关设备根据第二 BGP更新报文确定是否存在与第一主机的IP地址对应的路由,若存在,则可以直接发布该路由,若不存在,通过广播第三ARP请求报文,接收ARP应答报文来生成与第一主机的IP地址对应的路由并发布该路由;这样,虚拟子网的网关设备能够按需及时发布其下挂的虚拟主机的路由。
[0082]为了详细介绍上述各实施例示出的主机路由获取方法,下面特配合图4A和图4B详细介绍虚拟子网的网关设备获取其下挂的主机的路由的过程。图4A为本发明实施例提供的数据中心组网示意图,图4B为本发明实施例提供的图4A组网下主机路由获取方法的流程图。
[0083]可以理解的是,本实施例中图4A所示数据中心组网仅为一种示例;具体实现中,数据中心组网中虚拟子网的数量、各个虚拟子网内的主机或设备数量可能不同,本发明对此不做限制。
[0084]图4A所示数据中心组网中可以包括网关设备PE1、网关设备PE2、网关设备PE3、网关设备PEl下挂的主机11和主机12、网关设备PE2下挂的主机21、网关设备PE3下挂的主机31、交换机1、交换机2和交换机3。其中,网关设备PEl为虚拟子网I的网关设备,网关设备PE2为虚拟子网2的网关设备,数据中心组网包括虚拟子网I和虚拟子网2,网关设备PE3为互联网络中的网关设备。本实施例的方法可以包括:
[0085]410、主机11通过交换机I向网关设备PEl发送了包含目的主机的IP地址的第一ARP请求报文。
[0086]网关设备PEl接收到该第一 ARP请求报文后,确定是否存在与目的主机的IP地址对应的路由。若存在与目的主机的IP地址对应的路由,则进一步确定该路由是否为虚拟子网I内的路由,若为虚拟子网I内的路由,则将该ARP请求报文丢弃,即不代替目的主机对该第一 ARP请求报文应答;若不为虚拟子网I内的路由,而是其它网关设备发布过来的路由,则代替目的主机应答该第一 ARP请求报文。例如,如果目的主机为主机12,网关设备PEl确定存在与目的主机的IP地址对应的路由后,会进一步确定主机12的IP地址对应的路由是否为虚拟子网I内的路由,由于主机12为网关设备PEl下挂的主机,因此主机12的IP地址对应的路由是虚拟子网I内的路由,这种情况下网关设备PEl不代替主机12应答该第一 ARP请求报文。如果目的主机为主机21,网关设备PEl确定存在与主机21的IP地址对应的路由后,会进一步确定主机21的IP地址对应的路由是否为虚拟子网I内的路由的,由于主机21为网关设备PE2下挂的主机,因此主机21的IP地址对应的路由是网关设备PE2发布的,这种情况下网关设备PEl可以代替主机21应答该第一 ARP请求报文。从而使得主机12可以从网关设备PEl获得主机21的MAC地址,而不需要再经过网关设备PE2获得主机21的MAC地址。
[0087]网关设备PEl接收到该第一 ARP请求报文后,若确定不存在与目的主机的IP地址对应的路由,则执行420。
[0088]420、网关设备PEl广播包含类型标识信息和目的主机的IP地址的BGP更新报文,以使网关设备PE2根据类型标识信息向网关设备PE2下挂的主机发送包含目的主机的IP地址的第二 ARP请求报文。
[0089]在此需要说明的是,本实施例仅以存在网关设备PEl和网关设备PE2为例说明主机路由获取方法的,若还存在虚拟子网的网关设备PE4,网关设备PE4也将收到所述BGP更新报文。
[0090]430、网关设备PE2在虚拟子网2内广播包含目的主机的IP地址的第二 ARP请求报文。
[0091]440、网关设备PE2接收目的主机发送的ARP应答报文。
[0092]在430和440中,如果目的主机为主机21,则网关设备PE2向其下挂的主机发送包含目的主机的IP地址的ARP请求报文后,会收到主机21发送的ARP应答报文,ARP应答报文中包含主机21的IP地址和主机21的MAC地址。
[0093]450、网关设备PE2根据ARP应答报文生成与目的主机的IP地址对应的路由。
[0094]460、网关设备PE2向网关设备PEl和网关设备PE3发布生成的与目的主机的IP地址对应的路由。
[0095]需要说明的是,网关设备PE2生成与目的主机的IP地址对应的路由后,可以将该路由发布给BGP路由域中其他网关设备,也即可以将该路由发布给网关设备PEl和网关设备PE3。网关设备PE2在向网关设备PEl发布生成的与目的主机的IP地址对应的路由后,如果网关设备PEl再次收到包含该目的主机的IP地址的ARP请求报文,则可以代替该目的主机应答该ARP请求报文。例如网关设备PEl收到主机12发送的包含主机21的IP地址的ARP请求报文,则网关设备PEl可以代替主机21应答该ARP请求报文。如果网关设备PE3收到包含该目的主机的IP地址的ARP请求报文,则可以代替该目的主机应答该ARP请求报文。例如网关设备PE3收到主机31发送的包含主机21的IP地址的ARP请求报文,则网关设备PE3可以代替主机21应答该ARP请求报文。
[0096]本实施例提供的主机路由获取方法,通过网关设备确定不存在与目的主机的IP地址对应的路由后,向其它虚拟子网的网关设备发送BGP更新报文。从而触发其它虚拟子网的网关设备向各自下挂的主机发送包含目的主机的IP地址的ARP请求报文,使得目的主机所在的网关设备能够收到目的主机的ARP应答报文,生成与目的主机的IP地址对应的路由,并发布生成的路由。从而实现了虚拟子网的网关设备能够按需获取其下挂的主机的路由,并发布生成的路由,使得其它网关设备也能获得该路由;这样其它网关设备收到源主机发送的包含与该路由对应的目的主机的IP地址的ARP请求报文后,能够直接代替目的主机应答ARP请求报文。
[0097]图5为本发明实施例提供的主机路由获取装置500的结构示意图。本实施例的装置适用于虚拟子网中的网关设备能够按需获取其下挂的主机的路由的情况。该装置通常以硬件和/或软件的方式来实现。参照图5,该装置包括如下模块:报文接收模块510、第一确定模块520、第一报文广播模块530和路由获取模块540。
[0098]报文接收模块510用于接收第一主机发送的第一地址解析协议ARP请求报文,第一 ARP请求报文包含第二主机的互联网络协议IP地址;第一网关设备和第一主机位于第一虚拟子网内;第一确定模块520用于确定第一网关设备是否存在与第二主机的IP地址对应的路由;第一报文广播模块530用于当第一网关设备确定第一网关设备不存在与第二主机的IP地址对应的路由时,广播第一边界网关协议BGP更新报文,第一 BGP更新报文包含类型标识信息和第二主机的IP地址;路由获取模块540用于接收并保存第二网关设备发布的第二主机的IP地址对应的路由。
[0099]进一步的,还包括:
[0100]第二确定模块,用于当第一确定模块确定第一网关设备存在与第二主机的IP地址对应的路由时,确定第二主机的IP地址对应的路由是否为第一虚拟子网内的路由。
[0101]报文丢弃模块,用于当第二确定模块确定第二主机的IP地址对应的路由为第一虚拟子网内的路由,丢弃第一 ARP请求报文。
[0102]报文代答模块,用于当第二确定模块确定第二主机的IP地址对应的路由不为第一虚拟子网内的路由,代替第二主机应答第一 ARP请求报文。
[0103]进一步的,还包括:第二报文广播模块和路由发布模块。
[0104]报文接收模块510还用于接收来自第二网关设备发送的第二 BGP更新报文,第二BGP更新报文包含类型标识信息和第三主机的IP地址。
[0105]第一确定模块520还用于根据第二 BGP更新报文确定第一网关设备是否存在与第三主机的IP地址对应的路由。
[0106]第二报文广播模块,用于当第一确定模块确定不存在与第三主机的IP地址对应的路由,在第一虚拟子网内广播第二 ARP请求报文,第二 ARP请求报文包含第三主机的IP地址。
[0107]报文接收模块510还用于接收第三主机发送的ARP应答报文,ARP应答报文包含第三主机的IP地址和MAC地址。
[0108]路由获取模块540还用于根据报文接收模块接收的ARP应答报文,生成与第三主机的IP地址对应的路由。
[0109]路由发布模块,用于在第一确定模块确定存在与第三主机的IP地址对应的路由时,发布与第三主机的IP地址对应的路由;在第一确定模块确定不存在与第三主机的IP地址对应的路由时,发布路由获取模块生成的与第三主机的IP地址对应的路由。
[0110]本实施例提供的主机路由获取装置,通过在确定不存在与第二主机的IP地址对应的路由后,广播第一 BGP更新报文,使第二网关设备根据第一 BGP更新报文向第一网关设备发布与第二主机的IP地址对应的路由,从而使第一网关设备能够接收并保存第二网关设备发布的与第二主机的IP地址对应的路由。从而实现了在虚拟主机的加入的情况下,网关设备能够按需获取其下挂的主机的路由并及时发布其下挂的主机的路由。
[0111]图6为本发明实施例提供的主机路由获取装置600的结构示意图。参照图6,该装置包括:处理器601、存储器602、通信接口 603和总线604。其中,处理器601、存储器602、通信接口 603通过总线604相互连接;
[0112]存储器602,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。
[0113]处理器601执行存储器602所存放的程序,实现主机路由获取方法,包括:
[0114]处理器601用于接收第一主机发送的第一地址解析协议ARP请求报文,第一 ARP请求报文包含第二主机的互联网络协议IP地址;第一网关设备和第一主机位于第一虚拟子网内;若第一网关设备确定不存在与第二主机的IP地址对应的路由,则广播第一边界网关协议BGP更新报文,第一 BGP更新报文包含类型标识信息和第二主机的IP地址,以使第二网关设备根据第一 BGP更新报文向第一网关设备发布与第二主机的IP地址对应的路由;接收并保存第二网关设备发布的第二主机的IP地址对应的路由,第二网关设备和第二主机位于第二虚拟子网内。
[0115]进一步的,处理器601还用于第一网关设备确定存在与第二主机的IP地址对应的路由,则第一网关设备确定第二主机的IP地址对应的路由是否为第一虚拟子网内的路由;若为第一虚拟子网内的路由,则第一网关设备丢弃第一 ARP请求报文;若不为第一虚拟子网内的路由,第一网关设备代替第二主机应答第一 ARP请求报文。
[0116]进一步的,处理器601还用于接收来自第二网关设备的第二 BGP更新报文,第二BGP更新报文包含类型标识信息和第三主机的IP地址;根据第二 BGP更新报文确定第一网关设备是否存在与第三主机的IP地址对应的路由。
[0117]处理器601还用于若确定存在与第三主机的IP地址对应的路由,则第一网关设备发布与第三主机的IP地址对应的路由,以使第二网关设备接收并保存与第三主机的IP地址对应的路由。
[0118]处理器601还用于若确定不存在与第三主机的IP地址对应的路由,则第一网关设备在第一虚拟子网内广播第二 ARP请求报文,第二 ARP请求报文包含第三主机的IP地址;第一网关设备接收第三主机发送的ARP应答报文,ARP应答报文包含第三主机的IP地址和MAC地址;第一网关设备根据ARP应答报文生成与第三主机的IP地址对应的路由,向第二网关设备发布与第三主机的IP地址对应的路由,以使第二网关设备接收并保存与第三主机的IP地址对应的路由。
[0119]本实施例提供的主机路由获取装置,通过在确定不存在与第二主机的IP地址对应的路由后,广播第一 BGP更新报文,使第二网关设备根据第一 BGP更新报文向第一网关设备发布与第二主机的IP地址对应的路由,从而使第一网关设备能够接收并保存第二网关设备发布的与第二主机的IP地址对应的路由。从而实现了在虚拟主机的加入的情况下,网关设备能够按需获取并发布其下挂的虚拟主机的路由。
[0120]图7为本发明实施例提供的主机路由获取系统700的结构示意图。参照图7,该系统包括:第一网关设备710和第二网关设备720。
[0121]第一网关设备710用于接收第一主机发送的第一地址解析协议ARP请求报文,第一 ARP请求报文包含第二主机的互联网络协议IP地址,第一主机位于第一虚拟子网内;当确定第一网关设备不存在与第二主机的IP地址对应的路由时,广播第一边界网关协议BGP更新报文,第一 BGP更新报文包含类型标识信息和第二主机的IP地址;第二网关设备720用于接收第一网关设备发送的第一 BGP更新报文,根据第一 BGP更新报文确定第二网关设备是否存在与第二主机的IP地址对应的路由;当确定存在与第二主机的IP地址对应的路由时,向第一网关设备发布与第二主机的IP地址对应的路由;还用于当确定不存在与第二主机的IP地址对应的路由时,在第二虚拟子网内广播第二 ARP请求报文,第二 ARP请求报文包含第二主机的IP地址;接收二主机发送的第二 ARP应答报文,并根据第二 ARP应答报文生成与第二主机的IP地址对应的路由,第二 ARP应答报文包含第二主机的IP地址和MAC地址;发布第二主机的IP地址对应的路由;第一网关设备710还用于接收并保存第二网关设备发布的与第二主机的IP地址对应的路由。
[0122]进一步的,第一网关设备710还用于当确定第一网关设备存在与第二主机的IP地址对应的路由时,确定第二主机的IP地址对应的路由是否为第一虚拟子网内的路由;若为第一虚拟子网内的路由,则丢弃第一 ARP请求报文;若不为第一虚拟子网内的路由,则代替第二主机应答第一 ARP请求报文。
[0123]举例来说,参考图4A所示数据中心组网,所述系统可以包括网关设备PE1、网关设备PE2、网关设备PE3、网关设备PE1下挂的主机11和主机12、网关设备PE2下挂的主机21、网关设备PE3下挂的主机31、交换机1、交换机2和交换机3。其中,网关设备PEl为虚拟子网I的网关设备,网关设备PE2为虚拟子网2的网关设备,数据中心组网包括虚拟子网I和虚拟子网2,网关设备PE3为互联网络中的网关设备。其中,网关设备PE1、网关设备PE2和网关设备PE3可以参考图4B所示主机路由获取方法,获取主机路由,这里不再赘述。
[0124]本实施例提供的主机路由获取系统,通过在确定不存在与第二主机的IP地址对应的路由后,广播第一 BGP更新报文,使第二网关设备根据第一 BGP更新报文向第一网关设备发布与第二主机的IP地址对应的路由,从而使第一网关设备能够接收并保存第二网关设备发布的与第二主机的IP地址对应的路由。从而实现了在虚拟主机的加入的情况下,网关设备能够按需获取并发布其下挂的虚拟主机的IP地址对应的路由。
[0125]本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例;而前述的存储介质包括:R0M、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
[0126]最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
【权利要求】
1.一种主机路由获取方法,其特征在于,包括: 第一网关设备接收第一主机发送的第一地址解析协议ARP请求报文,所述第一 ARP请求报文包含第二主机的互联网络协议IP地址;所述第一网关设备和所述第一主机位于第一虚拟子网内; 若所述第一网关设备确定不存在与所述第二主机的IP地址对应的路由,则所述第一网关设备广播第一边界网关协议BGP更新报文,所述第一 BGP更新报文包含类型标识信息和所述第二主机的IP地址,以使第二网关设备根据所述第一 BGP更新报文发布与所述第二主机的IP地址对应的路由;所述第一网关设备接收并保存所述第二网关设备发布的与所述第二主机的IP地址对应的路由,所述第二网关设备和所述第二主机位于第二虚拟子网内。
2.根据权利要求1所述的方法,其特征在于,还包括: 若所述第一网关设备确定存在与所述第二主机的IP地址对应的路由,则所述第一网关设备确定所述第二主机的IP地址对应的路由是否为所述第一虚拟子网内的路由; 若为所述第一虚拟子网内的路由,则所述第一网关设备丢弃所述第一 ARP请求报文; 若不为所述第一虚拟子网内的路由,则所述第一网关设备代替所述第二主机应答所述第一 ARP请求报文。
3.根据权利要求1或2所述的方法,其特征在于,还包括: 所述第一网关设备接收来自第二网关设备的第二 BGP更新报文,所述第二 BGP更新报文包含所述类型标识信息和第三主机的IP地址; 根据所述第二 BGP更新报文确定所述第一网关设备是否存在与所述第三主机的IP地址对应的路由; 若确定存在与所述第三主机的IP地址对应的路由,则所述第一网关设备发布与所述第三主机的IP地址对应的路由,以使所述第二网关设备接收并保存与所述第三主机的IP地址对应的路由; 若确定不存在与所述第三主机的IP地址对应的路由,则所述第一网关设备在所述第一虚拟子网内广播第二 ARP请求报文,所述第二 ARP请求报文包含所述第三主机的IP地址;所述第一网关设备接收所述第三主机发送的ARP应答报文,所述ARP应答报文包含所述第三主机的IP地址和MAC地址;所述第一网关设备根据所述ARP应答报文生成与所述第三主机的IP地址对应的路由,向所述第二网关设备发布与所述第三主机的IP地址对应的路由,以使所述第二网关设备接收并保存与所述第三主机的IP地址对应的路由。
4.一种主机路由获取装置,所述装置部署在第一网关设备上,其特征在于,所述装置包括: 报文接收模块,用于接收第一主机发送的第一地址解析协议ARP请求报文,所述第一ARP请求报文包含第二主机的互联网络协议IP地址;所述第一网关设备和所述第一主机位于第一虚拟子网内; 第一确定模块,用于确定所述第一网关设备是否存在与所述第二主机的IP地址对应的路由; 第一报文广播模块,用于当所述第一确定模块确定所述第一网关设备不存在与所述第二主机的IP地址对应的路由时,广播第一边界网关协议BGP更新报文,所述第一 BGP更新报文包含类型标识信息和所述第二主机的IP地址; 路由获取模块,用于接收并保存第二网关设备发布的所述第二主机的IP地址对应的路由。
5.根据权利要求4所述的装置,其特征在于,还包括: 第二确定模块,用于当所述第一确定模块确定所述第一网关设备存在与所述第二主机的IP地址对应的路由时,确定所述第二主机的IP地址对应的路由是否为所述第一虚拟子网内的路由; 报文丢弃模块,用于当所述第二确定模块确定所述第二主机的IP地址对应的路由为所述第一虚拟子网内的路由,丢弃所述第一 ARP请求报文; 报文代答模块,用于当所述第二确定模块确定所述第二主机的IP地址对应的路由不为所述第一虚拟子网内的路由,代替所述第二主机应答所述第一 ARP请求报文。
6.根据权利要求4或5所述的装置,其特征在于,所述装置还包括:第二报文广播模块和路由发布模块; 所述报文接收模块,还用于接收来自第二网关设备发送的第二 BGP更新报文,所述第二 BGP更新报文包含所述类型标识信息和第三主机的IP地址; 所述第一确定模块,还用于根据所述第二 BGP更新报文确定所述第一网关设备是否存在与所述第三主机的IP地址对应的路由; 第二报文广播模块,用于当所述第一确定模块确定不存在与所述第三主机的IP地址对应的路由,在所述第一虚拟子网内广播第二 ARP请求报文,所述第二 ARP请求报文包含所述第三主机的IP地址;所述报文接收模块,还用于接收所述第三主机发送的ARP应答报文,所述ARP应答报文包含所述第三主机的IP地址和MAC地址; 所述路由获取模块,还用于根据所述报文接收模块接收的所述ARP应答报文,生成与所述第三主机的IP地址对应的路由; 所述路由发布模块,用于在所述第一确定模块确定存在与所述第三主机的IP地址对应的路由时,发布与所述第三主机的IP地址对应的路由;在所述第一确定模块确定不存在与所述第三主机的IP地址对应的路由时,发布所述路由获取模块生成的与所述第三主机的IP地址对应的路由。
7.—种主机路由获取系统,其特征在于,包括:第一网关设备和第二网关设备; 所述第一网关设备位于第一虚拟子网内,所述第二网关设备位于第二虚拟子网内; 所述第一网关设备,用于接收第一主机发送的第一地址解析协议ARP请求报文,所述第一 ARP请求报文包含第二主机的互联网络协议IP地址,所述第一主机位于所述第一虚拟子网内;当确定所述第一网关设备不存在与所述第二主机的IP地址对应的路由时,广播第一边界网关协议BGP更新报文,所述第一 BGP更新报文包含类型标识信息和所述第二主机的IP地址; 所述第二网关设备,用于接收所述第一网关设备发送的所述第一 BGP更新报文,根据所述第一 BGP更新报文确定所述第二网关设备是否存在与所述第二主机的IP地址对应的路由;当确定存在与所述第二主机的IP地址对应的路由时,发布与所述第二主机的IP地址对应的路由;还用于当确定不存在与所述第二主机的IP地址对应的路由时,在所述第二虚拟子网内广播第二 ARP请求报文,所述第二 ARP请求报文包含所述第二主机的IP地址;接收所述第二主机发送的第二 ARP应答报文,并根据所述第二 ARP应答报文生成与所述第二主机的IP地址对应的路由,所述第二 ARP应答报文包含所述第二主机的IP地址和MAC地址;发布所述第二主机的IP地址对应的路由; 所述第一网关设备,还用于接收并保存所述第二网关设备发布的与所述第二主机的IP地址对应的路由。
8.根据权利要求7所述的系统,其特征在于,所述第一网关设备,还用于当确定所述第一网关设备存在与所述第二主机的IP地址对应的路由时,确定所述第二主机的IP地址对应的路由是否为所述第一虚拟子网内的路由;若为所述第一虚拟子网内的路由,则丢弃所述第一 ARP请求报文;若不为所述第一虚拟子网内的路由,则代替所述第二主机应答所述第一 ARP请求报文。
【文档编号】H04L12/701GK104426759SQ201310366892
【公开日】2015年3月18日 申请日期:2013年8月21日 优先权日:2013年8月21日
【发明者】杨柳青, 贺行健, 张银娟, 赵诤 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1