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

文档序号:11842430阅读:160来源:国知局
本发明涉及网络通信
技术领域
,特别涉及一种报文转发方法及装置。
背景技术
:二层转发是指当网关设备接收到同网络(同一VLAN)中主机间的互访报文时,网关设备一般通过查找MAC表项指导其进行转发。三层转发是指当网关设备接收到跨网络(不同VLAN)的主机间的互访报文时,网关设备上一般通过查找ARP表项指导进行转发。通常情况下,在二层转发过程中,网关设备根据互访报文学习MAC地址,将学习到的MAC地址存储至MAC表项;在三层转发过程中,网关设备根据互访报文学习IP地址,将学习到的IP地址存储至ARP表项。目前,利用虚拟化技术,将一台物理主机虚拟成多台虚拟机,以提高物理主机使用效率的方法已经普遍使用。但由于每台虚拟机均有自己的独立MAC地址和IP地址,网关设备需要支持越来越多的MAC和ARP表项,才能满足主机之间转发互访报文的需求。现有的方案只能通过提高网关设备的硬件性能,使其能够支持更多MAC和ARP表项,尽管能够满足主机之间转发互访报文的需求,但应用这种方案,导致网关设备的成本很高。技术实现要素:本发明实施例的目的在于提供一种报文转发方法及装置,在满足主机之间转发互访报文的需求的基础上,降低网关设备的成本。为达到上述目的,本发明实施例公开了一种报文转发方法,包括:接收第一以太网报文;确定所述第一以太网报文对应的虚拟路由转发标识;确定所述第一以太网报文的目的IP地址及对应的虚拟路由转发标识匹配于第一转发表项的IP地址和虚拟路由转发标识;验证所述第一以太网报文的虚拟局域网标识和目的MAC地址与所述第一转发表项的虚拟局域网标识和MAC地址一致;通过所述第一转发表项的出端口发送所述第一以太网报文。为达到上述目的,本发明实施例还公开了一种报文转发装置,包括:接收单元,用于接收第一以太网报文;第一转发控制单元,用于确定所述第一以太网报文对应的虚拟路由转发标识;确定所述第一以太网报文的目的IP地址及虚拟路由转发标识匹配于第一转发表项的IP地址和虚拟路由转发标识;验证所述第一以太网报文的虚拟局域网标识和目的MAC地址与所述第一转发表项的虚拟局域网标识和MAC地址一致;发送单元,用于通过所述第一转发表项的出端口发送所述第一以太网报文。由上述方案可见,网关设备中存储通用转发表项(第一转发表项、第二转发表项、第三转发表项),通用转发表项中包括IP地址、VRF标识、MAC地址、VLAN标识及出端口之间的对应关系,当网关设备接收到二层转发的以太网报文或者三层转发的IP报文时,都从该通用转发表项中查找与接收到的报文匹配的表项,通过查找到的表项指导进行转发。也就是说,网关设备中不需要存储MAC表项及ARP表项两种表项,只需要存储该通用转发表项一种表项,即可实现二层转发及三层转发。由此可见,应用本方案,不需要提高网关设备的硬件性能,即可满足主机之间转发互访报文的需求(二层转发需求及三层转发需求),降低了网关设备的成本。当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本发明实施例提供的一种报文转发方法的流程示意图;图2为本发明实施例提供的网络结构示意图;图3为本发明实施例提供的一种报文转发装置的结构示意图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。为了解决现有技术问题,本发明实施例提供了一种报文转发方法及装置,应用于网关设备,该网关设备可以是路由器、交换机等。下面首先对本发明实施例提供的一种报文转发方法进行详细说明。图1为本发明实施例提供的报文转发方法的第一种流程示意图,包括:S101:接收第一以太网报文。以太网报文属于同网络中主机间的互访报文,即二层转发报文。S102:确定所述第一以太网报文对应的虚拟路由转发标识。虚拟路由转发标识,即VRF(VirtualRouteForward)标识。作为本发明的一种实施方式,可以预先设定VLAN标识与VRF标识的对应关系,根据报文的VLAN标识及预先设定的对应关系,确定该报文对应的VRF标识。比如,可以预先设定VLAN标识为VLAN1-4对应的VRF标识为VRF1,VLAN标识为VLAN5-8对应的VRF标识为VRF2。当获取到以太网报文的VLAN标识为VLAN5时,则确定该以太网报文的VRF标识为VRF2。作为本发明的另一种实施方式,还可以预先设定VLAN标识及端口与VRF标识的对应关系,根据报文的VLAN标识及接收该报文的入端口确定该报文对应的VRF标识。比如,可以预先将VLAN标识为VLAN1、入端口为Port1、以及VLAN标识为VLAN2、入端口为Port2对应的VRF标识设定为VRF1,将VLAN标识为VLAN3、入端口为Port3、以及VLAN标识为VLAN4、入端口为Port4对应的VRF标识设定为VRF2。当获取到以太网报文的VLAN标识为VLAN3、入端口为Port3时,则确定该以太网报文的VRF标识为VRF2。S103:确定所述第一以太网报文的目的IP地址及虚拟路由转发标识匹配于第一转发表项的IP地址和虚拟路由转发标识;验证所述第一以太网报文的虚拟局域网标识和目的MAC地址与所述第一转发表项的虚拟局域网标识和MAC地址一致。网关设备中存储有通用转发表项,不同于现有技术中的MAC表项及ARP表项,本发明实施例提供的通用转发表项,既可以实现二层转发,也可以实现三层转发。通用转发表项中存储有IP地址、VRF标识、MAC地址、虚拟局域网(VLAN)标识及出端口之间的对应关系。上述第一转发表项即为通过转发表项。以第一以太网报文的目的IP地址及VRF标识为索引,查找匹配的第一转发表项,也就是说,查找与第一以太网报文的目的IP地址及VRF标识相同的第一表项。判断查找到的第一表项中对应的VLAN标识和MAC地址与该以太网报文的VLAN标识和目的MAC地址是否相同。此步骤可以理解为,对第一以太网报文进行安全检查,如果相同,表示该第一以太网报文是安全的,执行S104。S104:通过所述第一转发表项的出端口发送所述第一以太网报文。如上所述,第一表项中还存储有对应的出端口,当验证以太网报文中包含的信息与第一表项中存储的信息一致时,通过该对应的出端口,发送该以太网报文。另外,在本发明所示实施例中,如果判断查找到的第一表项中对应的VLAN标识和MAC地址与该以太网报文的VLAN标识和目的MAC地址不相同,也就是说该以太网报文未通过安全检查时,可以对该以太网报文进行广播。可以根据该以太网报文的VLAN标识或者VRF标识进行广播,也就是说,可以将该以太网报文广播至与其VLAN标识相同的网络中,也可以将该以太网报文广播至与其VRF标识相同的网络中。当然也可以将该以太网报文丢弃,在些不做限制。如图2所示,假设主机201、202、203为同一VLAN中的主机,与交换机211相连接;主机204、205为同一VLAN中的主机,与交换机212相连接;主机201-203与主机204-205属于同一VRF中的主机,上述主机都与相同的路由器231相连接。路由器241为连接另一个网络的路由器。在图2中,路由器231作为网关设备执行本发明实施例提供的方案。假设主机201需要与主机202进行数据交互,主机201通过交换机211向路由器231发送第一以太网报文。路由器231通过Port1接收主机201发送的第一以太网报文,该第一以太网报文中包含如下信息:目的IP地址为主机202的IP地址:10.1.1.02,VLAN标识为VLAN1,目的MAC地址为主机202的MAC地址:000f-ffff-0002。根据预先设定的VLAN标识与VRF标识的对应关系或者VLAN标识及端口与VRF标识的对应关系,确定该第一以太网报文对应的VRF标识。假设确定的VRF标识为VRF1。假设路由器231中存储了多个第一表项,如表1所示,为了简化说明,表1仅针对路由器231中存储的部分内容进行说明,并不对路由器中存储的内容构成限定。表1IP地址VRF标识VLAN标识MAC地址出端口10.1.1.02VRF1VLAN1000f-ffff-0002Port110.1.1.01VRF1VLAN1000f-ffff-0001Port110.1.1.04VRF1VLAN2000f-ffff-0004Port210.1.1.05VRF1VLAN2000f-ffff-0005Port2以第一以太网报文中的目的IP地址(10.1.1.02)及VRF标识(VRF1),为索引在上述表1中查找匹配的第一转发表项,查找到第一条表项的IP地址、VRF标识与上述索引相同。此时,验证该第一以太网报文中的目的MAC地址与VLAN标识是否与查找到的第一表项的MAC地址与VLAN标识相同,也就是说驿第一以太网报文进行安全检查,如果验证相同,说明检查通过。检查通过后,根据查找到的第一表项中的端口Port1,通过Port1将该第一以太网报文发送至主机202。应用本发明实施例提供的方案,通过MAC地址及VLAN标识对以太网报文进行安全检查,提高了报文转发的安全性。下面对表1中展示的通用转发表项的建立过程进行描述:在本发明所示实施例中,网关设备可以通过对ARP报文的学习建立通用转发表项:网关设备向各个主机发送ARP请求报文,接收到ARP请求报文的主机向该网关设备反馈ARP报文。当网关设备接收到ARP报文时,获取该ARP报文的发送端IP地址、发送端MAC地址、对应的VLAN标识及VRF标识、以及接收该ARP报文的入端口。本领域技术人员可以理解的是,ARP报文中携带有发送端IP地址、发送端MAC地址、对应的VLAN标识。根据网关设备接收该ARP报文的端口,可以获取接收该ARP报文的入端口。在本方案中,可以预先设定VLAN标识与VRF标识的对应关系,根据报文的VLAN标识及预先设定的对应关系,确定该报文对应的VRF标识;也可以预先设定VLAN标识及端口与VRF标识的对应关系,根据报文的VLAN标识及接收该报文的入端口确定该报文对应的VRF标识。通过上述描述,可以获取到该ARP报文的发送端IP地址、发送端MAC地址、对应的VLAN标识及VRF标识、以及接收该ARP报文的入端口。根据获取到的上述信息,生成第二转发表项。需要说明的是,第二转发表项与第一转发表项都表示本发明实施例提供的通用转发表项,都可以为表1中的表项。如图2所示,假设路由器231向主机202发送ARP请求报文,主机202在接收到路由器231发送的APR请求报文后,向路由器231反馈ARP报文,反馈的ARP报文中包括如下信息:发送端IP地址(即主机202的IP地址10.1.1.02)、发送端MAC地址(即主机202的MAC地址000f-ffff-0002)、主机202对应的VLAN标识VLAN1。路由器231通过Port1接收该ARP报文,从该ARP报文中直接获取到发送端IP地址10.1.1.02、发送端MAC地址000f-ffff-0002、VLAN标识VLAN1,另外,获取到该ARP报文的接收端口为Port1。根据预先设定的VLAN标识与VRF标识的对应关系或者VLAN标识及端口与VRF标识的对应关系,确定该ARP报文对应的VRF标识为VRF1。因此,生成的第二转发表项为:IP地址VRF标识VLAN标识MAC地址出端口10.1.1.02VRF1VLAN1000f-ffff-0002Port1同理,假设路由器231分别向主机201、204、205发送ARP请求报文,在接收到主机201、204、205反馈的ARP报文后,建立起表1中的表项。在本发明所示实施例中,网关设备还可以通过对以太网报文的学习建立通用转发表项:假设主机202向路由器231发送第二以太网报文,该第二以太网报文中包含如下信息:源IP地址为主机202的IP地址:10.1.1.02,VLAN标识为VLAN1,源MAC地址为主机202的MAC地址:000f-ffff-0002。根据预先设定的VLAN标识与VRF标识的对应关系或者VLAN标识及端口与VRF标识的对应关系,确定该第二以太网报文对应的VRF标识为VRF1。路由器231通过Port1接收该第二以太网报文,因此,获取该第二以太网报文的接收端口为Port1。根据上述信息,生成的第三转发表项为:IP地址VRF标识VLAN标识MAC地址出端口10.1.1.02VRF1VLAN1000f-ffff-0002Port1同理,路由器231接收到主机201、204、205发送的第二以太网报文后,建立起表1中的表项。需要说明的是,第三转发表项与第一转发表项、第二转发表项都表示本发明实施例提供的通用转发表项,都可以为表1中的表项。作为本发明的一种实施方式,在生成所述第三转发表项之前,可以先验证所述源IP地址所对应的虚拟局域网标识与本地配置的虚拟局域问的标识是否一致;验证所述源IP地址所对应的虚拟路由转发标识与本地配置的虚拟转发实例的标识是否一致。也就是说,在生成第三转发表项之前可以对待生成的第三转发表项进行安全检查,即判断该第二以太网报文中的源IP地址与网关设备本地配置的虚拟局域问的标识是否一致,如果一致,说明该第二以太网报文信息没有异常;如果一致,说明该第二以太网报文的信息异常,此时,不生成第三转发表项。可以理解的是,如果异常,则生成的第三转发表项可能是错误的,会导致后续报文转发错误。因此,在生成第三转发表项之前先进行安全性验证,避免表项建立错误。在本发明所示实施例中,在建立起表1所示的通用转发表项后,当网关设备接收到跨网络的主机间的互访报文(即三层转发的报文)时,需要说明的是,三层转发报文可以为IP报文,下面以IP报文为例进行说明:IP报文中包括目的IP地址。网关设备接收到第一IP报文后,确定该第一IP报文对应的VRF标识。作为本发明的一种实施方式,可以预先设定端口与VRF标识的对应关系,根据接收报文的入端口确定该报文对应的VRF标识。以IP报文的目的IP地址及确定的VRF标识为索引,在网关设备中查找匹配的第一转发表项。第一转发表项中存储有IP地址、VRF标识、MAC地址、虚拟局域网(VLAN)标识及出端口之间的对应关系。将查找到的第一转发表项中包括的VLAN标识和目的MAC地址添加到该IP报文中,这个过程即为将IP报文封装成以太网报文的过程。然后通过第一转发表项中的出端口,发送该封装后的以太网报文。如图2所示,路由器231通过Port1接收到路由器241发送的IP报文,该IP报文中包括目的IP地址10.1.1.02(主机202的IP地址)。根据Port1与VRF1的对应关系,确定该IP报文对应的VRF标识为VRF1。以该IP报文中的目的IP地址(10.1.1.02)及VRF标识(VRF1)为索引,在上述表1中查找匹配的第一转发表项,查找到第一条表项的IP地址、VRF标识与上述索引相同。此时,将查找到的表项中的VLAN标识(VLAN1)、目的MAC地址(000f-ffff-0002)添加到该IP报文中,也就是将该IP报文封装成以太网报文。封装完成后,通过第一表项中的Port1,将该封装后的以太网报文发送给主机202。另外,在建立起表1所示的通用转发表项后,网关设备可以对接收到的同网络中主机间的互访报文(即二层转发报文)进行转发,需要说明的是,二层转发报文可以为以太网报文,网关设备接收到第一以太网报文后执行的步骤已在上述方案中详细说明,在此不做赘述。应用本发明实施例提供的方案,网关设备中存储通用转发表项(第一转发表项、第二转发表项、第三转发表项),通用转发表项中包括IP地址、VRF标识、MAC地址、VLAN标识及出端口之间的对应关系,当网关设备接收到二层转发的以太网报文或者三层转发的IP报文时,都从该通用转发表项中查找与接收到的报文匹配的表项,通过查找到的表项指导进行转发。也就是说,网关设备中不需要存储MAC表项及ARP表项两种表项,只需要存储该通用转发表项一种表项,即可实现二层转发及三层转发。由此可见,应用本方案,不需要提高网关设备的硬件性能,即可满足主机之间转发互访报文的需求(二层转发需求及三层转发需求),降低了网关设备的成本。与上述的方法实施例相对应,本发明实施例还提供一种报文转发装置。图3为本发明实施例提供的一种报文转发装置的结构示意图,应用于网关设备300,网关设备300包括转发芯片310、处理器Processor320、存储模块Storage330;其中,转发芯片310中包括接收单元311、第一转发控制单元312、发送单元313;存储模块330中包括第二转发控制单元。接收单元311,用于接收第一以太网报文;第一转发控制单元312,用于确定所述第一以太网报文对应的虚拟路由转发标识;确定所述第一以太网报文的目的IP地址及虚拟路由转发标识匹配于第一转发表项的IP地址和虚拟路由转发标识;验证所述第一以太网报文的虚拟局域网标识和目的MAC地址与所述第一转发表项的虚拟局域网标识和MAC地址一致;发送单元313,用于通过所述第一转发表项的出端口发送所述第一以太网报文。在本发明所示实施例中,接收单元311,还可以用于接收第一IP报文;第一转发控制单元312,还可以用于确定所述第一IP报文对应的虚拟路由转发标识;确定收到的第一IP报文的目的IP地址及其虚拟路由转发标识匹配于所述第一转发表项的IP地址和虚拟路由转发标识;对所述第一IP报文进行以太网封装;其中封装后的以太网报文的虚拟局域网标识和目的MAC地址分别对应于所述第一转发表项的虚拟局域网标识和MAC地址;发送单元313,还可以用于通过所述第一转发表项的出端口发送封装后的以太网报文。在本发明所示实施例中,接收单元311,还可以用于接收ARP报文;所述装置还可以包括:第二转发控制单元,用于获取所述ARP报文的发送端IP地址和发送端MAC地址;获取所述ARP报文对应的虚拟局域网标识及虚拟路由转发标识;获取所述ARP报文的接收端口;生成第二转发表项;其中第二转发表项的IP地址和虚拟路由转发标识为所述发送端IP地址以及所述发送端IP地址对应的虚拟路由转发标识,所述第二转发表项的虚拟局域网标识、MAC地址以及出端口分别为所述ARP报文对应的虚拟局域网标识、所述发送端MAC地址以及所述ARP报文的接收端口。需要说明的是,网关设备300通过转发芯片310接收到ARP报文后,将该ARP报文上送到Processor320,Processor调用程序处理生成软件存储的表项,并同步到转发芯片310。在本发明所示实施例中,根据ARP报文生成第二转发表项可以由Processor320中的第二转发控制单元来执行。在本发明所示实施例中,接收单元311,还可以用于接收第二以太网报文;第一转发控制单元313,还可以用于获取所述第二以太网报文的源IP地址和源MAC地址;获取所述第二以太网报文的虚拟局域网标识及虚拟路由转发标识;获取所述第二以太网报文的接收端口;生成第三转发表项;其中第三转发表项的IP地址和虚拟路由转发标识是所述源IP地址以及所述第二以太网报文的对应的虚拟路由转发标识,所述第三转发表项的虚拟局域网标识、MAC地址以及出端口分别是所述第二以太网报文的对应的虚拟局域网标识、所述源MAC地址以及所述第二以太网报文的接收端口。在本发明所示实施例中,第一转发控制单元313,还可以用于验证所述源IP地址所对应的虚拟局域网标识与本地配置的虚拟局域问的标识一致;验证所述源IP地址所对应的虚拟路由转发标识与本地配置的虚拟转发实例的标识一致。应用本发明图3所示实施例,网关设备中存储通用转发表项(第一转发表项、第二转发表项、第三转发表项),通用转发表项中包括IP地址、VRF标识、MAC地址、VLAN标识及出端口之间的对应关系,当网关设备接收到二层转发的以太网报文或者三层转发的IP报文时,都从该通用转发表项中查找与接收到的报文匹配的表项,通过查找到的表项指导进行转发。也就是说,网关设备中不需要存储MAC表项及ARP表项两种表项,只需要存储该通用转发表项一种表项,即可实现二层转发及三层转发。由此可见,应用本方案,不需要提高网关设备的硬件性能,即可满足主机之间转发互访报文的需求(二层转发需求及三层转发需求),降低了网关设备的成本。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。本领域普通技术人员可以理解实现上述方法实施方式中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机可读取存储介质中,这里所称得的存储介质,如:ROM/RAM、磁碟、光盘等。以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1