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

文档序号:16753885发布日期:2019-01-29 17:09阅读:226来源:国知局
一种报文转发方法及装置与流程

本发明涉及通信技术领域,尤其涉及一种报文转发方法及装置。



背景技术:

随着通信技术的高速发展,通信量的剧增亟需高性能高容量的网络设备。以路由设备为例,由于路由器需要完成大量的数据转发,因此对于路由器的转发能力的要求也越来越高。

通常路由器中包括一个交换矩阵单元(英文全称:switchfabricunit,英文缩写:sfu)卡和多个线路处理单元(英文全称:lineprocessingunit,英文缩写:lpu)卡,每个sfu上包括有多个端口,该多个端口与多个lpu卡一一对应并连接,当路由器转发报文时,lpu卡之间通信的所有报文均需要通过sfu卡确定转发到的目的lpu卡(目的lpu卡可以为一个lpu卡也可以为多个lpu卡的组合),具体的,sfu卡可以查询mac地址表,以根据mac地址表中保存的目的介质访问控制(英文全称:mediaaccesscontrol,英文缩写:mac)地址与sfu卡上的端口的对应关系,确定报文中携带的目的mac地址对应的目的端口(目的端口可以为sfu卡上的一个端口也可以为sfu卡上的多个端口的组合),从而确定转发到的目的lpu卡(即与目的端口对应的lpu卡)。

若路由器中lpu卡的数量为n个,则所有lpu卡的组合(也即sfu卡上的所有端口的组合)为2n个,当n大于15时,例如n=16时,多播mac地址有216种可能,由于mac地址表存储的mac地址表容量的多少受sfu卡中交换芯片的硬件条件的限制最多可以支持32k(千)的多播mac地址(即交换芯片中最多可以保存有32000个多播mac地址与端口的对应关系),216大于32k,因此sfu中保存的mac地址表容量(即多播mac地址)无法满足所有lpu卡的组合,使得路由器可能无法正常转发报文。



技术实现要素:

本发明的实施例提供一种报文转发方法及装置,能够节省mac地址表容量,保证路由器可以正常转发报文。

第一方面,提供一种报文转发方法,该方法包括:

sfu卡上每两个端口划分成一个端口组;

sfu卡接收待转发以太报文,待转发以太报文的报文头部的mac地址中封装有端口组指示信息,待转发以太报文头部的源mac地址中封装有目的端口指示信息;

sfu卡根据目的mac地址查询mac地址表确定目的端口组;mac地址表包括目的mac地址与目的端口组的对应关系;

sfu卡根据目的端口指示信息从目的端口组中选择对应的目的端口发送待转发以太报文。

可选的,sfu卡根据目的端口指示信息从目的端口组中选择对应的目的端口发送待转发以太报文包括:

所述sfu卡的交换芯片在报文发送方向应用访问控制列表,根据待转发以太报文头部的源mac地址中的目的端口指示信息,将待转发以太报文发向对应的目的端口。

可选的,目的端口组指示信息为指示待转发以太报文对应的目的端口组的位图信息;目的端口指示信息为指示待转发以太报文对应的目的端口的位图信息。

本发明实施例提供的报文转发方法及装置,sfu卡上每两个端口划分成一个端口组;sfu卡可以接收待转发以太报文,待转发以太报文的报文头部的mac地址中封装有端口组指示信息,待转发以太报文头部的源mac地址中封装有目的端口指示信息,并且sfu卡可以根据目的mac地址查询mac地址表确定目的端口组,mac地址表包括目的mac地址与目的端口组的对应关系;以及sfu卡根据目的端口指示信息从目的端口组中选择对应的目的端口发送待转发以太报文。如此在路由器中包括n个lpu卡时,可以使用2n/2个多播资源(即目的mac地址)满足所有lpu卡的组合,也即mac地址表仅需存储2n/2个mac地址与sfu卡上的端口的对应关系,从而可以节省mac地址表容量,保证路由器可以正常转发报文。

第二方面,提供一种报文转发方法,该方法包括:

lpu卡对待转发报文封装得到待转发以太报文,待转发以太报文头部的目的mac地址中封装有端口组指示信息,待转发以太报文头部的源mac地址中封装有目的端口指示信息;

lpu卡发送待转发以太报文至sfu卡。

可选的,目的端口组指示信息为指示待转发以太报文对应的目的端口组的位图信息;目的端口指示信息为指示待转发以太报文对应的目的端口的位图信息。

本发明实施例提供的报文转发方法及装置,lpu卡可以对待转发报文进行封装得到待转发以太报文,以及lpu卡发送待转发以太报文至sfu卡。其中,待转发以太报文头部的目的mac地址中封装有目的端口组指示信息,待转发以太报文头部的源mac地址中封装有目的端口指示信息。如此在路由器中包括n个lpu卡时,可以使用2n/2个多播资源(即目的mac地址)满足所有lpu卡的组合,也即mac地址表仅需存储2n/2个mac地址与sfu卡上的端口的对应关系,从而可以节省mac地址表容量,保证路由器可以正常转发报文。

第三方面,提供一种sfu卡,该sfu卡包括:配置模块、收发模块和处理模块;

配置模块,用于将每两个端口划分成一个端口组。

收发模块,用于接收待转发以太报文,待转发以太报文头部的目的mac地址中封装有端口组指示信息,待转发以太报文头部的源mac地址中封装有目的端口指示信息;以及通过处理模块从所述目的端口组中选择的对应的目的端口发送待转发以太报文。

处理模块,用于根据目的mac地址查询mac地址表确定目的端口组;mac地址表包括目的mac地址与目的端口组的对应关系,以及根据目的端口指示信息从目的端口组中选择待转发报文对应的目的端口。

可选的,收发模块,具体用于在报文发送方向应用访问控制列表,根据所述待转发以太报文头部的源mac地址中的目的端口指示信息,将待转发以太报文发向对应的目的端口。

可选的,目的端口组指示信息为指示待转发以太报文对应的目的端口组的位图信息;目的端口指示信息为指示待转发以太报文对应的目的端口的位图信息。

对于第三方面的技术效果,具体可以参照上述对第一方面的技术效果的描述,此处不再赘述。

第四方面,提供一种lpu卡,该lpu卡包括处理模块和发送模块;

处理模块,用于对待转发报文进行封装得到待转发以太报文;待转发以太报文头部的目的mac地址中封装有端口组指示信息,待转发以太报文头部的源mac地址中封装有目的端口指示信息;

发送模块,用于发送待转发以太报文至sfu卡。

可选的,目的端口组指示信息为指示待转发以太报文对应的目的端口组的位图信息;目的端口指示信息为指示待转发以太报文对应的目的端口的位图信息。

对于第四方面的技术效果,具体可以参照上述对第二方面的技术效果的描述,此处不再赘述。

第五方面,提供一种网络设备,该网络设备包括一个如第三方面或其可选的实现方式所述的sfu卡、至少一个如第四方面或其可选的实现方式所述的lpu卡和至少一个目的lpu卡;

该目的lpu卡,用于接收上述lpu卡(即第四方面或其可选的实现方式所述的lpu卡)通过sfu卡发送的以太报文。

对于第五方面的技术效果,具体可以参照上述对第三方面和第四方面的技术效果的的描述,此处不再赘述。

附图说明

图1为本发明实施例提供的一种路由器的架构示意图;

图2为本发明实施例提供的报文转发方法的示意图;

图3为本发明实施例提供的一种报文的格式示意图;

图4为本发明实施例提供的一种sfu卡的结构示意图;

图5为本发明实施例提供的一种lpu卡的结构示意图。

具体实施方式

下面结合附图对本发明实施例提供的报文转发方法及装置进行详细描述。

在本发明实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本发明实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。

本文中符号“/”表示关联对象是或者的关系,例如a/b表示a或者b。

目前,若路由器中lpu卡的数量为n个,则所有lpu卡的组合(也即sfu卡上的所有端口的组合)为2n个,当n大于15时,例如n=16时,多播mac地址有216种可能,由于mac地址表存储的mac地址表容量的多少受sfu卡中交换芯片的硬件条件的限制最多可以支持32k(千)的多播mac地址(即交换芯片中最多可以保存有32000个多播mac地址与端口的对应关系),216大于32k,因此sfu中保存的mac地址表容量(即多播mac地址)无法满足所有lpu卡的组合,使得路由器可能无法正常转发报文。

为了解决上述问题,本发明实施例提供一种报文转发方法,该方法中mac地址表仅需存储2n/2个mac地址与sfu卡上的端口的对应关系,从而可以节省mac地址表容量,保证路由器可以正常转发报文。

示例性的,如图1所示为一种路由器的架构示意图,该路由器包括一个sfu卡和多个lpu卡,每个sfu上包括有多个端口,图1中以该路由器包括16个lpu卡(在图1中分了区分该16个lpu卡,将其分别表示为lpu0至lpu15)为例进行说明,该16个lpu卡所在槽位与sfu卡上的16个端口(在图1中采用数字0至15来表示端口0至端口15这16个端口)一一对应并连接。当路由器转发报文时,lpu卡之间通信的所有报文均需要通过sfu卡确定并转发到目的lpu卡(目的lpu卡可以为一个lpu卡也可以为多个lpu卡的组合)。

如图2所示,本发明实施例提供一种报文转发方法,该方法包括下述步骤s101-s105。

s101、lpu卡接收待转发报文。

通常,路由器在转发报文的过程中,会通过路由器中的lpu卡接收待转发报文,也就是说在路由器转发报文的情况下可以执行上述s101。

示例性的,待转发报文由报文头部和净荷两部分组成。其中,报文头部中携带了源mac地址和目的mac地址,净荷部分携带了待传输的数据。该待转发报文可以如图3所示。

s102、lpu卡将该待转发报文进行封装得到待转发以太报文。

s103、lpu卡将待转发以太报文发送至sfu卡。

由于lpu卡接收的待转发报文为二层网络中的报文,而在路由器中的转发是三层网络的转发,并不依赖于二层网络中的报文头部,因此lpu卡可以对待转发报文的报文头部进行封装,得到待转发以太报文。

其中,该封装后的待转发以太报文的报文头部的目的mac地址中封装有目的端口组指示信息,该封装后的待转发以太报文的报文头部的源mac地址中封装有目的端口指示信息。

可选的,上述端口组指示信息为指示待转发以太报文对应的目的端口组的位图信息;上述目的端口指示信息为指示所述待转发以太报文对应的目的端口的位图信息。

本发明实施例中,路由器中的sfu上每两个端口划分成一个端口组,示例性的,以图1所示的路由器为例,该路由器sfu上有16个端口,组成8个端口组,例如,端口0和端口1划分成端口组0,端口2和端口3划分成端口组1,端口4和端口5划分成端口组2,端口6和端口7划分成端口组3,端口8和端口9划分成端口组4,端口10和端口11划分成端口组5,端口12和端口13划分成端口组6,端口14和端口15划分成端口组7。

示例性的,由于一个字节有8个比特位,因此可以采用上述待转发以太报文头部中的mac地址的低位的第一个字节来表示上述的8个端口组,也即采用该8个比特位的位图来表示该8个端口组是否为目的端口组(即是否为转发该待转发以太报文的端口组),例如,可以用比特位的值为1时表示转发,比特位的值为0时表示不转发,可以采用该8个比特位的值为00000011表示端口组0和端口组1转发该待转发以太报文。

由于本发明实施例中目的mac地址为多播地址,因此目的mac地址的高位的第一个字节为01,其他字节均可以根据实际需求进行设置。其中,高位的第二个2个字节和高位的第3个字节应避免与保留组播地址(即本身具有指定意义的组播地址)冲突。示例性的,上述待转发以太报文携带的目的mac地址可以表示为:01-00-5f-00-00-03,其指示待转发以太报文的目的端口组为端口组0和端口组1,也即指示向端口0、端口1、端口2和端口3复制待转发以太报文。

进一步的,示例性的,可以采用源mac地址指示待转发以太报文的目的端口组中用于发送待转发以太报文的目的端口,具体的采用上述待转发以太报文头部中的源mac地址的低位的第一个字节和第二个字节来表示上述的16个端口,也即采用16个比特位的位图来表示该16个端口。在采用上述目的mac地址:01-00-5f-00-00-03指示目的端口组为端口组0和端口组1的情况下,可以采用源mac地址:xx-xx-xx-xx-00-05(注意,其中xx为自定义位段,本发明不作限制,由于交换芯片不识别源mac地址为组播的mac,最高字节的bit0不能为1)指示端口1和端口3丢弃该待转发以太报文,端口0和端口2转发该待转发以太报文,也即源mac地址:xx-xx-xx-xx-00-05,指示待转发以太报文的目的端口组中用于输出待转发以太报文的目的端口为端口0和端口2。

本发明实施例中,在每采用一个字段表示待转发以太报文目的端口组的情况下,需要采用2个字段表示目的端口组中用于转发待转发以太报文的目的端口。例如,在路由器中包括16个lpu卡时,可以采用目的mac地址的低位的第一个字节位图来表示目的端口组,采用源mac地址的低位的第一个字节和第二个字节位图来表示目的端口;在路由器中包括32个lpu卡时,可以采用目的mac地址的低位的第一个字节和第二个字节的位图来表示目的端口组,采用源mac地址的低位的第一个字节、第二个字节、第三个字节和第四个字节的位图来表示目的端口。

s104、sfu卡根据目的mac地址查询mac地址表确定目的端口组。

其中,mac地址表包括目的mac地址与目的端口组的对应关系。

本发明实施例中,在sfu卡接收到上述待转发以太报文之后,可以参看sfu卡中保存的mac地址表,并找出与待转发以太报文中的目的mac地址对应的目的端口组,例如该组播表项中可以保存目的mac地址:01-00-5f-00-00-03与目的端口组:端口组0和端口组1的对应关系,如此,在待转发以太报文中的目的mac地址为01-00-5f-00-00-03时,可以确定端口组0和端口组1为待转发以太报文的目的端口组,此时sfu卡可以将待转发以太报文复制到端口0、端口1、端口2和端口3。

s105、sfu卡根据目的端口指示信息从目的端口组中选择对应的目的端口发送待转发以太报文。

可选的,sfu卡的交换芯片可以在报文发送方向应用访问控制列表,根据待转发以太报文头部的源mac地址中的目的端口指示信息,将待转发以太报文发向对应的目的端口。也即sfu卡可以根据目的端口指示信息和目的端口组中每个端口的访问控制列表(acl)确定目的端口组中每个端口转发/丢弃待转发以太报文。

由于访问控制列表可以通过报文字段来确定对应的动作反应,例如,可以通过匹配该待转发以太报文中源mac地址中的某个字段来确定转发/丢弃该待转发以太报文。

示例性的,sfu卡可以根据上述源mac地址:xx-xx-xx-xx-00-05,指示待转发以太报文的目的端口组(端口组0和端口组1)中用于发送待转发以太报文的目的端口为端口0和端口2,然后通过acl确定端口0和端口2转发该待转发以太报文,端口1和端口3丢弃该待转发以太报文,然后从端口0和端口2发送该待转发以太报文。

由图1可知,从端口0和端口2发送该待转发以太报文之后,相应的lpu0和lpu2会接收到该待转发以太报文,如此可以完成待转发以太报文在路由器的跨卡转发。

本发明实施例提供的报文转发方法及装置,sfu卡上每两个端口划分成一个端口组;sfu卡可以接收待转发以太报文,待转发以太报文的报文头部的mac地址中封装有端口组指示信息,待转发以太报文头部的源mac地址中封装有目的端口指示信息,并且sfu卡可以根据目的mac地址查询mac地址表确定目的端口组,mac地址表包括目的mac地址与目的端口组的对应关系;以及sfu卡根据目的端口指示信息从目的端口组中选择对应的目的端口发送待转发以太报文。如此在路由器中包括n个lpu卡时,可以使用2n/2个多播资源(即目的mac地址)满足所有lpu卡的组合,也即mac地址表仅需存储2n/2个mac地址与sfu卡上的端口的对应关系,从而可以节省mac地址表容量,保证路由器可以正常转发报文。

如图4所示,本发明实施例提供一种sfu卡,该sfu卡包括:配置模块11、收发模块12和处理模块13;

配置模块11,用于将每两个端口划分成一个端口组。

收发模块12,用于接收待转发以太报文,待转发以太报文头部的目的mac地址中封装有端口组指示信息,待转发以太报文头部的源mac地址中封装有目的端口指示信息;以及通过处理模块从所述目的端口组中选择的对应的目的端口发送待转发以太报文。

处理模块13,用于根据目的mac地址查询mac地址表确定目的端口组;mac地址表包括目的mac地址与目的端口组的对应关系,以及根据目的端口指示信息从目的端口组中选择待转发报文对应的目的端口。

可选的,收发模块12,具体用于在报文发送方向应用访问控制列表,根据所述待转发以太报文头部的源mac地址中的目的端口指示信息,将待转发以太报文发向对应的目的端口。

可选的,目的端口组指示信息为指示待转发以太报文对应的目的端口组的位图信息;目的端口指示信息为指示待转发以太报文对应的目的端口的位图信息。

如图5所示,本发明实施例提供一种lpu卡,该lpu卡包括处理模块21和发送模块22;

处理模块21,用于对待转发报文进行封装得到待转发以太报文;待转发以太报文头部的目的mac地址中封装有端口组指示信息,待转发以太报文头部的源mac地址中封装有目的端口指示信息;

发送模块22用于发送待转发以太报文至sfu卡。

可选的,目的端口组指示信息为指示待转发以太报文对应的目的端口组的位图信息;目的端口指示信息为指示待转发以太报文对应的目的端口的位图信息。

本发明实施例还提供一种网络设备,该网络设备可以包括一个如图4所示的sfu卡、至少一个如图5所示的lpu卡和至少一个目的lpu卡。

其中,目的lpu卡用于接收上述lpu卡(即图5所示的lpu卡)通过sfu卡发送的以太报文。

示例性的,上述网络设备可以为路由器。

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

通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

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

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