一种报文转发方法及装置与流程

文档序号:17158382发布日期:2019-03-20 00:18阅读:164来源:国知局
一种报文转发方法及装置与流程

本申请涉及通信技术领域,特别是涉及一种报文转发方法及装置。



背景技术:

对于以太虚拟专用网络(ethernetvirtualprivatenetwork,evpn),在如图1所示的组网场景下,叶子节点(leaf)1和leaf2为分布式网关,脊节点(spine)为三层网关,leaf1、leaf2和spine之间两两连接,且leaf1和leaf2之间的连接为边界网关协议(bordergatewayprotocol,bgp)邻居连接。spine连接于动态主机配置协议(dynamichostconfigurationprotocol,dhcp)服务器,leaf1或leaf2下挂客户端,且leaf1或leaf2可作为dhcp中继。

以leaf1为例,leaf1下挂的客户端申请互联网协议(internetprotocoladdress,ip)地址时,可向leaf1发送dhcpdiscover报文,然后leaf1作为dhcp中继向spine转发dhcpdiscover报文,然而,leaf1转发的dhcpdiscover报文的源地址为leaf1连接于客户端的接口的接口地址,所以后续dhcp服务器发送回复报文时,将以该接口地址作为目的地址。而leaf1和leaf2上相同虚拟交换接口(virtualswitchinterface,vsi)的接口地址相同,会导致本应被转发给leaf1的报文可能被转发至leaf2,导致客户端无法申请到ip地址。



技术实现要素:

有鉴于此,本申请实施例提供一种报文转发方法及装置,以解决现有技术中由于报文转发错误导致的客户端无法申请到ip地址的问题。具体技术方案如下:

第一方面,本申请实施例提供一种报文转发方法,所述方法应用于第一分布式网关设备,所述方法包括:

在接收到客户端发送的动态主机配置协议dhcp请求报文后,获取所述客户端的媒体访问控制mac地址,并向三层网关设备转发所述dhcp请求报文;

向第二分布式网关设备发送所述mac地址,以使得所述第二分布式网关设备生成mac表项,在所述第二分布式网关设备接收到三层网关设备发送的dhcp回复报文后,根据所述mac表项向所述第一分布式网关设备转发所述dhcp回复报文;其中,所述mac表项包括所述mac地址与出接口之间的对应关系,所述出接口为所述第二分布式网关设备上,用于通过可扩展虚拟局域网vxlan隧道连接所述第一分布式网关设备的接口;

接收所述第二分布式网关设备发送的dhcp回复报文。

在一种可能的实现方式中,所述获取所述客户端的mac地址,包括:

向所述客户端发送地址解析协议arp请求消息;

接收所述客户端返回的arp回复消息,所述arp回复消息携带所述客户端的mac地址。

在一种可能的实现方式中,所述向第二分布式网关设备发送所述mac地址,包括:

向所述第二分布式网关设备发送边界网关协议bgp以太虚拟专用网络evpn路由,所述bgpevpn路由携带所述mac地址。

第二方面,本申请实施例提供一种报文转发方法,所述方法应用于第二分布式网关设备,所述方法包括:

接收所述第一分布式网关设备发送的客户端的媒体访问控制mac地址;

根据所述mac地址生成mac表项,所述mac表项包括所述mac地址与出接口的对应关系,所述出接口为所述第二分布式网关设备上,用于通过可扩展虚拟局域网vxlan隧道连接所述第一分布式网关设备的出接口;

在接收到三层网关设备发送的互联网协议dhcp回复报文后,根据所述mac表项向所述第一分布式网关设备转发所述dhcp回复报文。

在一种可能的实现方式中,所述接收第一分布式网关设备发送的mac地址,包括:

接收第一分布式网关设备发送的边界网关协议bgp以太虚拟专用网络evpn路由,所述bgpevpn路由携带所述mac地址。

在一种可能的实现方式中,所述在接收到三层网关设备发送的dhcp回复报文后,根据所述mac表项向所述第一分布式网关设备转发所述dhcp回复报文,包括:

从所述dhcp回复报文中获取客户端的mac地址;

从所述mac表项中查找与所述mac地址对应的出接口;

通过所述出接口向所述第一分布式网关设备转发所述dhcp回复报文。

第三方面,本申请实施例提供一种报文转发装置,所述装置应用于第一分布式网关设备,所述装置包括:

获取模块,用于在接收到客户端发送的动态主机配置协议dhcp请求报文后,获取所述客户端的媒体访问控制mac地址,并向三层网关设备转发所述dhcp请求报文;

发送模块,用于向第二分布式网关设备发送所述mac地址,以使得所述第二分布式网关设备生成mac表项,在所述第二分布式网关设备接收到三层网关设备发送的dhcp回复报文后,根据所述mac表项向所述第一分布式网关设备转发所述dhcp回复报文;其中,所述mac表项包括所述mac地址与出接口之间的对应关系,所述出接口为所述第二分布式网关设备上,用于通过可扩展虚拟局域网vxlan隧道连接所述第一分布式网关设备的接口;

接收模块,用于接收所述第二分布式网关设备发送的dhcp回复报文。

在一种可能的实现方式中,所述获取模块,具体用于向所述客户端发送地址解析协议arp请求消息;接收所述客户端返回的arp回复消息,所述arp回复消息携带所述客户端的mac地址。

在一种可能的实现方式中,所述发送模块,具体用于向所述第二分布式网关设备发送边界网关协议bgp以太虚拟专用网络evpn路由,所述bgpevpn路由携带所述mac地址。

第四方面,本申请实施例提供一种报文转发装置,所述装置应用于第二分布式网关设备,所述装置包括:

接收模块,用于接收所述第一分布式网关设备发送的客户端的媒体访问控制mac地址;

生成模块,用于根据所述mac地址生成mac表项,所述mac表项包括所述mac地址与出接口的对应关系,所述出接口为所述第二分布式网关设备上,用于通过可扩展虚拟局域网vxlan隧道连接所述第一分布式网关设备的出接口;

发送模块,用于在接收到三层网关设备发送的互联网协议dhcp回复报文后,根据所述mac表项向所述第一分布式网关设备转发所述dhcp回复报文。

在一种可能的实现方式中,所述接收模块,具体用于接收第一分布式网关设备发送的边界网关协议bgp以太虚拟专用网络evpn路由,所述bgpevpn路由携带所述mac地址。

在一种可能的实现方式中,所述发送模块,具体用于从所述dhcp回复报文中获取客户端的mac地址;从所述mac表项中查找与所述mac地址对应的出接口;通过所述出接口向所述第一分布式网关设备转发所述dhcp回复报文。

第五方面,本申请实施例提供一种分布式网关设备,该分布式网关设备包括:处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:实现第一方面或第二方面中所述的报文转发方法。

第六方面,本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现第一方面或第二方面中所述的报文转发方法。

第七方面,本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面或第二方面中所述的报文转发方法。

采用本申请实施例提供的报文转发方法,第一分布式网关设备在接收到客户端发送的dhcp请求报文后,可获取客户端的mac地址,并向第二分布式网关设备发送该mac地址,以使得第二分布式网关设备可以根据该mac地址生成mac表项。进而在三层网关设备错将dhcp回复报文发送至第二分布式网关设备的情况下,第二分布式网关设备还可以根据mac表项将dhcp回复报文转发给第一分布式网关设备,使得第一分布式网关设备连接的客户端可以申请到ip地址,即采用本申请实施例的报文转发方法,即使报文转发错误,客户端也可以获取到ip地址。

当然,实施本申请的任一产品或方法并不一定需要同时达到以上所述的所有优点。

附图说明

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

图1为本申请实施例提供的一种组网架构的示意图;

图2为本申请实施例提供的一种报文转发方法的流程图;

图3为本申请实施例提供的另一种报文转发方法的流程图;

图4为本申请实施例提供的另一种报文转发方法的流程图;

图5为本申请实施例提供的一种报文转发装置的结构示意图;

图6为本申请实施例提供的另一种报文转发装置的结构示意图;

图7为本申请实施例提供的一种分布式网关设备的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

为了解决现有技术中由于报文转发错误导致的客户端无法申请到ip地址的问题,本申请实施例中,第一分布式网关设备接收到客户端发送的dhcp请求报文后,可获取客户端的媒体访问控制(mediaaccesscontroladdress,mac)地址,并将该mac地址发送给第二分布式网关设备,第二分布式网关设备根据该mac地址生成mac表项,mac表项包括该mac地址与出接口的对应关系,该出接口为第二分布式网关设备上,用于通过可扩展虚拟局域网(virtualextensiblelan,vxlan)隧道连接第一分布式网关设备的接口。进而若第二分布式网关设备接收到三层网关设备发送的dhcp回复报文,可通过该mac表项向第一分布式网关设备转发ip节点回复报文。

可见,采用这种方法,即使dhcp回复报文被转发错误,第二分布式网关设备也可以将该ip地址回应报文转发给第一分布式网关设备,使得第一分布式网关设备可以将该ip地址回应报文发送给客户端,以使得客户端申请到ip地址,解决了由于报文转发错误导致的客户端无法获取ip地址的问题。

以下结合图1对本申请实施例提供的报文转发方法进行详细描述。

本申请实施例提供一种报文转发方法,该方法应用于第一分布式网关设备(例如可以为图1中的leaf1),如图2所示,该方法包括:

s201、在接收到客户端发送的互联网协议dhcp请求报文后,获取客户端的mac地址,并向三层网关设备转发dhcp请求报文。

其中,dhcp请求报文可以为dhcpdiscover(dhcp发现)报文。

第一分布式网关设备接收到dhcp请求报文后,可向三层网关设备转发dhcp请求报文,进而三层网关设备将dhcp请求报文转发给dhcp服务器。

此外,第一分布式网关设备接收到dhcp请求报文后,可以通过地址解析协议(addressresolutionprotocol,arp)获取客户端的mac地址,获取方法为:第一分布式网关设备向客户端发送arp请求消息,然后可接收到客户端返回的arp回复消息,arp回复消息中携带客户端的mac地址。

可选地,第一分布式网关设备接收到客户端的mac地址后,可以保存该mac地址与客户端的上线口之间的对应关系。客户端的上线口是指第一分布式网关设备上连接于客户端的接口。

s202、向第二分布式网关设备发送mac地址,以使得第二分布式网关设备生成mac表项,在第二分布式网关设备接收到三层网关设备发送的dhcp回复报文后,根据mac表项向第一分布式网关设备转发dhcp回复报文。

其中,mac表项包括mac地址与出接口之间的对应关系,出接口为第二分布式网关设备上,用于通过可扩展虚拟局域网vxlan隧道连接第一分布式网关设备的接口。dhcp回复报文中携带dhcp服务器为客户端分配的ip地址。

具体地,第一分布式网关设备可向第二分布式网关设备发送bgpevpn路由,bgpevpn路由携带客户端的mac地址。

需要说明的是,第一分布式网关设备可以为图1中的leaf1,相应的,第二分布式网关设备为图1中的leaf2。或者,第一分布式网关设备可以为图1中的leaf2,相应的,第二分布式网关设备为图1中的leaf1。

三层网关设备可以为图1中的spine。

s203、接收第二分布式网关设备发送的dhcp回复报文。

其中,第一分布式网关设备接收到第二分布式网关设备发送的dhcp回复报文后,可获取dhcp回复报文携带的客户端的mac地址,然后根据dhcp中继表项及客户端的mac地址,向客户端转发dhcp回复报文。

dhcp中继表项包括客户端的mac地址与第一分布式网关设备上用于连接客户端的接口之间的对应关系。

可选地,第一分布式网关设备还可能接收到三层网关设备发送的dhcp回复报文,若该dhcp回复报文携带的客户端的mac地址与dhcp中继表项中的mac地址匹配,则说明该dhcp回复报文转发正确,第一分布式网关设备可通过dhcp中继表项中与该mac对应的接口向客户端转发dhcp回复报文。

若该dhcp回复报文携带的客户端的mac地址与dhcp中继表项中的mac地址均不匹配,则判断mac表项中是否存在与该mac地址匹配的mac地址,若存在,则根据mac表项向其他分布式网关设备转发该dhcp回复报文。

采用本申请实施例提供的报文转发方法,第一分布式网关设备在接收到客户端发送的dhcp请求报文后,可获取客户端的mac地址,并向第二分布式网关设备发送该mac地址,以使得第二分布式网关设备可以根据该mac地址生成mac表项。进而在三层网关设备错将dhcp回复报文发送至第二分布式网关设备的情况下,第二分布式网关设备还可以根据mac表项将dhcp回复报文转发给第一分布式网关设备,使得第一分布式网关设备连接的客户端可以申请到ip地址,即采用本申请实施例的报文转发方法,即使报文转发错误,客户端也可以获取到ip地址。

对应于图2所示的实施例,本申请实施例还提供一种报文转发的方法,该方法应用于第二分布式网关设备(例如图1中的leaf2),如图3所示,该方法包括:

s301、接收第一分布式网关设备发送的客户端的mac地址。

具体地,第二分布式网关设备可接收第一分布式网关设备发送的bgpevpn路由,该bgpevpn路由携带客户端的mac地址。

s302、根据mac地址生成mac表项。

其中,mac表项包括mac地址与出接口的对应关系,出接口为第二分布式网关设备上,用于通过vxlan隧道连接第一分布式网关设备的出接口。

s303、在接收到三层网关设备发送的互联网协议dhcp回复报文后,根据mac表项向第一分布式网关设备转发dhcp回复报文。

其中,dhcp回复报文携带为客户端分配的ip地址。

第二分布式网关设备接收到dhcp回复报文后,可从dhcp回复报文中获取客户端的mac地址,具体的,可从clienthardwareaddress(客户端硬件地址)字段中获取客户端的mac地址。

然后第二分布式网关设备判断该mac地址是否与自身维护的dhcp中继表项中的mac地址匹配,若匹配,则根据dhcp中继表项确定该mac地址对应的接口,通过该接口将dhcp回复报文转发至连接于自身的客户端。

若dhcp中继表项中不存在与该mac地址,则从mac表项中查找与该mac地址对应的出接口,通过该出接口向第一分布式网关设备转发该dhcp回复报文。

采用本申请实施例提供的报文转发方法,第二分布式网关设备可接收第一分布式网关设备发送的mac地址,进而根据该mac地址生成mac表项,在三层网关设备错将dhcp回复报文发送至第二分布式网关设备的情况下,第二分布式网关设备还可以根据mac表项将dhcp回复报文转发给第一分布式网关设备,使得第一分布式网关设备连接的客户端可以申请到ip地址,即采用本申请实施例的报文转发方法,即使报文转发错误,客户端也可以获取到ip地址。

以下结合图1通过具体的例子对本申请实施例提供的报文转发方法进行说明,如图4所示,该方法包括:

s401、客户端向leaf1发送dhcpdiscover报文。相应的,leaf1接收客户端发送的dhcpdiscover报文。

s402、leaf1向客户端发送arp请求消息。

s403、客户端向leaf1发送arp回复消息,arp回复消息中携带客户端的mac地址。

s404、leaf1向leaf2发送bgpevpn路由,bgpevpn路由携带客户端的mac地址。

s405、leaf2生成mac表项,mac表项包括该mac地址和leaf2上连接leaf1的接口。

s406、leaf1向spine转发dhcpdiscover报文。

s407、spine向dhcp服务器转发dhcpdiscover报文。

s408、dhcp服务器向spine发送dhcpoffer报文,dhcpoffer报文携带客户端的mac地址。

s409、spine向leaf2发送dhcpoffer报文。

需要说明的是,spine应该向leaf1发送dhcpoffer报文,leaf1接收到dhcpoffer报文后,可将dhcpoffer报文转发给客户端。

而若spine错将dhcpoffer报文发送给leaf2,则还需执行以下步骤。

s410、leaf2根据mac表项向leaf1转发dhcpoffer报文。

具体地,leaf2可从dhcpoffer报文中获取客户端的mac地址,然后判断该mac地址是否与mac表项中的mac地址匹配,若匹配,则从mac表项中查找高mac地址对应的接口,通过该接口向leaf1转发dhcpoffer报文。

s411、leaf1向客户端转发dhcpoffer报文。

可以理解的,后续客户端还会向leaf1发送dhcprequest(dhcp请求)报文,然后leaf1将dhcprequest报文转发至spine,再由spine将dhcprequest报文转发至dhcp服务器。

后续若dhcp服务器下发的dhcpack(dhcp确认)报文被转发至leaf2,则leaf2可采用s410的方法,根据mac表项将dhcpack报文转发至leaf1。

对应于上述方法实施例,本申请实施例还提供一种报文转发装置,该装置应用于第一分布式网关设备,如图5所示,该装置包括:获取模块501、发送模块502和接收模块503。

获取模块501,用于在接收到客户端发送的动态主机配置协议dhcp请求报文后,获取客户端的媒体访问控制mac地址,并向三层网关设备转发dhcp请求报文;

发送模块502,用于向第二分布式网关设备发送mac地址,以使得第二分布式网关设备生成mac表项,在第二分布式网关设备接收到三层网关设备发送的dhcp回复报文后,根据mac表项向第一分布式网关设备转发dhcp回复报文;其中,mac表项包括mac地址与出接口之间的对应关系,出接口为第二分布式网关设备上,用于通过可扩展虚拟局域网vxlan隧道连接第一分布式网关设备的接口;

接收模块503,用于接收第二分布式网关设备发送的dhcp回复报文。

可选地,获取模块501,具体用于向客户端发送arp请求消息;接收客户端返回的arp回复消息,arp回复消息携带客户端的mac地址。

可选地,发送模块503,具体用于向第二分布式网关设备发送边界网关协议bgp以太虚拟专用网络evpn路由,bgpevpn路由携带mac地址。

对应于上述方法实施例,本申请实施例还提供另一种报文转发装置,该装置应用于第二分布式网关设备,如图6所示,该装置包括:接收模块601、生成模块602和发送模块603。

接收模块601,用于接收第一分布式网关设备发送的客户端的媒体访问控制mac地址;

生成模块602,用于根据mac地址生成mac表项,mac表项包括mac地址与出接口的对应关系,出接口为第二分布式网关设备上,用于通过可扩展虚拟局域网vxlan隧道连接第一分布式网关设备的出接口;

发送模块603,用于在接收到三层网关设备发送的互联网协议dhcp回复报文后,根据mac表项向第一分布式网关设备转发dhcp回复报文。

可选地,接收模块601,具体用于接收第一分布式网关设备发送的边界网关协议bgp以太虚拟专用网络evpn路由,bgpevpn路由携带mac地址。

可选地,发送模块603,具体用于从dhcp回复报文中获取客户端的mac地址;从mac表项中查找与mac地址对应的出接口;通过出接口向第一分布式网关设备转发dhcp回复报文。

本申请实施例还提供了一种分布式网关设备,如图7所示,包括处理器701、通信接口702、存储器703和通信总线704,其中,处理器701,通信接口702,存储器703通过通信总线704完成相互间的通信,

存储器703,用于存放计算机程序;

处理器701,用于执行存储器703上所存放的程序时,实现上述方法实施例中由第一分布式网关设备和第二分布式网关设备执行的步骤。

上述分布式网关设备提到的通信总线可以是外设部件互连标准(peripheralcomponentinterconnect,pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

通信接口用于上述分布式网关设备与其他设备之间的通信。

存储器可以包括随机存取存储器(randomaccessmemory,ram),也可以包括非易失性存储器(non-volatilememory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。

上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(digitalsignalprocessing,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

在本申请提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一报文转发方法的步骤。

在本申请提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一报文转发方法。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。

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