CN102420772B - 隧道报文收发方法和装置 - Google Patents

隧道报文收发方法和装置 Download PDF

Info

Publication number
CN102420772B
CN102420772B CN201110461663.XA CN201110461663A CN102420772B CN 102420772 B CN102420772 B CN 102420772B CN 201110461663 A CN201110461663 A CN 201110461663A CN 102420772 B CN102420772 B CN 102420772B
Authority
CN
China
Prior art keywords
message
tunnel
outgoing interface
interface
encapsulated
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.)
Active
Application number
CN201110461663.XA
Other languages
English (en)
Other versions
CN102420772A (zh
Inventor
冉瑞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
New H3C Information Technologies Co Ltd
Original Assignee
Hangzhou H3C Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou H3C Technologies Co Ltd filed Critical Hangzhou H3C Technologies Co Ltd
Priority to CN201110461663.XA priority Critical patent/CN102420772B/zh
Publication of CN102420772A publication Critical patent/CN102420772A/zh
Application granted granted Critical
Publication of CN102420772B publication Critical patent/CN102420772B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供了隧道报文收发方法和装置,当接收到首包报文时,CPU转发平面对报文进行处理,生成报文的关键字段对应的上行流表、下行流表,以及经隧道封装后的报文的关键字段对应的上行流表和下行流表,并下发到硬件转发平面;当接收到后续报文时,硬件转发平面根据CPU转发平面下发的上行流表和下行流表转发隧道报文。本发明能够在不改变现有流表的固定结构以及表项大小的前提下实现隧道快速转发。

Description

隧道报文收发方法和装置
技术领域
本发明涉及通信技术领域,特别涉及隧道报文收发方法和装置。
背景技术
随着因特网协议(IP)技术的发展,IP网络从承载单一的因特网(Internet)业务向运营多业务方向转型,在转型的过程中,对网络的转发性能提出了更高的要求。目前,主要采用基于流表的报文快速转发方法满足对网络的转发性能要求,下面结合图1进行说明。
图1是现有技术基于流表的报文快速转发的过程示意图,当接收到首包报文时,由于不存在报文对应的上行流表,因此,由CPU转发平面对报文进行软件处理,建立对应的上行流表和下行流表(若没有下行业务,则不生成下行流表)并下发到硬件转发平面;当接收到后续报文时,由于已经存在报文对应的上行流表,因此,直接由硬件转发平面(例如FPGA)根据对应的上行流表和下行流表对报文进行处理。
图1所示的基于流表的报文快速转发方法,CPU转发平面只对首包报文进行软件处理和转发,而后续报文,则由硬件转发平面通过查找报文对应的流表,根据流表转发报文,能够实现普通报文的快速转发,然而,对于隧道转发这种较为复杂的业务,则无法处理。
隧道技术是一种封装技术,利用一种网络协议来传输另一种网络协议的数据报文,也即一种网络协议将其他网络协议的数据报文封装在自己的报文中,然后在网络中传输。封装后的数据报文在网络中传输的路径,称为隧道。隧道是一条虚拟的点对点连接,在隧道的两端需要对数据报文进行封装及解封装,由于现有技术中流表的固定结构以及表项大小限制,无法通过查找一次流表实现隧道快速转发。
实际上,也可以通过修改流表的表项大小,增加与隧道相关的成员项的方法实现隧道快速转发,但是对于流表已达百万级别的逻辑来说,增加与隧道相关的成员项必然会导致逻辑资源的极大消耗,虽然可以通过查找一次流表实现隧道快速转发,使隧道转发达到极高的性能,但是必然会牺牲逻辑资源以及现有技术基于流表的报文快速转发方法的通用性。
发明内容
有鉴于此,本发明的目的在于提供隧道报文收发方法和装置,能够在不改变现有流表的固定结构以及表项大小的前提下实现隧道报文的快速接收和发送。
为了达到上述目的,本发明提供了一种实现隧道报文转发方法,在建立与远端设备间隧道时,CPU转发平面生成该隧道的隧道口对应的隧道表项并下发到硬件转发平面,所述隧道表项包括隧道传输协议、隧道乘客协议、隧道的源IP和目的IP;该方法包括:
接收需要进行隧道封装的报文;
如果不存在报文的关键字段对应的关联于报文的入接口的上行流表,则上送CPU,并由CPU转发平面建立报文的关键字段对应的关联于报文的入接口的上行流表,确定报文的隧道出接口,在该上行流表中保存报文的隧道出接口信息,并将该上行流表下发到硬件转发平面;根据报文的隧道出接口信息封装报文,将报文的隧道出接口作为封装报文的入接口,建立封装报文的关键字段对应的关联于封装报文的入接口的上行流表,确定封装报文的出接口,在该上行流表中保存封装报文的出接口信息,并将该上行流表下发到硬件转发平面,若封装报文的出接口是物理出接口,则将封装报文从该物理出接口发送出去,若封装报文的出接口是隧道出接口,则CPU转发平面再一次对封装报文执行封装和转发处理;
如果存在报文的关键字段对应的关联于报文的入接口的上行流表,硬件转发平面根据报文的关键字段对应的关联于报文的入接口的上行流表确定报文的隧道出接口,根据报文的隧道出接口对应的隧道表项封装报文,将报文的隧道出接口作为封装报文的入接口,根据封装报文的关键字段对应的关联于封装报文的入接口的上行流表确定封装报文的出接口,若封装报文的出接口是物理出接口,则将封装报文从该物理出接口发送出去,若封装报文的出接口是隧道出接口,则硬件转发平面再一次对封装报文执行封装和转发处理。
本发明还提供了一种实现隧道报文转发装置,该装置包括:第一接收模块、第一CPU转发模块、第一硬件转发模块、第一发送模块;
所述第一接收模块,用于接收需要进行隧道封装的报文,判断是否存在报文的关键字段对应的关联于报文的入接口的上行流表,如果是,则将该报文发送到第一硬件转发模块,否则,则将该报文上送到第一CPU转发模块;
所述第一CPU转发模块,用于建立与远端设备间隧道时,生成该隧道的隧道口对应的隧道表项并下发到第一硬件转发模块,所述隧道表项包括隧道传输协议、隧道乘客协议、隧道的源IP和目的IP;用于接收所述第一接收模块上送的报文,建立报文的关键字段对应的关联于报文的入接口的上行流表,确定报文的隧道出接口,在该上行流表中保存报文的隧道出接口信息,并将该上行流表下发到第一硬件转发模块;根据报文的隧道出接口信息封装报文,将报文的隧道出接口作为封装报文的入接口,建立封装报文的关键字段对应的关联于封装报文的入接口的上行流表,确定封装报文的出接口,在该上行流表中保存封装报文的出接口信息,并将该上行流表下发到第一硬件转发模块,若封装报文的出接口是物理出接口,则通知第一发送模块将封装报文从该物理出接口发送出去,若封装报文的出接口是隧道出接口,则第一CPU转发模块再一次对封装报文执行封装和转发处理;
所述第一硬件转发模块,用于接收所述第一接收模块发送的报文,则根据报文的关键字段对应的关联于报文的入接口的上行流表确定报文的隧道出接口,根据报文的隧道出接口对应的隧道表项封装报文,将报文的隧道出接口作为封装报文的入接口,根据封装报文的关键字段对应的关联于封装报文的入接口的上行流表确定封装报文的出接口,若封装报文的出接口是物理出接口,则通知第一发送模块将封装报文从该物理出接口发送出去,若封装报文的出接口是隧道出接口,则第一硬件转发模块再一次对封装报文执行封装和转发处理。
本发明还提供了一种隧道报文接收方法,建立与远端设备间隧道时,CPU转发平面生成该隧道的隧道口对应的隧道表项并下发到硬件转发平面,所述隧道表项包括隧道传输协议、隧道乘客协议、隧道的源IP和目的IP;该方法包括:
接收需要进行解隧道封装的封装报文;
如果不存在封装报文的关键字段对应的关联于封装报文的入接口的上行流表,则上送CPU,并由CPU转发平面解析封装报文绑定的隧道口,建立封装报文的关键字段对应的关联于封装报文的入接口的上行流表,在该上行流表中保存封装报文绑定的隧道口信息并设置隧道标志,并将该上行流表下发到硬件转发平面,解封装报文,将封装报文绑定的隧道口作为报文的入接口,解析并判断报文是否绑定了隧道口,若是,则CPU转发平面再一次对报文执行解封装和转发处理,若否,则确定报文的出接口,建立报文的关键字段对应的关联于报文的入接口的上行流表,在该上行流表中保存报文的出接口信息,并将该上行流表下发到硬件转发平面,根据报文的出接口转发报文;
如果存在封装报文的关键字段对应的关联于封装报文的入接口的上行流表,则硬件转发平面根据封装报文的关键字段对应的关联于封装报文的入接口的上行流表中的隧道口信息确定封装报文绑定的隧道口,根据封装报文绑定的隧道口对应的隧道表项解封装报文,将封装报文绑定的隧道口作为报文的入接口,根据报文的关键字段对应的关联于报文的入接口的上行流表中的隧道标志判断报文是否绑定了隧道口,若是,则硬件转发平面再一次对报文执行解封装和转发处理,若否,则根据报文的关键字段对应的关联于报文的入接口的上行流表确定报文的出接口,根据报文的出接口转发报文。
本发明还提供了一种隧道报文接收装置,该装置包括:第二接收模块、第二CPU转发模块、第二硬件转发模块、第二发送模块;
所述第二接收模块,用于:接收需要进行解隧道封装的封装报文,判断是否存在封装报文的关键字段对应的关联于封装报文的入接口的上行流表,如果是,则将封装报文发送到第二硬件转发模块,否则,将封装报文上送到第二CPU转发模块;
所述第二CPU转发模块,用于建立与远端设备间隧道时,生成该隧道的隧道口对应的隧道表项并下发到第二硬件转发模块,所述隧道表项包括隧道传输协议、隧道乘客协议、隧道的源IP和目的IP;用于接收所述第二接收模块上送的封装报文,解析封装报文绑定的隧道口,建立封装报文的关键字段对应的关联于封装报文的入接口的上行流表,在该上行流表中保存封装报文绑定的隧道口信息并设置隧道标志,并将该上行流表下发到第二硬件转发模块,解封装报文,将封装报文绑定的隧道口作为报文的入接口,解析并判断报文是否绑定了隧道口,若是,则第二CPU转发模块再一次对报文执行解封装和转发处理,若否,则确定报文的出接口,建立报文的关键字段对应的关联于报文的入接口的上行流表,在该上行流表中保存报文的出接口信息,并将该上行流表下发到第二硬件转发模块,并通知第二发送模块根据报文的出接口转发报文;
所述第二硬件转发模块,用于接收所述第二接收模块上送的封装报文,根据封装报文的关键字段对应的关联于封装报文的入接口的上行流表中的隧道口信息确定封装报文绑定的隧道口,根据封装报文绑定的隧道口对应的隧道表项解封装报文,将封装报文绑定的隧道口作为报文的入接口,根据报文的关键字段对应的关联于报文的入接口的上行流表中的隧道标志判断报文是否绑定了隧道口,若是,则第二硬件转发平面再一次对报文执行解封装和转发处理,若否,则根据报文的关键字段对应的关联于报文的入接口的上行流表确定报文的出接口,并通知第二发送模块根据报文的出接口转发报文。
由上面的技术方案可知,本发明中,当接收到首包报文时,CPU转发平面对报文进行处理,生成报文的关键字段对应的上行流表、下行流表,以及经隧道封装后的报文的关键字段对应的上行流表和下行流表,并下发到硬件转发平面;当接收到后续报文时,硬件转发平面根据CPU转发平面下发的上行流表和下行流表,通过二次查表的方法实现隧道报文的快速转发和接收。本发明能够在不改变现有流表的固定结构以及表项大小的前提下实现隧道快速转发。
附图说明
图1是现有技术基于流表的报文快速转发的过程示意图;
图2是本发明实施例隧道报文封装的过程示意图;
图3是本发明实施例隧道报文转发方法的流程示意图;
图4是本发明实施例隧道报文解封装的过程示意图;
图5是本发明实施例隧道报文接收方法的流程示意图;
图6是本发明实施例隧道报文转发装置的结构示意图;
图7是本发明实施例隧道报文接收装置的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,下面结合附图,并举实施例,对本发明的技术方案进行详细说明。
本发明中,为了实现隧道快速转发,当本端设备与远端设备建立隧道时,CPU转发平面会收集隧道信息,生成隧道的隧道口对应的隧道表项,并将生成的隧道口对应的隧道表项下发到硬件转发平面。这里,所述隧道表项中可以包括隧道模式,隧道传输协议、隧道乘客协议、隧道的源IP地址和目的IP地址等信息。根据隧道口对应的隧道表项,可以对报文进行相应的封装和解封装。
当需要通过隧道传输报文时,在隧道的两端,分别需要对报文进行隧道封装和解隧道封装,下面分别结合图2、图3对本发明实施例隧道报文封装过程进行说明,结合图4、图5对本发明实施例实现隧道报文解封装过程进行说明。
图2是本发明实施例隧道报文封装的过程示意图,如图2所示,当在入接口接收到报文时,首先判断是否存在报文的关键字段对应的关联于报文的入接口的上行流表,如果否,则说明该报文是首包报文,将报文上送到CPU转发平面进行封装和转发处理,CPU转发平面在处理报文的过程中会生成相应的上行流表和下行流表(若没有下行业务,则不生成下行流表),将处理过程中生成的上行流表和下行流表下发到硬件转发平面,如果是,则说明该报文是后续报文,硬件转发平面根据CPU转发平面下发的隧道口对应的隧道表项,以及在处理首包报文时下发的上行流表、下行流表,通过二次查表的方式对报文进行封装和转发处理。
图3是本发明实施例隧道报文转发方法的流程示意图,对应于图2所示的隧道报文封装过程,包括以下步骤:
步骤301、接收需要进行隧道封装的报文。
步骤302、不存在报文的关键字段对应的关联于报文的入接口的上行流表,上送到CPU,CPU转发平面建立报文的关键字段对应的关联于报文的入接口的上行流表,确定报文的隧道出接口,在该上行流表中保存报文的隧道出接口信息,并将该上行流表下发到硬件转发平面;根据报文的隧道出接口信息封装报文,将报文的隧道出接口作为封装报文的入接口,建立封装报文的关键字段对应的关联于封装报文的入接口的上行流表,确定封装报文的出接口,在该上行流表中保存封装报文的出接口信息,并将该上行流表下发到硬件转发平面,若封装报文的出接口是物理出接口,则将封装报文从该物理出接口发送出去,若封装报文的出接口是隧道出接口,则CPU转发平面再一次对封装报文进行封装和转发处理。
本步骤中,由于不存在报文的关键字段对应的关联于报文的入接口的上行流表,说明接收到的首包报文,需要由CPU转发平面对报文进行封装和转发处理。CPU转发平面可以通过查找路由表确定报文的隧道出接口,以及确定封装报文隧道出接口或物理出接口。
在报文的关键字段对应的关联于报文的入接口的上行流表中保存的隧道出接口信息可以是隧道出接口的索引,隧道口的索引与隧道口对应的转发表项一一对应。
在对报文进行封装得到封装报文后,若封装报文的出接口是物理出接口,则在封装报文的关键字段对应的关联于封装报文的入接口的上行流表中保存的出接口信息可以是保存了报文的出接口相关信息的fib表的地址,根据该fib表地址可以确定fib表,进而可以根据该fib表中的出接口相关信息确定报文的出接口。
在对报文进行封装得到封装报文后,若封装报文的出接口是隧道出接口,则在封装报文的关键字段对应的关联于封装报文的入接口的上行流表中保存的出接口信息可以是封装报文的隧道出接口的索引。另外,当封装报文的出接口仍然是隧道出接口时,说明是报文对应的隧道是嵌套隧道,还需要再次对封装报文进行封装和转发处理,直到经多次封装后的报文的出接口为物理出接口。
对于封装报文来说,报文的隧道出接口也就是封装报文的入接口,因此,可以将封装报文看作是以该隧道出接口为入接口的新接收的报文,CPU转发平面对报文执行封装和转发处理具体包括:根据报文的隧道出接口信息封装报文,将报文的隧道出接口作为封装报文的入接口,建立封装报文的关键字段对应的关联于封装报文的入接口的上行流表,确定封装报文的出接口,在该上行流表中保存封装报文的出接口信息,并将该上行流表下发到硬件转发平面,若封装报文的出接口是物理出接口,则将封装报文从该物理出接口发送出去,若封装报文的出接口是隧道出接口,则CPU转发平面再一次对封装报文进行封装和转发处理。
步骤303、存在报文的关键字段对应的关联于报文的入接口的上行流表,硬件转发平面根据报文的关键字段对应的关联于报文的入接口的上行流表确定报文的隧道出接口,根据报文的隧道出接口对应的隧道表项封装报文,将报文的隧道出接口作为封装报文的入接口,根据封装报文的关键字段对应的关联于封装报文的入接口的上行流表确定封装报文的出接口,若封装报文的出接口是物理出接口,则将封装报文从该物理出接口发送出去,若封装报文的出接口是隧道出接口,则硬件转发平面再一次对封装报文进行封装和转发处理。
本步骤中,由于存在报文的关键字段对应的关联于报文的入接口的上行流表,说明接收到的后续报文,只需硬件转发平面根据CPU转发平面在处理对应的首包报文时下发的上行流表和下行流表对报文进行封装和转发处理。
这里,由于报文的关键字段对应的关联于报文的入接口的上行流表保存有报文的隧道出接口信息,因此可以确定隧道出接口,进而可以根据隧道出接口对应的隧道表项封装报文。封装报文后,可以将报文的隧道出接口作为封装报文的入接口,继续根据封装报文的关键字段对应的关联于封装报文的入接口的上行流表确定封装报文的出接口,当封装报文的出接口是物理出接口时,可以从物理出接口转发报文,当封装报文的出接口是隧道出接口时,说明是报文对应的隧道是嵌套隧道,还需要再次对封装报文进行封装和转发处理,直到经多次封装后的报文的出接口为物理出接口。
对于封装报文来说,报文的隧道出接口也就是封装报文的入接口,因此,可以将封装报文看作是以该隧道出接口为入接口的新接收的报文,硬件转发平面对报文执行封装和转发处理具体包括:根据报文的隧道出接口对应的隧道表项封装报文,将报文的隧道出接口作为封装报文的入接口,根据封装报文的关键字段对应的关联于封装报文的入接口的上行流表确定封装报文的出接口,若封装报文的出接口是物理出接口,则将封装报文从该物理出接口发送出去,若封装报文的出接口是隧道出接口,则硬件转发平面再一次对封装报文进行封装和转发处理。
由上述对报文的处理和转发过程中可以看出,如果用于传输报文的隧道是非嵌套隧道,则只需对报文进行一次隧道封装;如果用于传输报文的隧道是嵌套隧道,则需要对报文进行多次隧道封装,每次封装报文后,均会将封装后的报文作为以封装前的报文的隧道出接口为入接口的新接收到的报文,再次对新接收到的报文进行封装和转发处理。
在实际应用中,报文的封装和转发处理过程会受各种因素影响,例如,业务变化,可能会导致报文的封装和转发处理过程发生变化。这种情况下,CPU转发平面会对相应受到影响的流表进行失效处理(例如置位),若硬件转发平面根据报文的关键字段查找到被置位的流表,则可确定该流表失效,这时,硬件转发平面需要将报文上送到CPU转发平面进行处理。
因此,在步骤303中,所述将报文的隧道出接口作为封装报文的入接口之后,根据封装报文的关键字段对应的关联于封装报文的入接口的上行流表确定封装报文的出接口之前,进一步包括:判断是否存在封装报文的关键字段对应的关联于封装报文的入接口的上行流表,如果是,则根据封装报文的关键字段对应的关联于封装报文的入接口的上行流表确定封装报文的出接口并执行后续动作,否则,将报文上送到CPU转发平面,由CPU转发平面确定封装报文的出接口,建立封装报文的关键字段对应的关联于封装报文的入接口的上行流表,在该上行流表中保存封装报文的出接口信息,并将该上行流表下发到硬件转发平面,若封装报文的出接口是物理出接口,则将封装报文从该物理出接口发送出去,若封装报文的出接口是隧道出接口,则CPU转发平面对封装报文进行后续的封装和转发处理。这里,CPU转发平面对封装报文进行后续的封装和转发处理与步骤302中CPU转发平面对封装报文的封装和转发处理的方法相同。
图3所示本发明实施例中,如果报文的入接口上可能会配置有上行业务,这种情况下,还需要执行报文的入接口上配置的上行业务。
因此,CPU转发平面在建立报文的关键字段对应的关联于报文的入接口的上行流表时,还可以进一步包括:如果报文的入接口上配置有上行业务,则执行报文的入接口上配置的上行业务,并在该上行流表中保存报文的入接口上配置的上行业务。相应地,硬件转发平面在根据报文的关键字段对应的关联于报文的入接口的上行流表确定报文的出接口之后,还可以进一步包括:如果该上行流表中保存有报文的入接口上配置的上行业务,则执行该上行流表中保存的报文的入接口上配置的上行业务。
另外,将报文进行隧道封装得到封装报文后,对于封装报文来说,报文的隧道出接口就是封装报文的入接口,如果封装报文的入接口上配置有上行业务,则还需要执行封装报文的入接口上配置的上行业务。
因此,CPU转发平面在建立封装报文的关键字段对应的关联于封装报文的入接口的上行流表时,还可以进一步包括:如果封装报文的入接口上配置有上行业务,则执行封装报文的入接口上配置的上行业务,并在该上行流表中保存封装报文的入接口上配置的上行业务。相应地,硬件转发平面在根据封装报文的关键字段对应的关联于封装报文的入接口的上行流表确定封装报文的出接口之后,还可以进一步包括:如果该上行流表中保存有封装报文的入接口上配置的上行业务,则执行该上行流表中保存的封装报文的入接口上配置的上行业务。
此外,确定报文的出接口后,根据报文的出接口对报文进行下一步的处理之前,如果报文的出接口上配置有下行业务,则还需要执行报文的出接口上配置的下行业务,如果是CPU转发平面处理报文,则还需要建立相应的下行流表,以保存该下行业务。这里,报文的出接口既可以是物理出接口,也可以是隧道出接口。
具体来说,CPU转发平面在确定报文的出接口是物理出接口之后,将报文从该物理出接口转发出去之前,还可以进一步包括:如果该物理出接口上配置有下行业务,则执行该物理出接口上配置的下行业务,建立报文的关键字段对应的关联于该物理出接口的下行流表,并在该下行流表中保存该物理出接口上配置的下行业务,将该下行流表下发到硬件转发平面。相应地,硬件转发平面在确定报文的出接口是物理出接口之后,将报文从该物理出接口转发出去之前,还可以进一步包括:如果该物理出接口配置有下行业务,则执行报文的关键字段对应的关联于该物理出接口的下行流表中保存的该物理出接口上配置的下行业务。
同样的道理,CPU转发平面在确定报文的出接口是隧道出接口之后,根据该隧道出接口信息封装报文之前,还可以进一步包括:如果该隧道出接口上配置有下行业务,则执行该隧道出接口上配置的下行业务,建立报文的关键字段对应的关联于该隧道出接口的下行流表,在该下行流表中保存该隧道出接口上配置的下行业务,将该下行流表下发到硬件转发平面。相应地,硬件转发平面确定报文的隧道出接口之后,根据该隧道出接口对应的隧道表项封装报文之前,进一步包括:如果该隧道出接口上配置有下行业务,则执行报文的关键字段对应的关联于该隧道出接口的下行流表中保存的该隧道出接口上配置的下行业务。
当相应接口配置有业务时,CPU转发平面对报文执行封装和转发处理以及硬件转发平面对报文执行封装和转发处理进一步包括与业务相对应的内容。
以上结合图2、图3对本发明实施例隧道报文封装过程进行了详细说明,下面结合图4、图5对本发明实施例实现隧道报文解封装过程进行详细说明。
图4是本发明实施例实现隧道报文解封装的过程示意图,如图4所示,当在入接口接收到封装报文时,首先判断是否存在封装报文的关键字段对应的关联于封装报文的入接口的上行流表,如果否,则说明该报文是首包报文,将报文上送到CPU转发平面进行解封装和转发处理,CPU转发平面在处理报文的过程中会生成相应的上行流表和下行流表(如果出接口没有业务,则不生成下行流表),并将处理过程中生成的上行流表和下行流表下发到硬件转发平面,如果是,则说明该报文是后续报文,硬件转发平面根据CPU转发平面下发的隧道口对应的隧道表项,以及在处理首包报文时下发的对应的上行流表、下行流表,通过二次查表的方式对报文进行解封装和转发处理。
图5是本发明实施例实现隧道报文接收方法的流程示意图,对应于图4所示的报文解封装过程,包括以下步骤:
步骤501、接收需要进行解隧道封装的封装报文。
步骤502、不存在封装报文的关键字段对应的关联于封装报文的入接口的上行流表,则CPU转发平面解析封装报文绑定的隧道口,建立封装报文的关键字段对应的关联于封装报文的入接口的上行流表,在该上行流表中保存封装报文绑定的隧道口信息并设置隧道标志,并将该上行流表下发到硬件转发平面,解封装报文,将封装报文绑定的隧道口作为报文的入接口,解析并判断报文是否绑定了隧道口,若是,则再一次对报文执行解封装和转发处理,若否,则建立报文的关键字段对应的关联于报文的入接口的上行流表,确定报文的出接口,在该上行流表中保存报文的出接口信息,并将该上行流表下发到硬件转发平面,根据报文的出接口转发报文。
本步骤中,由于不存在封装报文的关键字段对应的关联于封装报文的入接口的上行流表,说明接收到的是首包报文,需要由CPU转发平面对报文进行解封装和转发处理。CPU转发平面可以通过解析封装报文的内容,从而确定封装报文绑定的隧道口。
CPU转发平面在封装报文的关键字段对应的关联于封装报文的入接口的上行流表中保存有隧道口信息以及隧道标志,从而使得硬件转发平面可以在对后续的封装报文进行处理时,根据该上行流表中的隧道标志确定后续封装报文绑定了隧道口,并且可以根据该上行流表中的隧道口信息确定后续封装报文绑定的隧道口。这里,所述的隧道口信息可以是隧道口的索引,隧道口的索引与隧道口对应的转发表项一一对应。
对封装报文进行解封装得到报文(也即解封装的报文)后,可以将封装报文绑定的隧道口作为报文的入接口,继续解析报文的内容,判断报文是否绑定了隧道口,如果没有绑定隧道口,则说明本次解封装后得到的报文是已经完全解封装了的报文,可以确定报文的出接口并根据报文的出接口转发报文,并且在根据报文的出接口转发报文之前,还需要建立报文的关键字段对应的关联于报文的入接口的上行流表,用以保存报文的出接口;如果绑定了隧道口,则说明本次解封装后得到的报文仍然是封装报文,因此,还需要再次对解封装的报文进行解封装和转发处理,直到经过多次解封装后的报文不再绑定有隧道口。
对于解封装后得到的报文来说,封装报文绑定的隧道口也就是报文的入接口,如果报文上也绑定了隧道口,则可以将报文看作是以封装报文绑定的隧道口为入接口的新接收的封装报文。CPU转发平面对封装报文进行解封装和转发处理具体包括:解析封装报文绑定的隧道口,建立封装报文的关键字段对应的关联于封装报文的入接口的上行流表,在该上行流表中保存封装报文绑定的隧道口信息并设置隧道标志,并将该上行流表下发到硬件转发平面,解封装报文,将封装报文绑定的隧道口作为报文的入接口,解析并判断报文是否绑定了隧道口,若是,则再一次对报文执行解封装和转发处理,若否,建立报文的关键字段对应的关联于报文的入接口的上行流表,则确定报文的出接口,在该上行流表中保存报文的出接口信息,并将该上行流表下发到硬件转发平面,根据报文的出接口转发报文。
需要说明的是,本步骤中,若确定对封装报文解隧道封装后得到的报文未绑定隧道口,则可以确定报文的出接口,并根据报文的出接口转发报文。这里,确定的报文的出接口可能是物理出接口,也可能是隧道出接口。如果报文的出接口是物理出接口,则可以从物理出接口转发报文,如果报文的出接口是隧道出接口,则需要按照图3所示本发明实施例中步骤302的处理过程对该报文进行封装和转发处理。这种先解封装再加封装的情况,实际上是报文从一个隧道传输到当前设备,由当前设备将报文解隧道封装后,再将解封装后报文重新进行封装后从另一个隧道转发。
步骤503、存在封装报文的关键字段对应的关联于封装报文的入接口的上行流表,则硬件转发平面根据封装报文的关键字段对应的关联于封装报文的入接口的上行流表中的隧道口信息确定封装报文绑定的隧道口,根据封装报文绑定的隧道口对应的隧道表项解封装报文,将封装报文绑定的隧道口作为报文的入接口,根据报文的关键字段对应的关联于报文的入接口的上行流表中的隧道标志判断报文是否绑定了隧道口,若是,则硬件转发平面再一次对报文进行解封装和转发处理,若否,则根据报文的关键字段对应的关联于报文的入接口的上行流表确定报文的出接口,根据报文的出接口转发报文。
本步骤中,由于存在封装报文的关键字段对应的关联于封装报文的入接口的上行流表,说明接收到的后续报文,只需硬件转发平面根据CPU转发平面在处理对应的首包报文时下发的上行流表和下行流表对报文进行解封装和转发处理。
这里,由于封装报文的关键字段对应的关联于封装报文的入接口的上行流表保存有隧道标志,因此可以确定封装报文绑定了隧道口,进而可以根据该上行流表中的隧道口信息确定封装报文绑定的隧道口,进而可以根据隧道口对应的隧道表项解封装报文。
对封装报文进行解封装得到报文(也即解封装的报文)后,可以将封装报文绑定的隧道口作为报文的入接口,继续根据报文的关键字段对应的关联于报文的入接口的上行流表中的隧道标志确定报文是否绑定了隧道口,如果报文未绑定隧道口,则说明本次解封装后得到的报文是已经完全解封装了的报文,可以根据报文的关键字段对应的关联于报文的入接口的上行流表中的出接口信息确定报文的出接口和转发报文;如果报文绑定了隧道口,则说明本次解封装后得到的报文仍然是封装报文,因此,还需要再次对解封装的报文进行解封装和转发处理,直到经过多此解封装后的报文不再绑定隧道口。
对于解封装后得到的报文来说,封装报文绑定的隧道口也就是报文的入接口,如果报文上也绑定了隧道口,则可以将报文看作是以封装报文绑定的隧道口为入接口的新接收的封装报文。硬件转发平面对封装报文(这里的封装报文,既可以是从物理入接口接收到的封装报文,也可以是经解封装后需要再次进行解封装的封装报文)进行解封装和转发处理具体包括:根据封装报文的关键字段对应的关联于封装报文的入接口的上行流表中的隧道口信息确定封装报文绑定的隧道口,根据封装报文绑定的隧道口对应的隧道表项解封装报文,将封装报文绑定的隧道口作为报文的入接口,根据报文的关键字段对应的关联于报文的入接口的上行流表中的隧道标志判断报文是否绑定了隧道口,若是,则再一次对报文进行解封装和转发处理,若否,则根据报文的关键字段对应的关联于报文的入接口的上行流表确定报文的出接口,根据报文的出接口转发报文。
需要说明的是,本步骤中,若确定对封装报文解隧道封装后得到的报文未绑定隧道口,则可以确定报文的出接口,并根据报文的出接口转发报文。这里,确定的报文的出接口可能是物理出接口,也可能是隧道出接口。如果报文的出接口是物理出接口,则可以从物理出接口转发报文,如果报文的出接口是隧道出接口,则需要按照图3所示本发明实施例中步骤303的处理过程对该报文进行封装和转发处理。这种先解封装再加封装的情况,实际上是报文从一个隧道传输到当前设备,由当前设备将报文解隧道封装后,再将解封装后报文重新进行封装后从另一个隧道转发。
由上述对封装报文的解封装处理和转发过程中可以看出,如果用于传输报文的隧道是非嵌套隧道,则只需对报文进行一次解隧道封装;如果用于传输报文的隧道是嵌套隧道,则需要对报文进行多次解隧道封装,每次解封装报文后,均会将解封装后的报文作为以解封装前的报文绑定的隧道口为入接口的新接收到的报文,再次解析并判断新接收到的报文是否绑定隧道口。
图5所示本发明实施例中,基于和图3所示本发明实施例相同的理由,封装报文的转发也会受业务变化等因素影响,会存在硬件转发平面对报文进行处理的过程中查找到被置位的流表,确定该流表失效的情况,这时,硬件转发平面需要将报文上送到CPU转发平面进行处理。
因此,在步骤503中,硬件转发平面在将封装报文绑定的隧道口作为报文的入接口之后,根据报文的关键字段对应的关联于报文的入接口的上行流表中的隧道标志判断报文是否绑定了隧道口之前,还可以进一步包括:判断是否存在报文的关键字段对应的关联于报文的入接口的上行流表,如果是,则根据报文的关键字段对应的关联于报文的入接口的上行流表中的隧道标志判断报文是否绑定了隧道口,否则,将报文上送到CPU转发平面,并由CPU转发平面解析并判断报文是否绑定了隧道口并执行后续动作,若是,则CPU转发平面对报文进行后续的解封装和转发处理,若否,则确定报文的出接口,建立报文的关键字段对应的关联于报文的入接口的上行流表,在该上行流表中保存报文的出接口信息,并将该上行流表下发到硬件转发平面,根据报文的出接口转发报文。这里,CPU转发平面对报文进行后续的解封装和转发处理与步骤502中CPU转发平面对报文的解封装和转发处理的方法相同。
图5所示本发明实施例中,封装报文的入接口上可能会配置有上行业务,这种情况下,还需要执行封装报文的入接口上配置的上行业务。
因此,CPU转发平面在建立封装报文的关键字段对应的关联于封装报文的入接口的上行流表时,还可以进一步包括:如果封装报文的入接口上配置有上行业务,则执行封装报文的入接口上配置的上行业务,并在该上行流表中保存封装报文的入接口上配置的上行业务。相应地,硬件转发平面在根据封装报文的关键字段对应的关联于封装报文的入接口的上行流表中的隧道口信息确定封装报文绑定的隧道口之后,还可以进一步包括:如果该上行流表中保存有封装报文的入接口上配置的上行业务,则执行该上行流表中保存的封装报文的入接口上配置的上行业务。
同样的道理,CPU转发平面在建立报文的关键字段对应的关联于报文的入接口的上行流表时,还可以进一步包括:如果报文的入接口上配置有上行业务,则执行报文的入接口上配置的上行业务,并在该上行流表中保存报文的入接口上配置的上行业务。相应地,硬件转发平面在根据报文的关键字段对应的关联于报文的入接口的上行流表中的隧道口信息确定报文绑定的隧道口之后,进一步包括:如果该上行流表中保存有报文的入接口上配置的上行业务,则执行该上行流表中保存的报文的入接口上配置的上行业务。
此外,当封装报文经过一次或多次解封装后,会得到未绑定隧道口的报文,这时,可以确定该未绑定隧道口的报文的出接口,并根据报文的出接口对报文进行转发处理,在此过程中,如果报文的出接口上配置有下行业务,则还需要执行报文的出接口上配置的下行业务,如果是CPU转发平面处理报文,则还需要建立相应的下行流表,以保存该下行业务。这里,报文的出接口既可以是物理出接口,也可以是隧道出接口。
因此,图5所示本发明实施例中,CPU转发平面在确定报文的出接口之后,根据报文的出接口转发报文之前,还可以进一步包括:如果报文的出接口上配置有下行业务,则执行报文的出接口上配置的下行业务,并建立报文的关键字段对应的关联于报文的出接口的下行流表,在该下行流表中保存报文的出接口上配置的下行业务。相应地,硬件转发平面在根据报文的关键字段对应的关联于报文的入接口的上行流表确定报文的出接口之后,根据报文的出接口转发报文之前,还可以进一步包括:如果报文的出接口上配置有下行业务,则执行报文的关键字段对应的关联于报文的出接口的下行流表中保存的报文的出接口上配置的下行业务。
当相应接口配置有业务时,CPU转发平面对封装报文执行解封装和转发处理以及硬件转发平面对封装报文执行解封装和转发处理进一步包括与业务相对应的内容。
图3和图5所示本发明实施例中,本端设备与远端设备建立的隧道可以是:IPv4 over IPv4隧道、IPv4 over IPv6隧道、IPv6 over IPv4隧道、IPv6 overIPv6隧道、或GRE隧道。当所述隧道是IPv4 over IPv4隧道时,所述隧道模式是IPv4 over IPv4,所述隧道表项中的隧道传输协议是IPv4协议,隧道乘客协议是IPv4协议;当所述隧道是IPv4 over IPv6隧道时,所述隧道模式是IPv4 over IPv6,所述隧道表项中的隧道传输协议是IPv6协议,隧道乘客协议是IPv4协议;当所述隧道是IPv6 over IPv4隧道时,所述隧道模式是IPv6 overIPv4,所述隧道表项中的隧道传输协议是IPv4协议,隧道乘客协议是IPv6协议;当所述隧道是IPv6 over IPv6隧道时,所述隧道模式是IPv6 over IPv6,所述隧道表项中的隧道传输协议是IPv6协议,隧道乘客协议是IPv6协议;当所述隧道是通用路由封装(GRE)隧道时,所述隧道模式是GRE,所述隧道表项中的隧道传输协议是IPv4协议,隧道乘客协议是GRE协议。
图3和图5所示本发明实施例中,报文的关键字段,是指报文的五元组、七元组、或八元组等。
以上对本发明实施例隧道报文转发方法和隧道报文接收方法进行了详细说明,本发明还提供了一种隧道报文转发装置和一种隧道报文接收装置。
参见图6,图6是本发明实施例隧道报文转发装置的结构示意图,该装置包括:第一接收模块601、第一CPU转发模块602、第一硬件转发模块603、第一发送模块604;其中,
第一接收模块601,用于接收需要进行隧道封装的报文,判断是否存在报文的关键字段对应的关联于报文的入接口的上行流表,如果是,则将该报文发送到第一硬件转发模块603,否则,则将该报文上送到第一CPU转发模块602;
第一CPU转发模块602,用于建立与远端设备间隧道时,生成该隧道的隧道口对应的隧道表项并下发到第一硬件转发模块603,所述隧道表项包括隧道传输协议、隧道乘客协议、隧道的源IP和目的IP;用于接收所述第一接收模块601上送的报文,建立报文的关键字段对应的关联于报文的入接口的上行流表,确定报文的隧道出接口,在该上行流表中保存报文的隧道出接口信息,并将该上行流表下发到第一硬件转发模块603;根据报文的隧道出接口信息封装报文,将报文的隧道出接口作为封装报文的入接口,建立封装报文的关键字段对应的关联于封装报文的入接口的上行流表,确定封装报文的出接口,在该上行流表中保存封装报文的出接口信息,并将该上行流表下发到第一硬件转发模块603,若封装报文的出接口是物理出接口,则通知第一发送模块604将封装报文从该物理出接口发送出去,若封装报文的出接口是隧道出接口,则第一CPU转发模块602再一次对封装报文执行封装和转发处理;
第一硬件转发模块603,用于接收所述第一接收模块601发送的报文,则根据报文的关键字段对应的关联于报文的入接口的上行流表确定报文的隧道出接口,根据报文的隧道出接口对应的隧道表项封装报文,将报文的隧道出接口作为封装报文的入接口,根据封装报文的关键字段对应的关联于封装报文的入接口的上行流表确定封装报文的出接口,若封装报文的出接口是物理出接口,则通知第一发送模块604将封装报文从该物理出接口发送出去,若封装报文的出接口是隧道出接口,则第一硬件转发模块603再一次对封装报文执行封装和转发处理。
第一硬件转发模块603在将报文的隧道出接口作为封装报文的入接口之后,根据封装报文的关键字段对应的关联于封装报文的入接口的上行流表确定封装报文的出接口之前,进一步用于:判断是否存在封装报文的关键字段对应的关联于封装报文的入接口的上行流表,如果是,则根据封装报文的关键字段对应的关联于封装报文的入接口的上行流表确定封装报文的出接口并执行后续动作,否则,将该封装报文上送到第一CPU转发模块602;
第一CPU转发模块602,进一步用于:接收第一硬件转发模块603上送的封装报文,建立封装报文的关键字段对应的关联于封装报文的入接口的上行流表,确定封装报文的出接口,在该上行流表中保存封装报文的出接口信息,并将该上行流表下发到第一硬件转发模块603,若封装报文的出接口是物理出接口,则通知第一发送模块604将封装报文从该物理出接口发送出去,若封装报文的出接口是隧道出接口,则第一CPU转发模块602对封装报文执行后续的封装和转发处理。
第一CPU转发模块602在建立报文的关键字段对应的关联于报文的入接口的上行流表时,进一步用于:如果报文的入接口上配置有上行业务,则执行报文的入接口上配置的上行业务,并在该上行流表中保存报文的入接口上配置的上行业务;
第一硬件转发模块603在根据报文的关键字段对应的关联于报文的入接口的上行流表确定报文的出接口时,进一步用于:如果该上行流表中保存有报文的入接口上配置的上行业务,则执行该上行流表中保存的报文的入接口上配置的上行业务;
第一CPU转发模块602在建立封装报文的关键字段对应的关联于封装报文的入接口的上行流表之后,进一步用于:如果封装报文的入接口上配置有上行业务,则执行封装报文的入接口上配置的上行业务,并在该上行流表中保存封装报文的入接口上配置的上行业务;
第一硬件转发模块603在根据封装报文的关键字段对应的关联于封装报文的入接口的上行流表确定封装报文的出接口之后,进一步用于:如果该上行流表中保存有封装报文的入接口上配置的上行业务,则执行该上行流表中保存的封装报文的入接口上配置的上行业务。
第一CPU转发模块602在确定报文的出接口是物理出接口之后,将报文从该物理出接口转发出去之前,进一步用于:如果该物理出接口上配置有下行业务,则执行该物理出接口上配置的下行业务,建立报文的关键字段对应的关联于该物理出接口的下行流表,并在该下行流表中保存该物理出接口上配置的下行业务,将该下行流表下发到第一硬件转发模块603;
第一硬件转发模块603在确定报文的出接口是物理出接口之后,将报文从该物理出接口转发出去之前,进一步用于:如果该物理出接口配置有下行业务,则执行报文的关键字段对应的关联于该物理出接口的下行流表中保存的该物理出接口上配置的下行业务。
第一CPU转发模块602确定报文的出接口是隧道出接口之后,根据该隧道出接口信息封装报文之前,进一步用于:如果该隧道出接口上配置有下行业务,则执行该隧道出接口上配置的下行业务,建立报文的关键字段对应的关联于该隧道出接口的下行流表,在该下行流表中保存该隧道出接口上配置的下行业务,将该下行流表下发到第一硬件转发模块603;
第一硬件转发模块603在确定报文的出接口是隧道出接口之后,根据该隧道出接口对应的隧道表项封装报文之前,进一步用于:如果该隧道出接口上配置有下行业务,则执行报文的关键字段对应的关联于该隧道出接口的下行流表中保存的该隧道出接口上配置的下行业务。
所述与远端设备间建立的隧道是IPv4 over IPv4隧道;
所述第一CPU转发模块602生成的隧道表项中的隧道传输协议是IPv4协议,隧道乘客协议是IPv4协议;
或者,
所述与远端设备间建立的隧道是IPv4 over IPv6隧道;
所述第一CPU转发模块602生成的隧道表项中的隧道传输协议是IPv6协议,隧道乘客协议是IPv4协议;
或者,
所述与远端设备间建立的隧道是IPv6 over IPv4隧道;
所述第一CPU转发模块602生成的隧道表项中的隧道传输协议是IPv4协议,隧道乘客协议是IPv6协议;
或者,
所述与远端设备间建立的隧道是IPv6 over IPv6隧道;
所述第一CPU转发模块602生成的隧道表项中的隧道传输协议是IPv6协议,隧道乘客协议是IPv6协议;
或者,
所述与远端设备间建立的隧道是GRE隧道;
所述第一CPU转发模块602生成的隧道表项中的隧道传输协议是IPv4协议或IPv6协议,乘客协议是GRE协议。
参见图7,图7是本发明实施例隧道报文接收装置的结构示意图,该装置包括:第二接收模块701、第二CPU转发模块702、第二硬件转发模块703、第二发送模块704;其中,
第二接收模块701,用于:接收需要进行解隧道封装的封装报文,判断是否存在封装报文的关键字段对应的关联于封装报文的入接口的上行流表,如果是,则将封装报文发送到第二硬件转发模块703,否则,将封装报文上送到第二CPU转发模块702;
第二CPU转发模块702,用于建立与远端设备间隧道时,生成该隧道的隧道口对应的隧道表项并下发到第二硬件转发模块703,所述隧道表项包括隧道传输协议、隧道乘客协议、隧道的源IP和目的IP;用于接收所述第二接收模块701上送的封装报文,解析封装报文绑定的隧道口,建立封装报文的关键字段对应的关联于封装报文的入接口的上行流表,在该上行流表中保存封装报文绑定的隧道口信息并设置隧道标志,并将该上行流表下发到第二硬件转发模块703,解封装报文,将封装报文绑定的隧道口作为报文的入接口,解析并判断报文是否绑定了隧道口,若是,则第二CPU转发模块702再一次对报文执行解封装和转发处理,若否,则确定报文的出接口,建立报文的关键字段对应的关联于报文的入接口的上行流表,在该上行流表中保存报文的出接口信息,并将该上行流表下发到第二硬件转发模块703,并通知第二发送模块704根据报文的出接口转发报文;
第二硬件转发模块703,用于接收所述第二接收模块701上送的封装报文,根据封装报文的关键字段对应的关联于封装报文的入接口的上行流表中的隧道口信息确定封装报文绑定的隧道口,根据封装报文绑定的隧道口对应的隧道表项解封装报文,将封装报文绑定的隧道口作为报文的入接口,根据报文的关键字段对应的关联于报文的入接口的上行流表中的隧道标志判断报文是否绑定了隧道口,若是,则第二硬件转发平面再一次对报文执行解封装和转发处理,若否,则根据报文的关键字段对应的关联于报文的入接口的上行流表确定报文的出接口,并通知第二发送模块704根据报文的出接口转发报文。
第二硬件转发模块703在将封装报文绑定的隧道口作为报文的入接口之后,根据报文的关键字段对应的关联于报文的入接口的上行流表中的隧道标志判断报文是否绑定了隧道口之前,进一步用于:判断是否存在报文的关键字段对应的关联于报文的入接口的上行流表,如果是,则根据报文的关键字段对应的关联于报文的入接口的上行流表中的隧道标志判断报文是否绑定了隧道口并执行后续动作,否则,将报文上送到CPU转发模块;
第二CPU转发模块702,进一步用于:接收硬件转发模块上送的报文,解析并判断报文是否绑定了隧道口,若是,则第二CPU转发平面对报文执行后续的解封装和转发处理,若否,则确定报文的出接口,建立报文的关键字段对应的关联于报文的入接口的上行流表,在该上行流表中保存报文的出接口信息,并将该上行流表下发到第二硬件转发模块703,并通知第二发送模块704根据报文的出接口转发报文。
第二CPU转发模块702在建立封装报文的关键字段对应的关联于封装报文的入接口的上行流表时,进一步用于:如果封装报文的入接口上配置有上行业务,则执行封装报文的入接口上配置的上行业务,并在该上行流表中保存封装报文的入接口上配置的上行业务;
第二硬件转发模块703在根据封装报文的关键字段对应的关联于封装报文的入接口的上行流表中的隧道口信息确定封装报文绑定的隧道口之后,进一步用于:如果该上行流表中保存有封装报文的入接口上配置的上行业务,则执行该上行流表中保存的封装报文的入接口上配置的上行业务;
第二CPU转发模块702在建立报文的关键字段对应的关联于报文的入接口的上行流表时,进一步用于:如果报文的入接口上配置有上行业务,则执行报文的入接口上配置的上行业务,并在该上行流表中保存报文的入接口上配置的上行业务;
第二硬件转发模块703在根据报文的关键字段对应的关联于报文的入接口的上行流表中确定报文的出接口之后,进一步用于:如果该上行流表中保存有报文的入接口上配置的上行业务,则执行该上行流表中保存的报文的入接口上配置的上行业务。
第二CPU转发模块702在确定报文的出接口之后,根据报文的出接口转发报文之前,进一步用于:如果该出接口上配置有下行业务,则执行该出接口上配置的下行业务,建立报文的关键字段对应的关联于该出接口的下行流表,并在该下行流表中保存该出接口上配置的下行业务,将该下行流表下发到第二硬件转发模块703;
第二硬件转发模块703在根据报文的关键字段对应的关联于报文的入接口的上行流表确定报文的出接口之后,根据报文的出接口转发报文之前,进一步用于:如果该出接口配置有下行业务,则执行报文的关键字段对应的关联于该出接口的下行流表中保存的该出接口上配置的下行业务。
所述与远端设备间建立的隧道是IPv4 over IPv4隧道;
所述第二CPU转发模块702生成的隧道表项中的隧道传输协议是IPv4协议,隧道乘客协议是IPv4协议;
或者,
所述与远端设备间建立的隧道是IPv4 over IPv6隧道;
所述第二CPU转发模块702生成的隧道表项中的隧道传输协议是IPv6协议,隧道乘客协议是IPv4协议;
或者,
所述与远端设备间建立的隧道是IPv6 over IPv4隧道;
所述第二CPU转发模块702生成的隧道表项中的隧道传输协议是IPv4协议,隧道乘客协议是IPv6协议;
或者,
所述与远端设备间建立的隧道是IPv6 over IPv6隧道;
所述第二CPU转发模块702生成的隧道表项中的隧道传输协议是IPv6协议,隧道乘客协议是IPv6协议;
或者,
所述与远端设备间建立的隧道是GRE隧道;
所述第二CPU转发模块702生成的隧道表项中的隧道传输协议是IPv4协议或IPv6协议,乘客协议是GRE协议。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

Claims (22)

1.一种隧道报文转发方法,其特征在于,建立与远端设备间隧道时,CPU转发平面生成该隧道的隧道口对应的隧道表项并下发到硬件转发平面,所述隧道表项包括隧道传输协议、隧道乘客协议、隧道的源IP和目的IP;该方法包括:
接收需要进行隧道封装的报文;
如果不存在报文的关键字段对应的关联于报文的入接口的上行流表,则上送CPU,并由CPU转发平面建立报文的关键字段对应的关联于报文的入接口的上行流表,确定报文的隧道出接口,在该上行流表中保存报文的隧道出接口信息,并将该上行流表下发到硬件转发平面;根据报文的隧道出接口信息封装报文,将报文的隧道出接口作为封装报文的入接口,建立封装报文的关键字段对应的关联于封装报文的入接口的上行流表,确定封装报文的出接口,在该上行流表中保存封装报文的出接口信息,并将该上行流表下发到硬件转发平面,若封装报文的出接口是物理出接口,则将封装报文从该物理出接口发送出去,若封装报文的出接口是隧道出接口,则CPU转发平面再一次对封装报文执行封装和转发处理;
如果存在报文的关键字段对应的关联于报文的入接口的上行流表,硬件转发平面根据报文的关键字段对应的关联于报文的入接口的上行流表确定报文的隧道出接口,根据报文的隧道出接口对应的隧道表项封装报文,将报文的隧道出接口作为封装报文的入接口,根据封装报文的关键字段对应的关联于封装报文的入接口的上行流表确定封装报文的出接口,若封装报文的出接口是物理出接口,则将封装报文从该物理出接口发送出去,若封装报文的出接口是隧道出接口,则硬件转发平面再一次对封装报文执行封装和转发处理。
2.根据权利要求1所述的隧道报文转发方法,其特征在于,
硬件转发平面将报文的隧道出接口作为封装报文的入接口之后,根据封装报文的关键字段对应的关联于封装报文的入接口的上行流表确定封装报文的出接口之前,进一步包括:判断是否存在封装报文的关键字段对应的关联于封装报文的入接口的上行流表,如果是,则根据封装报文的关键字段对应的关联于封装报文的入接口的上行流表确定封装报文的出接口并执行后序动作,否则,上送CPU,并由CPU转发平面建立封装报文的关键字段对应的关联于封装报文的入接口的上行流表,确定封装报文的出接口,在该上行流表中保存封装报文的出接口信息,并将该上行流表下发到硬件转发平面,若封装报文的出接口是物理出接口,则将封装报文从该物理出接口发送出去,若封装报文的出接口是隧道出接口,则CPU转发平面对封装报文执行后续的封装和转发处理。
3.根据权利要求2所述的隧道报文转发方法,其特征在于,
CPU转发平面建立报文的关键字段对应的关联于报文的入接口的上行流表时,进一步包括:如果报文的入接口上配置有上行业务,则执行报文的入接口上配置的上行业务,并在该上行流表中保存报文的入接口上配置的上行业务;
硬件转发平面根据报文的关键字段对应的关联于报文的入接口的上行流表确定报文的出接口之后,进一步包括:如果该上行流表中保存有报文的入接口上配置的上行业务,则执行该上行流表中保存的报文的入接口上配置的上行业务;
CPU转发平面建立封装报文的关键字段对应的关联于封装报文的入接口的上行流表时,进一步包括:如果封装报文的入接口上配置有上行业务,则执行封装报文的入接口上配置的上行业务,并在该上行流表中保存封装报文的入接口上配置的上行业务;
硬件转发平面根据封装报文的关键字段对应的关联于封装报文的入接口的上行流表确定封装报文的出接口之后,进一步包括:如果该上行流表中保存有封装报文的入接口上配置的上行业务,则执行该上行流表中保存的封装报文的入接口上配置的上行业务。
4.根据权利要求1-3中任一权项所述的隧道报文转发方法,其特征在于,
CPU转发平面确定报文的出接口是物理出接口之后,将报文从该物理出接口转发出去之前,进一步包括:如果该物理出接口上配置有下行业务,则执行该物理出接口上配置的下行业务,建立报文的关键字段对应的关联于该物理出接口的下行流表,并在该下行流表中保存该物理出接口上配置的下行业务,将该下行流表下发到硬件转发平面;
硬件转发平面确定报文的出接口是物理出接口之后,将报文从该物理出接口转发出去之前,进一步包括:如果该物理出接口配置有下行业务,则执行报文的关键字段对应的关联于该物理出接口的下行流表中保存的该物理出接口上配置的下行业务。
5.根据权利要求1-3中任一权项所述的隧道报文转发方法,其特征在于,
CPU转发平面确定报文的出接口是隧道出接口之后,根据该隧道出接口信息封装报文之前,进一步包括:如果该隧道出接口上配置有下行业务,则执行该隧道出接口上配置的下行业务,建立报文的关键字段对应的关联于该隧道出接口的下行流表,在该下行流表中保存该隧道出接口上配置的下行业务,将该下行流表下发到硬件转发平面;
硬件转发平面确定报文的出接口是隧道出接口之后,根据该隧道出接口对应的隧道表项封装报文之前,进一步包括:如果该隧道出接口上配置有下行业务,则执行报文的关键字段对应的关联于该隧道出接口的下行流表中保存的该隧道出接口上配置的下行业务。
6.根据权利要求1-3中任一权项所述的隧道报文转发方法,其特征在于,
与远端设备间建立的隧道是IPv4over IPv4隧道;
所述隧道表项中的隧道传输协议是IPv4协议,隧道乘客协议是IPv4协议;
或者,
与远端设备间建立的隧道是IPv4over IPv6隧道;
所述隧道表项中的隧道传输协议是IPv6协议,隧道乘客协议是IPv4协议;
或者,
与远端设备间建立的隧道是IPv6over IPv4隧道;
所述隧道表项中的隧道传输协议是IPv4协议,隧道乘客协议是IPv6协议;
或者,
与远端设备间建立的隧道是IPv6over IPv6隧道;
所述隧道表项中的隧道传输协议是IPv6协议,隧道乘客协议是IPv6协议;
或者,
与远端设备间建立的隧道是通用路由封装GRE隧道,传输协议是IPv4协议或IPv6协议,乘客协议是GRE协议。
7.一种隧道报文接收方法,其特征在于,建立与远端设备间隧道时,CPU转发平面生成该隧道的隧道口对应的隧道表项并下发到硬件转发平面,所述隧道表项包括隧道传输协议、隧道乘客协议、隧道的源IP和目的IP;该方法包括:
接收需要进行解隧道封装的封装报文;
如果不存在封装报文的关键字段对应的关联于封装报文的入接口的上行流表,则上送CPU,并由CPU转发平面解析封装报文绑定的隧道口,建立封装报文的关键字段对应的关联于封装报文的入接口的上行流表,在该上行流表中保存封装报文绑定的隧道口信息并设置隧道标志,并将该上行流表下发到硬件转发平面,解封装报文,将封装报文绑定的隧道口作为报文的入接口,解析并判断报文是否绑定了隧道口,若是,则CPU转发平面再一次对报文执行解封装和转发处理,若否,则确定报文的出接口,建立报文的关键字段对应的关联于报文的入接口的上行流表,在该上行流表中保存报文的出接口信息,并将该上行流表下发到硬件转发平面,根据报文的出接口转发报文;
如果存在封装报文的关键字段对应的关联于封装报文的入接口的上行流表,则硬件转发平面根据封装报文的关键字段对应的关联于封装报文的入接口的上行流表中的隧道口信息确定封装报文绑定的隧道口,根据封装报文绑定的隧道口对应的隧道表项解封装报文,将封装报文绑定的隧道口作为报文的入接口,根据报文的关键字段对应的关联于报文的入接口的上行流表中的隧道标志判断报文是否绑定了隧道口,若是,则硬件转发平面再一次对报文执行解封装和转发处理,若否,则根据报文的关键字段对应的关联于报文的入接口的上行流表确定报文的出接口,根据报文的出接口转发报文。
8.根据权利要求7所述的隧道报文接收方法,其特征在于,
硬件转发平面将封装报文绑定的隧道口作为报文的入接口之后,根据报文的关键字段对应的关联于报文的入接口的上行流表中的隧道标志判断报文是否绑定了隧道口之前,进一步包括:判断是否存在报文的关键字段对应的关联于报文的入接口的上行流表,如果是,则根据报文的关键字段对应的关联于报文的入接口的上行流表中的隧道标志判断报文是否绑定了隧道口并执行后序动作,否则,上送CPU,并由CPU转发平面解析并判断报文是否绑定了隧道口,若是,则CPU转发平面对封装报文执行后续的解封装和转发处理,若否,则确定报文的出接口,建立报文的关键字段对应的关联于报文的入接口的上行流表,在该上行流表中保存报文的出接口信息,并将该上行流表下发到硬件转发平面,根据报文的出接口转发报文。
9.根据权利要求8所述的隧道报文接收方法,其特征在于,
CPU转发平面建立封装报文的关键字段对应的关联于封装报文的入接口的上行流表时,进一步包括:如果封装报文的入接口上配置有上行业务,则执行封装报文的入接口上配置的上行业务,并在该上行流表中保存封装报文的入接口上配置的上行业务;
硬件转发平面根据封装报文的关键字段对应的关联于封装报文的入接口的上行流表中的隧道口信息确定封装报文绑定的隧道口之后,进一步包括:如果该上行流表中保存有封装报文的入接口上配置的上行业务,则执行该上行流表中保存的封装报文的入接口上配置的上行业务;
CPU转发平面建立报文的关键字段对应的关联于报文的入接口的上行流表时,进一步包括:如果报文的入接口上配置有上行业务,则执行报文的入接口上配置的上行业务,并在该上行流表中保存报文的入接口上配置的上行业务;
硬件转发平面根据报文的关键字段对应的关联于报文的入接口的上行流表确定报文的出接口之后,进一步包括:如果该上行流表中保存有报文的入接口上配置的上行业务,则执行该上行流表中保存的报文的入接口上配置的上行业务。
10.根据权利要求7-9中任一权项所述的隧道报文接收方法,其特征在于,
CPU转发平面确定报文的出接口之后,根据报文的出接口转发报文之前,进一步包括:如果该出接口上配置有下行业务,则执行该出接口上配置的下行业务,建立报文的关键字段对应的关联于该出接口的下行流表,并在该下行流表中保存该出接口上配置的下行业务,将该下行流表下发到硬件转发平面;
硬件转发平面根据报文的关键字段对应的关联于报文的入接口的上行流表确定报文的出接口之后,根据报文的出接口转发报文之前,进一步包括:如果该出接口配置有下行业务,则执行报文的关键字段对应的关联于该出接口的下行流表中保存的该出接口上配置的下行业务。
11.根据权利要求7-9中任一权项所述的隧道报文接收方法,其特征在于,
与远端设备间建立的隧道是IPv4over IPv4隧道;
所述隧道表项中的隧道传输协议是IPv4协议,隧道乘客协议是IPv4协议;
或者,
与远端设备间建立的隧道是IPv4over IPv6隧道;
所述隧道表项中的隧道传输协议是IPv6协议,隧道乘客协议是IPv4协议;
或者,
与远端设备间建立的隧道是IPv6over IPv4隧道;
所述隧道表项中的隧道传输协议是IPv4协议,隧道乘客协议是IPv6协议;
或者,
与远端设备间建立的隧道是IPv6over IPv6隧道;
所述隧道表项中的隧道传输协议是IPv6协议,隧道乘客协议是IPv6协议;
或者,
与远端设备间建立的隧道是通用路由封装GRE隧道,传输协议是IPv4协议或IPv6协议,乘客协议是GRE协议。
12.一种隧道报文转发装置,其特征在于,该装置包括:第一接收模块、第一CPU转发模块、第一硬件转发模块、第一发送模块;
所述第一接收模块,用于接收需要进行隧道封装的报文,判断是否存在报文的关键字段对应的关联于报文的入接口的上行流表,如果是,则将该报文发送到第一硬件转发模块,否则,则将该报文上送到第一CPU转发模块;
所述第一CPU转发模块,用于建立与远端设备间隧道时,生成该隧道的隧道口对应的隧道表项并下发到第一硬件转发模块,所述隧道表项包括隧道传输协议、隧道乘客协议、隧道的源IP和目的IP;用于接收所述第一接收模块上送的报文,建立报文的关键字段对应的关联于报文的入接口的上行流表,确定报文的隧道出接口,在该上行流表中保存报文的隧道出接口信息,并将该上行流表下发到第一硬件转发模块;根据报文的隧道出接口信息封装报文,将报文的隧道出接口作为封装报文的入接口,建立封装报文的关键字段对应的关联于封装报文的入接口的上行流表,确定封装报文的出接口,在该上行流表中保存封装报文的出接口信息,并将该上行流表下发到第一硬件转发模块,若封装报文的出接口是物理出接口,则通知第一发送模块将封装报文从该物理出接口发送出去,若封装报文的出接口是隧道出接口,则第一CPU转发模块再一次对封装报文执行封装和转发处理;
所述第一硬件转发模块,用于接收所述第一接收模块发送的报文,则根据报文的关键字段对应的关联于报文的入接口的上行流表确定报文的隧道出接口,根据报文的隧道出接口对应的隧道表项封装报文,将报文的隧道出接口作为封装报文的入接口,根据封装报文的关键字段对应的关联于封装报文的入接口的上行流表确定封装报文的出接口,若封装报文的出接口是物理出接口,则通知第一发送模块将封装报文从该物理出接口发送出去,若封装报文的出接口是隧道出接口,则第一硬件转发模块再一次对封装报文执行封装和转发处理。
13.根据权利要求12所述的隧道报文转发装置,其特征在于,
第一硬件转发模块在将报文的隧道出接口作为封装报文的入接口之后,根据封装报文的关键字段对应的关联于封装报文的入接口的上行流表确定封装报文的出接口之前,进一步用于:判断是否存在封装报文的关键字段对应的关联于封装报文的入接口的上行流表,如果是,则根据封装报文的关键字段对应的关联于封装报文的入接口的上行流表确定封装报文的出接口并执行后续动作,否则,将该封装报文上送到第一CPU转发模块;
第一CPU转发模块,进一步用于:接收第一硬件转发模块上送的封装报文,建立封装报文的关键字段对应的关联于封装报文的入接口的上行流表,确定封装报文的出接口,在该上行流表中保存封装报文的出接口信息,并将该上行流表下发到第一硬件转发模块,若封装报文的出接口是物理出接口,则通知第一发送模块将封装报文从该物理出接口发送出去,若封装报文的出接口是隧道出接口,则第一CPU转发模块对封装报文执行后续的封装和转发处理。
14.根据权利要求13所述的隧道报文转发装置,其特征在于,
第一CPU转发模块在建立报文的关键字段对应的关联于报文的入接口的上行流表时,进一步用于:如果报文的入接口上配置有上行业务,则执行报文的入接口上配置的上行业务,并在该上行流表中保存报文的入接口上配置的上行业务;
第一硬件转发模块在根据报文的关键字段对应的关联于报文的入接口的上行流表确定报文的出接口之后,进一步用于:如果该上行流表中保存有报文的入接口上配置的上行业务,则执行该上行流表中保存的报文的入接口上配置的上行业务;
第一CPU转发模块在建立封装报文的关键字段对应的关联于封装报文的入接口的上行流表时,进一步用于:如果封装报文的入接口上配置有上行业务,则执行封装报文的入接口上配置的上行业务,并在该上行流表中保存封装报文的入接口上配置的上行业务;
第一硬件转发模块在根据封装报文的关键字段对应的关联于封装报文的入接口的上行流表确定封装报文的出接口之后,进一步用于:如果该上行流表中保存有封装报文的入接口上配置的上行业务,则执行该上行流表中保存的封装报文的入接口上配置的上行业务。
15.根据权利要求12-14中任一权项所述的隧道报文转发装置,其特征在于,
第一CPU转发模块在确定报文的出接口是物理出接口之后,将报文从该物理出接口转发出去之前,进一步用于:如果该物理出接口上配置有下行业务,则执行该物理出接口上配置的下行业务,建立报文的关键字段对应的关联于该物理出接口的下行流表,并在该下行流表中保存该物理出接口上配置的下行业务,将该下行流表下发到第一硬件转发模块;
第一硬件转发模块在确定报文的出接口是物理出接口之后,将报文从该物理出接口转发出去之前,进一步用于:如果该物理出接口配置有下行业务,则执行报文的关键字段对应的关联于该物理出接口的下行流表中保存的该物理出接口上配置的下行业务。
16.根据权利要求12-14中任一权项所述的隧道报文转发装置,其特征在于,
第一CPU转发模块确定报文的出接口是隧道出接口之后,根据该隧道出接口信息封装报文之前,进一步用于:如果该隧道出接口上配置有下行业务,则执行该隧道出接口上配置的下行业务,建立报文的关键字段对应的关联于该隧道出接口的下行流表,在该下行流表中保存该隧道出接口上配置的下行业务,将该下行流表下发到第一硬件转发模块;
第一硬件转发模块在确定报文的出接口是隧道出接口之后,根据该隧道出接口对应的隧道表项封装报文之前,进一步用于:如果该隧道出接口上配置有下行业务,则执行报文的关键字段对应的关联于该隧道出接口的下行流表中保存的该隧道出接口上配置的下行业务。
17.根据权利要求12-14中任一权项所述的隧道报文转发装置,其特征在于,
所述与远端设备间建立的隧道是IPv4over IPv4隧道;
所述第一CPU转发模块生成的隧道表项中的隧道传输协议是IPv4协议,隧道乘客协议是IPv4协议;
或者,
所述与远端设备间建立的隧道是IPv4over IPv6隧道;
所述第一CPU转发模块生成的隧道表项中的隧道传输协议是IPv6协议,隧道乘客协议是IPv4协议;
或者,
所述与远端设备间建立的隧道是IPv6over IPv4隧道;
所述第一CPU转发模块生成的隧道表项中的隧道传输协议是IPv4协议,隧道乘客协议是IPv6协议;
或者,
所述与远端设备间建立的隧道是IPv6over IPv6隧道;
所述第一CPU转发模块生成的隧道表项中的隧道传输协议是IPv6协议,隧道乘客协议是IPv6协议;
或者,
所述与远端设备间建立的隧道是GRE隧道;
所述第一CPU转发模块生成的隧道表项中的隧道传输协议是IPv4协议或IPv6协议,乘客协议是GRE协议。
18.一种隧道报文接收装置,其特征在于,该装置包括:第二接收模块、第二CPU转发模块、第二硬件转发模块、第二发送模块;
所述第二接收模块,用于:接收需要进行解隧道封装的封装报文,判断是否存在封装报文的关键字段对应的关联于封装报文的入接口的上行流表,如果是,则将封装报文发送到第二硬件转发模块,否则,将封装报文上送到第二CPU转发模块;
所述第二CPU转发模块,用于建立与远端设备间隧道时,生成该隧道的隧道口对应的隧道表项并下发到第二硬件转发模块,所述隧道表项包括隧道传输协议、隧道乘客协议、隧道的源IP和目的IP;用于接收所述第二接收模块上送的封装报文,解析封装报文绑定的隧道口,建立封装报文的关键字段对应的关联于封装报文的入接口的上行流表,在该上行流表中保存封装报文绑定的隧道口信息并设置隧道标志,并将该上行流表下发到第二硬件转发模块,解封装报文,将封装报文绑定的隧道口作为报文的入接口,解析并判断报文是否绑定了隧道口,若是,则第二CPU转发模块再一次对报文执行解封装和转发处理,若否,则确定报文的出接口,建立报文的关键字段对应的关联于报文的入接口的上行流表,在该上行流表中保存报文的出接口信息,并将该上行流表下发到第二硬件转发模块,并通知第二发送模块根据报文的出接口转发报文;
所述第二硬件转发模块,用于接收所述第二接收模块上送的封装报文,根据封装报文的关键字段对应的关联于封装报文的入接口的上行流表中的隧道口信息确定封装报文绑定的隧道口,根据封装报文绑定的隧道口对应的隧道表项解封装报文,将封装报文绑定的隧道口作为报文的入接口,根据报文的关键字段对应的关联于报文的入接口的上行流表中的隧道标志判断报文是否绑定了隧道口,若是,则第二硬件转发平面再一次对报文执行解封装和转发处理,若否,则根据报文的关键字段对应的关联于报文的入接口的上行流表确定报文的出接口,并通知第二发送模块根据报文的出接口转发报文。
19.根据权利要求18所述的隧道报文接收装置,其特征在于,
第二硬件转发模块在将封装报文绑定的隧道口作为报文的入接口之后,根据报文的关键字段对应的关联于报文的入接口的上行流表中的隧道标志判断报文是否绑定了隧道口之前,进一步用于:判断是否存在报文的关键字段对应的关联于报文的入接口的上行流表,如果是,则根据报文的关键字段对应的关联于报文的入接口的上行流表中的隧道标志判断报文是否绑定了隧道口并执行后序动作,否则,将报文上送到CPU转发模块;
第二CPU转发模块,进一步用于:接收硬件转发模块上送的报文,解析并判断报文是否绑定了隧道口,若是,则第二CPU转发平面对报文执行后续的解封装和转发处理,若否,则确定报文的出接口,建立报文的关键字段对应的关联于报文的入接口的上行流表,在该上行流表中保存报文的出接口信息,并将该上行流表下发到第二硬件转发模块,并通知第二发送模块根据报文的出接口转发报文。
20.根据权利要求19所述的隧道报文接收装置,其特征在于,
第二CPU转发模块在建立封装报文的关键字段对应的关联于封装报文的入接口的上行流表时,进一步用于:如果封装报文的入接口上配置有上行业务,则执行封装报文的入接口上配置的上行业务,并在该上行流表中保存封装报文的入接口上配置的上行业务;
第二硬件转发模块在根据封装报文的关键字段对应的关联于封装报文的入接口的上行流表中的隧道口信息确定封装报文绑定的隧道口之后,进一步用于:如果该上行流表中保存有封装报文的入接口上配置的上行业务,则执行该上行流表中保存的封装报文的入接口上配置的上行业务;
第二CPU转发模块在建立报文的关键字段对应的关联于报文的入接口的上行流表时,进一步用于:如果报文的入接口上配置有上行业务,则执行报文的入接口上配置的上行业务,并在该上行流表中保存报文的入接口上配置的上行业务;
第二硬件转发模块在根据报文的关键字段对应的关联于报文的入接口的上行流表中确定报文的出接口之后,进一步用于:如果该上行流表中保存有报文的入接口上配置的上行业务,则执行该上行流表中保存的报文的入接口上配置的上行业务。
21.根据权利要求18-20中任一权项所述的隧道报文接收装置,其特征在于,
第二CPU转发模块在确定报文的出接口之后,根据报文的出接口转发报文之前,进一步用于:如果该出接口上配置有下行业务,则执行该出接口上配置的下行业务,建立报文的关键字段对应的关联于该出接口的下行流表,并在该下行流表中保存该出接口上配置的下行业务,将该下行流表下发到第二硬件转发模块;
第二硬件转发模块在根据报文的关键字段对应的关联于报文的入接口的上行流表确定报文的出接口之后,根据报文的出接口转发报文之前,进一步用于:如果该出接口配置有下行业务,则执行报文的关键字段对应的关联于该出接口的下行流表中保存的该出接口上配置的下行业务。
22.根据权利要求18-20中任一权项所述的隧道报文接收装置,其特征在于,
所述与远端设备间建立的隧道是IPv4over IPv4隧道;
所述第二CPU转发模块生成的隧道表项中的隧道传输协议是IPv4协议,隧道乘客协议是IPv4协议;
或者,
所述与远端设备间建立的隧道是IPv4over IPv6隧道;
所述第二CPU转发模块生成的隧道表项中的隧道传输协议是IPv6协议,隧道乘客协议是IPv4协议;
或者,
所述与远端设备间建立的隧道是IPv6over IPv4隧道;
所述第二CPU转发模块生成的隧道表项中的隧道传输协议是IPv4协议,隧道乘客协议是IPv6协议;
或者,
所述与远端设备间建立的隧道是IPv6over IPv6隧道;
所述第二CPU转发模块生成的隧道表项中的隧道传输协议是IPv6协议,隧道乘客协议是IPv6协议;
或者,
所述与远端设备间建立的隧道是GRE隧道;
所述第二CPU转发模块生成的隧道表项中的隧道传输协议是IPv4协议或IPv6协议,乘客协议是GRE协议。
CN201110461663.XA 2011-12-31 2011-12-31 隧道报文收发方法和装置 Active CN102420772B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110461663.XA CN102420772B (zh) 2011-12-31 2011-12-31 隧道报文收发方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110461663.XA CN102420772B (zh) 2011-12-31 2011-12-31 隧道报文收发方法和装置

Publications (2)

Publication Number Publication Date
CN102420772A CN102420772A (zh) 2012-04-18
CN102420772B true CN102420772B (zh) 2014-05-14

Family

ID=45945012

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110461663.XA Active CN102420772B (zh) 2011-12-31 2011-12-31 隧道报文收发方法和装置

Country Status (1)

Country Link
CN (1) CN102420772B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103166846B (zh) * 2013-03-27 2016-11-09 杭州华三通信技术有限公司 一种报文转发方法和设备
CN104243299B (zh) * 2013-06-14 2019-07-02 中兴通讯股份有限公司 一种隧道处理方法及系统、控制面设备、转发面设备
CN105357140A (zh) * 2014-08-18 2016-02-24 中兴通讯股份有限公司 路由负荷分担方法和装置
CN107707649B (zh) * 2017-09-28 2020-08-11 新华三技术有限公司 转控分离中转发平面的备份方法和装置
CN110224932B (zh) * 2019-05-06 2021-06-15 烽火通信科技股份有限公司 一种数据快速转发的方法及系统
CN110995766B (zh) * 2019-12-31 2021-09-14 联想(北京)有限公司 一种网络通信方法及采用网络通信方法的客户端与中心站点

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1612562A (zh) * 2003-10-28 2005-05-04 武汉烽火网络有限责任公司 用策略流实现不同因特网协议数据包转发的方法和设备
CN1953420A (zh) * 2006-09-26 2007-04-25 杭州华为三康技术有限公司 一种转发隧道报文的方法和一种网络设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9014181B2 (en) * 2004-11-01 2015-04-21 Alcatel Lucent Softrouter separate control network

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1612562A (zh) * 2003-10-28 2005-05-04 武汉烽火网络有限责任公司 用策略流实现不同因特网协议数据包转发的方法和设备
CN1953420A (zh) * 2006-09-26 2007-04-25 杭州华为三康技术有限公司 一种转发隧道报文的方法和一种网络设备

Also Published As

Publication number Publication date
CN102420772A (zh) 2012-04-18

Similar Documents

Publication Publication Date Title
CN112165725B (zh) 报文处理的方法及设备
US20200358886A1 (en) Data Transmission Method, Apparatus, And System
CN102420772B (zh) 隧道报文收发方法和装置
CN101573913B (zh) 用于多播路由选择的方法和设备
EP2378720B1 (en) Extranet networking method, system and device for multicast virtual private network
CN103401773B (zh) 一种实现板间通信的方法及网络设备
KR101717000B1 (ko) 패킷 처리를 위한 방법 및 장치
CN105791214B (zh) 一种RapidIO报文和以太网报文之间的转换方法和设备
US20110170545A1 (en) Data transmission method, network node, and data transmission system
CN100417141C (zh) 一种组播业务实现方法
CN102143035A (zh) 数据业务处理方法、网络设备和网络系统
US9621459B2 (en) Message forwarding method, system, and relay agent device
CN110855568B (zh) 报文转发方法及系统
US9438433B1 (en) Efficient multicast across multiple virtual local area network (VLANs)
CN106559302A (zh) 单播隧道建立方法、装置和系统
CN105531967B (zh) 一种报文传输方法、设备及通信系统
EP2652919B1 (en) Method for group-based multicast with non-uniform receivers
CN104022936A (zh) 一种隧道建立方法和装置
US10764411B2 (en) Stream control transmission protocol SCTP-based communications method and system, and apparatus
CN107995130A (zh) 一种分片报文的快转方法
EP3247075B1 (en) Service data stream data packet processing method and device
CN100481819C (zh) 弹性分组环网中跨环报文转发的方法和设备
US8885650B2 (en) Method, apparatus and system for processing a tunnel packet
CN100508467C (zh) 一种转发层代理pim的方法及路由设备
JPWO2014174768A1 (ja) 無線通信装置、無線通信システム及び無線通信方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No.

Patentee after: NEW H3C TECHNOLOGIES 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

Patentee before: HANGZHOU H3C TECHNOLOGIES Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20230612

Address after: 310052 11th Floor, 466 Changhe Road, Binjiang District, Hangzhou City, Zhejiang Province

Patentee after: H3C INFORMATION TECHNOLOGY Co.,Ltd.

Address before: 310052 Changhe Road, Binjiang District, Hangzhou, Zhejiang Province, No. 466

Patentee before: NEW H3C TECHNOLOGIES Co.,Ltd.