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

文档序号:25741941发布日期:2021-07-06 18:52阅读:81来源:国知局
一种报文转发方法及装置与流程
本申请涉及计算机通信领域,尤其涉及一种报文转发方法及装置。
背景技术
:在转发网络中,为了使得不同的客户端彼此隔离,通常为不同的客户端分配不同的用户侧vlan(virtuallocalareanetwork,虚拟局域网),而为了节约交换机上的vlan资源,可以使用vlan映射技术将为不同用户侧vlan映射为交换机上的同一网络侧vlan。具体地,当网络设备接收到客户端发出的用户侧报文时,会将用户侧报文携带的用户侧vlan修改为网络侧vlan并进行转发。然而,当网络设备接收到网络侧报文时,由于网络侧报文携带的网络侧vlan对应多个不同的用户侧vlan,所以只通过网络侧vlan就无法判断出该网络侧报文的目的地址所在的用户侧vlan,进而无法将网络侧报文转发给对应的客户端。技术实现要素:有鉴于此,本申请提供一种报文转发方法及装置,用于实现将网络侧报文携带的网络侧vlan修改为用户侧vlan,并将网络侧报文发送给与该用户侧vlan对应的客户端。具体地,本申请是通过如下技术方案实现的:根据本申请的第一方面,提供一种报文转发方法,所述方法应用于网络设备,所述方法包括:在通过用户侧端口接收到来自客户端的用户侧报文时,确定预设acl表中的与所述用户侧报文携带的用户侧vlan对应的acl表项的表项标识;基于所述用户侧端口上配置的vlan映射信息,将所述用户侧报文携带的用户侧vlan修改为对应的网络侧vlan,并基于修改后的网络侧vlan学习从本网络设备至所述客户端的转发表项,并将所述转发表项与所述acl表项关联;其中,所述acl表项用于指示将发向所述客户端的网络侧报文携带的所述网络侧vlan修改为所述用户侧vlan;通过修改后的网络侧vlan对应的端口转发所述用户侧报文。可选的,所述方法还包括:在接收到发向所述客户端的网络侧报文时,确定用于转发所述网络侧报文至所述客户端的所述转发表项,并依据所述转发表项所关联的acl表项,将所述网络侧报文携带的网络侧vlan修改为所述用户侧vlan并通过所述转发表项转发。可选的,所述将所述转发表项与所述acl表项关联,包括:将所述acl表项的表项标识写入至所述转发表项;在接收到发向所述客户端的网络侧报文时,所述转发表项所关联的acl表项通过如下方式确定:依据所述转发表项记录的表项标识,在所述acl表中查找所述acl表项。可选的,所述将所述acl表项的表项标识写入至所述转发表项,包括:将所述acl表项的表项标识写入至所述转发表项预保留出的保留字段或者为转发表项扩展出的扩展字段。可选的,所述acl表通过如下方式生成:接收为任意用户侧端口配置的vlan映射信息;所述vlan映射信息记录了该用户侧端口上配置的用户侧vlan和网络侧vlan的对应关系;生成与该任意用户侧端口上配置的用户侧vlan对应的acl表项,所述acl表项用于指示将匹配该acl表项的网络侧报文的vlan修改为该任意用户侧端口上配置的用户侧vlan;在所述acl表中检查是否存在生成的acl表项;若不存在,则将所述acl表项添加至所述acl表。根据本申请的第二方面,提供一种报文转发装置,所述装置应用于网络设备,所述装置包括:确定单元,用于在通过用户侧端口接收到来自客户端的用户侧报文时,确定预设acl表中的与所述用户侧报文携带的用户侧vlan对应的acl表项的表项标识;关联单元,用于基于所述用户侧端口上配置的vlan映射信息,将所述用户侧报文携带的用户侧vlan修改为对应的网络侧vlan,并基于修改后的网络侧vlan学习从本网络设备至所述客户端的转发表项,并将所述转发表项与所述acl表项关联;其中,所述acl表项用于指示将发向所述客户端的网络侧报文携带的所述网络侧vlan修改为所述用户侧vlan;发送单元,用于通过修改后的网络侧vlan对应的端口转发所述用户侧报文。可选的,所述装置还包括:接收单元,用于在接收到发向所述客户端的网络侧报文时,确定用于转发所述网络侧报文至所述客户端的所述转发表项,并依据所述转发表项所关联的acl表项,将所述网络侧报文携带的网络侧vlan修改为所述用户侧vlan并通过所述转发表项转发。可选的,所述关联单元,在将所述转发表项与所述acl表项关联时,用于将所述acl表项的表项标识写入至所述转发表项;所述接收单元,在确定所述转发表项所关联的acl表项时,用于依据所述转发表项记录的表项标识,在所述acl表中查找所述acl表项。可选的,所述关联单元,在将所述acl表项的表项标识写入至所述转发表项时,用于将所述acl表项的表项标识写入至所述转发表项预保留出的保留字段或者为转发表项扩展出的扩展字段。可选的,所述装置还包括生成单元,用于接收为任意用户侧端口配置的vlan映射信息;所述vlan映射信息记录了该用户侧端口上配置的用户侧vlan和网络侧vlan的对应关系;生成与该任意用户侧端口上配置的用户侧vlan对应的acl表项,所述acl表项用于指示将匹配该acl表项的网络侧报文的vlan修改为该任意用户侧端口上配置的用户侧vlan;在所述acl表中检查是否存在生成的acl表项;若不存在,则将所述acl表项添加至所述acl表。由上述描述可知,由于本申请配置了与各用户侧vlan对应的acl表项,acl表项用于指示将匹配该acl表项的网络侧报文中的vlan修改为该acl表项对应的用户侧vlan,并在接收到来自于客户端的用户侧报文时,将基于用户侧报文学习的转发表项与该用户侧报文携带的vlan对应的acl表项关联,致使在接收到发往该客户端的网络侧报文时,网络设备可以依据该网络侧报文所匹配的转发表项所关联的acl表项,将该网络侧报文中携带的vlan修改为该客户端对应的vlan并依据转发表项转发,从而实现了将网络侧报文发往客户端。附图说明图1是本申请一实施例示出的转发系统的组网示意图;图2是本申请一示例性实施例示出的一种报文转发方法的流程图;图3是本申请一示例性实施例示出的一种网络侧报文转发方法的流程图;图4是本申请一示例性实施例示出的一种报文转发方法的示意图;图5是本申请一示例性实施例示出的一种网络设备的硬件结构图;图6是本申请一示例性实施例示出的一种报文转发装置的框图。具体实施方式这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。参见图1,图1是本申请一实施例示出的转发系统的组网示意图。如1所示,该组网中包括网络设备、服务器、客户端。其中,网络设备可以是交换机、路由器等具有转发能力的设备。在实际应用中,为了隔离不同用户,通常会为不同客户端分配不同的vlan(这里为了方便叙述,将为客户端分配的vlan称为用户侧vlan)。而为了节约vlan资源,通常还会为网络设备上的网络侧端口配置vlan(这里为了方便叙述,将为网络设备上的网络侧端口配置的vlan称之为网络侧vlan)比如,为客户端101分配的用户侧vlan为vlan100,为客户端102分配的用户侧vlan为vlan200。客户端101与网络设备上的端口port101相连。客户端102与网络设备上的端口port103相连。网络设备上还配置了网络侧端口port102,port102被配置的网络侧vlan为vlan10。网络设备上的port101上预配置的vlan映射信息为:将vlan100映射为vlan10。网络设备上的port103上预配置的vlan映射信息为:将vlan200映射为vlan10。假设客户端101向服务器发送报文101(该报文由于是从客户端发出的,所以又被称为用户侧报文),该报文101携带的用户侧vlan为vlan100。当网络设备接收到客户端101向服务器发送的报文101时,网络设备可基于预配置的vlan映射,将报文101中的vlan100修改为vlan10,然后网络设备可将进行了vlan修改的报文101发送给服务器。然而,当网络设备接收到服务器返回给客户端101的网络侧报文102,由于该网络侧报文102携带的vlan为vlan10,而vlan10又对应了至少一个用户侧vlan,比如vlan10同时对应的vlan100和vlan200,所以网络设备仅通过vlan10无法确定该网络侧报文102是发往vlan100还是发往vlan200,所以致使网络设备无法将网络侧报文102转发给客户端101。有鉴于此,本申请旨在提出一种报文转发方法,在本申请中,为与各用户侧vlan(即为本网络设备连接的客户端对应的vlan)分配了acl(accesscontrollist,访问控制列表)表项,每个acl表项用于指示将匹配该acl表项的网络侧报文携带的vlan修改为该acl表项对应的用户侧vlan。网络设备在接收到来自客户端的用户侧报文时,在预设的acl表中确定与所述用户侧报文携带的用户侧vlan对应的acl表项,并基于接收所述用户侧报文的用户侧端口上配置的用户侧vlan映射信息,将所述用户侧报文携带的用户侧vlan映射为网络侧vlan,并基于修改后的网络侧vlan学习从本网络设备至所述客户端的转发表项,并将所述转发表项与所述acl表项关联,并通过修改后的网络侧vlan对应的端口转发所述用户侧报文。其中,所述acl表项用于指示将发向所述客户端的网络侧报文携带的网络侧vlan修改为所述用户侧vlan;一方面,由于本申请配置了与各用户侧vlan对应的acl表项,acl表项用于指示将匹配该acl表项的网络侧报文中的vlan修改为该acl表项对应的用户侧vlan,并在接收到来自于客户端的用户侧报文时,将基于用户侧报文学习的转发表项与该用户侧报文携带的vlan对应的acl表项关联,致使在接收到发往该客户端的网络侧报文时,网络设备可以依据该网络侧报文所匹配的转发表项所关联的acl表项,将该网络侧报文中携带的vlan修改为该客户端对应的vlan并依据转发表项转发,从而实现了将网络侧报文发往客户端。另一方面,由于本申请预先配置了各用户侧vlan对应的acl表项,在接收到用户侧报文后,将学习到的转发表项与对应的acl表项进行关联,所以使得一个acl表项可以关联至少一个转发表项,相比于为每个转发表项配置一个acl表项,本申请这种方式可以有效地节约acl表项的所占据的存储资源。在介绍本申请之前,先介绍下本申请提出的acl表。在本申请提出的场景中,通常要在客户端连接的用户侧端口上配置vlan映射信息。该vlan映射信息记录了该用户侧端口上配置的用户侧vlan(这里简称用户侧vlan)和网络侧vlan的映射关系。当网络设备接收到为任意用户侧端口配置的vlan映射信息时,生成与该用户侧端口上配置的用户侧vlan对应的acl表项。所述acl表项用于指示将匹配该acl表项的网络侧报文的vlan修改为该用户侧端口上配置的用户侧vlan。其中,该acl表项包括匹配项和动作项。acl的匹配项可以是acl表项的表项标识。该表项标识是指唯一标识一个acl表项的标志。比如,在本申请中,网络设备可为每一个用户侧vlan分配一个标识(比如classid),该标识classid可以是转发芯片中的一个保留字段的标识。不同的转发芯片保留字段不同。每一用户侧vlan对应的acl表项的表项标识可以是为该用户侧vlan分配的classid。这里只是示例性地说明,不对表项标识进行具体地限定。acl表项的动作项是:将匹配该acl表项的网络侧报文携带的vlan修改为该任意用户侧端口上配置的用户侧上的vlan。然后,网络设备可检测预设的acl表中是否存在该生成的acl表项,若预设acl表中不存在该生成的acl表项,则将该acl表项添加在所述acl表中。若预设的acl表中存在该生成的acl表项,则不重复将acl表项添加至acl表中。例如,假设交换机上包括两个用户侧端口和一个网络侧端口。两个用户侧端口分别为g1/0/1和g1/0/2,网络侧端口为g1/0/3。1)针对用户侧端口g1/0/1,假设用户侧端口g1/0/1上配置的vlan映射信息为:[switch]interfacegigabitethernet1/0/1;(进入端口g1/0/1的配置)[switch-gigabitethernet1/0/1]portlink-typetrunk;(表示用户侧端口连接类型为trunk类型)[switch-gigabitethernet1/0/1]porttrunkpermitvlan100;(表示为用户侧端口配置的用户侧vlan为vlan100)[switch-gigabitethernet1/0/1]vlanmapping100translated-vlan10;(表示将用户侧端口上配置的用户侧vlan100映射为vlan10)。当交换机接收到针对用户侧端口g1/0/1的vlan映射信息时,生成与该用户侧端口上配置的用户侧vlan100对应的acl表项。具体地,网络设备会为每个用户侧端口上配置的用户侧vlan分配一个标识,假设vlan100的标识为class1,则网络设备可将class1作为与vlan100对应的acl表项的表项标识。因此,生成的acl表项的匹配项为class1,动作项将vlan为修改为vlan100。然后,网络设备可检测acl表中是否存在该acl表项,由于该acl表中不存在该acl表项,网络设备可将生成的acl表项添加在acl表中。此时,acl表如表1所示:匹配项动作项class1将vlan修改为vlan100表12)针对用户侧端口g1/0/2,假设用户侧端口g1/0/2上配置的vlan映射信息为:[switch]interfacegigabitethernet1/0/2;(进入交换机上的用户侧端口g1/0/2的配置)[switch-gigabitethernet1/0/2]portlink-typetrunk;(表示用户侧端口连接类型为trunk类型)[switch-gigabitethernet1/0/2]porttrunkpermitvlan100;(表示为用户侧端口配置的vlan为vlan100)[switch-gigabitethernet1/0/2]vlanmapping100translated-vlan10;(表示将用户侧端口上配置的用户侧vlan100映射为vlan10)。当交换机接收到针对用户侧端口g1/0/2的vlan映射信息时,生成与该用户侧端口上配置的用户侧vlan100对应的acl表项。生成的acl表项的匹配项为class1,动作项将vlan为修改为vlan100。然后,网络设备可检测如表1所示的acl表中是否存在该acl表项,由于该acl表中已存在该acl表项,网络设备可不重复将acl表项添加在acl表中。由于本申请在用户对端口进行vlan映射配置时,就生成了与各用户侧vlan对应的acl表项,而在后续过程,可以将学习到的转发表项与acl表项关联,使得一个acl表项可以关联至少一个转发表项,从而有效地节约了acl表项所占据的存储空间。在介绍完上述acl表后,下面详细介绍下本申请提供的报文转发方法。参见图2,图2是本申请一示例性实施例示出的一种报文转发方法的流程图,该方法可应用在网络设备上,可包括如下所示步骤。步骤201:网络设备在通过用户侧端口接收到来自客户端的用户侧报文时,确定预设acl表中的与所述用户侧报文携带的用户侧vlan对应的acl表项的表项标识。在一种可选的实现方式中,确定预设acl表中的与所述用户侧报文携带的用户侧vlan对应的acl表项,实则是确定与所述用户侧报文携带的用户侧vlan对应的acl表项的表项标识。具体地,网络设备记录了用户侧vlan与acl表项标识的对应关系。当网络设备在通过用户侧端口接收到来自客户端的用户侧报文时,网络设备可在该对应关系中,查找该用户侧报文携带的用户侧vlan对应的acl表项标识。当然,在实际应用中,也可以通过其他方式确定用户侧vlan对应的acl表项。比如在acl表中,直接查找动作项包含该用户侧vlan的acl表项的表项标识等。这里只是示例性地说明,不对其进行具体地限定。步骤202:网络设备基于所述用户侧端口上配置的用户侧vlan映射信息,将所述用户侧报文携带的用户侧vlan修改为对应的网络侧vlan,并基于修改后的网络侧vlan学习从本网络设备至所述客户端的转发表项,并将所述转发表项与所述acl表项关联;其中,所述转发表项所述acl表项用于指示将发向所述客户端的网络侧报文携带的所述网络侧vlan修改为所述用户侧vlan。下面通过步骤2021至步骤2023对步骤202进行详细地说明。步骤2021:网络设备基于所述用户侧端口上配置的vlan映射信息,将所述用户侧报文携带的用户侧vlan映射为对应的网络侧vlan。在本申请提供的场景中,用户侧端口上可配置vlan映射信息,该vlan映射信息用于指示网络设备将用户侧报文中携带的用户侧vlan修改为对应的网络侧vlan。在实现步骤2021时,网络设备可读取该用户侧端口上配置的vlan映射信息,然后网络设备可依据该vlan映射信息,将该用户侧报文携带的用户侧vlan修改为该vlan映射信息中记录的网络侧vlan。例如,假设网络设备从用户侧端口g1/0/1接收到用户侧报文,该用户侧报文携带的用户侧vlan为vlan100。假设g1/0/1上配置的vlan映射信息为将vlan100(用户侧vlan)映射为vlan10(网络侧vlan)。此外,网络设备可基于该用户侧端口g1/0/1上的vlan映射信息,将用户侧报文携带的vlan100修改为vlan10。步骤2022:网络设备基于修改后的网络侧vlan学习从本网络设备至所述客户端的转发表项。在实现时,网络设备可以对修改了vlan的用户侧报文进行源地址学习,生成从本网络设备至所述客户端的转发表项。其中,该转发表项至少包括:目的地址、出接口和vlan标识。其中,目的地址为客户端地址(即用户侧报文的源地址)、出接口为接收该用户侧报文的用户侧端口、vlan标识为修改后的网络侧vlan。步骤2023:网络设备将所述转发表项与所述acl表项关联。在一种可选的实现方式中,为了节约网络设备中的存储资源,网络设备可以通过将acl表项的表项标识写入至转发表项的方式,将acl表项和转发表项关联起来,这样就不需要单独分配存储空间来存储acl表项和转发表项的对应关系。具体地,大多数转发表项中都有预保留的保留字段,网络设备可将该acl表项的表项标识写入该保留字段中。或者,网络设备可以将该acl表项的表项标识写入至扩展出的扩展字段中。当然,在实际应用中,网络设备还可将acl表项的表项标识写入至转发表项的其他字段,这里只是示例性地说明,不对其进行具体地限定。当然,在实际应用中,网络设备还可以采用其他方式将转发表项和acl表项关联。比如,网络设备可以单独分配存储空间来存储转发表项标识和acl表项标识的对应关系。这里只是对关联转发表项和acl表项的方式进行示例性地说明,不对其进行具体地限定。步骤203:网络设备通过修改后的网络侧vlan对应的端口转发所述用户侧报文。在实现是,网络设备可以将进行了vlan修改的用户侧报文,通过该修改后的网络侧vlan对应的端口转发出去。例如,假设网络设备上包括端口g1/0/1,端口g1/0/1上配置的vlan映射是将用户侧vlan100映射为网络侧vlan10。网络设备上还包括端口g1/0/3,端口g1/0/3上配置的网络侧vlan10。假设,网络设备从端口g1/01/1上接收到来自客户端的用户侧报文,该用户侧报文携带了vlan100。网络设备可依据端口g1/01/1上配置的vlan映射信息,将该用户侧报文携带的vlan100修改为vlan10。然后网络设备可确定vlan10对应的端口g1/0/3,然后通过端口g1/0/3将进行了vlan修改后的用户侧报文发送出去。此外,本申请还提供了网络设备对网络侧报文的转发方式。参见图3,图3是本申请一示例性实施例示出的一种网络侧报文转发方法的流程图,该方法可应用在网络设备上,可包括如下所示步骤。步骤301:在接收到发向所述客户端的网络侧报文时,网络设备确定用于转发所述网络侧报文至所述客户端的所述转发表项。在实现时,网络设备可接收发向该客户端的网络侧报文。该网络侧报文携带的目的地址为该客户端的地址,该网络侧报文携带的vlan为网络侧vlan。网络设备可在转发表中,查找目的地址为该客户端地址,vlan标识为该网络侧vlan的转发表项,查找到的转发表项即为用于转发所述网络侧报文至所述客户端的所述转发表项。步骤302:网络设备依据所述转发表项所关联的acl表项,将所述网络侧报文携带的网络侧vlan修改为所述用户侧vlan并通过所述转发表项转发。下面通过步骤3021至步骤3022对步骤302进行详细地说明。步骤3021:网络设备确定与该转发表项关联的acl表项。在一种可选的实现方式中,该转发表项中记录了其所关联的acl表项的表项标识,网络设备可从该转发表项中获取其所关联的acl表项的表项标识。然后,网络设备可依据该表项标识,在acl表中查找该表项标识对应的acl表项。比如,acl表项的表项标识就是acl的匹配项,网络设备可查找匹配项为该表项标识的acl表项,作为与该转发表项关联的acl表项。步骤3022:网络设备依据acl表项,将所述网络侧报文携带的网络侧vlan修改为所述用户侧vlan并通过所述转发表项转发。如上文所示,该转发表项关联的acl表项的动作项:记录了将报文中的vlan修改为与该acl表项对应的用户侧vlan。因此,网络设备可依据acl表项,将所述网络侧报文携带的网络侧vlan修改为所述用户侧vlan。然后,网络设备可将进行了vlan修改的网络侧报文通过转发表项中的出接口转发给上述客户端。由上述描述可知,一方面,由于本申请配置了与各用户侧vlan对应的acl表项,acl表项用于指示将匹配该acl表项的网络侧报文中的vlan修改为该acl表项对应的用户侧vlan,并在接收到来自于客户端的用户侧报文时,将基于用户侧报文学习的转发表项与该用户侧报文携带的vlan对应的acl表项关联,致使在接收到发往该客户端的网络侧报文时,网络设备可以依据该网络侧报文所匹配的转发表项所关联的acl表项,将该网络侧报文中携带的vlan修改为该客户端对应的vlan并依据转发表项转发,从而实现了将网络侧报文发往客户端。另一方面,在现有技术中,通常是在对用户侧报文进行源地址学习得到转发表项后,生成与该转发表项对应的acl表项。这样的不好之处在于,生成acl表项数量与转发表项的表项数量相关,致使网络设备生成大量的acl表项。而由于本申请预先配置了各用户侧vlan对应的acl表项,在接收到用户侧报文后,将学习到的转发表项与对应的acl表项进行关联,所以使得一个acl表项可以关联至少一个转发表项,相比于为每个转发表项配置一个acl表项,本申请这种方式可以有效地节约acl表项所占据的存储资源。下面结合图4,并通过具体的例子,对本申请提供的报文转发方法进行详细地说明。参见图4,图4是本申请一示例性实施例示出的一种报文转发方法的示意图。下面从acl表的形成、以及用户侧报文和网络侧报文的转发两部分对报文转发方法进行详细地说明。1)acl表的形成假设,客户端401与交换机401上的端口g1/0/1连接,客户端402与交换机401上的端口g1/0/2连接,客户端403与交换机上的端口g1/0/3连接。服务器与交换机上的端口g1/0/4连接。假设,端口g1/0/1上配置了用户侧vlan100,配置的vlan映射信息为将用户侧vlan100映射为网络侧vlan10。端口g1/0/2上配置了用户侧vlan200,配置的vlan映射信息为将用户侧vlan200映射为网络侧vlan10;端口g1/0/3上配置了用户侧vlan100,配置的vlan映射信息为将用户侧vlan100映射为网络侧vlan10;端口g1/0/4上配置了网络侧vlan10。此外,在交换机接收到任意端口的vlan映射信息时,交换机可为该vl该任意端口上配置的用户侧vlan分配一个标识。换句话来说,在本申请中,交换机只是为具有vlan映射的用户侧vlan分配标识,不具有vlan映射的用户侧vlan不分配标识。比如,交换机为vlan100分配了class1,为vlan200分配了class2。针对端口g1/0/1,当交换机401接收到为端口g1/0/1配置的vlan映射信息时,交换机401可生成与用户侧vlan100对应的acl表项。该acl表项1的匹配项为class1,动作项为将报文中的vlan修改为vlan100。然后交换机可检测acl表中是否存在与用户侧vlan100对应的acl表项,由于预设acl表中不存在该acl表项,所以将该acl表项添加在acl表中,此时acl表如表3所示。匹配项动作项class1将vlan修改为vlan100表3针对端口g1/0/2,当交换机401接收到为端口g1/0/2配置的vlan映射信息时,交换机401可生成与用户侧vlan200对应的acl表项。网络设备可将vlan200对应的class2作为acl表项的表项标识。此时该acl表项的匹配项为class2,动作项为将报文中的vlan修改为vlan200。然后交换机可检测acl表中是否存在与用户侧vlan200对应的acl表项,由于不存在该acl表项,所以将该acl表项添加在acl表中,此时acl表如表4所示。匹配项动作项class1将vlan修改为vlan100class2将vlan修改为vlan200表4针对端口g1/0/3,当交换机401接收到为端口g1/0/3配置的vlan映射信息时,交换机401可生成与用户侧vlan100对应的acl表项。网络设备可将vlan100对应的class1作为acl表项的表项标识。此时该acl表项的匹配项为class1,动作项为将报文中的vlan修改为vlan100。然后交换机可检测acl表中是否存在与用户侧vlan100对应的acl表项,由于存在该acl表项,所以不将该acl表项添加在acl表中,此时acl表仍如表4所示。2)用户侧报文和网络侧报文的报文转发。2.1)假设客户端401向服务器发送用户侧报文1,用户侧报文1携带了客户端401的mac地址为0000-0000-0001,还携带了用户侧vlan100。当交换机401从端口g1/0/1接收到该客户端401发送的用户侧报文1时,交换机可在用户侧vlan和acl表项标识(即classid)的对应关系中,查找该用户侧报文1携带的用户侧vlan100对应的acl表项标识(即class1)另一方面,交换机401可基于端口g1/0/1上的vlan映射信息,将该用户侧报文1携带的用户侧vlan100修改网络侧vlan10。然后,交换机401可对进行了vlan修改的用户侧报文1进行源地址学习,生成与客户端401的转发表项1。交换机401可将class1写入该生成转发表项1的保留字段中,此时该转发表项1的目的地址为客户端401的mac地址(即0000-0000-0001),出接口为端口g1/0/1,vlan标识为vlan10,保留字段为class1,并将转发表项1添加在转发表中。此时,交换机401上配置的转发表如表5所示。目的地址vlan标识出接口保留字段0000-0000-0001vlan10g1/0/1class1表5当然,在实际应用中,该转发表项还包括其他字段,比如老化字段、状态字段等,这里只是对转发表项进行示例性地说明,不对其进行具体地限定。2.2)假设客户端402向服务器发送用户侧报文2,用户侧报文2携带了客户端402的mac地址为0000-0000-0002,还携带了用户侧vlan200。当交换机401从端口g1/0/2接收到该客户端402发送的用户侧报文2时,交换机可在用户侧vlan和acl表项标识(即classid)的对应关系中,查找该用户侧报文2携带的用户侧vlan200对应的acl表项标识(即class2)另一方面,交换机401可基于端口g1/0/2上的vlan映射信息,将该用户侧报文2携带的用户侧vlan200修改网络侧vlan10。然后,交换机401可对进行了vlan修改的用户侧报文2进行源地址学习,生成与客户端402的转发表项2。交换机401可将class2写入该生成转发表项2的保留字段中,此时该转发表项2的目的地址为客户端402的mac地址(即0000-0000-0002),出接口为端口g1/0/2,vlan标识为vlan10,保留字段为class2,并将转发表项2添加在转发表中。此时,交换机401上配置的转发表如表6所示。目的地址vlan标识出接口保留字段0000-0000-0001vlan10g1/0/1class10000-0000-0002vlan10g1/0/2class2表62.3)假设客户端403向服务器发送用户侧报文3,用户侧报文3携带了客户端403的mac地址为0000-0000-0003,还携带了用户侧vlan100。一方面,当交换机401从端口g1/0/3接收到该客户端403发送的用户侧报文3时,交换机可在用户侧vlan和acl表项标识(即classid)的对应关系中,查找该用户侧报文3携带的用户侧vlan100对应的acl表项标识(即class1)另一方面,交换机401可基于端口g1/0/3上的vlan映射信息,将该用户侧报文3携带的用户侧vlan100修改网络侧vlan10。然后,交换机401可对进行了vlan修改的用户侧报文3进行源地址学习,生成与客户端403的转发表项3。交换机401可将class1写入该生成转发表项3的保留字段中,此时该转发表项3的目的地址为客户端403的mac地址(即0000-0000-0003),出接口为端口g1/0/3,vlan标识为vlan10,保留字段为class1,并将转发表项3添加在转发表中。此时,交换机401上配置的转发表如表7所示。目的地址vlan标识出接口保留字段0000-0000-0001vlan10g1/0/1class10000-0000-0002vlan10g1/0/2class20000-0000-0003vlan10g1/0/3class1表72.4)服务器向客户端401返回网络侧报文1,该网络侧报文1的目的地址为客户端401的地址,携带的网络侧vlan为vlan10。当交换机401从端口g1/0/4接收到服务器发送的网络侧报文1时,交换机401可在表7所示的转发表中,查找目的地址为客户端401的地址(即0000-0000-0001),vlan标识为vlan10的转发表项。查找到的转发表项的出接口为g1/0/1,保留字段为class1。然后,交换机401可在acl表中查找该转发表项关联的acl表项。具体地,交换机401可在表4所示的acl表中,查找匹配项为class1的acl表项。如表4所示,查找到的acl表项的动作项为将vlan修改为vlan100。所以,交换机401可将网络侧报文1携带的网络侧vlan10修改为用户侧vlan100,然后交换机401可将进行了vlan修改的网络侧报文1通过出接口g1/0/1转发给客户端401。2.5)服务器向客户端402返回网络侧报文2,该网络侧报文2的目的地址为客户端402的地址,携带的网络侧vlan为vlan10。当交换机401从端口g1/0/4接收到服务器发送的网络侧报文2时,交换机401可在表7所示的转发表中,查找目的地址为客户端402的地址(即0000-0000-0002),vlan标识为vlan10的转发表项。查找到的转发表项的出接口为g1/0/2,保留字段为class2。然后,交换机401可在acl表中查找该转发表项关联的acl表项。具体地,交换机401可在表4所示的acl表中,查找匹配项为class2的acl表项。如表4所示,查找到的acl表项的动作项为将vlan修改为vlan200。所以,交换机401可将网络侧报文2携带的网络侧vlan10修改为用户侧vlan200,然后交换机401可将进行了vlan修改的网络侧报文2通过出接口g1/0/2转发给客户端402。2.6)服务器向客户端403返回网络侧报文3,该网络侧报文3的目的地址为客户端403的地址,携带的网络侧vlan为vlan10。当交换机401从端口g1/0/4接收到服务器发送的网络侧报文3时,交换机401可在表7所示的转发表中,查找目的地址为客户端403的地址(即0000-0000-0003),vlan标识为vlan10的转发表项。查找到的转发表项的出接口为g1/0/3,保留字段为class1。然后,交换机401可在acl表中查找该转发表项关联的acl表项。具体地,交换机401可在表4所示的acl表中,查找匹配项为class1的acl表项。如表4所示,查找到的acl表项的动作项为将vlan修改为vlan100。所以,交换机401可将网络侧报文3携带的网络侧vlan10修改为用户侧vlan100,然后交换机401可将进行了vlan修改的网络侧报文3通过出接口g1/0/3转发给客户端403。由上述描述可知,一方面,由于本申请配置了与各用户侧vlan对应的acl表项,acl表项用于指示将匹配该acl表项的网络侧报文中的vlan修改为该acl表项对应的用户侧vlan,并在接收到来自于客户端的用户侧报文时,将基于用户侧报文学习的转发表项与该用户侧报文携带的vlan对应的acl表项关联,致使在接收到发往该客户端的网络侧报文时,交换机可以依据该网络侧报文所匹配的转发表项所关联的,将该网络侧报文中携带的vlan修改为该客户端对应的vlan并依据转发表项转发,从而实现了将网络侧报文发往客户端。另一方面,由于本申请预先配置了各用户侧vlan对应的acl表项,在接收到用户侧报文后,将学习到的转发表项与对应的acl表项进行关联,所以使得一个acl表项可以关联至少一个转发表项,相比于为每个转发表项配置一个acl表项,本申请这种方式可以有效地节约acl表项所占据的存储资源。以上是对本申请提供的报文转发方法的示例性介绍。参见图5,图5是本申请一示例性实施例示出的一种网络设备的硬件结构图。该网络设备包括:通信接口501、处理器502、机器可读存储介质503和总线504;其中,通信接口501、处理器502和机器可读存储介质503通过总线504完成相互间的通信。处理器502通过读取并执行机器可读存储介质503中与报文转发控制逻辑对应的机器可执行指令,可执行上文描述的报文转发方法。本文中提到的机器可读存储介质503可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:易失存储器、非易失性存储器或者类似的存储介质。具体地,机器可读存储介质503可以是ram(radomaccessmemory,随机存取存储器)、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。参见图6,图6是本申请一示例性实施例示出的一种报文转发装置的框图。该装置可应用在网络设备上,可包括如下所示单元。确定单元601,用于在通过用户侧端口接收到来自客户端的用户侧报文时,确定预设acl表中的与所述用户侧报文携带的用户侧vlan对应的acl表项的表项标识;关联单元602,用于基于所述用户侧端口上配置的vlan映射信息,将所述用户侧报文携带的用户侧vlan修改为对应的网络侧vlan,并基于修改后的网络侧vlan学习从本网络设备至所述客户端的转发表项,并将所述转发表项与所述acl表项关联;其中,所述acl表项用于指示将发向所述客户端的网络侧报文携带的所述网络侧vlan修改为所述用户侧vlan;发送单元603,用于通过修改后的网络侧vlan对应的端口转发所述用户侧报文。可选的,所述装置还包括:接收单元604,用于在接收到发向所述客户端的网络侧报文时,确定用于转发所述网络侧报文至所述客户端的所述转发表项,并依据所述转发表项所关联的acl表项,将所述网络侧报文携带的网络侧vlan修改为所述用户侧vlan并通过所述转发表项转发。可选的,所述关联单元602,在将所述转发表项与所述acl表项关联时,用于将所述acl表项的表项标识写入至所述转发表项;所述接收单元604,在确定所述转发表项所关联的acl表项时,用于依据所述转发表项记录的表项标识,在所述acl表中查找所述acl表项。可选的,所述关联单元602,在将所述acl表项的表项标识写入至所述转发表项时,用于将所述acl表项的表项标识写入至所述转发表项预保留出的保留字段或者为转发表项扩展出的扩展字段。可选的,所述装置还包括生成单元605,用于接收为任意用户侧端口配置的vlan映射信息;所述vlan映射信息记录了该用户侧端口上配置的用户侧vlan和网络侧vlan的对应关系;生成与该任意用户侧端口上配置的用户侧vlan对应的acl表项,所述acl表项用于指示将匹配该acl表项的网络侧报文的vlan修改为该任意用户侧端口上配置的用户侧vlan;在所述acl表中检查是否存在生成的acl表项;若不存在,则将所述acl表项添加至所述acl表。上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1