报文转发方法和装置与流程

文档序号:17693948发布日期:2019-05-17 21:18阅读:221来源:国知局
报文转发方法和装置与流程
本申请涉及通信
技术领域
,尤其涉及一种报文转发方法和装置。
背景技术
:随着信息技术的不断发展,网络规模日益扩大,组网结构也日益复杂。为了简化组网结构、整合物理设备,以及提高设备资源利用率,通常可以采用将一台物理设备虚拟成多台逻辑设备的设备虚拟化技术。在设备虚拟化技术中,虚拟出的每台逻辑设备都拥有独立的硬件和软件资源,可以独立维护转发表项。另一方面,通过独立的管理员和日志管理机制等对每台逻辑设备进行独立管理,即同一台物理设备中虚拟出的每台逻辑设备的运行互不影响。然而在实际应用中,为了实现设备虚拟化技术,通常要求物理设备中的硬件资源(例如:交换机中的交换芯片等)支持设备虚拟化技术,而对于硬件资源不支持设备虚拟化技术的物理设备,则无法将其虚拟成多台逻辑设备。技术实现要素:有鉴于此,本申请提供一种报文转发方法和装置,以解决相关技术中无法将硬件资源不支持设备虚拟化技术的物理设备虚拟成多台逻辑设备的问题。具体地,本申请是通过如下技术方案实现的:第一方面,本申请提供一种报文转发方法,所述方法包括:在接收到数据报文时,根据接收到所述数据报文的入接口确定所述数据报文的映射vlan标识;将所述数据报文携带的当前vlan标识修改为所述映射valn标识;查找修改后的报文命中的转发表项;其中,所述转发表项与所述映射vlan标识对应;将所述修改后的报文携带的所述映射vlan标识重新修改为所述当前vlan标识,并基于所述转发表项对重新修改后的报文进行转发。第二方面,本申请提供一种报文转发装置,所述装置包括:第一确定单元,用于在接收到数据报文时,根据接收到所述数据报文的入接口确定所述数据报文的映射vlan标识;第一修改单元,用于将所述数据报文携带的当前vlan标识修改为所述映射valn标识;查找单元,用于查找修改后的报文命中的转发表项;其中,所述转发表项与所述映射vlan标识对应;第二修改单元,用于将所述修改后的报文携带的所述映射vlan标识重新修改为所述当前vlan标识,并基于所述转发表项对重新修改后的报文进行转发。分析上述技术方案可知,对于物理设备中虚拟出的每台逻辑设备,可以将通过分配至该逻辑设备的物理接口接收到的报文携带的vlan标识修改为对应的映射vlan标识,并根据该映射vlan标识确定该报文命中的转发表项,以根据该转发表项对该报文进行转发。采用这种方式,在该物理设备中的硬件资源不支持设备虚拟化技术时,仍然可以保证该物理设备中虚拟出的每台逻辑设备所维护的转发表项是彼此独立的,每台逻辑设备的运行可以互不影响,即实现将硬件资源不支持设备虚拟化技术的该物理设备虚拟成多台逻辑设备。附图说明图1是本申请一示例性实施例示出的一种报文转发方法的流程图;图2是本申请一示例性实施例示出的另一种报文转发方法的流程图;图3是本申请一示例性实施例示出的另一种报文转发方法的流程图;图4是本申请一示例性实施例示出的一种报文转发装置所在设备的硬件结构图;图5是本申请一示例性实施例示出的一种报文转发装置的框图。具体实施方式这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。在实际应用中,为了实现设备虚拟化技术,通常要求物理设备中的硬件资源(例如:交换机中的交换芯片等)支持设备虚拟化技术,而对于硬件资源不支持设备虚拟化技术的物理设备,则无法将其虚拟成多台逻辑设备。为了在简化组网结构、整合物理设备,以及提高设备资源利用率的同时,减少设备成本,本申请提供一种报文转发方法和装置,以将硬件资源不支持设备虚拟化技术的物理设备虚拟成多台逻辑设备。请参考图1,为本申请一示例性实施例示出的一种报文转发方法的流程图。该方法可以应用于交换机等物理设备,包括如下步骤:步骤101:在接收到数据报文时,根据接收到所述数据报文的入接口确定所述数据报文的映射vlan标识。步骤102:将所述数据报文携带的当前vlan标识修改为所述映射valn标识。步骤103:查找修改后的报文命中的转发表项;其中,所述转发表项与所述映射vlan标识对应。步骤104:将所述修改后的报文携带的所述映射vlan标识重新修改为所述当前vlan标识,并基于所述转发表项对重新修改后的报文进行转发。在本实施例中,可以将同一台物理设备虚拟成多台逻辑设备,即可以在同一台实际的物理设备中创建多台虚拟的逻辑设备,并为每台逻辑设备配置转发相关参数。以交换机为例,可以在同一台物理交换机中创建多台逻辑交换机,并为每台逻辑交换机分配物理接口。后续,物理设备在接收到其他物理设备发送的数据报文时,可以根据接收到该数据报文的物理接口(即入接口),确定该数据报文的映射vlan(virtuallocalareanetwork,虚拟局域网)标识。具体地,在为该物理设备中虚拟出的每台逻辑设备分配物理接口的同时,还可以为每台逻辑设备设置起始vlan标识。后续,该物理设备在接收到其他物理设备发送的数据报文时,可以根据接收到该数据报文的入接口所属vlan的vlan标识,以及该入接口所属逻辑设备的起始vlan标识,确定该数据报文的映射vlan标识。或者,在为该物理设备中虚拟出的每台逻辑设备分配物理接口的同时,还可以为每个物理接口所属vlan设置映射vlan标识。后续,该物理设备在接收到其他物理设备发送的数据报文时,可以直接根据接收到该数据报文的入接口所属vlan,确定该数据报文的映射vlan标识。该物理设备在确定了该数据报文的映射vlan标识后,可以先将该数据报文携带的vlan标识(称为当前vlan标识,通常为接收到该数据报文的入接口所属vlan的vlan标识)修改为该映射vlan标识。后续,该物理设备可以在与该映射vlan标识对应的转发表项中,查找修改后的报文命中的转发表项。该物理设备在查找到该修改后的报文命中的转发表项后,可以将该修改后的报文携带的该映射vlan标识重新修改为该当前vlan标识。后续,该物理设备可以基于查找到的转发表项对重新修改后的报文进行转发,即可以视为基于查找到的转发表项对接收到的原始数据报文进行转发。举例来说,假设将物理接口1分配给物理交换机中虚拟出的逻辑交换机1,且物理接口1属于vlann,进一步假设为逻辑交换机1设置的起始vlan标识为vlanm,则该物理交换机可以生成入方向vlan映射规则和出方向vlan映射规则,并保存在该物理交换机的交换芯片中;其中,该入方向vlan映射规则为将通过物理接口1接收到的数据报文的vlan标识由vlann映射为vlann+m,相应地,该出方向vlan映射规则为将vlan标识为vlann+m的数据报文的vlan标识由vlann+m映射为vlann。后续,该物理交换机在基于其交换芯片,通过物理接口1接收到其他物理设备发送的数据报文时,可以根据该入方向vlan映射规则,以及接收到该数据报文的物理接口1(即入接口),确定该数据报文的映射vlan标识为vlann+m。在确定了该数据报文的映射vlan标识为vlann+m后,可以先将该数据报文携带的vlann(即当前vlan标识)修改为vlann+m(即映射vlan标识)。后续,该物理设备可以在与vlann+m对应的转发表项中,查找修改后的报文命中的转发表项。该物理设备在查找到该修改后的报文命中的转发表项后,可以将该修改后的报文携带的vlann+m重新修改为vlann。后续,该物理设备可以基于查找到的转发表项对重新修改后的报文进行转发,即基于查找到的转发表项对携带vlann的报文进行转发。需要说明的是,对于属于相同vlan的不同物理接口,可以将这些物理接口分配给不同的逻辑设备,即这些物理接口对应的映射vlan标识可以不同。举例来说,假设将物理接口1分配给物理交换机中虚拟出的逻辑交换机1,将物理接口2和物理接口3分配给该物理交换机中虚拟出的逻辑交换机2,且物理接口1、物理接口2和物理接口3均属于vlann,进一步假设为逻辑交换1设置的起始vlan标识为vlanm,为逻辑交换机2设置的起始vlan标识为vlanl,则该物理交换机可以生成入方向vlan映射规则和出方向vlan映射规则,并保存在该物理交换机的交换芯片中;一方面,该入方向vlan映射规则包括将通过物理接口1接收到的数据报文的vlan标识由vlann映射为vlann+m,相应地,该出方向vlan映射规则包括将vlan标识为vlann+m的数据报文的vlan标识由vlann+m映射为vlann;另一方面,该入方向vlan映射规则包括将通过物理接口2或物理接口3接收到的数据报文的vlan标识由vlann映射为vlann+l,相应地,该出方向vlan映射规则包括将vlan标识为vlann+l的数据报文的vlan标识由vlann+l映射为vlann。在一个可选的实施例中,物理设备接收到的数据报文可以是二层报文,此时该物理设备可以对该二层报文进行二层转发。请参考图2,为本申请一示例性实施例示出的另一种报文转发方法的流程图。该方法可以应用于交换机等物理设备,包括如下步骤:步骤201:在接收到二层报文时,根据接收到所述二层报文的入接口确定所述二层报文的映射vlan标识。步骤202:将所述二层报文携带的当前vlan标识修改为所述映射valn标识。步骤203:在本地mac转发表中,根据修改后的报文携带的目的mac地址和所述映射vlan标识,查找所述修改后的报文命中的mac转发表项。步骤204:将所述修改后的报文携带的所述映射vlan标识重新修改为所述当前vlan标识,并基于所述mac转发表项对重新修改后的报文进行转发。参考前述步骤101和102,物理设备在接收到二层报文时,可以根据接收到该二层报文的入接口,确定该二层报文的映射vlan标识,从而可以将该二层报文携带的当前vlan标识修改为该映射valn标识。后续,该物理设备可以在本地mac(medium/mediaaccesscontrol,介质访问控制)转发表中,根据修改后的报文携带的目的mac地址和vlan标识(即该映射vlan标识),查找该修改后的报文命中的mac转发表项。该物理设备在查找到该修改后的报文命中的mac转发表项后,可以将该修改后的报文携带的该映射vlan标识重新修改为该当前vlan标识。后续,该物理设备可以基于查找到的mac转发表项对重新修改后的报文进行转发,即可以视为基于查找到的mac转发表项对接收到的原始二层报文进行二层转发。举例来说,该物理设备中可以保存如下表1所示的mac转发表:mac地址vlan接口mac地址1vlann+m物理接口2………………表1假设该物理设备在通过物理接口1接收到携带的vlan标识为vlann的二层报文时,根据物理接口1(即接收到该二层报文的入接口),确定该二层报文的映射vlan标识为vlann+m,则可以先将该二层报文携带的vlann修改为vlann+m。进一步假设该二层报文携带的目的mac地址为mac地址1,则该物理设备可以在表1所示的mac转发表中,根据vlann+m和mac地址1,查找修改后的报文命中的mac转发表项。后续,该物理设备可以将该修改后的报文携带的vlann+m重新修改为vlann,并基于查找到的mac转发表项对重新修改后的报文进行转发,即通过物理接口2对携带vlann的二层报文进行二层转发。需要说明的是,一方面,如果在本地mac转发表中未查找到该修改后的报文命中的mac转发表项,则该物理设备可以在将该修改后的报文携带的该映射vlan标识重新修改为该当前vlan标识后,基于重新修改后的报文进行报文泛洪。另一方面,在根据接收到二层报文的入接口确定该二层报文的映射vlan标识,并将该二层报文携带的当前vlan标识修改为该映射valn标识后,该物理设备可以根据修改后的报文的入接口(即该二层报文的入接口)、该修改后的报文携带的源mac地址(即该二层报文携带的源mac地址),以及该修改后的报文携带的vlan标识(即该映射vlan标识),更新本地mac转发表。举例来说,假设该物理设备在通过物理接口1接收到携带的vlan标识为vlann的二层报文时,根据物理接口1(即接收到该二层报文的入接口),确定该二层报文的映射vlan标识为vlann+m,则可以先将该二层报文携带的vlann修改为vlann+m。进一步假设该二层报文携带的源mac地址为mac地址2,则该物理设备可以将本地mac转发表更新为如下表2所示:mac地址vlan接口mac地址2vlann+m物理接口1………………表2在另一个可选的实施例中,物理设备接收到的数据报文可以是三层报文,此时该物理设备可以对该三层报文进行三层转发。请参考图3,为本申请一示例性实施例示出的另一种报文转发方法的流程图。该方法可以应用于交换机等物理设备,包括如下步骤:步骤301:在接收到三层报文时,根据接收到所述三层报文的入接口确定所述三层报文的映射vlan标识。步骤302:将所述三层报文携带的当前vlan标识修改为所述映射valn步骤303:在本地ip转发表中,根据修改后的报文携带的目的ip地址和所述映射vlan标识对应的vrf标识,查找所述修改后的报文命中的ip转发表项。步骤304:在本地arp表中,根据所述ip转发表项中的下一跳ip地址,查找所述修改后的报文命中的arp表项;其中,所述arp表项中的vlan标识为所述当前vlan标识。步骤305:基于所述arp表项,将所述修改后的报文携带的所述映射vlan标识重新修改为所述当前vlan标识,并对重新修改后的报文携带的源mac地址和目的mac地址进行再次修改。步骤306:基于所述ip转发表项,对再次修改后的报文进行转发。参考前述步骤101和102,物理设备在接收到三层报文时,可以根据接收到该三层报文的入接口,确定该三层报文的映射vlan标识,从而可以将该三层报文携带的当前vlan标识修改为该映射valn标识。需要说明的是,还可以为每个映射vlan标识设置对应的vrf(virtualroutingforwarding,vpn路由转发表)标识,即将该映射vlan标识所代表的vlan划分至对应的vrf标识所代表的vrf中。后续,该物理设备可以在本地ip转发表中,根据修改后的报文携带的目的ip地址和该映射vlan标识对应的vrf标识,查找该修改后的报文命中的ip转发表项。该物理设备在查找到该修改后的报文命中的ip转发表项后,可以再进一步地,在本地arp(addressresolutionprotocol,地址解析协议)表中,根据查找到的ip转发表项中的下一跳ip地址,查找该修改后的报文命中的arp表项;其中,该arp表项中的vlan标识为该当前vlan标识。这样,该物理设备可以将基于查找到的arp表项,将该修改后的报文携带的该映射vlan标识重新修改为该当前vlan标识,并对重新修改后的报文携带的源mac地址和目的mac地址进行再次修改。后续,该物理设备可以基于查找到的ip转发表项对再次修改后的报文进行转发,即可以视为在对接收到的原始三层报文携带的源mac地址和目的mac地址进行修改后,基于查找到的ip转发表项对修改后的三层报文进行三层转发。举例来说,该物理设备中可以保存如下表3所示的ip转发表:目的ip地址vrf下一跳ip地址接口ip地址1vrf1ip地址2物理接口3……………………表3假设该物理设备在通过物理接口4接收到携带的vlan标识为vlanx的三层报文时,根据物理接口4(即接收到该三层报文的入接口),确定该三层报文的映射vlan标识为vlanx+y,则可以将该三层报文携带的vlanx修改为vlanx+y。进一步假设将vlanx+y划分至vrf1,则可以确定vlanx+y对应的vrf标识为vrf1。再进一步假设该三层报文携带的目的ip地址为ip地址1,则该物理设备可以在表3所示的ip转发表中,根据vrf1和ip地址1,查找修改后的报文命中的ip转发表项。后续,该物理设备可以在本地arp表中,根据ip地址2,查找该修改后的报文命中的arp表项。该物理设备中可以保存如下表4所示的arp表:ip地址mac地址vlanip地址2mac地址3vlanx………………表4这样,该物理设备可以将修改后的报文携带的vlanx+y重新修改为vlanx,此外可以对重新修改后的报文进行再次修改,即将该重新修改后的报文的目的mac地址修改为mac地址3,并将该重新修改后的报文的源mac地址修改为本设备的mac地址。后续,该物理设备可以基于查找到的ip转发表项对再次修改后的报文进行转发,即通过物理接口3对携带vlanx,且源mac地址为本设备的mac地址、目的mac地址为mac地址3的三层报文进行三层转发。需要说明的是,在根据接收到arp请求报文的入接口确定该arp请求报文的映射vlan标识,并将该arp请求报文携带的当前vlan标识修改为该映射vlan标识后,该物理设备可以根据修改后的arp请求报文携带的源ip地址和源mac地址,学习对应的arp表项,并将该arp表项中的vlan标识设置为该当前vlan标识,以更新本地arp表。后续,该物理设备可以根据该当前vlan标识,构造arp应答报文并返回。举例来说,假设该物理设备在通过物理接口3接收到携带的vlan标识为vlanx的arp请求报文时,根据物理接口3(即接收到该arp请求报文的入接口),确定该arp请求报文的映射vlan标识为vlanx+y,则可以将该arp请求报文携带的vlanx修改为vlanx+y。进一步假设该arp请求报文携带的源ip地址为ip地址3,该arp请求报文携带的源mac地址为mac地址4,则该物理设备可以将本地mac转发表更新为如下表5所示:ip地址mac地址vlanip地址3mac地址4vlanx………………表5后续,该物理设备可以构造携带vlanx的arp应答报文并返回。分析上述技术方案可知,对于物理设备中虚拟出的每台逻辑设备,可以将通过分配至该逻辑设备的物理接口接收到的报文携带的vlan标识修改为对应的映射vlan标识,并根据该映射vlan标识确定该报文命中的转发表项,以根据该转发表项对该报文进行转发。采用这种方式,在该物理设备中的硬件资源不支持设备虚拟化技术时,仍然可以保证该物理设备中虚拟出的每台逻辑设备所维护的转发表项是彼此独立的,每台逻辑设备的运行可以互不影响,即实现将硬件资源不支持设备虚拟化技术的该物理设备虚拟成多台逻辑设备。与前述报文转发方法的实施例相对应,本申请还提供了报文转发装置的实施例。本申请报文转发装置的实施例可以应用在交换机等物理设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图4所示,为本申请报文转发装置所在交换机的一种硬件结构图,除了图4所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的交换机通常根据该报文转发的实际功能,还可以包括其他硬件,对此不再赘述。请参考图5,为本申请一示例性实施例示出的一种报文转发装置的框图。该装置500可以应用于图4所示的交换机,包括:第一确定单元501,用于在接收到数据报文时,根据接收到所述数据报文的入接口确定所述数据报文的映射vlan标识;第一修改单元502,用于将所述数据报文携带的当前vlan标识修改为所述映射valn标识;查找单元503,用于查找修改后的报文命中的转发表项;其中,所述转发表项与所述映射vlan标识对应;第二修改单元504,用于将所述修改后的报文携带的所述映射vlan标识重新修改为所述当前vlan标识,并基于所述转发表项对重新修改后的报文进行转发。在一个可选的实施例中,当所述数据报文为二层报文时,所述查找单元503具体可以用于:在本地mac转发表中,根据修改后的报文携带的目的mac地址和所述映射vlan标识,查找所述修改后的报文命中的mac转发表项;所述第二修改单元504具体可以用于:将所述修改后的报文携带的所述映射vlan标识重新修改为所述当前vlan标识,并基于所述mac转发表项对重新修改后的报文进行转发。在一个可选的实施例中,所述装置500还可以包括:第一更新单元505,用于根据所述修改后的报文的入接口,以及所述修改后的报文携带的源mac地址和所述映射vlan标识,更新本地mac地址表。在一个可选的实施例中,当所述数据报文为三层报文时,所述查找单元503具体可以用于:在本地ip转发表中,根据修改后的报文携带的目的ip地址和所述映射vlan标识对应的vrf标识,查找所述修改后的报文命中的ip转发表项;在本地arp表中,根据所述ip转发表项中的下一跳ip地址,查找所述修改后的报文命中的arp表项;其中,所述arp表项中的vlan标识为所述当前vlan标识;所述第二修改单元504具体可以用于:基于所述arp表项,将所述修改后的报文携带的所述映射vlan标识重新修改为所述当前vlan标识,并对重新修改后的报文携带的源mac地址和目的mac地址进行再次修改;基于所述ip转发表项,对再次修改后的报文进行转发。在一个可选的实施例中,所述装置500还可以包括:第二确定单元506,用于在接收到arp请求报文时,根据接收到所述arp请求报文的入接口确定所述数据报文的映射vlan标识;第二更新单元507,用于根据所述arp请求报文携带的源mac地址和源ip地址,以及所述映射vlan标识,更新本地arp表;构造单元508,用于根据所述arp请求报文携带的当前vlan标识,构造arp应答报文并返回。上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1