报文转发方法、装置、服务器、系统及存储介质与流程

文档序号:16900799发布日期:2019-02-19 17:58阅读:212来源:国知局
报文转发方法、装置、服务器、系统及存储介质与流程

本申请涉及通信技术领域,具体而言,涉及一种报文转发方法、装置、服务器、系统及存储介质。



背景技术:

服务器中的bmc(baseboardmanagementcontroller,基板管理控制器)能够基于ipmi(intelligentplatformmanagementinterface,智能平台管理接口)协议来智能管理服务器。服务器上提供给bmc的接口有两种,其分别是专用管理口和共享管理口。

目前,可以将服务器上的专用管理口和共享管理口都接到接入交换机上,实现bmc通过专用管理口和共享管理口与转发设备的连接而智能的对服务器进行管理。加入一个机架上一般能安装十几到二十几台服务器,则需要占用转发设备上的二十多个到四十多个端口资源来实现配合bmc对这些服务器进行管理,导致转发设备的端口资源占用严重。



技术实现要素:

本申请在于提供一种报文转发方法、装置、服务器、系统及存储介质,有效的解决现有技术中不能有效降低服务器管理对交换机端口资源的需求的技术问题。

为了实现上述目的,本申请的实施例通过如下方式实现:

第一方面,本申请实施例提供了一种报文转发方法,应用于包含多个服务器的报文转发系统中的服务器,所述服务器的共享管理口与相邻的上一个设备连接,所述服务器的专用管理口与相邻的下一个设备连接,所述方法包括:

所述服务器通过所述共享管理口获得所述相邻的上一个设备发送的待转发报文;

所述服务器将所述待转发报文通过所述专用管理口转发至所述相邻的下一个设备。

结合第一方面,在一些可选地的实现方式中,所述方法还包括:

若所述共享管理口处的链接断开,则所述服务器生成包含自身的mac地址的第一arp请求;

所述服务器将所述第一arp请求通过所述专用管理口发送至所述相邻的下一个设备,使得在所述相邻的下一个设备为转发设备时,所述转发设备基于获得的所述第一arp请求,确定向所述共享管理口发送报文;在所述相邻的下一个设备为服务器时,所述相邻的下一个设备基于所述第一arp请求生成包含自身的mac地址的第二arp请求,并向下转发所述第一arp请求和所述第二arp请求。

结合第一方面,在一些可选地的实现方式中,所述方法还包括:

若所述共享管理口处的链接从断开恢复为连接,则所述服务器生成包含自身mac地址的第三arp请求和第四arp请求;

在所述相邻的下一个设备为转发设备时,所述服务器将所述第三arp请求丢弃;并通过所述专用管理口将所述第四arp请求发送给所述相邻的上一个设备;

在所述相邻的下一个设备为服务器时,所述服务器将所述第三arp请求通过所述专用管理口发送至相邻的下一个服务器,使得所述相邻的下一个服务器基于所述第三arp请求生成包含自身mac地址的第四arp请求并向下转发所述第三arp请求;所述服务器还将自身生成的所述第四arp请求以及所述相邻的下一个服务器发送的第四arp请求通过所述共享管理口转发给所述相邻的上一个设备。

结合第一方面,在一些可选地的实现方式中,所述方法还包括:

若其它服务器的共享管理口处的链接断开,则所述服务器通过所述共享管理口获得所述其它服务器生成的包含其它服务器的mac地址的第一arp请求;

所述服务器基于所述第一arp请求,生成包含自身的mac地址的第二arp请求;

所述服务器将所述第一arp请求和所述第二arp请求通过所述专用管理口发送至所述相邻的下一个设备,使得在所述相邻的下一个设备为转发设备时,所述转发设备基于获得的所述第一arp请求和所述第二arp请求,确定向所述共享管理口发送报文;在所述相邻的下一个设备为服务器时,所述相邻的下一个设备向下转发所述第一arp请求。

结合第一方面,在一些可选地的实现方式中,在所述服务器将所述第一arp请求和所述第二arp请求通过所述专用管理口发送至所述相邻的下一个设备之后,所述方法还包括:

所述服务器将从所述专用管理口接收的待转发报文从所述共享管理口转发到相邻的上一个设备。

结合第一方面,在一些可选地的实现方式中,所述方法还包括:

在所述其它服务器的共享管理口处的链接从断开恢复为连接时,所述服务器获得包含所述其它服务器的mac地址的第三arp请求;

所述服务器基于所述第三arp请求生成包含自身的mac地址的第四arp请求,并通过所述共享管理口将所述第四arp请求发送至相邻的上一个设备;

在所述下一个设备为转发设备时,所述服务器将所述第三arp请求丢弃;

在所述下一个设备为服务器时,所述服务器通过所述专用管理口将所述第三arp请求转发至相邻的下一个设备,使得所述下一个设备下送所述第三arp请求。

第二方面,本申请实施例提供了一种报文转发装置,应用于包含多个服务器的报文转发系统中的服务器,所述服务器的共享管理口与相邻的上一个设备连接,所述服务器的专用管理口与相邻的下一个设备连接,所述装置包括:

第一报文获得模块,用于所述服务器通过所述共享管理口获得所述相邻的上一个设备发送的待转发报文。

第一报文转发模块,用于所述服务器将所述待转发报文通过所述专用管理口转发至所述相邻的下一个设备。

结合第二方面,在一些可选地的实现方式中,所述装置还包括:

第一报文生成模块,用于若所述共享管理口处的链接断开,则所述服务器生成包含自身的mac地址的第一arp请求。

第一报文发送模块,用于所述服务器将所述第一arp请求通过所述专用管理口发送至所述相邻的下一个设备,使得在所述相邻的下一个设备为转发设备时,所述转发设备基于获得的所述第一arp请求,确定向所述共享管理口发送报文;在所述相邻的下一个设备为服务器时,所述相邻的下一个设备基于所述第一arp请求生成包含自身的mac地址的第二arp请求,并向下转发所述第一arp请求和所述第二arp请求。

结合第二方面,在一些可选地的实现方式中,所述装置还包括:

第二报文生成模块,用于若所述共享管理口处的链接从断开恢复为连接,则所述服务器生成包含自身mac地址的第三arp请求和第四arp请求。

第二报文发送模块,用于在所述相邻的下一个设备为转发设备时,所述服务器将所述第三arp请求丢弃;并通过所述专用管理口将所述第四arp请求发送给所述相邻的上一个设备。

所述第二报文发送模块,还用于在所述相邻的下一个设备为服务器时,所述服务器将所述第三arp请求通过所述专用管理口发送至相邻的下一个服务器,使得所述相邻的下一个服务器基于所述第三arp请求生成包含自身mac地址的第四arp请求并向下转发所述第三arp请求;所述服务器还将自身生成的所述第四arp请求以及所述相邻的下一个服务器发送的第四arp请求通过所述共享管理口转发给所述相邻的上一个设备。

结合第二方面,在一些可选地的实现方式中,所述装置还包括:

第二报文获得模块,用于若其它服务器的共享管理口处的链接断开,则所述服务器通过所述共享管理口获得所述其它服务器生成的包含其它服务器的mac地址的第一arp请求。

第三报文生成模块,用于所述服务器基于所述第一arp请求,生成包含自身的mac地址的第二arp请求。

第三报文发送模块,用于所述服务器将所述第一arp请求和所述第二arp请求通过所述专用管理口发送至所述相邻的下一个设备,使得在所述相邻的下一个设备为转发设备时,所述转发设备基于获得的所述第一arp请求和所述第二arp请求,确定向所述共享管理口发送报文;在所述相邻的下一个设备为服务器时,所述相邻的下一个设备向下转发所述第一arp请求。

结合第二方面,在一些可选地的实现方式中,所述装置还包括:

第二报文转发模块,用于所述服务器将从所述专用管理口接收的待转发报文从所述共享管理口转发到相邻的上一个设备。

结合第二方面,在一些可选地的实现方式中,所述装置还包括:

第三报文获得模块,用于在所述其它服务器的共享管理口处的链接从断开恢复为连接时,所述服务器获得包含所述其它服务器的mac地址的第三arp请求。

第四报文生成模块,用于所述服务器基于所述第三arp请求生成包含自身的mac地址的第四arp请求,并通过所述共享管理口将所述第四arp请求发送至相邻的上一个设备。

第四报文发送模块,用于在所述下一个设备为转发设备时,所述服务器将所述第三arp请求丢弃。

所述第四报文发送模块,还用于在所述下一个设备为服务器时,所述服务器通过所述专用管理口将所述第三arp请求转发至相邻的下一个设备,使得所述下一个设备下送所述第三arp请求。

第三方面,本申请实施例提供了一种服务器,所述服务器包括:主机、网卡和bmc;所述网卡分别连接所述主机和所述bmc,所述网卡上设有所述服务器的共享管理口,所述bmc上设有所述服务器的专用管理口;

所述bmc,用于对所述服务器的共享管理口和所述服务器的专用管理口进行监测,以执行如第一方面、以及第一方面任一实现方式所述的报文转发方法。

第四方面,本申请实施例提供了一种报文转发系统,所述报文转发系统包括:多个服务器和转发设备,

所述多个服务器中每个服务器的专用管理口与相邻的下一个服务器的共享管理口连接形成链路,位于所述链路的第一端的服务器的共享管理口和位于所述链路的第二端的服务器的专用管理口均与所述转发设备连接;

所述多个服务器中的任一服务器,用于执行如第一方面、以及第一方面任一实现方式所述的报文转发方法。

第五方面,本申请实施例提供了一种具有计算机可执行的非易失程序代码的计算机可读储存介质,所述程序代码使所述计算机执行如第一方面、以及第一方面任一实现方式所述的报文转发方法。

本申请实施例的有益效果包括:

基于服务器的共享管理口与相邻的上一个设备连接,通过共享管理口获得相邻的上一个设备发送的待转发报文,又基于服务器的专用管理口与相邻的下一个设备连接,而将待转发报文通过专用管理口转发至相邻的下一个设备,实现了对报文的正常转发。于此同时,由于服务器的共享管理口和专用管理口分别于不同的设备连接,使得报文转发系统中转发设备的连接设备所需的端口还可以得到节约,因而解决了bmc对服务器进行管理需要占用转发设备大量的端口资源的技术问题。

为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它相关的附图。

图1示出了本申请第一实施例提供的一种报文转发系统的结构框图;

图2示出了本申请第一实施例提供的一种报文转发系统中服务器的结构框图;

图3示出了本申请第二实施例提供的一种报文转发方法的流程图;

图4示出了本申请第二实施例提供的一种报文转发方法的第一应用场景示意图;

图5示出了本申请第二实施例提供的一种报文转发方法的第二应用场景示意图;

图6示出了本申请第三实施例提供的一种报文转发装置的结构框图。

具体实施方式

下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有进行出创造性劳动的前提下所获得的所有其它实施例,都属于本申请保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

第一实施例

请参阅图1,本申请实施例提供了一种报文转发系统10,该报文转发系统10包括:转发设备11和多个服务器20。

转发设备11可以为通信网络中用于对报文进行转发的设备,转发设备11可以为交换机、路由器、网关或网桥等。本实施例中,以转发设备11为交换机为例来对方案进行说明,但并不作为限定。

多个服务器20中每个服务器20可以常规的网络服务器或数据库服务器等,或者每个服务器20可以为由多个子服务器构成的子服务器集群。以每个服务器20为网络服务器为例来对方案进行说明,但并不作为限定。

本实施例中,每个服务器20可以包括专用管理口和共享管理口,而在多个服务器20中,服务器20的共享管理口可以与相邻的上一个设备连接,而服务器20的专用管理口则可以与相邻的下一个设备连接。其中,与服务器20的共享管理口连接的相邻的上一个设备可以是其它服务器20或者转发设备11,而与服务器20的专用管理口连接的相邻的下一个设备则也可以是其它服务器20或者转发设备11。

作为多个服务器20与转发设备11连接的一种可选地的方式,多个服务器20可以依次连接形成链路。位于链路的第一端的服务器20的共享管理口则可以与转发设备11的第一端口连接。位于链路的第二端的服务器20的共享管理口则可以与转发设备11的第二端口连接。位于链路的第一端和第二端之间的服务器20的共享管理口则可以与相邻的上一个服务器20的专用管理口连接,且位于链路的第一端和第二端之间的服务器20的专用管理口则还可以与相邻的下一个服务器20的共享管理口连接。

于本实施例中,转发设备11默认可以通过第一端口向链路中的服务器20转发报文,而当转发设备11进行arp表项学习后,转发设备11可以通过第二端口向链路中的服务器20转发报文。

请参阅图2,每个服务器20可以包括:主机21、网卡22和bmc23。其中,网卡22可以分别与主机21和bmc23连接。

下面以多个服务器20中任一服务器20为例来对服务器20的结构进行说明。

主机21为服务器20中的核心设备,主机21用于实现每个服务器20的核心功能,例如,实现服务器20与其它设备的数据交互、数据处理和数据存储。

网卡22可以支持ncsi(networkcontrollersidebandinterface,网络控制器边带接口)协议的网卡,网卡22上设有服务器20的共享管理口,且网卡22还能够与主机21通信连接。此外,网卡22还能够通过ncsi的方式与bmc23通信连接,以便bmc23通过网卡22对服务器20的主机21进行智能的监测和管理。

bmc23可以包括:处理器231、第一端口232和第二端口233,处理器231可以为中央处理器(centralprocessingunit,简称cpu)、网络处理器(networkprocessor,简称np)等;还可以是数字信号处理器(dsp)、专用集成电路(asic)、现成可编程门阵列(fpga)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。

第一端口232可以与网卡22连接,这样bmc23的处理器231通过第一端口232和网卡22便能够实现对主机21进行智能的监测和管理,于本实施例中,即能够实现对主机21进行管理。bmc23的第二端口232可以为服务器20的专用管理口。

本实施例中,bmc23的处理器231通过共享管理口和/或专用管理口进行监测,能够对每个服务器20的共享管理口和/或专用管理口获得的报文进行管理,即能够执行如下所述的报文转发方法。

需要说明的是,bmc23的处理器231实现了对报文转发方法的执行,由于bmc23集成在服务器20中,故从整体上可以理解为以服务器20为执行主体来实现对报文转发方法的执行,以便于本领域技术人员能够更容易理解本方案。

第二实施例

本实施例提供了一种报文转发方法,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。以下对本实施例进行详细介绍。

请参阅图3,在本实施例提供的报文转发方法中,该报文转发方法应用于报文转发系统中多个服务器中的任一服务器。该报文转发方法包括:步骤s110和步骤s120。

步骤s110:所述服务器通过所述共享管理口获得所述相邻的上一个设备发送的待转发报文。

步骤s120:所述服务器将所述待转发报文通过所述专用管理口转发至所述相邻的下一个设备。

下面结合图3和图4,对本申请各步骤进行详细地描述。

服务器中的bmc需要上电才可以对服务器处理报文进行管理,故可以对bmc进行上电,使得bmc上电启动并开始运行。在bmc上电后,从整体上服务器便能够开始执行报文转发方法。

在没上电时,服务器在链路中的位置或结构可能发生改变,但这种改变服务器由于没上电而无法获知,故在每一次上电之后,服务器都需要重新确定自己在链路中的位置,以通过确定出在链路中的位置来决定如何转发获得的报文。

本实施例中,在上电后,服务器对报文的处理方式为混杂方式,即服务器对获得的任何单播或广播报文都可以进行分析处理。那么通过对获得的任何单播或广播报文分析处理,服务器则可以通过在预设时间内,判断是否从服务器的专用管理口获得转发设备发送的设备通告报文来确定服务器在链路中的位置。

作为一种可选地的方式,转发设备发送的设备通告报文可以为stp报文(spanningtreeprotocol,生成树协议)和/或lldp报文(linklayerdiscoveryprotocol,链路层发现协议)。stp报文可以为由该转发设备生成并发送的报文,而若lldp报文表示的设备类型为转发设备则该lldp报文可以为由该转发设备生成并发送的报文。

对于转发设备来说,转发设备根据预设规则,可以按一定的时长不间断的生成并发送该stp报文和/或lldp报文,其中,一定的时长可以为5-7秒。故若将预设时间设置为大于该一定的时长,例如,将预设时间设置为30秒,那么在上电之后,位于链路的第一端的服务器和位于链路的第二端的服务器由于与转发设备连接,位于链路的第一端的服务器和位于链路的第二端的服务器则能够在预设时长内接收到stp报文和/或lldp报文。这样,服务器通过在预设时间内,判断是否从服务器的专用管理口获得设备发送的stp报文和/或lldp报文,以及判断是否从服务器的共享管理口获得转发设备发送的stp报文和/或lldp报文,服务器就可以确定自己位于链路的第一端、链路的第二端、还是位于链路的第一端和链路的第二端之间。

若服务器在预设时间内通过对获得的报文进行分析,而确定从服务器的共享管理口获得了stp报文和/或获得了报文中包含设备类型为转发设备的lldp报文,那么服务器可以确定服务器位于链路的第一端,即确定服务器的共享管理口与转发设备的第一端口连接。

若服务器在预设时间内通过对获得的报文进行分析,而确定没有从服务器的共享管理口和专用管理口中的任何管理口获得了stp报文和/或获得了报文中包含设备类型为转发设备的lldp报文,那么服务器可以确定服务器位于链路的第一端和链路的第二端之间,即确定服务器的共享管理口和专用管理口均不与转发设备连接。

若服务器在预设时间内通过对获得的报文进行分析,而确定从服务器的专用管理口获得了stp报文和/或获得了报文中包含设备类型为转发设备的lldp报文,那么服务器可以确定服务器位于链路的第二端,即确定服务器的专用管理口与转发设备的第二端口连接。

本实施例中,服务器可以通过确定出自己在链路中的位置来确定对报文的处理规则,使得服务器从上电后对报文的混杂处理模式改变为按处理规则进行处理。

本实施例中,若服务器确定为服务器的共享管理口与转发设备的第一端口连接,或者确定为服务器的共享管理口和专用管理口均不与转发设备连接后,服务器确定出对报文的处理规则可以包括:

服务器对获得的报文进行分析,若确定为发送给服务器的单播报文,那么服务器可以对该单播报文进行相应的处理,而不进行转发;若确定为发送给其它服务器或网络中其它设备的单播报文,那么服务器则可以不处理而转发该单播报文;若确定为stp报文和/或lldp报文的广播报文,则服务器也可以对该stp报文和/或lldp报文进行相应的处理,而不进行转发;若确定为其它类型的广播报文,例如,若为普通的arp请求且该请求中包含服务器的自己的ip地址和mac地址,那么服务器可以生成arp响应来应答该arp请求;或者,若为普通的arp请求且该请求不包含服务器的自己的ip地址和mac地址,那么服务器可以转发该arp请求,但若该arp请求为特殊的arp请求,服务器可以处理该特殊的arp请求,以根据该arp请求生成相应的另一个arp请求,并将该另一个arp请求与待转发的arp请求一同从非接收端口发送出去。

另外,服务器确定出的处理规则还可以包括:

服务器在转发的任何类型的报文之前,可以判断该报文是否需要从服务器的专用管理口转发。若不从服务器的专用管理口转发,则可以从除专用管理口外其它相应的端口转发该报文,若从服务器的专用管理口转发,则可以基于服务器的共享管理口与转发设备的第一端口连接或基于服务器的共享管理口和专用管理口均不与转发设备连接,可以将该报文从服务器的专用管理口转发。

需要说明的是,由于服务器的共享管理口与转发设备的第一端口连接或服务器的共享管理口和专用管理口均不与转发设备连接,故该服务器的专用管理口则可以与链路中相邻的下一个服务器连接。这样,从服务器的专用管理口转发出去的报文就可以被转发到相邻的下一个服务器,而不会被转发到转发设备造成链路中的报文风暴。

本实施例中,若服务器确定为服务器的专用管理口与转发设备的第二端口连接,服务器确定出对报文的处理规则可以包括:

服务器对获得的报文进行分析,若确定为发送给服务器的单播报文,那么服务器可以对该单播报文进行相应的处理,而不进行转发;若确定为发送给其它服务器或网络中其它设备的单播报文,那么服务器则可以不处理而转发该单播报文;若确定为stp报文和/或lldp报文的广播报文,则服务器也可以对该stp报文和/或lldp报文进行相应的处理,而不进行转发;若确定为其它类型的广播报文,例如为arp请求,服务器可以处理arp请求,以根据该arp请求生成相应的另一个arp请求,并将该另一个arp请求与待转发的arp请求一同从非接收端口发送出去。

另外,服务器确定出的处理规则还可以包括:

服务器在转发的任何类型的报文之前,可以判断该报文是否需要从服务器的专用管理口转发。若否,则可以从相应的端口转发该报文,若是,则可以基于服务器的专用管理口与转发设备的第二端口连接,可以将该报文丢弃而不转发。

需要说明的是,由于服务器的专用管理口与转发设备的第二端口连接,若从服务器的专用管理口转发报文,该转发出去的报文可以被转发到转发设备造成链路中的报文风暴。

在上电并确定出自己在链路中的位置,以及确定出相应的处理规则后,服务器便可以按照确定出的处理规则对获得的报文进行处理,即服务器可以执行步骤s110。

步骤s110:所述服务器通过所述共享管理口获得所述相邻的上一个设备发送的待转发报文。

基于转发设备默认状态为可以通过第一端口将待转发报文转发到链路中,这样服务器的共享管理口通过与相邻的上一个设备连接,便可以通过共享管理口获得相邻的上一个设备发送的待转发报文。基于服务器在链路中的位置,若服务器确定服务器位于链路的第一端,则相邻的上一个设备可以是转发设备,服务器便可以通过共享管理口获得转发设备的第一端口发送的待转发报文;而若服务器确定位于链路的第二端或位于第一端和第二端之间,则相邻的上一个设备可以是其它的服务器,那么服务器便可以通过共享管理口获得相邻的上一个服务器的专用管理口发送的待转发报文。

步骤s120:所述服务器将所述待转发报文通过所述专用管理口转发至所述相邻的下一个设备。

服务器获得该待转发报文后,服务器可以基于处理规则来对该待转发报文进行处理。

可选地,若服务器确定服务器位于第一端或者位于第一端和第二端之间,服务器可以基于服务器位于第一端或者位于第一端和第二端之间而确定出的处理规则来确定该待转发报文进行处理,以判断是否需要通过服务器的专用管理口转发。若确定该待转发报文可以通过服务器的非专用管理口转发,那么服务器可以通过相应的非专用管理口转发该待转发报文。而若确定该待转发报文可以通过服务器的专用管理口转发,那么服务器也可以处理规则来确定将该待转发报文通过服务器的专用管理口转发到相邻的下一个设备,即转发到相邻的下一个服务器的共享管理口。

若服务器确定服务器位于第二端,服务器可以基于服务器位于第二端而确定出的处理规则来确定该待转发报文进行处理,以判断是否需要通过服务器的专用管理口转发。若确定该待转发报文可以通过服务器的非专用管理口转发,那么服务器可以通过相应的非专用管理口转发该待转发报文。而若确定该待转发报文可以通过服务器的专用管理口转发,那么服务器也可以处理规则来确定将该待转发报文丢弃不转发。

假设,服务器a的专用管理口a2与服务器b的共享管理口b1连接,服务器b的专用管理口b2与服务器c的共享管理口c1连接,服务器c的专用管理口c2与服务器d的共享管理口d1连接,服务器a的共享管理口a1与交换机e的端口e1连接,服务器d的专用管理口d2与交换机e的端口e2连接。

在上电后,服务器a通过共享管理口a1获得交换机e发送的stp报文和/或lldp报文而确定共享管理口a1与交换机e连接。服务器d通过专用管理口d2获得交换机e发送的stp报文和/或lldp报文而确定专用管理口d2与交换机e连接。而服务器b和服务器c则由于在预设时长内未获得stp报文和/或lldp报文而确定不与交换机e连接。

在获得报文后,服务器a可以将需要从专用管理口a2转发的报文从专用管理口a2转发至服务器b的共享管理口b1;服务器b可以将需要从专用管理口b2转发的报文从专用管理口b2转发至服务器c的共享管理口c1;服务器c可以将需要从专用管理口c2转发的报文从专用管理口c2转发至服务器d的共享管理口d1;服务器d可以将需要从专用管理口d2转发的报文丢弃不转发。

可以理解到,在形成链路的情况下,服务器基于上述的确定出的处理规则可以对获得的报文进行正确的处理。

本实施例中,若链路中某一共享管理口处的链接断开,那么与该共享管理口连接的服务器的专用管理口的链接也断开,并使得链路被分割成两条第一子链路和第二子链路。从该专用管理口断开的服务器至转发设备的第一端口则为第一子链路。由于专用管理口的断开并不影响第一子链路上每个服务器对报文进行处理,即第一子链路上的每个服务器均可以对获得的报文进行正常的处理或丢弃,故第一子链路上的每个服务器可以继续基于当前对报文的处理规则继续运行,而可以不针对断开的专用管理口进行相应的处理。

但对于共享管理口断开的服务器至转发设备的第二端口处的第二子链路来说,共享管理口断开意味着该第二子链路上的服务器无法获得转发设备的第一端口转发的报文,从而共享管理口断开的服务器所在也就无法进行正常工作。因此,该第二子链路上的服务器可以进行相应的处理,使得转发设备对该第二子链路上的服务器进行arp表项学习,进而使得该第二子链路也能够正常的进行报文转发。

下面将结合图5进行说明,在链路中某一共享管理口处的链接断开时,对与转发设备的第二端口连接的该第二子链路上的服务器如何进行相关处理进行详细地说明,以及也对转发设备又如何对该第二子链路上的服务器进行arp表项学习进行详细地说明。

作为在该服务器的共享管理口处的链接断开的一种方式,该服务器能够检测到自己共享管理口处的链接断开,即检测到自己共享管理口的状态为down。这种情况下,服务器能够按照预设规则生成一个特殊的arp请求。

可选地,服务器生成的该特殊的arp请求可以为第一arp请求,该第一arp请求中的源地址可以为该服务器的管理口的mac地址,该第一arp请求中的目的地址为特殊的第一广播地址,例如为127.0.0.1。

另外,在生成该第一arp请求的同时,服务器基于检测到自己共享管理口处的链接断开,那么服务器还可以对报文的处理规则进行调整,即将“在确定服务器的专用管理口不与转发设备连接才将需要从服务器的专用管理口转发的报文从服务器的专用管理口转发,在确定服务器的专用管理口与转发设备连接则可以将需要从服务器的专用管理口转发的报文丢弃”调整为:“不论服务器的专用管理口是否与转发设备连接,都可以通过服务器的专用管理口接收和发送报文”。

再者,服务器生成第一arp请求后,服务器通过服务器的专用管理口将该第一arp请求发送给相邻的下一个设备。

若第二子链路还有除该服务器外的服务器,说明相邻的下一个设备可以是服务器,该相邻的下一个服务器则可以基于第一arp请求生成包含自身的mac地址的第二arp请求,并向下转发第一arp请求和第二arp请求。这样第二子链路上除该服务器外的每个服务器可以执行与该相邻的下一个服务器相同的操作。则该第二子链路上除该服务器外的每个服务器的共享管理口均可以获得该第一arp请求,且每个服务器的专用管理口均可以将该第一arp请求转发出去。以及,第二子链路上除该服务器外的每个服务器基于获得的该第一arp请求可以生成的包含每个服务器的管理口的mac地址的每个第二arp请求,每个服务器的专用管理口还可以将生成的每个第二arp请求发送出去。这样,每个服务器的共享管理口获得其它每个服务器发送的第二arp请求,再通过每个服务器的专用管理口将其它每个服务器发送的第二arp请求转发出去。因而,每个服务器的依次转发使得转发设备的第二端口获得该第一arp请求和每个服务器生成的第二arp请求。当然,获得该第一arp请求的每个服务器还基于该第一arp请求将报文的处理规则调整为与该共享管理口断开的服务器的处理规则相同。

若第二子链路上没有除该服务器外的服务器,说明相邻的下一个设备可以是服务器,那么转发设备的第二端口可以获得该服务器发送的该第一arp请求。

作为在该服务器之前的其它服务器的共享管理口处的链接断开的一种方式,其它服务器能够生成并发送包含该其它服务器的管理口的mac地址的第一arp请求,并调整该其它服务器对报文的处理规则。相应的,位于该第二子链路上的该服务器的共享管理口就可以通过该服务器之前的每个服务器对该获得该第一arp请求的转发而获得该第一arp请求,或者,该服务器的共享管理口与该共享管理口断开的其它服务器的专用管理口连接获得该共享管理口断开的其它服务器发送的该第一arp请求。

服务器基于第一arp请求中特殊的第一广播地址,服务器能够获知该其它服务器的共享管理口断开,以及服务器还可以获知需要对报文的处理规则进行调整。故服务器也可以将“在确定服务器的专用管理口不与转发设备连接才将需要从服务器的专用管理口转发的报文从服务器的专用管理口转发,在确定服务器的专用管理口与转发设备连接则可以将需要从服务器的专用管理口转发的报文丢弃”调整为与该共享管理口断开的其它服务器相同的:“不论服务器的专用管理口是否与转发设备连接,都可以通过服务器的专用管理口接收和发送报文”。

再者,服务器基于该第一arp请求,还可以获得需要生成包含自身mac地址的第二arp请求,故服务器可以将第一arp请求中其它服务器的管理口的mac地址替换为该服务器的管理口的mac地址,从而获得第二arp请求。服务器可以将第一arp请求和生成的第二arp请求通过服务器的专用管理口发送至相邻的下一个设备。

若第二子链路上在该服务器以下还有其它的服务器,说明相邻的下一个设备可以是服务器,该相邻的下一个服务器获得则可以基于第一arp请求生成包含自身的mac地址的第二arp请求,并向下转发第一arp请求、其它服务器发送的第二arp请求和自己生成的第二arp请求。这样第二子链路上除该服务器外的每个服务器可以执行与该相邻的下一个服务器相同的操作,就使得转发设备的第二端口获得该第一arp请求和每个服务器生成的第二arp请求。

若第二子链路上在该服务器以下没有其它的服务器,说明相邻的下一个设备可以是转发设备,从而转发设备的第二端口便可以获得该第一arp请求和每个服务器生成的第二arp请求。

转发设备基于获得的第一arp请求和/或每个服务器生成的第二arp请求来进行arp表项学习,那么转发设备就可以确定可以通过第二端口来向链路的第二端的服务器的专用管理口发送报文。而由于第二子链路上的每个服务器在调整对报文的处理规则后,每个服务器均可以将获得的报文进行处理,或者每个服务器通过每个服务器的专用管理口获得的将待转发报文转发到相邻服务器的共享管理口,从而实现了待转发报文转在第二子链路上的处理和转发,进而实现了在链路断开的情况下,第二子链路上的服务器也能够继续进行正常工作。

继续前述假设,若服务器c的共享管理口c1处断开,那么链路被分割成包括服务器a和服务器b的第一子链路,以及包括服务器c和服务器d的第二子链路。其中,第一子链路上的服务器a和服务器b不做调整,继续基于原有处理规则对报文进行处理。

对于第二子链路,服务器c可以调整自身对报文的处理规则,并将生成的第一arp请求通过服务器c的专用管理口c2发送给服务器d。服务器d的共享管理口d1可以获得该第一arp请求,从而根据该第一arp请求将自身对报文的处理规则调整为与服务器c的处理规则相同。于此同时,服务器d可以基于该第一arp请求生成第二arp请求,并将第一arp请求和第二arp请求均通过服务器d的专用管理口d2发送给交换机e。这样,交换机e可以基于第一arp请求和第二arp请求进行arp表项学习获知该第二子链路也可以处理报文,进而交换机e则可以确定将报文通过端口e1发送给第一子链路的同时,还可以将报文通过端口e2发送给第二子链路。这样,服务器d的专用管理口d2就可以获得交换机e通过端口e2发送的报文。若该报文是发送给服务器d自己,那么服务器d可以对该报文进行处理;但若该报文是发送给服务器c,那么服务器d可以通过服务器d的共享管理口d1将该报文转发给服务器c。

本实施例中,若链路中某一共享管理口处的链接从断开恢复为连接,那么与该共享管理口连接的服务器的专用管理口的链接也从断开恢复为连接,并使第一子链路和第二子链路再次连接构成完整的该链路。

对于第一子链路来说,专用管理口的恢复连接意味着该第一子链路上不再以单独的子链路存在。因此,该第一子链路上的服务器可以进行相应的处理,使得转发设备对该第一子链路上的服务器进行arp表项学习而获知该第一子链路从断开恢复为完整的链路。

对于第二子链路来说,共享管理口的恢复连接意味着该第二子链路上不也再以单独的子链路存在。因此,该第二子链路上的服务器可以进行相应的处理,使得转发设备删除之前对该第二子链路上的服务器进行的arp表项学习,进而使得该第二子链路不再单独的进行报文转发。

下面将结合图4和图5来进行说明,在链路中某一共享管理口处的链接从断开恢复为连接时,对与转发设备的第二端口连接的该第二子链路上的服务器如何进行相关处理进行详细地说明,以及也对转发设备又如何删除学习的该第二子链路上的服务器的arp表项进行详细地说明。

作为在该服务器的共享管理口处的链接从断开恢复为连接的一种方式,该服务器能够检测到自己共享管理口处的链接从断开恢复为连接,即检测到自己共享管理口的状态从down恢复为up。这种情况下,服务器能够按照预设规则再生成一个特殊的arp请求。

可选地,服务器生成的该特殊的arp请求可以为第三arp请求,该第三arp请求中的源地址可以为该服务器的管理口的mac地址,该第三arp请求中的目的地址为特殊的第二广播地址,例如为127.0.0.2。以及服务器还可以生成源地址可以为该服务器的管理口的mac地址且目的地址为常规的广播地址的第四arp请求。

另外,在生成该第三arp请求的同时,服务器基于检测到自己共享管理口处的链接从断开恢复为连接,那么服务器还可以对报文的处理规则再次进行调整,即将“不论服务器的专用管理口是否与转发设备连接,都可以通过服务器的专用管理口接收和发送报文”恢复初始的:“在确定服务器的专用管理口不与转发设备连接才将需要从服务器的专用管理口转发的报文从服务器的专用管理口转发,在确定服务器的专用管理口与转发设备连接则可以将需要从服务器的专用管理口转发的报文丢弃”。

再者,服务器生成第三arp请求后,服务器通过服务器的专用管理口将该第三arp请求发送给相邻的下一个设备。以及,服务器还可以生成包含服务器的管理口的mac地址且目的地址为常规的广播地址的第四arp请求,而该服务器的共享管理口还可以将该生成的第四arp请求发送到第一子链路中相邻的上一个设备。

针对第三arp请求,若服务器确定与服务器的专用管理口连接的为转发设备,即相邻的下一个设备为转发设备,那么服务器可以将该第三arp请求丢弃不转发。

也针对第三arp请求,若服务器确定与服务器的专用管理口连接的为服务器,即相邻的下一个设备为服务器,那么服务器可以将第三arp请求通过专用管理口发送至相邻的下一个服务器,使得相邻的下一个服务器可以基于该第三arp请求生成包含自身mac地址的第四arp请求,并基于判断向下是否连接转发设备而确定是否向下转发该第三arp请求。这样,该服务器就可以获得相邻的下一个服务器生成并发送的第四arp请求,那么服务器就可以将自身生成的第四arp请求以及相邻的下一个服务器发送的第四arp请求通过共享管理口转发给相邻的上一个设备。

这样第二子链路上除该服务器外的每个服务器可以执行与该相邻的下一个服务器相同的操作。那么该第二子链路上除该服务器外的每个服务器的共享管理口均可以获得该第三arp请求,且每个服务器的专用管理口均可以将该第三arp请求转发出去给再下一个相邻的服务器,或者每个服务器基于每个服务器的专用管理口与转发设备连接而也可以将该第三arp请求丢弃不转发,从而每个服务器的依次转发使得每个服务器都能够获得该第三arp请求。与此同时,获得该第三arp请求的每个服务器还基于该第三arp请求将报文的处理规则调整为与该共享管理口从断开恢复连接的服务器的处理规则相同。

另外,第二子链路上除该服务器外的每个服务器基于执行与该相邻的下一个服务器相同的操作。第二子链路上除该服务器外的每个服务器基于获得的该第三arp请求还可以生成的包含每个服务器的管理口的mac地址且目的地址为常规的广播地址的每个第四arp请求,每个服务器的共享管理口还可以将生成的每个第四arp请求发送到相邻的上一个服务器的专用管理口。这样,链路上的每个服务器的专用管理口获得其它每个服务器发送的第四arp请求,再通过每个服务器的共享管理口将其它每个服务器发送的第四arp请求转发出去,从而链路中每个服务器均将获得第四arp请求从每个服务器的共享管理口转发出去,故使得转发设备的第一端口获得每个服务器生成的第四arp请求。

这样,转发设备的第一端口就可以获得每个服务器生成的第四arp请求获得第二子链路中每个服务器的管理口的mac地址,那么转发设备可以基于第二子链路中每个服务器的管理口的mac地址进行arp表项学习,从而将每个服务器的管理口的mac地址学习到第一端口上,从而转发设备就可以不再通过第二端口向链路的第二端的服务器的专用管理口发送报文,而可以继续通过第一端口向链路中的服务器转发报文。

继续前述假设,若服务器c的共享管理口c1处从断开恢复为连接,那么第一子链路和第二子链路则再次合并为完整的链路。

对于第二子链路,服务器c可以将生成的第三arp请求通过服务器c的专用管理口c2发送给服务器d,以及服务器c可以将生成的第四arp请求通过服务器c的共享管理口c1发送给服务器b。服务器d的共享管理口d1可以获得该第三arp请求,服务器d可以基于该第三arp请求生成第四arp请求。服务器d的专用管理口d2与交换机e的端口e2连接,故服务器d可以将生成第四arp请求的丢弃,且服务器d还将第四arp请求服务器d的共享管理口d1发送给服务器c。这样,通过服务器c的共享管理口c1将服务器d的第四arp请求的转发至服务器b的专用管理口b2,以及通过服务器b的共享管理口b1将服务器d的第四arp请求和服务器c的第四arp请求的转发至服务器a的专用管理口a2,那么再通过服务器a的共享管理口a1将服务器d的第四arp请求和服务器c的第四arp请求的转发至交换机e的端口e1。交换机e可以服务器d的第四arp请求和服务器c的第四arp请求进行arp表项学习,进而交换机e将服务器d的mac地址和服务器c的mac地址学习到端口e1上,从而可以将需要转发的报文通过端口e1发送给链路。

作为在该服务器之前的其它服务器的共享管理口处的链接从断开恢复为连接的一种方式,其它服务器能够生成并发送包含该其它服务器的管理口的mac地址的第三arp请求,并调整该其它服务器对报文的处理规则。相应的,位于该第二子链路上的该服务器的共享管理口就可以通过该服务器之前的每个服务器对该获得该第三arp请求的转发而获得该第三arp请求,或者,该服务器的共享管理口与该共享管理口断开的其它服务器的专用管理连接获得该共享管理口从断开恢复连接的其它服务器发送的该第三arp请求。

服务器基于第三arp请求中特殊的第二广播地址,服务器能够获知该其它服务器的共享管理口从断开恢复为连接,以及服务器还可以获知需要对报文的处理规则进行调整。故服务器也可以将“不论服务器的专用管理口是否与转发设备连接,都可以通过服务器的专用管理口接收和发送报文”恢复为初始的:“在确定服务器的专用管理口不与转发设备连接才将需要从服务器的专用管理口转发的报文从服务器的专用管理口转发,在确定服务器的专用管理口与转发设备连接则可以将需要从服务器的专用管理口转发的报文丢弃”。

再者,服务器基于该第三arp请求,还可以获得需要生成包含自身mac地址的第四arp请求,故服务器可以将第三arp请求中其它服务器的管理口的mac地址替换为该服务器的管理口的mac地址,从而获得第四arp请求,这样服务器就可以通过服务器的共享管理口将第四arp请求发送至相邻的上一个设备。

若服务器确定与服务器的专用管理口连接的为转发设备,即相邻的下一个设备为转发设备,那么服务器也可以将该第三arp请求丢弃不转发。

若服务器确定与服务器的专用管理口连接的为服务器,即相邻的下一个设备为服务器,那么服务器可以将第三arp请求通过专用管理口发送至相邻的下一个服务器。

第三实施例

请参阅图6,本申请实施例提供了一种报文转发装置100,该报文转发装置100可以应用于多个服务器中的任一个服务器,该报文转发装置100包括:

第一报文获得模块110,用于所述服务器通过所述共享管理口获得所述相邻的上一个设备发送的待转发报文。

第一报文转发模块120,用于所述服务器将所述待转发报文通过所述专用管理口转发至所述相邻的下一个设备。

可选地,报文转发装置100还包括:

第一报文生成模块130,用于若所述共享管理口处的链接断开,则所述服务器生成包含自身的mac地址的第一arp请求。

第一报文发送模块140,用于所述服务器将所述第一arp请求通过所述专用管理口发送至所述相邻的下一个设备,使得在所述相邻的下一个设备为转发设备时,所述转发设备基于获得的所述第一arp请求,确定向所述共享管理口发送报文;在所述相邻的下一个设备为服务器时,所述相邻的下一个设备基于所述第一arp请求生成包含自身的mac地址的第二arp请求,并向下转发所述第一arp请求和所述第二arp请求。

可选地,报文转发装置100还包括:

第二报文生成模块150,用于若所述共享管理口处的链接从断开恢复为连接,则所述服务器生成包含自身mac地址的第三arp请求和第四arp请求。

第二报文发送模块160,用于在所述相邻的下一个设备为转发设备时,所述服务器将所述第三arp请求丢弃;并通过所述专用管理口将所述第四arp请求发送给所述相邻的上一个设备。

所述第二报文发送模块160,还用于在所述相邻的下一个设备为服务器时,所述服务器将所述第三arp请求通过所述专用管理口发送至相邻的下一个服务器,使得所述相邻的下一个服务器基于所述第三arp请求生成包含自身mac地址的第四arp请求并向下转发所述第三arp请求;所述服务器还将自身生成的所述第四arp请求以及所述相邻的下一个服务器发送的第四arp请求通过所述共享管理口转发给所述相邻的上一个设备。

可选地,报文转发装置100还包括:

第二报文获得模块101,用于若其它服务器的共享管理口处的链接断开,则所述服务器通过所述共享管理口获得所述其它服务器生成的包含其它服务器的mac地址的第一arp请求。

第三报文生成模块102,用于所述服务器基于所述第一arp请求,生成包含自身的mac地址的第二arp请求。

第三报文发送模块103,用于所述服务器将所述第一arp请求和所述第二arp请求通过所述专用管理口发送至所述相邻的下一个设备,使得在所述相邻的下一个设备为转发设备时,所述转发设备基于获得的所述第一arp请求和所述第二arp请求,确定向所述共享管理口发送报文;在所述相邻的下一个设备为服务器时,所述相邻的下一个设备向下转发所述第一arp请求。

第二报文转发模块104,用于所述服务器将从所述专用管理口接收的待转发报文从所述共享管理口转发到相邻的上一个设备。

可选地,报文转发装置100还包括:

第三报文获得模块105,用于在所述其它服务器的共享管理口处的链接从断开恢复为连接时,所述服务器获得包含所述其它服务器的mac地址的第三arp请求。

第四报文生成模块106,用于所述服务器基于所述第三arp请求生成包含自身的mac地址的第四arp请求,并通过所述共享管理口将所述第四arp请求发送至相邻的上一个设备。

第四报文发送模块107,用于在所述下一个设备为转发设备时,所述服务器将所述第三arp请求丢。

所述第四报文发送模块107,还用于在所述下一个设备为服务器时,所述服务器通过所述专用管理口将所述第三arp请求转发至相邻的下一个设备,使得所述下一个设备下送所述第三arp请求。

需要说明的是,由于所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

本领域内的技术人员应明白,本申请实施例可提供为方法、系统、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

综上所述,本申请实施例提供了一种报文转发方法、装置、服务器、系统及存储介质。方法应用于包含多个服务器的报文转发系统中的服务器,服务器的共享管理口与相邻的上一个设备连接,服务器的专用管理口与相邻的下一个设备连接,方法包括:服务器通过共享管理口获得相邻的上一个设备发送的待转发报文;服务器将待转发报文通过专用管理口转发至相邻的下一个设备。

基于服务器的共享管理口与相邻的上一个设备连接,通过共享管理口获得相邻的上一个设备发送的待转发报文,又基于服务器的专用管理口与相邻的下一个设备连接,而将待转发报文通过专用管理口转发至相邻的下一个设备,实现了对报文的正常转发。于此同时,由于服务器的共享管理口和专用管理口分别于不同的设备连接,使得报文转发系统中转发设备的连接设备所需的端口还可以得到节约,因而解决了bmc对服务器进行管理需要占用转发设备大量的端口资源的技术问题。

以上仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

以上,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

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