CN104079478A - 报文转发方法和装置 - Google Patents
报文转发方法和装置 Download PDFInfo
- Publication number
- CN104079478A CN104079478A CN201310096538.2A CN201310096538A CN104079478A CN 104079478 A CN104079478 A CN 104079478A CN 201310096538 A CN201310096538 A CN 201310096538A CN 104079478 A CN104079478 A CN 104079478A
- Authority
- CN
- China
- Prior art keywords
- main frame
- route
- message
- chip
- physics
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/54—Organization of routing tables
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/28—Routing or path finding of packets in data switching networks using route fault recovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/60—Router architectures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/10—Mapping addresses of different types
- H04L61/103—Mapping addresses of different types across network layers, e.g. resolution of network layer into physical layer addresses or address resolution protocol [ARP]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供了一种报文转发方法和装置。该方法中,通过从网络设备的通用CPU中独立出至少一个Core作为虚拟ASIC芯片,所述虚拟ASIC芯片存储网段路由、以及接收并存储通用CPU下发的主机路由,并从已存储的网段路由中找到与所述主机路由中主机IP地址对应的网段路由,修改该网段路由的出端口为连接所述虚拟ASIC芯片的端口,并下发至所述网络设备的物理ASIC芯片,这能够实现虚拟ASIC芯片与物理ASIC芯片相结合来管理路由,相比于现有技术仅利用物理ASIC芯片管理所有路由,节省物理ASIC芯片的表项资源。
Description
技术领域
本申请涉及网络通信技术,特别涉及报文转发方法和装置。
背景技术
在数据中心(DC)中,网络设备比如交换机主要包含通用CPU和物理ASIC芯片,具体如图1所示。下面分别对通用CPU和物理ASIC芯片进行描述:
通用CPU:
通用CPU是设备的软件部分,一般用于协议状态的维护和处理、用户配置处理的下发,ASIC硬件表项的生成、下发、更新、删除等,为提高处理性能,目前通用CPU由多核处理器组成。
简单说来,多核处理器,是在同一个硅晶片上集成多个独立物理核(Core)的器件,如图1所示,通用CPU的多核处理器由Core1至N组成。所谓Core,就是指处理器内部负责计算、接受/存储命令、处理数据的执行中心,可以理解成一个单核CPU。每个Core都具有独立的逻辑结构,包括缓存、执行单元、指令级单元和总线接口等逻辑单元,通过高速总线、内存共享进行通信。在实际工作中,多个Core协同处理任务,以达到性能倍增的目的。
随着网络业务发展越来越灵活,通用CPU也越来越多地用于网络产品的系统设计中。它的主频一般都很高,到2~3G左右,超流水线设计,具有很高的系统运算性能。
物理ASIC芯片:
物理ASIC芯片是设备的硬件部分,一般用于利用自身维护的硬件转发表项(ARP/FIB/MAC…)等实现数据报文的快速转发。物理ASIC芯片的出现是为了应对目前网络带宽需求爆炸式增长应运而生的。它将IP转发、MAC转发以硬件的方式固化下来,轻易达到几十个G的包转发性能,这是传统嵌入式CPU以及通用CPU根本无法企及的。因此,ASIC芯片在二、三层以太网交换机中得到了充分的应用。
在DC中,基于虚拟化技术,DC中的任一网络设备可以虚拟化为多个虚拟机(VM),该虚拟出的每一VM配置独立的虚拟网卡(VNIC),也配置独立的IP地址和MAC地址。
DC的网络设备比如图2所示的三层交换机在首次访问任一VM时,会先进行ARP学习,学习该VM的MAC地址,生成与该学习的MAC地址相关的ARP表项,同时生成该VM的主机路由,将该生成的ARP表项和主机路由对应下发至物理ASIC芯片。
例如若要访问VM3,此时DC三层交换机发现本地不存在VM3的主机路由和ARP表项,则DC三层交换机通过广播ARP请求报文学习VM3的MAC地址,生成该VM3的主机路由并对应下发至物理ASIC芯片。
从上述应用情况不难看出,在数据中心大量使用VM技术的应用场景下,数据中心的网络设备需要下发每一VM的主机路由至物理ASIC芯片,这会消耗掉物理ASIC芯片大量的路由表项资源。而一般而言,物理ASIC芯片所支持的表项资源通常比较有限,因此上述应用场景下对路由表项资源的消耗导致一些设备难以满足应用要求。
发明内容
本申请提供了报文转发方法和装置,以有效节约物理ASIC芯片的硬件表项资源。
本申请提供的技术方案包括:
一种报文转发方法,该方法中,从网络设备的通用CPU中独立出至少一个Core作为虚拟ASIC芯片,该方法包括:
所述虚拟ASIC芯片存储网段路由,所述网段路由的IP地址前缀覆盖了所述网络设备连接的主机IP地址,其中的出端口为连接所述通用CPU的端口;
所述虚拟ASIC芯片接收并存储通用CPU下发的主机路由,从已存储的网段路由中找到与所述主机路由中主机IP地址对应的网段路由,修改该网段路由的出端口为连接所述虚拟ASIC芯片的端口,并下发至所述网络设备的物理ASIC芯片;
所述物理ASIC芯片接收到报文时,在所述物理ASIC芯片中找到与所述目的IP地址对应的网段路由,通过该网段路由中的出端口转发所述报文至所述虚拟ASIC芯片;
所述虚拟ASIC芯片接收到报文时,确定所述虚拟ASIC芯片中存在与所述报文的目的IP地址匹配的主机路由,则通过该存在的主机路由中的出端口转发所述报文,确定所述虚拟ASIC芯片中不存在与所述报文的目的IP地址匹配的主机路由,则在所述虚拟ASIC芯片中找到与所述目的IP地址对应的网段路由,通过该网段路由中的出端口转发所述报文至所述通用CPU。
一种报文转发装置,该装置应用于数据中心DC中的网络设备,包括:通用CPU、虚拟ASIC芯片和物理ASIC芯片;
虚拟ASIC芯片,其由从所述网络设备的通用CPU中独立出的至少一个Core担任,包括:存储单元、路由下发单元和报文转发单元;
其中,所述存储单元用于存储网段路由和通用CPU下发的主机路由,其中,所述网段路由的IP地址前缀覆盖了所述网络设备连接的主机IP地址,其中的出端口为连接所述通用CPU的端口;
所述路由下发单元,用于针对通用CPU下发的主机路由,从已存储的网段路由中找到与所述主机路由中主机IP地址对应的网段路由,修改该网段路由的出端口为连接所述虚拟ASIC芯片的端口,并下发至所述网络设备的物理ASIC芯片;
报文转发单元,用于接收到报文时,确定所述虚拟ASIC芯片中存在与所述报文的目的IP地址匹配的主机路由,则通过该存在的主机路由中的出端口转发所述报文,确定所述虚拟ASIC芯片中不存在与所述报文的目的IP地址匹配的主机路由,则在所述虚拟ASIC芯片中找到与所述目的IP地址对应的网段路由,通过该网段路由中的出端口转发所述报文至所述通用CPU;
所述物理ASIC芯片接收报文,确定所述物理ASIC芯片中不存在与所述报文的目的IP地址匹配的主机路由,则在所述物理ASIC芯片中找到与所述目的IP地址对应的网段路由,通过该网段路由中的出端口转发所述报文至所述虚拟ASIC芯片。
由以上技术方案可以看出,本发明中,通过从网络设备的通用CPU中独立出至少一个Core作为虚拟ASIC芯片,由该虚拟ASIC芯片与物理ASIC芯片相结合来主机路由和网段路由,相比于现有技术仅利用物理ASIC芯片管理所有路由,节省物理ASIC芯片的表项资源,并且,本申请在物理ASIC芯片不存在用于报文转发的主机路由时,可以通过虚拟ASIC芯片维护的主机路由进行报文转发,这能够实现在消耗较少硬件资源的情况下满足数据中心组网需求,大大节省表项资源。
附图说明
图1为现有DC中网络设备的结构图;
图2为现有DC中访问VM示意图;
图3为本发明实施例提供的方法流程图;
图4为本发明实施例提供的Virtual–ASIC结构示意图;
图5为本发明实施例提供的物理ASIC芯片的表项更新流程图;
图6为本发明实施例提供的装置结构图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
在DC应用中,随着操作系统技术的发展,DC中的网络设备诸如三层交换机的通用CPU至少可以独立出一个Core,基于此,本发明可以在保证不影响通用CPU的正常功能前提下,将通用CPU中的至少一个Core从通用CPU中独立出来,用于执行物理ASIC芯片应该执行的功能,例如报文收发,以节省物理ASIC芯片的硬件资源,而通用CPU中的其他Core仍担任现有工作,比如协议状态的维护和处理、路由的生成、下发等操作。
其中,为便于描述从通用CPU中独立出来的Core,本申请将该独立出来的Core记为虚拟ASIC芯片(简称Virtual-ASIC)。
基于上面描述的Virtual–ASIC,下面通过图3对本发明实施例提供的方法进行描述:
参见图3,图3为本发明实施例提供的方法流程图。如图3所示,该流程可包括以下步骤:
步骤301,从网络设备的通用CPU中独立出至少一个Core作为Virtual–ASIC。
本步骤301是在不影响通用CPU整体性能的前提下,为保证充分利用通用CPU中各个Core,可以从通用CPU中独立出至少一个Core作为Virtual–ASIC,具体如图4所示,由Virtual–ASIC来代替物理ASIC芯片执行工作,以分担物理ASIC芯片的负荷。
步骤302,Virtual–ASIC存储网段路由。
本发明中,所述网段路由的IP地址前缀覆盖了所述网络设备连接的主机IP地址,比如,网络设备连接的以下三个主机的IP地址长度均是32位,依次为:192.168.1.2,192.168.1.3,192.168.1.10;则,长度为24位的IP地址前缀192.168.1/24就覆盖了上述三个主机的IP地址。再比如,网络设备连接的以下四个主机的IP地址长度均是32位,依次为:192.168.1.2,192.168.1.3,192.168.1.10,192.168.2.7;则长度为16位的IP地址前缀192.168/16就覆盖了上述四个主机的IP地址。
需要说明的是,本发明中,Virtual–ASIC存储的网段路由其实质是预先配置在Virtual–ASIC上的。其中,该网段路由仅包括:网段转发信息库(FIB)表项和下一跳,其中,网段FIB表项至少包含上述网段路由的IP地址前缀(简称网段IP地址),下一跳至少包含出端口,出端口为连接所述通用CPU的端口。
步骤303,Virtual–ASIC接收并存储通用CPU下发的主机路由。
本发明中,当从VM侧收到触发ARP学习工作比如ARP应答报文等,所述网络设备的通用CPU进行ARP学习,并生成一条对应的主机路由下发至Virtual–ASIC。这相比于现有技术中通用CPU将生成的主机路由下发至所述网络设备的物理ASIC芯片,能够节省物理ASIC芯片的表项资源,并保证在大量VM的应用场景下,不会因为大量消耗物理ASIC芯片的表项资源而无法满足应用需求。
如此,当Virtual–ASIC接收到通用CPU下发的主机路由时,Virtual–ASIC就维护有软件形式的主机路由,可以利用该维护的主机路由进行后续报文的转发,具体见步骤306。
步骤304,Virtual-ASIC从已存储的网段路由中找到与所述主机路由中主机IP地址对应的网段路由,修改该网段路由的出端口为连接所述Virtual-ASIC的端口,并下发至所述网络设备的物理ASIC芯片。
以主机路由中主机IP地址为1.1.1.1/32为例,则Virtual-ASIC从本地已有的网段路由中找到该主机IP地址1.1.1.1/32对应的网段路由,比如该找到的网段路由中网段IP地址为1.1.1.0/24,之后修改该网段路由的出端口为连接所述Virtual-ASIC的端口(“to Virtual-ASIC”),并下发至所述网络设备的物理ASIC芯片。
步骤305,当所述网络设备接收到报文时,该报文会先到达所述网络设备的物理ASIC芯片,所述物理ASIC芯片接收报文后,确定所述物理ASIC芯片中是否存在与所述报文的目的IP地址匹配的主机路由,如果是,执行步骤306,如果否,执行步骤307。
具体地,步骤305中,所述物理ASIC芯片以报文的目的IP地址为关键字,在物理ASIC芯片中查找主机IP地址为该关键字的主机路由,如果找不到,则确定所述物理ASIC芯片中不存在与所述报文的目的IP地址匹配的主机路由,如果找到,确定所述物理ASIC芯片中存在与所述报文的目的IP地址匹配的主机路由。
步骤306,依据该匹配的主机路由进行所述报文的转发。结束当前流程。
其中,所述物理ASIC芯片中为什么会存在主机路由,具体在下文步骤311至步骤312。
步骤307,在物理ASIC芯片中找到与所述报文的目的IP地址对应的网段路由,通过该网段路由中的出端口转发所述报文至Virtual-ASIC。
由于物理ASIC芯片中网段路由的出端口为到达Virtual–ASIC的端口,因此,基于该网段路由中的出端口是很容易将报文发送至Virtual–ASIC的。
步骤308,Virtual–ASIC接收到报文,确定所述Virtual–ASIC中是否存在与所述报文的目的IP地址匹配的主机路由,如果否,执行步骤309,如果是,执行步骤310。
具体地,本步骤308中,以报文的目的IP地址为关键字,在Virtual–ASIC维护的所有主机路由中找到主机IP地址为该关键字的主机路由,如果找到,确定所述Virtual–ASIC中存在与所述报文的目的IP地址匹配的主机路由,如果找不到,确定所述Virtual–ASIC中不存在与所述报文的目的IP地址匹配的主机路由。
步骤309,在Virtual–ASIC中找到与所述报文的目的IP地址对应的网段路由,通过该网段路由中的出端口转发所述报文至通用CPU。
由于Virtual–ASIC中网段路由的出端口为到达通用CPU的端口,因此,基于该网段路由中的出端口是很容易将报文发送至通用CPU的。至于通用CPU收到报文后如何执行则与现有通用CPU的报文处理方式一致,这里不再赘述。
步骤310,通过该匹配的主机路由中的出端口转发所述报文,并执行步骤311。
步骤311,计算该匹配的主机路由被报文匹配的速率。
步骤312,实时检测所述Virtual–ASIC中每一主机路由被报文匹配的速率,当检测到所述Virtual–ASIC中任一主机路由被报文匹配的速率达到设定速率阈值,则将该主机路由下发至所述物理ASIC芯片。
这里,设定速率阈值是依据Virtual–ASIC本身的报文处理能力进行设置的,而每一主机路由被报文匹配的速率与报文本身的流量有关,当报文的流量比较大,就会导致Virtual–ASIC中与该报文匹配的主机路由的匹配速率增大,反之亦然。
通过步骤312,能够保证物理ASIC芯片存在主机路由,之后,当物理ASIC芯片接收到与该主机路由匹配的报文时,就直接通过该主机路由中的出端口转发该报文,不再通过网段路由上送至Virtual–ASIC,具体见步骤306。
至此,完成图3所示的流程。
需要说明的是,本发明中,主机路由至少包括:主机FIB表项、下一跳、以及ARP表项。
其中,主机FIB表项至少包括:主机IP地址也即VM的IP地址、以及与该主机FIB表项对应的ARP表项的索引;
下一跳至少包括:出端口,其实质为到达主机IP地址的端口;
ARP表项至少包括:通过ARP学习的VM的MAC地址。
以VM1的IP地址为1.1.1.1/32,MAC地址为0000-0000-0001为例,则VM1的主机路由中FIB表项和ARP表项依次为:
FIB表项:1.1.1.1/32,arp1。其中,arp1表示该FIB表项对应的ARP表项的索引。
ARP表项:MAC地址为0000-0000-0001。其中,该ARP表项的索引为arp1。
而网段路由,其仅包括:网段FIB表项和下一跳。其中,所述网段FIB表项仅包括:网段IP地址;下一跳至少包括:出端口,该出端口为到达Virtual-ASIC的端口。
下面以如上面描述的主机路由、网段路由为例,通过一个具体实施例对本发明提供的方法进行详细描述:
首先,网络设备的Virtual–ASIC存储如表1-1所示的网段路由:
表1-1
之后,假如网络设备的通用CPU学习到的如下5个VM的IP地址和MAC地址依次为:
VM1:IP地址为1.1.1.1/32,MAC地址为0000-0000-0001;
VM2:IP地址为1.1.1.2/32,MAC地址为0000-0000-0002;
VM3:IP地址为1.1.1.3/32,MAC地址为0000-0000-0003;
VM4:IP地址为1.1.1.4/32,MAC地址为0000-0000-0004;
VM5:IP地址为1.1.1.5/32,MAC地址为0000-0000-0005;
则,基于上面描述的步骤303,就生成上述VM1至VM5的主机路由并下发至Virtual–ASIC,此时,Virtual–ASIC存储的路由具体如表1-2所示:
表1-2
并且,基于上述步骤304,当Virtual-ASIC收到上述VM1至VM5中任一VM的主机路由时,Virtual-ASIC从已存储的网段路由中找到与所述主机路由中主机IP地址对应的网段路由,修改该网段路由的出端口为连接所述Virtual-ASIC的端口,并下发至所述网络设备的物理ASIC芯片。此时,物理ASIC芯片中的表项如表1-3所示。
表1-3
从表1-3可以看出,此时物理ASIC芯片上并不存在主机路由,仅存在网段路由。
如此,当此时物理ASIC芯片收到去往上述VM1至VM5任一VM比如VM1的报文时,该去往VM1的报文的目的IP地址为VM1的IP地址1.1.1.1/32,基于上述步骤303和表1-3所示的物理ASIC芯片中的路由,则在物理ASIC芯片中是找不到与该报文的目的IP地址匹配的主机路由(记为VM1的主机路由),只能找到与报文目的IP地址对应的网段路由,基于该网段路由中出端口为到达Virtual–ASIC的端口,则将该收到的报文发送至Virtual-ASIC。
当Virtual–ASIC接收到去往VM1的报文时,基于上述步骤308和表1-2所示的Virtual–ASIC中的路由,如果此时表1-2所示的Virtual–ASIC中的路由存在与该报文的目的IP地址1.1.1.1/32匹配的主机路由(记为VM1的主机路由),就直接利用Virtual–ASIC中与该报文的目的IP地址1.1.1.1/32匹配的VM1的主机路由发送该报文。同时,还统计Virtual–ASIC中该VM1的主机路由被报文匹配的速率。
假定一段时间后去往VM1的报文大幅度增加,则当该大幅度增加的去往VM1的报文再次到达物理ASIC芯片时,由于物理ASIC芯片不存在VM1的主机路由,则就会基于上述步骤307上送这些报文至Virtual-ASIC。Virtual-ASIC在存储的主机路由中找到VM1的主机路由并利用该找到的VM1主机路由进行报文转发,同时统计该VM1的主机路由被报文匹配的速率。假如此时发现VM1的主机路由被的匹配速率增加到设定阈值时,就将该VM1的主机路由下发至所述物理ASIC芯片,此时Virtual–ASIC上的表项依然不变,如表1-2所示,而此时物理ASIC芯片上的路由表项相比于之前如表1-3所示的路由表项发生了变化,如表1-4所示:
表1-4
之后当物理ASIC芯片再收到去往VM1的报文时,由于表1-4所示的物理ASIC芯片中的路由表项中包含了VM1的主机路由,则基于上述步骤305和步骤306,物理ASIC芯片直接利用该VM1的主机路由转发该去往VM1的报文;而当物理ASIC芯片收到去往其他VM比如VM2至VM4中任一VM的报文时,由于表1-4所示物理ASIC芯片中的路由表项不存在该VM的主机路由,还是只能发送至Virtual–ASIC,通过在Virtual–ASIC中匹配对应的主机路由转发出去。
至此,完成上面实施例的描述。
需要说明的是,本发明中,物理ASIC芯片中的主机FIB表项和ARP表项并非长期有效,为适应网络的变化,本发明实施例还公开了如何更新物理ASIC芯片中路由表项的方法。
其中,为便于更新物理ASIC芯片中的路由表项,本发明中,在所述物理ASIC芯片接收到所述虚拟ASIC芯片下发的主机路由时,为该主机路由设置一个对应的老化标识,并默认该老化标识为第一值,而当所述物理ASIC芯片的主机路由被报文匹配时,更新该主机路由的老化标识为第二值。这里,第一值、第二值可根据实际情况设置,比如依次为0、1。
基于此,如图5所示,物理ASIC芯片的路由表项更新流程可包括以下步骤:
步骤501,每隔设定时间查询所述物理ASIC芯片中每一主机路由的老化标识,当查询到一主机路由的老化标识为第一值,执行步骤502,当查询到一主机路由的老化标识为第二值,执行步骤503。
步骤502,从物理ASIC芯片删除该主机路由。返回步骤501。
步骤503,将该主机路由的老化标识更新为第一值。返回步骤501。
如此,通过上述步骤501至步骤503即可更新物理ASIC芯片的表项。
以上对本发明提供的方法进行了描述,下面对本发明提供的装置进行描述:
参见图6,图6为本发明实施例提供的装置结构图。该装置应用于数据中心DC中的网络设备,包括:通用CPU、虚拟ASIC芯片和物理ASIC芯片;
虚拟ASIC芯片,其由从所述网络设备的通用CPU中独立出的至少一个Core担任,包括:存储单元、路由下发单元和报文转发单元;
其中,所述存储单元用于存储网段路由和通用CPU下发的主机路由,其中,所述网段路由的IP地址前缀覆盖了所述网络设备连接的主机IP地址,其中的出端口为连接所述通用CPU的端口;
所述路由下发单元,用于针对通用CPU下发的主机路由,从已存储的网段路由中找到与所述主机路由中主机IP地址对应的网段路由,修改该网段路由的出端口为连接所述虚拟ASIC芯片的端口,并下发至所述网络设备的物理ASIC芯片;
报文转发单元,用于接收到报文时,确定所述虚拟ASIC芯片中存在与所述报文的目的IP地址匹配的主机路由,则通过该存在的主机路由中的出端口转发所述报文,确定所述虚拟ASIC芯片中不存在与所述报文的目的IP地址匹配的主机路由,则在所述虚拟ASIC芯片中找到与所述目的IP地址对应的网段路由,通过该网段路由中的出端口转发所述报文至所述通用CPU;
所述物理ASIC芯片接收报文,确定所述物理ASIC芯片中不存在与所述报文的目的IP地址匹配的主机路由,则在所述物理ASIC芯片中找到与所述目的IP地址对应的网段路由,通过该网段路由中的出端口转发所述报文至所述虚拟ASIC芯片。
优选地,本发明中,所述虚拟ASIC芯片进一步包括:
统计单元,用于统计其存储的每一主机路由被报文匹配的速率;
处理单元,用于实时检测所述虚拟ASIC芯片中每一主机路由被报文匹配的速率,当检测到所述虚拟ASIC芯片中任一主机路由被报文匹配的速率达到设定速率阈值,则将所述虚拟ASIC芯片中的该主机路由下发至所述物理ASIC芯片。
优选地,本发明中,所述物理ASIC芯片接收报文、且确定本物理ASIC芯片存在与所述报文的目的IP地址匹配的主机路由时,进一步包括:
依据该存在的主机路由进行所述报文的转发。
优选地,本发明中,所述述物理ASIC芯片在接收到所述虚拟ASIC芯片下发的主机路由时,为该主机路由设置一个对应的老化标识,并默认该老化标识为第一值;以及,在其存储的主机路由被报文匹配时,更新该主机路由的老化标识为第二值;以及,每隔设定时间查询所述物理ASIC芯片中每一主机路由的老化标识,当查询到一主机路由的老化标识为第一值,从物理ASIC芯片删除该主机路由,当查询到一主机路由的老化标识为第二值,将该主机路由的老化标识更新为第一值。
至此,完成图6所示的装置描述。
由以上技术方案可以看出,本发明中,通过从网络设备的通用CPU中独立出至少一个Core作为虚拟ASIC芯片,由该虚拟ASIC芯片与物理ASIC芯片相结合来主机路由和网段路由,相比于现有技术仅利用物理ASIC芯片管理所有路由,节省物理ASIC芯片的表项资源,并且,本申请在物理ASIC芯片不存在用于报文转发的主机路由时,可以通过虚拟ASIC芯片维护的主机路由进行报文转发,这能够实现在消耗较少硬件资源的情况下满足数据中心组网需求,大大节省表项资源。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (8)
1.一种报文转发方法,其特征在于,将网络设备的通用CPU的至少一个核Core作为虚拟ASIC芯片,该方法包括:
所述虚拟ASIC芯片存储网段路由,所述网段路由的IP地址前缀覆盖了所述网络设备连接的主机IP地址,其中的出端口为连接所述通用CPU的端口;
所述虚拟ASIC芯片接收并存储通用CPU下发的主机路由,从已存储的网段路由中找到与所述主机路由中主机IP地址对应的网段路由,修改该网段路由的出端口为连接所述虚拟ASIC芯片的端口,并下发至所述网络设备的物理ASIC芯片;
所述物理ASIC芯片接收到报文时,在所述物理ASIC芯片中找到与所述报文的目的IP地址对应的网段路由,通过该网段路由中的出端口转发所述报文至所述虚拟ASIC芯片;
所述虚拟ASIC芯片接收到报文时,确定所述虚拟ASIC芯片中存在与所述报文的目的IP地址匹配的主机路由,则通过该存在的主机路由中的出端口转发所述报文,确定所述虚拟ASIC芯片中不存在与所述报文的目的IP地址匹配的主机路由,则在所述虚拟ASIC芯片中找到与所述目的IP地址对应的网段路由,通过该网段路由中的出端口转发所述报文至所述通用CPU。
2.根据权利要求1所述的方法,该方法进一步包括:
所述虚拟ASIC芯片统计其存储的每一主机路由被报文匹配的速率;
所述虚拟ASIC芯片实时检测所述虚拟ASIC芯片中每一主机路由被报文匹配的速率,当检测到所述虚拟ASIC芯片中任一主机路由被报文匹配的速率达到设定速率阈值,则将所述虚拟ASIC芯片中的该主机路由下发至所述物理ASIC芯片。
3.根据权利要求2所述的方法,其特征在于,所述物理ASIC芯片接收报文、且本物理ASIC芯片存在与所述报文的目的IP地址匹配的主机路由时,进一步包括:
依据该存在的主机路由进行所述报文的转发。
4.根据权利要求2或3所述的方法,其特征在于,该方法进一步包括:
所述物理ASIC芯片在接收到所述虚拟ASIC芯片下发的主机路由时,为该主机路由设置一个对应的老化标识,并默认该老化标识为第一值;
所述物理ASIC芯片在其存储的主机路由被报文匹配时,更新该主机路由的老化标识为第二值;
所述物理ASIC芯片每隔设定时间查询所述物理ASIC芯片中每一主机路由的老化标识,当查询到一主机路由的老化标识为第一值,从物理ASIC芯片删除该主机路由,当查询到一主机路由的老化标识为第二值,将该主机路由的老化标识更新为第一值。
5.一种报文转发装置,其特征在于,该装置应用于数据中心DC中的网络设备,包括:通用CPU、虚拟ASIC芯片和物理ASIC芯片;
虚拟ASIC芯片,其由从所述网络设备的通用CPU中独立出的至少一个核Core担任,包括:存储单元、路由下发单元和报文转发单元;
其中,所述存储单元用于存储网段路由和通用CPU下发的主机路由,其中,所述网段路由的IP地址前缀覆盖了所述网络设备连接的主机IP地址,其中的出端口为连接所述通用CPU的端口;
所述路由下发单元,用于针对通用CPU下发的主机路由,从已存储的网段路由中找到与所述主机路由中主机IP地址对应的网段路由,修改该网段路由的出端口为连接所述虚拟ASIC芯片的端口,并下发至所述网络设备的物理ASIC芯片;
报文转发单元,用于接收到报文时,确定所述虚拟ASIC芯片中存在与所述报文的目的IP地址匹配的主机路由,则通过该存在的主机路由中的出端口转发所述报文,确定所述虚拟ASIC芯片中不存在与所述报文的目的IP地址匹配的主机路由,则在所述虚拟ASIC芯片中找到与所述目的IP地址对应的网段路由,通过该网段路由中的出端口转发所述报文至所述通用CPU;
所述物理ASIC芯片接收报文,确定所述物理ASIC芯片中不存在与所述报文的目的IP地址匹配的主机路由,则在所述物理ASIC芯片中找到与所述目的IP地址对应的网段路由,通过该网段路由中的出端口转发所述报文至所述虚拟ASIC芯片。
6.根据权利要求5所述的装置,其特征在于,所述虚拟ASIC芯片进一步包括:
统计单元,用于统计其存储的每一主机路由被报文匹配的速率;
处理单元,用于实时检测所述虚拟ASIC芯片中每一主机路由被报文匹配的速率,当检测到所述虚拟ASIC芯片中任一主机路由被报文匹配的速率达到设定速率阈值,则将所述虚拟ASIC芯片中的该主机路由下发至所述物理ASIC芯片。
7.根据权利要求6所述的装置,其特征在于,所述物理ASIC芯片接收报文、且确定本物理ASIC芯片存在与所述报文的目的IP地址匹配的主机路由时,进一步包括:
依据该存在的主机路由进行所述报文的转发。
8.根据权利要求6所述的装置,其特征在于,所述述物理ASIC芯片在接收到所述虚拟ASIC芯片下发的主机路由时,为该主机路由设置一个对应的老化标识,并默认该老化标识为第一值;以及,在其存储的主机路由被报文匹配时,更新该主机路由的老化标识为第二值;以及,每隔设定时间查询所述物理ASIC芯片中每一主机路由的老化标识,当查询到一主机路由的老化标识为第一值,从物理ASIC芯片删除该主机路由,当查询到一主机路由的老化标识为第二值,将该主机路由的老化标识更新为第一值。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310096538.2A CN104079478B (zh) | 2013-03-25 | 2013-03-25 | 报文转发方法和装置 |
PCT/CN2014/074000 WO2014154124A1 (en) | 2013-03-25 | 2014-03-25 | Packet forwarding |
US14/768,439 US9960995B2 (en) | 2013-03-25 | 2014-03-25 | Packet forwarding using a physical unit and a virtual forwarding unit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310096538.2A CN104079478B (zh) | 2013-03-25 | 2013-03-25 | 报文转发方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104079478A true CN104079478A (zh) | 2014-10-01 |
CN104079478B CN104079478B (zh) | 2017-06-16 |
Family
ID=51600531
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310096538.2A Active CN104079478B (zh) | 2013-03-25 | 2013-03-25 | 报文转发方法和装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9960995B2 (zh) |
CN (1) | CN104079478B (zh) |
WO (1) | WO2014154124A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105939265A (zh) * | 2015-08-13 | 2016-09-14 | 杭州迪普科技有限公司 | 路由处理方法和装置 |
CN109428819A (zh) * | 2017-08-28 | 2019-03-05 | 阿里巴巴集团控股有限公司 | 传输数据的方法、网络组件、设备和计算机存储介质 |
CN112600951A (zh) * | 2020-12-08 | 2021-04-02 | 杭州迪普信息技术有限公司 | 一种报文转发的方法及装置 |
CN114221834A (zh) * | 2021-11-24 | 2022-03-22 | 新华三技术有限公司合肥分公司 | 一种报文转发方法及装置 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015136582A1 (ja) * | 2014-03-13 | 2015-09-17 | パナソニックIpマネジメント株式会社 | 情報機器特定システム、情報機器特定方法、情報機器およびプログラム |
CN105306241B (zh) * | 2014-07-11 | 2018-11-06 | 华为技术有限公司 | 一种业务部署方法及网络功能加速平台 |
US10291648B2 (en) * | 2015-12-22 | 2019-05-14 | At&T Intellectual Property I, L.P. | System for distributing virtual entity behavior profiling in cloud deployments |
CN105721303B (zh) * | 2016-03-31 | 2018-05-18 | 华为技术有限公司 | 一种路由控制方法、网络设备及控制器 |
US11902166B2 (en) * | 2020-08-04 | 2024-02-13 | Cisco Technology, Inc. | Policy based routing in extranet networks |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101005452A (zh) * | 2006-12-22 | 2007-07-25 | 华为技术有限公司 | 一种在ip设备之间进行通信的方法和系统 |
CN101106532A (zh) * | 2007-07-10 | 2008-01-16 | 中兴通讯股份有限公司 | 实现交换芯片与网络处理器混合转发的方法 |
CN101719877A (zh) * | 2010-01-15 | 2010-06-02 | 福建星网锐捷网络有限公司 | 一种报文转发装置、网络设备及方法 |
US20120291025A1 (en) * | 2011-05-13 | 2012-11-15 | International Business Machines Corporation | Techniques for operating virtual switches in a virtualized computing environment |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FI20050919A0 (fi) * | 2005-09-15 | 2005-09-15 | Nokia Corp | Monikotiselta isäntäkoneelta tulevien datapakettien reititys |
US8059658B1 (en) * | 2005-12-23 | 2011-11-15 | Extreme Networks, Inc. | Method and system for automatic expansion and contraction of IP host forwarding database |
CN101695041B (zh) * | 2009-09-21 | 2012-12-19 | 中兴通讯股份有限公司 | 一种在虚拟路由器之间实现路由通告的方法及物理路由器 |
US8774094B2 (en) * | 2010-09-10 | 2014-07-08 | Weixiang Chen | Hybrid routing and forwarding solution for a wireless sensor network |
CN102843286B (zh) * | 2011-06-24 | 2017-04-12 | 中兴通讯股份有限公司 | 虚拟路由器的实现方法及系统 |
CN102916874B (zh) * | 2012-09-29 | 2016-06-08 | 杭州华三通信技术有限公司 | 一种报文发送方法及设备 |
US9282026B2 (en) * | 2013-03-11 | 2016-03-08 | Dell Products L.P. | System and method for improved routing in autonomous systems |
-
2013
- 2013-03-25 CN CN201310096538.2A patent/CN104079478B/zh active Active
-
2014
- 2014-03-25 US US14/768,439 patent/US9960995B2/en active Active
- 2014-03-25 WO PCT/CN2014/074000 patent/WO2014154124A1/en active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101005452A (zh) * | 2006-12-22 | 2007-07-25 | 华为技术有限公司 | 一种在ip设备之间进行通信的方法和系统 |
CN101106532A (zh) * | 2007-07-10 | 2008-01-16 | 中兴通讯股份有限公司 | 实现交换芯片与网络处理器混合转发的方法 |
CN101719877A (zh) * | 2010-01-15 | 2010-06-02 | 福建星网锐捷网络有限公司 | 一种报文转发装置、网络设备及方法 |
US20120291025A1 (en) * | 2011-05-13 | 2012-11-15 | International Business Machines Corporation | Techniques for operating virtual switches in a virtualized computing environment |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105939265A (zh) * | 2015-08-13 | 2016-09-14 | 杭州迪普科技有限公司 | 路由处理方法和装置 |
CN105939265B (zh) * | 2015-08-13 | 2019-05-07 | 杭州迪普科技股份有限公司 | 路由处理方法和装置 |
CN109428819A (zh) * | 2017-08-28 | 2019-03-05 | 阿里巴巴集团控股有限公司 | 传输数据的方法、网络组件、设备和计算机存储介质 |
CN109428819B (zh) * | 2017-08-28 | 2022-01-11 | 阿里巴巴集团控股有限公司 | 传输数据的方法、网络组件、设备和计算机存储介质 |
CN112600951A (zh) * | 2020-12-08 | 2021-04-02 | 杭州迪普信息技术有限公司 | 一种报文转发的方法及装置 |
CN114221834A (zh) * | 2021-11-24 | 2022-03-22 | 新华三技术有限公司合肥分公司 | 一种报文转发方法及装置 |
CN114221834B (zh) * | 2021-11-24 | 2024-03-12 | 新华三技术有限公司合肥分公司 | 一种报文转发方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
US9960995B2 (en) | 2018-05-01 |
CN104079478B (zh) | 2017-06-16 |
US20160014024A1 (en) | 2016-01-14 |
WO2014154124A1 (en) | 2014-10-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104079478A (zh) | 报文转发方法和装置 | |
US11018898B2 (en) | Multicast multipathing in an overlay network | |
CN102334112B (zh) | 用于虚拟机网络的方法和系统 | |
US9774532B2 (en) | Information processing system, information processing apparatus and control method of information processing system | |
US9634938B2 (en) | Adaptive scheduling of data flows in data center networks for efficient resource utilization | |
US8806025B2 (en) | Systems and methods for input/output virtualization | |
CN103200069B (zh) | 一种报文处理的方法和设备 | |
US9065766B2 (en) | Medium for storing packet conversion program, packet conversion apparatus and packet conversion method | |
US9450780B2 (en) | Packet processing approach to improve performance and energy efficiency for software routers | |
KR20130128461A (ko) | 통신 제어 시스템, 스위치 노드 및 통신 제어 방법 | |
US9684348B2 (en) | Method and system for boosting power supply | |
US10333845B2 (en) | Forwarding data packets | |
US20150098475A1 (en) | Host table management in software defined network (sdn) switch clusters having layer-3 distributed router functionality | |
CN104780088A (zh) | 一种业务报文的传输方法和设备 | |
CN102857414A (zh) | 一种转发表写入、报文转发方法及装置 | |
US20170163533A1 (en) | Forwarding Packet In Stacking System | |
US9454189B1 (en) | Systems and methods for distributing power in a server system | |
CN105515992A (zh) | Vxlan网络中的流表项处理方法及装置 | |
CN104301246A (zh) | 基于sdn的大流负载均衡转发方法及装置 | |
EP2890064A1 (en) | Packet forwarding method and system | |
CN104125128A (zh) | Linux软桥支持VLAN的方法 | |
CN103716245A (zh) | 基于虚拟专用局域网服务的边缘路由器 | |
CN117651936A (zh) | 网络层7卸载到服务网格的基础设施处理单元 | |
CN101883055B (zh) | 路由转发表容量扩展实现方法、装置及交换设备 | |
WO2015106623A1 (zh) | 一种配置、下发流表项的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Applicant after: Xinhua three Technology Co., Ltd. Address before: 310053 Hangzhou hi tech Industrial Development Zone, Zhejiang province science and Technology Industrial Park, No. 310 and No. six road, HUAWEI, Hangzhou production base Applicant before: Huasan Communication Technology Co., Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant |