本申请涉及通信
技术领域:
,尤其涉及一种报文传输方法和装置。
背景技术:
:随着技术的发展,运营商基于网络为家庭用户提供了更多业务类型,这些业务类型可以如因特网ip业务、vod(videoondemand,视频点播)业务、voip(voiceoverinternetprotocol,网络电话)业务等,这些业务都集合到家庭网关。家庭网关通常会为不同的业务类型分配不同的vlan(virtuallocalareanetwork,虚拟局域网),而在与家庭网关连接的接入层交换机上,需要通过不同的vlan来隔离每个用户的数据,所需要使用的vlan数量非常大。此外,在与接入层交换机连接的汇聚层交换机上,由于可以提供的vlan数量比较有限,因此,汇聚层交换机会进行vlan的汇聚,即进行n:1的vlan映射。技术实现要素:本申请提供一种报文传输方法,应用于网络设备,所述方法包括:通过上行端口接收到数据报文;若所述数据报文的目的mac地址为本设备的mac地址,则通过所述数据报文的目的ip地址查询硬件表,得到与所述目的ip地址对应的硬件表项;其中,所述硬件表项包括ip地址、cvlan、mac地址、出端口的对应关系;将所述数据报文中的svlan修改为所述硬件表项中的cvlan,并将所述数据报文中的目的mac地址修改为所述硬件表项中的mac地址;通过所述硬件表项中的出端口发送修改后的数据报文。本申请提供一种报文传输装置,应用于网络设备,所述装置包括:接收模块,用于通过上行端口接收到数据报文;获取模块,用于当数据报文的目的mac地址为本设备的mac地址时,通过所述数据报文的目的ip地址查询硬件表,得到与所述目的ip地址对应的硬件表项;所述硬件表项包括ip地址、cvlan、mac地址、出端口的对应关系;修改模块,用于将数据报文中的svlan修改为硬件表项中的cvlan,并将所述数据报文中的目的mac地址修改为所述硬件表项中的mac地址;发送模块,用于通过所述硬件表项中的出端口发送修改后的数据报文。基于上述技术方案,本申请实施例中,在n:1的vlan映射组网中,网络设备在通过上行端口接收到数据报文后,是通过该数据报文的目的ip地址查询硬件表(如fib(forwardinformationbase,转发信息库)表、路由表等),这样,是通过三层转发实现数据报文的传输,因此可以将数据报文中的svlan修改为cvlan,实现n:1的vlan映射的下行转发,即实现数据报文转发。附图说明为了更加清楚地说明本申请实施例或者现有技术中的技术方案,下面将对本申请实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本申请实施例的这些附图获得其他的附图。图1是本申请一种实施方式中的进行n:1的vlan映射的组网示意图;图2是本申请一种实施方式中的报文传输方法的流程图;图3是本申请一种实施方式中的报文传输装置的结构图;图4是本申请一种实施方式中的网络设备的硬件结构图。具体实施方式在本申请实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本申请。本申请和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。应当理解,尽管在本申请实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。参见图1所示,为本申请实施例中的进行n:1的vlan映射的组网示意图。在每个家庭网关上,可以将因特网ip业务(可以由pc(personalcomputer,个人计算机)实现)划分到vlan1,并将vod业务(可以由vod设备实现)划分到vlan2,并将voip业务(可以由voip设备实现)划分到vlan3。在接入层交换机(可以称为楼道交换机)上,为了隔离不同家庭网关的同类业务,可以将每个家庭网关的每种业务均划分到不同vlan,即进行1:1的vlan映射。例如,将家庭网关1301的vlan1映射到vlan101,将家庭网关1302的vlan1映射到vlan102,以此类推。将家庭网关1301的vlan2映射到vlan201,将家庭网关1302的vlan2映射到vlan202,以此类推。将家庭网关1301的vlan3映射到vlan301,将家庭网关1302的vlan3映射到vlan302,以此类推。可以看出,接入层交换机使用的vlan数量非常大。在汇聚层交换机(可以称为园区交换机)上,由于汇聚层交换机可以提供的vlan数量有限,为节省vlan资源,可以进行vlan汇聚,将所有家庭网关的同类业务划分到相同vlan,即进行n:1的vlan映射。例如,将因特网ip业务对应的所有vlan(如vlan101-vlan200)映射到vlan501,将vod业务对应的所有vlan(如vlan201-vlan300)映射到vlan502,将voip业务对应的所有vlan(如vlan301-vlan400)映射到vlan503,这样,汇聚层交换机只需要提供3个vlan(vlan501、vlan502和vlan503)即可。在汇聚层交换机上,可以将用户侧的vlan(如上述的vlan101-vlan200、vlan201-vlan300、vlan301-vlan400等)称为cvlan(customervirtuallocalareanetwork,用户虚拟局域网),将网络侧的vlan(如上述的vlan501、-vlan503)称为svlan(servicevirtuallocalareanetwork,服务虚拟局域网)。在汇聚层交换机上,可以将用户侧发送给网络侧的报文称为上行报文(如pc1001通过汇聚层交换机发送给internet的报文),可以将网络侧发送给用户侧的报文称为下行报文(如internet通过汇聚层交换机发送给pc1001的报文)。在汇聚层交换机上,可以将与用户侧连接的端口(即汇聚层交换机与接入层交换机连接的端口)称为下行端口(如端口a和端口b);将与网络侧连接的端口(即汇聚层交换机与核心层交换机连接的端口)称为上行端口(如端口c)。在汇聚层交换机上,上行端口所在的vlan就是svlan,下行端口所在的vlan就是cvlan。而且,汇聚层交换机可以保存有cvlan与svlan的对应关系,该对应关系可以由网络管理员配置,也可以从网管系统的指令中获得。例如,保存vlan101-vlan200与vlan501的对应关系,vlan201-vlan300与vlan502的对应关系,vlan301-vlan400与vlan503的对应关系。在一个例子中,汇聚层交换机在通过下行端口(如端口a或者端口b)接收到上行报文后,通过上行报文中的cvlan查询上述对应关系,就可以查询到与cvlan对应的svlan,将上行报文中的cvlan替换为查询到的svlan,并通过该svlan对应的端口发送上行报文,从而实现上行报文的传输。在一个例子中,汇聚层交换机在通过上行端口(如端口c)接收到下行报文后,需要将该下行报文中的svlan替换为cvlan,但是,由于下行报文中的svlan对应多个cvlan,如vlan501对应vlan101-vlan200,因此,为了确定下行报文中的svlan对应的cvlan,本申请实施例中提出一种报文传输方法,该方法可以应用于网络设备,如上述的汇聚层交换机,网络设备可以通过三层转发实现数据报文的传输,并将数据报文中的svlan修改为cvlan。本申请实施例中,网络设备可以创建硬件表和软件表,网络设备可以将硬件表存储到转发芯片,并可以将软件表存储在内存。其中,硬件表中的每个表项可以称为硬件表项,参见表1所示,该硬件表项的匹配项可以包括ip地址,动作项可以包括cvlan、mac地址、出端口。此外,软件表中的每个表项可以称为软件表项,参见表2所示,该软件表项的匹配项可以包括ip地址和mac地址,动作项可以包括cvlan和出端口。进一步的,硬件表项和软件表项的区别在于:硬件表项的匹配项只包括ip地址,而不包括mac地址,因此可以使用报文的目的ip地址查询硬件表项,即基于硬件表项的转发可以是三层转发;此外,软件表项的匹配项包括ip地址和mac地址,因此,可以使用报文的目的mac地址查询软件表项,即基于软件表项的转发可以是二层转发。表1ip地址vlanmac地址出端口…………表2mac地址ip地址vlan出端口…………在一个例子中,上述硬件表可以是fib表、路由表等,可以利用网络设备的转发芯片集成硬件表,继而可以基于此硬件表实现下行数据报文的转发。在一个例子中,针对硬件表和软件表的维护过程,可以包括如下过程:网络设备在通过下行端口接收到arp报文后,在软件表中更新该arp报文对应的软件表项,并在硬件表中更新该arp报文对应的硬件表项。其中,该软件表项的匹配项包括该arp报文的源ip地址、该arp报文的源mac地址,该软件表项的动作项包括该arp报文携带的cvlan、所述下行端口。该硬件表项的匹配项包括该arp报文的源ip地址,该硬件表项的动作项包括该arp报文携带的cvlan、该arp报文的源mac地址、所述下行端口。其中,该arp报文可以包括但不限于arp请求报文、arp响应报文、免费arp报文等,对于这些类型的arp报文,网络设备执行“在软件表中更新该arp报文对应的软件表项,并在硬件表中更新该arp报文对应的硬件表项”的过程类似,为方便描述,后续以arp报文是arp请求报文为例进行说明。参见图1所示,为了使pc1001能够访问internet,会在pc1001配置网关ip地址,且pc1001可以通过发送arp请求报文,来获取该网关mac地址,从而基于网关ip地址和网关mac地址访问internet。在图1中,核心层交换机1601就是pc1001的网关,因此,pc1001可以发送arp请求报文,该arp请求报文的源ip地址为pc1001的ip地址,源mac地址为pc1001的mac地址,目的ip地址为核心层交换机1601的ip地址,目的mac地址为广播mac地址。进一步的,家庭网关1301在接收到arp请求报文后,根据该arp请求报文更新本地arp表项,对此更新过程不再赘述,然后在该arp请求报文中添加vlan1,并将携带vlan1的arp请求报文发送给接入层交换机1401。接入层交换机1401在接收到arp请求报文后,根据该arp请求报文更新本地arp表项,对此更新过程不再赘述,然后将该arp请求报文中携带的vlan1修改为vlan101,并将携带vlan101的arp请求报文发送给汇聚层交换机1501。进一步的,汇聚层交换机1501(即上述网络设备)在通过下行端口(即端口a)接收到arp请求报文后,在软件表(如arp表)中更新该arp请求报文对应的软件表项,并在硬件表中更新该arp请求报文对应的硬件表项。在一个例子中,软件表项中还可以包括老化定时器,在软件表中更新该arp请求报文对应的软件表项可以是指:若软件表中不存在与arp请求报文对应的软件表项(即不存在与该arp请求报文的源mac地址或者源ip地址对应的软件表项),则可以在软件表中添加软件表项,该软件表项的匹配项包括该arp请求报文的源ip地址和源mac地址,该软件表项的动作项包括该arp请求报文携带的cvlan、所述下行端口,并为该软件表项设置老化定时器,如表3所示(其中未示出老化定时器)。若软件表中存在与arp请求报文对应的软件表项,则更新该arp请求报文对应的软件表项的老化定时器的老化时间。其中,在软件表项的老化定时器超时时,还可以从软件表中删除该软件表项。在一个例子中,硬件表项中还可以包括老化定时器,在硬件表中更新该arp请求报文对应的硬件表项可以是指:若硬件表中不存在与arp请求报文对应的硬件表项(即不存在与该arp请求报文的源ip地址对应的硬件表项),则可以在硬件表中添加硬件表项,该硬件表项的匹配项包括该arp请求报文的源ip地址,该硬件表项的动作项包括该arp请求报文携带的cvlan、该arp请求报文的源mac地址、所述下行端口,并为该硬件表项设置老化定时器,如表4所示(其中未示出老化定时器)。若硬件表中存在与arp请求报文对应的硬件表项,则更新该arp请求报文对应的硬件表项的老化定时器的老化时间。其中,在硬件表项的老化定时器超时时,还可以从硬件表中删除该硬件表项。表3mac地址ip地址vlan出端口pc1001的mac地址pc1001的ip地址vlan101端口a…………表4ip地址vlanmac地址出端口pc1001的ip地址vlan101pc1001的mac地址端口a…………基于上述过程,汇聚层交换机1501就可以更新pc1001的软件表项和硬件表项,采用同样的实现方式,汇聚层交换机1501还可以更新vod设备1101的软件表项和硬件表项,更新voip设备1201的软件表项和硬件表项,更新pc1002的软件表项和硬件表项,以此类推,从而完成各终端设备的表项更新过程。在一个例子中,汇聚层交换机1501在通过端口a接收到arp请求报文后,还可以将该arp请求报文中携带的vlan101修改为vlan501,并通过接口c将携带vlan501的arp请求报文发送给核心层交换机1601。其中,将arp请求报文中携带的vlan101修改为vlan501的原因是:汇聚层交换机会将因特网ip业务对应的所有vlan(如vlan101-vlan200)均映射到vlan501。核心层交换机1601在接收到arp请求报文后,根据arp请求报文更新本地arp表项,对此更新过程不再赘述。然后,由于该arp请求报文的目的ip地址是核心层交换机1601的ip地址,因此,核心层交换机1601会发送arp响应报文,该arp响应报文的源ip地址为核心层交换机1601的ip地址,源mac地址为核心层交换机1601的mac地址,目的ip地址为pc1001的ip地址,目的mac地址为pc1001的mac地址。此外,该arp响应报文在经过汇聚层交换机1501、接入层交换机1401、家庭网关1301后,可以被传输给pc1001,至此,pc1001可以从arp响应报文中解析出核心层交换机1601的mac地址。考虑到用户侧的每个终端设备都会向核心层交换机1601发送arp请求报文,上述方式会导致汇聚层交换机1501与核心层交换机1601之间传输大量arp请求报文,影响带宽和设备性能。因此,在另一个例子中,汇聚层交换机1501可以代替核心层交换机1601向终端设备返回arp应答报文,从而减少汇聚层交换机1501与核心层交换机1601之间的arp请求报文传输数量,节省带宽,并提高设备处理性能。为了实现上述代答功能,则汇聚层交换机在通过下行端口接收到arp请求报文后,还可以通过该arp请求报文的目的ip地址查询软件表,得到与该目的ip地址对应的软件表项,该软件表项可以包括ip地址、mac地址、svlan和出端口的对应关系。然后,汇聚层交换机生成针对该arp请求报文的arp响应报文,并通过所述下行端口发送该arp响应报文。其中,该arp响应报文的源mac地址可以为软件表项中的mac地址,即核心层交换机的mac地址。其中,汇聚层交换机在通过下行端口接收到arp请求报文之后,还可以先判断软件表中是否存在与该arp请求报文的目的ip地址对应的软件表项。如果存在,则从该软件表项中解析出svlan,若该svlan是该arp请求报文携带的cvlan所对应的映射vlan,则汇聚层交换机采用代答功能,执行“生成针对该arp请求报文的arp响应报文,并通过所述下行端口发送该arp响应报文”的过程。若该svlan不是该arp请求报文携带的cvlan所对应的映射vlan,则汇聚层交换机不采用代答功能,采用传统流程进行处理。如果不存在,则汇聚层交换机确定arp请求报文携带的cvlan对应的映射vlan,即svlan,并通过该svlan对应的上行端口发送arp请求报文,该arp请求报文的源ip地址为本设备的ip地址,源mac地址为本设备的mac地址,目的ip地址为核心层交换机的ip地址(即汇聚层交换机接收到的arp请求报文的目的ip地址)。核心层交换机在接收到该arp请求报文后,可以向汇聚层交换机返回arp响应报文,且汇聚层交换机可以在软件表中添加软件表项,该软件表项可以包括ip地址(核心层交换机的ip地址)、mac地址(核心层交换机的mac地址)、该svlan和出端口(即该上行端口)的对应关系。然后,基于这个软件表项(也就是与汇聚层交换机接收到的arp请求报文对应的软件表项),汇聚层交换机可以采用代答功能,执行“生成针对该arp请求报文的arp响应报文,并通过所述下行端口发送该arp响应报文”的过程。例如,汇聚层交换机1501在通过端口a接收到arp请求报文后,先通过该arp请求报文的目的ip地址(即核心层交换机1601的ip地址)查询软件表。若软件表中存在与该目的ip地址对应的软件表项,如表5所示的软件表存在与该目的ip地址对应的软件表项,则生成针对arp响应报文,该arp响应报文的源ip地址为核心层交换机1601的ip地址,源mac地址为核心层交换机1601的mac地址,目的ip地址为pc1001的ip地址,目的mac地址为pc1001的mac地址,并通过端口a发送该arp响应报文。进一步的,该arp响应报文在经过接入层交换机1401、家庭网关1301后,可以被传输给pc1001,至此,pc1001可以从arp响应报文中解析出核心层交换机1601的mac地址。表5mac地址ip地址vlan出端口pc1001的mac地址pc1001的ip地址vlan101端口a核心层交换机1601的mac地址核心层交换机1601的ip地址vlan501端口c…………若软件表中不存在与该目的ip地址对应的软件表项,如表3所示的软件表不存在与该目的ip地址对应的软件表项,则确定arp请求报文携带的vlan101对应的映射vlan,即vlan501,并通过vlan501对应的端口c发送arp请求报文,该arp请求报文的源ip地址为汇聚层交换机1501的ip地址,源mac地址为汇聚层交换机1501的mac地址,目的ip地址为核心层交换机1601的ip地址。汇聚层交换机1501在接收到针对该arp请求报文的arp响应报文后,根据该arp响应报文在软件表中添加软件表项,如表5所示。然后,基于这个软件表项,汇聚层交换机1501生成针对arp响应报文,该arp响应报文的源ip地址为核心层交换机1601的ip地址,源mac地址为核心层交换机1601的mac地址,目的ip地址为pc1001的ip地址,目的mac地址为pc1001的mac地址,并通过端口a发送该arp响应报文。进一步的,该arp响应报文在经过接入层交换机1401、家庭网关1301后,可以被传输给pc1001,至此,pc1001可以从arp响应报文中解析出核心层交换机1601的mac地址。基于上述过程,汇聚层交换机1501就可以将arp响应报文发送给pc1001,以使pc1001从arp响应报文中解析出核心层交换机1601的mac地址,并根据核心层交换机1601的mac地址访问网络,从而实现pc1001的访问过程。在一个例子中,为了使汇聚层交换机1501能够基于硬件表项进行三层转发,也就是基于目的ip地址查询硬件表项,而不是基于目的mac地址查询硬件表项,则在本申请实施例中,汇聚层交换机1501在接收到核心层交换机1601发送的arp请求报文后,可以利用本设备的ip地址和mac地址,生成arp应答报文,并将该arp应答报文发送给核心层交换机1601,以对终端设备的arp请求报文进行代答。为了实现上述代答功能,汇聚层交换机在通过上行端口接收到arp请求报文后,通过arp请求报文的目的ip地址查询软件表;若软件表中存在与该目的ip地址对应的软件表项,则生成针对arp请求报文的arp响应报文,并通过该上行端口发送该arp响应报文。其中,该arp响应报文的源mac地址为本设备的mac地址,该arp响应报文的源ip为该arp请求报文的目的ip地址。其中,汇聚层交换机在通过上行端口接收到arp请求报文之后,还可以先判断软件表中是否存在与该arp请求报文的目的ip地址对应的软件表项。如果存在,则从该软件表项(用于记录终端设备的ip地址、终端设备的mac地址、终端设备对应的vlan)中解析出cvlan,若该arp请求报文携带的svlan是该cvlan所对应的映射vlan,则汇聚层交换机采用代答功能,执行“生成针对arp请求报文的arp响应报文,并通过该上行端口发送该arp响应报文”的过程。若该arp请求报文携带的svlan不是该cvlan所对应的映射vlan,则汇聚层交换机不采用代答功能,采用传统流程进行处理。如果不存在,则汇聚层交换机确定该arp请求报文携带的svlan对应的所有cvlan,针对每个cvlan,则可以在该cvlan对应的下行端口发送携带该cvlan的arp请求报文,该arp请求报文的源ip地址为本设备的ip地址,源mac地址为本设备的mac地址,目的ip地址为终端设备的ip地址(即汇聚层交换机接收到的arp请求报文的目的ip地址)。终端设备在接收到该arp请求报文后,若arp请求报文的目的ip地址为本终端设备的ip地址,则可以向汇聚层交换机返回arp响应报文。汇聚层交换机在接收到arp响应报文后,可以执行“在通过下行端口接收到arp响应报文后,在软件表中更新该arp响应报文对应的软件表项,并在硬件表中更新该arp响应报文对应的硬件表项”的操作。然后,基于这个软件表项(也就是与汇聚层交换机接收到的arp请求报文对应的软件表项),汇聚层交换机采用代答功能,执行“生成针对arp请求报文的arp响应报文,并通过该上行端口发送该arp响应报文”的过程。例如,汇聚层交换机1501在通过端口c接收到arp请求报文后,先通过该arp请求报文的目的ip地址(如pc1001的ip地址)查询软件表。若软件表中存在与该目的ip地址对应的软件表项,如表5所示的软件表存在与该目的ip地址对应的软件表项,则从该软件表项中解析出vlan101,由于该arp请求报文携带的vlan501是vlan101对应的映射vlan,因此汇聚层交换机1501采用代答功能,通过端口c发送arp响应报文,该arp响应报文的源mac地址为汇聚层交换机1501的mac地址,源ip地址为pc1001的ip地址,目的ip地址为核心层交换机1601的ip地址,目的mac地址为核心层交换机1601的mac地址。核心层交换机1601在接收到该arp响应报文后,会认为pc1001的ip地址与汇聚层交换机1501的mac地址是同一个设备的。若软件表中不存在与该目的ip地址对应的软件表项,则确定该arp请求报文携带的vlan501对应的所有cvlan,即vlan101-vlan200,在vlan101对应的端口a发送携带vlan101的arp请求报文,在vlan102对应的端口a发送携带vlan102的arp请求报文,以此类推,在vlan200对应的端口b发送携带vlan200的arp请求报文。arp请求报文的源ip地址为本设备的ip地址,源mac地址为本设备的mac地址,目的ip地址为pc1001的ip地址。对于pc1001之外的其它终端设备,在接收到该arp请求报文后,会直接丢弃该arp请求报文。而pc1001在接收到该arp请求报文后,可以向汇聚层交换机返回arp响应报文。汇聚层交换机1501在接收到该arp响应报文后,在软件表中更新该arp响应报文对应的软件表项,并在硬件表中更新该arp响应报文对应的硬件表项,对此过程不再赘述。然后,汇聚层交换机1501可以通过端口c发送arp响应报文,该arp响应报文的源mac地址为汇聚层交换机1501的mac地址,源ip地址为pc1001的ip地址,目的ip地址为核心层交换机1601的ip地址,目的mac地址为核心层交换机1601的mac地址。基于上述过程,核心层交换机1601可以学习到汇聚层交换机1501的mac地址、pc1001的ip地址的对应关系,并基于此对应关系发送数据报文。参见图2所示,为本申请实施例提出的报文传输方法的流程图,该方法可以应用于网络设备(如上述汇聚层交换机),且以网络设备接收到下行数据报文为例,对于网络设备接收到上行数据报文的处理过程,在此不再赘述。步骤201,通过上行端口接收到数据报文。步骤202,若该数据报文的目的mac地址为本设备的mac地址,则通过该数据报文的目的ip地址查询硬件表,得到与该目的ip地址对应的硬件表项。其中,该硬件表项包括ip地址、cvlan、mac地址、出端口的对应关系。步骤203,将该数据报文中的svlan修改为该硬件表项中的cvlan,并将该数据报文中的目的mac地址修改为该硬件表项中的mac地址。步骤204,通过该硬件表项中的出端口发送修改后的数据报文。参见图1所示,当internet有发送给pc1001的数据报文时,核心层交换机1601在接收到该数据报文(目的ip地址为pc1001的ip地址)后,由于核心层交换机1601记录有汇聚层交换机1501的mac地址与pc1001的ip地址的对应关系,因此核心层交换机1601向汇聚层交换机1501发送的数据报文,目的ip地址为pc1001的ip地址,目的mac地址为汇聚层交换机1501的mac地址。汇聚层交换机1501通过端口c(即上行端口)接收到数据报文后,由于该数据报文的目的mac地址为本设备的mac地址,因此通过该数据报文的目的ip地址(pc1001的ip地址)查询表4所示的硬件表,得到与该目的ip地址对应的硬件表项,该硬件表项包括pc1001的ip地址、vlan101、pc1001的mac地址、端口a的对应关系。然后,汇聚层交换机1501将该数据报文中的svlan修改为vlan101,并将该数据报文中的目的mac地址修改为pc1001的mac地址,并通过端口a发送修改后的数据报文。其中,修改后的数据报文的目的mac地址为pc1001的mac地址,目的ip地址为pc1001的ip地址,且携带vlan101。数据报文在经过接入层交换机1401和家庭网关1301后,可以被传输至pc1001,至此成功将数据报文发送给pc1001。在汇聚层交换机1501上,目的mac地址为本设备的mac地址的原因是:转发芯片在接收到数据报文后,如果目的mac地址不是本设备的mac地址,则会基于目的mac地址查询硬件表,即使硬件表中存在与该目的mac地址对应的硬件表项,转发芯片也只是支持通过出端口发送数据报文,但是不支持将数据报文中的svlan修改为硬件表项中的cvlan。因此,在采用本申请实施例的上述方案后,转发芯片在接收到数据报文后,由于目的mac地址是本设备的mac地址,因此,转发芯片会基于目的ip地址查询硬件表,这样,如果硬件表中存在与该目的ip地址对应的硬件表项,则转发芯片就可以支持将数据报文中的svlan修改为硬件表项中的cvlan,从而实现数据报文的传输。在上述方式下,汇聚层交换机1501在接收到数据报文后,是基于三层转发实现数据报文传输,但是与传统的三层转发不同,本申请实施例中是使用三层转发模拟二层转发。而且,在实际应用中,若是三层转发,则汇聚层交换机1501需要对数据报文的ttl(timetolive,生存时间值)进行修改,若是二层转发,则汇聚层交换机1501不需要对数据报文的ttl进行修改。综上所述,由于本申请实施例中是使用三层转发模拟二层转发,因此汇聚层交换机1501不需要对数据报文的ttl进行修改,为了实现上述功能,则:上述与数据报文的目的ip地址对应的硬件表项中,还可以包括特定标记,且该特定标记用于指示不进行ttl修改。基于此,在通过数据报文的目的ip地址查询硬件表,得到与该目的ip地址对应的硬件表项之后,若该硬件表项包括所述特定标记,则根据所述特定标记确定不对数据报文的ttl进行修改。基于上述技术方案,本申请实施例中,网络设备在通过上行端口接收到数据报文后,是通过该数据报文的目的ip地址查询硬件表,这样,是通过三层转发实现数据报文的传输,因此可以将数据报文中的svlan修改为cvlan,实现n:1的vlan映射的下行转发,即实现数据报文转发。基于与上述方法同样的申请构思,本申请实施例中还提出一种报文传输装置,所述报文传输装置可以应用于网络设备,如图3所示,为本申请实施例提出的报文传输装置的结构图,所述报文传输装置可以包括:接收模块301,用于通过上行端口接收到数据报文;获取模块302,用于当所述数据报文的目的mac地址为本设备的mac地址时,通过所述数据报文的目的ip地址查询硬件表,得到与所述目的ip地址对应的硬件表项;所述硬件表项包括ip地址、cvlan、mac地址、出端口的对应关系;修改模块303,用于将所述数据报文中的svlan修改为硬件表项中的cvlan,并将所述数据报文中的目的mac地址修改为所述硬件表项中的mac地址;发送模块304,用于通过所述硬件表项中的出端口发送修改后的数据报文。在一个例子中,所述报文传输装置还包括(在图中未示出):更新模块,用于在通过下行端口接收到arp报文后,在软件表中更新所述arp报文对应的软件表项,并在硬件表中更新所述arp报文对应的硬件表项;其中,所述软件表项的匹配项包括所述arp报文的源ip地址、所述arp报文的源mac地址,动作项包括所述arp报文携带的cvlan、所述下行端口;所述硬件表项的匹配项包括所述arp报文的源ip地址,动作项包括所述arp报文携带的cvlan、所述arp报文的源mac地址、所述下行端口。所述获取模块302,还用于在通过下行端口接收到arp请求报文后,通过所述arp请求报文的目的ip地址查询软件表,得到与所述目的ip地址对应的软件表项;其中,所述软件表项包括ip地址、mac地址和出端口的对应关系;所述发送模块304,还用于生成针对所述arp请求报文的arp响应报文,并通过所述下行端口发送所述arp响应报文;其中,所述arp响应报文的源mac地址为所述软件表项中的mac地址;进一步的,所述软件表项还可以包括svlan,所述发送模块304,还用于在生成针对arp请求报文的arp响应报文的过程中,若所述svlan是所述arp请求报文携带的cvlan对应的映射vlan,则生成针对所述arp请求报文的arp响应报文。所述发送模块304,还用于当不存在与所述目的ip地址对应的软件表项时,则确定所述arp请求报文携带的cvlan对应的svlan,并通过所述svlan对应的上行端口发送arp请求报文,所述arp请求报文的源mac地址为本设备的mac地址;所述更新模块,还用于在通过所述上行端口接收到针对所述arp请求报文的arp响应报文后,在软件表中更新所述arp响应报文对应的软件表项。所述发送模块304,还用于在通过上行端口接收到arp请求报文后,通过所述arp请求报文的目的ip地址查询软件表;若所述软件表中存在与所述目的ip地址对应的软件表项,则生成针对所述arp请求报文的arp响应报文,并通过所述上行端口发送所述arp响应报文;其中,所述arp响应报文的源mac地址为本设备的mac地址;进一步,所述软件表项包括ip地址、mac地址、cvlan和出端口的对应关系;所述发送模块304,还用于在生成针对所述arp请求报文的arp响应报文的过程中,若所述arp请求报文携带的svlan是所述软件表项中的cvlan所对应的映射vlan,则生成针对所述arp请求报文的arp响应报文。本申请实施例提供的网络设备,从硬件层面而言,硬件架构示意图具体可以参见图4所示。包括:机器可读存储介质和处理器,其中:机器可读存储介质:存储指令代码。处理器:与机器可读存储介质通信,读取和执行机器可读存储介质中存储的所述指令代码,实现本申请上述示例公开的报文传输操作。这里,机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:ram(radomaccessmemory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。当前第1页12