CN101247308A - 基于网络处理器实现IPv6穿越IPv4的隧道报文处理方法 - Google Patents
基于网络处理器实现IPv6穿越IPv4的隧道报文处理方法 Download PDFInfo
- Publication number
- CN101247308A CN101247308A CNA200710037457XA CN200710037457A CN101247308A CN 101247308 A CN101247308 A CN 101247308A CN A200710037457X A CNA200710037457X A CN A200710037457XA CN 200710037457 A CN200710037457 A CN 200710037457A CN 101247308 A CN101247308 A CN 101247308A
- Authority
- CN
- China
- Prior art keywords
- tunnel
- message
- ipv6
- ipv4
- encapsulation
- 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
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于网络处理器实现IPv6穿越IPv4的隧道报文处理方法,其特点是,采用IPv4报头来封装IPv6数据包,使得IPv6数据包能在IPv4网络上传输;包括以下步骤:a.建立一个完整的IPv6穿越IPv4的隧道;b.每个隧道以隧道标识码标识;c.建立隧道信息表、IPv6非法隧道地址列表、路由表和会话表;d.查询上述表获得IPv4封装头信息,形成穿越IPv4的隧道报文;e.根据IPv4报头中的协议号和目标地址来判断和进行解封装,并且对解封装以后的报文做普通的IPv6路由处理。在实现IPv6穿越IPv4时,通过会话表缓存有关信息,简化查询路径,从而使得系统具有高性能的数据传输速度。
Description
技术领域
本发明涉及基于网络处理器实现IPv6穿越IPv4的隧道报文处理方法。
技术背景
IPv4协议是当代Internet上最重要的协议族,它是现阶段连接到Internet上的绝大部分计算机都必须支持的协议。但是,随着Internet的发展,IPv4协议的一些缺点也逐渐暴露出来,其中最主要的缺点就是地址空间严重不足。由于历史原因,分配给我国的IPv4协议地址较少,地址枯竭问题就更加严重。
IPv6协议是设计用来替代IPv4协议,也被称作下一代互联网协议。IPv6协议是为了解决IPv4协议所存在的一些问题和不足而提出的,同时它还在许多方面提出了改进,例如路由方面、自动配置方面。
IPv6协议取代IPv4协议需要一个长达数年的时间,期间两者是共存的关系。现阶段的网络实际情况是在以IPv4为大网络的背景下,存在许多IPv6“孤岛”,为了能够使这些IPv6“孤岛”之间通过IPv4网络相互通信,可以使用一些诸如协议翻译、隧道等机制。
根据RFC2893的定义,隧道可以划分为配置隧道和自动隧道两种类型,并且可以被配置在路由器与路由器之间、路由器与主机之间、主机与主机之间。
具体相关的隧道机制,主要包括配置隧道、GRE(通用路由协议封装)隧道(通用路由协议封装隧道)、6to4隧道、ISATAP(站间自动隧道寻址协议)隧道(站间自动隧道寻址协议隧道)。
配置隧道与GRE(通用路由协议封装)隧道都属于手工配置隧道,不同之处在于封装方式的不同。顾名思义,手工配置隧道即是手工配置隧道两端的地址。而对于哪些数据包是要经由隧道进行转发的,通常是由路由决定的。路由信息可以是静态配置,也可以使用动态的跨隧道路由协议来获得。手工配置隧道的入口点地址、出口点地址及路由信息是隧道两端路由器应有的配置信息。
当经过路由器的数据包匹配上隧道路由后,便会以隧道方式,将原数据包封装后由隧道端口发出,封装后的报文源地址/目标地址分别是隧道的本地地址/远端地址,封装好的数据包通过IPv4网络走IPv4的路由到达隧道的终点,经终点解封装取出原IPv6数据包后,再通过IPv6网络到达最终的目的地。对于GRE(通用路由协议封装)隧道,先在原数据包封装一个GRE(通用路由协议封装)头之后,再加封装一个IPv4头。GRE(通用路由协议封装)头格式如图1-2所示:
6to4隧道机制用于在站点之间进行穿越IPv4的IPv6通讯,每个站点必须至少有一台“6to4路由器”作为出入口,站点内的主机使用特定的地址格式(地址前缀为2002::/16),并将路由器的IPv4地址嵌入IPv6地址中,因此位于不同6to4站点内的主机彼此通讯时可自动抽出IPv4地址在路由器之间建立隧道。
通过6to4路由器,不同6to4站点内的主机可互相穿越IPv4网络进行通讯,当需与一般IPv6主机通讯时,则必须过6to4中继路由器。6to4中继路由器必须同时具备6to4及IPv6接口,同时提供这些接口的封包转发。
6to4需要一个全球合法的IPv4地址(记为V4Addr),该地址分配给6to4路由器的IPv6伪接口,同时6to4路由器连接6to4站点的接口有IPv6地址:2002:V4Addr::/64+EUI-64。6to4路由器将2002:V4ADDR:SLA/64前缀公告给其连接的6to4站点。
ISATAP(站间自动隧道寻址协议,以下简称ISATAP)隧道是一种主机-主机或是主机-路由器的隧道方式,它解决的是孤立于IPv4网络中的双栈主机之间、双栈主机与外部IPv6站点之间的通信问题。隧道两端的地址分别为双栈主机的IPv4地址及ISATAP路由器ISATAP接口的IPv4地址或是本网内的另一双栈主机的IPv4地址。
双栈主机支持ISATAP后会自动在该隧道接口上生成本地链路的前缀(FE80::/64)和64位的接口标识符EUI-64,这样隧道的终点地址就能自动的从IPv6地址中抽取出来。
对于ISATAP路由器而言,其ISATAP接口同样会自动生成本地链路地址,同时需要为其分配一个全局的前缀(RFC4214推荐使用前缀2001::/64,2002::/64,3FFE::/64)以生成全局的IPv6地址,这个前缀也是路由器响应ISATAP主机路由器请求前缀发现分配给主机的前缀。ISATAP路由器上同时要生成一条该前缀的路由,路由指向ISATAP隧道,这样从外部IPv6网站与ISATAP主机的通信才能正确的路由到ISATAP主机。
ISATAP主机为了与外部的IPv6主机进行通信需要获得全局的IPv6前缀,此前缀是通过路由器发现从ISATAP路由器获得,为了使路由器发现能够进行,首先要知道ISATAP接口的地址,这是通过在主机上手动配置潜在路由器列表获得的。路由器发现也是以隧道方式进行通信的,隧道两端的地址分别为主机的IPv4地址和ISATAP接口的IPv4地址,IPv6包的源地址是主机的本地链路地址,目标地址是链路本地范围所有路由器的多播地址FF02::2。
随着网络速度的飞速发展,传统的路由器已经越来越难已满足报文的快速转发要求。为了适应这一发展,出现了新型的网络处理器。它是一种新型的处理器类型,专门用于满足网络交换设备的需求、网络环境的要求而设计的。它除了一般处理器的功能外还包含若干个专门处理数据分组的高速智能接口,即高速引擎,使得网络处理器能够处理高速网络中同时到达的多个数据流。
网络处理器是用于实现报文处理、协议分析、路由、语音/数据集成、防火墙和QoS(服务质量)等通信工作的可编程硬件。它被经过专门设计和高度优化来完成各种网络功能。现有的网络通讯设备主要有基于通用CPU(中央处理单元)和基于ASIC(特定应用集成电路)两种类型。基于通用CPU的网络通讯设备具备了易于扩展和修改的能力,但是它提供的性能不能满足现在高速网络的需求。基于ASIC的网络通讯设备达到高性能的数据传输速度。虽然ASIC提供了快速处理能力,但它的灵活性远远跟不上网络协议和标准的快速改变,典型的ASIC需要1年至3年的开发周期,无法进行版本更新和功能升级,制造工艺的需要也较高。
发明内容
本发明是为了解决现有技术存在的上述问题而提出的一种采用网络处理器实现IPv6穿越IPv4网络的隧道报文的处理方法。
为了解决上述问题,本发明采用的技术措施是:基于网络处理器实现IPv6穿越IPv4的隧道报文处理方法,其特征在于,采用IPv4报头来封装IPv6数据包,以使IPv6数据包可以穿越IPv4的网络结构;
包括以下步骤:
a、在网络处理器中为每个IPv6穿越IPv4的隧道建立一个隧道端点,此端点和远端设备的另一个隧道端点或者一组隧道端点一起组成一个完整的IPv6穿越IPv4的隧道;
b、本地网络处理器上的每个隧道以隧道标识码标识;
c、建立隧道信息表、IPv6非法隧道地址列表、路由表和会话表;其中:隧道信息表记录隧道的相关信息;IPv6非法地址列表记录了非法的隧道源地址和目标地址组合;路由表用来决定哪些报文需要被加封装,具体属于哪个隧道;会话表记录了同一会话的确定处理路径和参数;
d、通过查询隧道信息表、IPv6非法隧道地址列表、路由表和会话表,获得IPv4封装头的信息,然后为IPv6报文加封装IPv4报头,形成穿越IPv4的隧道报文;
e、根据IPv4报头中的协议号和目标地址来判断是否需要本地端点对步骤d的隧道报文进行解封装;如果需要,直接像处理普通IPv6报文一样处理被封装的IPv6报文;
f、同时,对于隧道报文进行合法性检测,并将不合法的报文交由设备的控制层面处理。
上述基于网络处理器实现IPv6穿越IPv4的隧道报文处理方法,其中,步骤d所述的为IPv6报文加封装IPv4报头的步骤包括:
d-1、对IPv6报文的源地址、目标地址进行IPv6非法隧道地址列表匹配;如果命中,即表示具有非法地址,丢弃该报文;如果不命中,则以目标地址匹配路由表,然后根据路由结果进行不同的处理;包括:是隧道路由的处理和不是路由隧道的处理;如果是隧道路由,则进行隧道加封装处理;如果不是隧道路由,则进行正常的IPv6路由转发处理;
d-2、通过隧道信息表、或根据路由表下一跳地址、或根据目标地址,得到作为封装头的IPv4目标地址;
d-3、通过隧道信息表取得封装头的源地址;
d-4、以获得的目标地址为键查询路由表,进行正常的IPv4路由转发处理,并通过隧道对应的ID计数器得到封装头的ID号;
d-5、封装结束;
上述基于网络处理器实现IPv6穿越IPv4的隧道报文处理方法,其中,步骤e所述的解封装步骤包括:
e-1、对IPv4报文进行四层协议类型解析,如果其协议类型为封装IPv6报文的IPv4报文(协议号41)或者为通用路由协议封装(协议号47),并且目标地址为本网关IPv4地址,则需要解封装;;
e-2、对封装的源地址、目标地址进行非法地址列表匹配;如果命中,即表示具有非法地址,丢弃该报文;如果不命中,则以被封装的IPv6报头中的源地址匹配路由表,得到的结果为隧道路由,根据结果中的隧道类型进一步检查封装头源地址的合法性;
e-3、检查是否是配置隧道?如果不是配置隧道,则进行一个通常的IPv6报文处理;如果是配置隧道,再检查源地址是否等于远端端点地址?如果是远端端点地址,则进行一个通常的IPv6报文处理;如果不是远端端点地址,则表明封装头中的源地址不合法,丢弃该报文;
e-4、解封装结束。
上述基于网络处理器实现IPv6穿越IPv4的隧道报文处理方法,其中,所述IPv6穿越IPv4的隧道解封装和加封装过程分别对已建立会话的报文和对未建立会话的报文进行处理时,网络处理器的各个不同阶段的任务处理模块进行不同的操作;所述的各个不同阶段的任务处理模块包括:
分析阶段的分析模块(TOPparse:Parse Module),用来分辨和提取各种数据帧的报头、标记、地址、端口、协议、领域、模式和关键字;
查找阶段的第一个查找模块(TOPsearchI:Search I Module),该模块使用分析过的区域作为关键字进行相关表的查找、分类和管理表;
决策阶段的决策模块(TOPresolve:Resolve Module),该模块进行数据包转发和QoS(服务质量)决策,并更新相关表和状态信息;
附加查找阶段的第二个查找模块(TOPserachII:Search II Module),该模块是可选的,在TOPresolve完成之后,进行附加的查找;
修改阶段的修改模块(TOPmodify:Modify Module),该模块对数据包的内容进行具体修改,完成在数据包的任何地方进行改写、添加和删除操作;
上述基于网络处理器实现IPv6穿越IPv4的隧道报文处理方法,其中,对已建立会话的隧道报文处理流程;
(1)分析阶段(TOPparse)
首先区分不同类型的报文;
然后创建五元组,用于查找会话表;
再就是创建报文相关消息和硬件寄存器消息;
(2)第一查找阶段(TOPsearchI)
根据五元组查找相应的会话表即可;
(3)决策阶段(TOPresolve)
根据会话表的结果中的控制字段进行分支跳转,进入相应的分支程序;
(4)修改阶段(TOPmodify)
根据决策阶段(TOPresolve)传入的消息和“MDF Label”进行具体的加封装和解封装。
上述基于网络处理器实现IPv6穿越IPv4的隧道报文处理方法,其中,所述的第一查找阶段(TOPsearchI)根据五元组查找相应的会话表时,此时会话表一定命中,查询结果中几乎包含了所有需要的封装信息、路由信息,其中如果是加封装处理,必须动态从对应的计数器得到封装头的ID号,如果需要支持隧道QoS(服务质量),必须使用对应的Token Bucket(令牌桶)进行动态的流量测速。
上述基于网络处理器实现IPv6穿越IPv4的隧道报文处理方法,其中,所述的决策阶段(TOPresolve),如果是加封装,决定封装头中各个域的值和封装以后的路由;如果是解封装,决定解封装以后IPv6报文的路由,然后将这些信息组合成修改策略和修改行标“MDF Label”,以消息的形式传给修改阶段(TOPmodify)。
上述基于网络处理器实现IPv6穿越IPv4的隧道报文处理方法,其中,所述的对于未建立会话的隧道报文处理流程,是对隧道会话首包处理的流程,该流程是指:在会话表中没有对应表项的报文,包括是需要解封装的IPv4报文,或是需要加封装的IPv6报文,或者是需要先解封装然后再进行另一个隧道加封装的IPv4报文;具体流程是:
(1)分析阶段(TOPparse):首先区分不同类型的报文;然后创建五元组用于查找会话表;再就是创建报文相关消息和硬件寄存器消息;
(2)第一查找阶段(TOPsearchI):以五元组为键查询会话表,此时会话表不命中,表明是一个会话首包,然后进行一系列的查询,包括对隧道信息表、IPv6非法隧道地址列表、路由表等的查询;
(3)决策阶段(TOPresolve):根据分析阶段(TOPparse)传入的决策行标“RSV Label”值和各个数据结构匹配的结果进行分支跳转,进入相应的分支程序;
(4)修改阶段(TOPmodify):根据决策阶段(TOPresolve)传入的消息和修改行标“MDF Label”进行具体的加封装和解封装。
上述基于网络处理器实现IPv6穿越IPv4的隧道报文处理方法,其中,还包括分别在相应的会话表中为首包所在方向建立相应的表项,以便该会话后续报文能被高速处理。
上述基于网络处理器实现IPv6穿越IPv4的隧道报文处理方法,其中,所述的第一查找阶段(TOPsearchI)中,如果是解封装,直接进入解封装程序,首先使用报文五元组中的源地址和目标地址查询非法地址列表,然后用源地址反向查询路由,以此来获得封装隧道的相应信息,最后用五元组的目标地址进行IPv6报文路由处理;如果是加封装,必须在用目标地址经过路由查询以后才能确定,确定相应的隧道以后,通过不同的隧道处理得到封装头中的源地址和目标地址。
如果系统需要支持隧道QoS(服务质量),还必须进行相应的QoS服务质量查询,主要涉及分类和测速。
上述基于网络处理器实现IPv6穿越IPv4的隧道报文处理方法,其中,所述的决策阶段(TOPresolve)中,如果是加封装,从相应的数据结构匹配结果中抽取出封装头中各个域的值和封装以后的路由信息;如果是解封装,也从相应的数据结构匹配结果中抽取出解封装以后IPv6报文的路由信息,包括可能是另一个隧道的封装过程;然后将这些信息组合成修改策略和修改行标“MDF Label”,以消息的形式传给修改阶段(TOPmodify)。
上述基于网络处理器实现IPv6穿越IPv4的隧道报文处理方法,其中,所述的分析阶段(TOPparse)区分不同类型的报文是指:先区分该报文是从网口进来的隧道相关的报文,还是从同一网络处理器的另一端绕回的报文;对于从网口进入隧道相关的报文,网络处理器的任务处理器TOPs,首先要区分出具体的协议类型,包括IPv4传输控制协议、用户数据报协议、网络控制消息协议或IPv6的传输控制协议、用户数据报协议、网络控制消息协议。
上述基于网络处理器实现IPv6穿越IPv4的隧道报文处理方法,其中,所述的分析阶段(TOPparse)创建报文相关消息是指为那些需要修改的数据或者那些将被后面阶段用到的信息创建消息;
所述的分析阶段(TOPparse)硬件寄存器消息是指:所有报文所必需的、记录了所有硬件相关的信息,该消息中的决策行标“RSV Label”域,存储的是跳转行标,用于在决策阶段(TOPresolve)实现多分支跳转。
上述基于网络处理器实现IPv6穿越IPv4的隧道报文处理方法,其中,所述的修改阶段(TOPmodify),根据决策阶段(TOPresolve)传入的消息和修改行标“MDF Label”进行具体的加封装和解封装:对于加封装就是在原报文的二层头和三层头之间加入一个IPv4报头,此报头的各个域值可以在决策阶段(TOPresolve)传入的消息中获得,然后再修改二层头相应的域;对于解封装,删除原有的封装头,还原封装前的IPv6报文,然后修改二层头相应的域。
上述基于网络处理器实现IPv6穿越IPv4的隧道报文处理方法,其中,所述的隧道端点在网络处理器中以虚拟端点的形式存在,
上述基于网络处理器实现IPv6穿越IPv4的隧道报文处理方法,其中,所述的网络处理器上的每个隧道端点相当于该网络处理器上一个独立的逻辑端口。
由于本发明采用了以上的技术方案,在实现IPv6穿越IPv4时,既能满足隧道的灵活配置,又能满足高速网络的需求,达到高性能的数据传输速度。
附图说明
本发明的具体特征、性能可由以下的实施例及其附图进一步描述。
图1是描述IPv6穿越IPv4的隧道机制示意图。
图2是NP-2a网络处理器的逻辑接口示意图。
图3是NP-2a网络处理器中TOPs体系的结构示意图。
图4是NP-2a网络处理器中隧道端点的物理模型的结构示意图。
图5是本发明加封装流程示意图。
图6是本发明解封装流程示意图。
具体实施方式
请参阅图1。IPv6穿越IPv4(IPv6 over IPv4)的隧道,是指用IPv4报头来封装IPv6数据包,以使IPv6数据包可以穿越IPv4的网络结构。在IPv4报头中:
IPv4协议字段的值为41或者47,表示这是一个经过封装的IPv6数据包。
IPv4源地址和目标地址字段的值为隧道端点的IPv4地址。一般是手工配置的隧道信息的一部分,或者是从发送接口自动获得的与路由相匹配的下一跳地址的一部分,或者是IPv6报头中的源IPv6地址或目标IPv6地址的一部分。
本发明基于网络处理器实现IPv6穿越IPv4的隧道报文处理方法,就是采用IPv4报头来封装IPv6数据包,以使IPv6数据包可以穿越IPv4的网络结构;
包括以下步骤:
a、在网络处理器中为每个IPv6穿越IPv4的隧道建立一个隧道端点,此端点和远端设备的另一个隧道端点或者一组隧道端点一起组成一个完整的IPv6穿越IPv4的隧道;
b、本地网络处理器上的每个隧道以隧道标识码标识;
c、建立隧道信息表、IPv6非法隧道地址列表、路由表和会话表;
d、通过查询隧道信息表、IPv6非法隧道地址列表、路由表和会话表,形成IPv4封装头,为IPv6报文加封装IPv4报头,形成穿越IPv4的隧道报文;
e、根据IPv4报头中的协议号和目标地址来判断是否需要本地端点对隧道报文进行解封装;如果需要,直接像处理普通IPv6报文一样处理被封装的IPv6报文;
f、同时,对于隧道报文进行合法性检测,并将不合法的报文交由设备的控制层面处理。
网络处理器被称为第五代路由器的核心,既继承了路由器的优点,又克服了它们的缺点:既有高性能,又具可编程性,这使得Internet上不断涌现的新技术能够迅速的在实际的路由器中得以应用。因此网络处理器的开发被许多芯片厂商作为一项重要内容,众多的芯片厂商纷纷提出了自己的设计理念和产品,其中比较典型的产品有EZchip的NP系列、IBM的Power NP和Motorola的C-5等。本发明所基于的网络处理器的实施例选择以色列EZchip公司的NP-2a网络处理器。该处理器具有全双工10Gb速度进行任务的报文解析、表格搜索、逻辑控制和报文修改。另外,该处理器还采用嵌入式内容定位存储器(CAM)来处理分类任务。具有很高的集成度,简化的编程模型,先进的业务能力。扩大了代码空间,集成了流量管理模块(Traffic Management)用来支持10Gb线速的QoS(服务质量)控制。本发明提出的实现方案将以NP-2a网络处理器平台为例,但不限于NP-2a网络处理器平台。
如图2所示,这是NP-2a网络处理器的逻辑接口示意图。NP-2a网络处理器对外可以提供两个全双工的可配置的10G接口,其包括:
XGMII:10G Gigabit Media Independent Interface,即10G比特与介质无关的接口。
RGMII:1G Reduced Gigabit Media Independent Interface,即1G比特与介质无关的接口。
SPI:Serial Peripheral Interface,即串行外设接口。
PCI:Peripheral Component Interconnect,即周边元件扩展接口。
CPU:Central Processing Unit,即中央处理器。
DDR:Dual Data Rate,即双倍速率。
QDR:Quad Data Rate,即四倍速率。
DRAM:Dynamic Random-access Memory,即动态随机存取存储器。
SRAM:Static Random-access Memory,即静态随机存取存储器。
CAM:Content Access Memory,即内容寻址存储器。
请参阅图3。NP-2a网络处理器内部采用了优化的任务处理器(TaskOptimized Processors-TOPs)体系结构,包括4种不同类型的TOP,各类型的TOP完成不同的任务。包括:
分析阶段(TOPparse):Parse Module,即分析模块,用来分辨和提取各种数据帧的报头、标记、地址、端口、协议、领域、模式和关键字;该模块能够分析任意格式、任意封装方式和任意具有优先权标记等的包。
第一查找阶段(TOPsearchI):Search I Module,即第一个查找模块,该模块使用分析过的区域作为关键字进行相关表的查找、分类和管理表。
决策阶段(TOPresolve):Resolve Module,即决策模块,该模块进行数据包转发和QoS(服务质量)决策,并更新相关表和状态信息。
附件查找阶段(TOPserachII):Search II Module,即第二个查找模块,该模块是可选的,在决策阶段(TOPresolve)完成之后,进行附加的查找。
修改阶段(TOPmodify):Modify Module,即修改模块,该模块对数据包的内容进行具体修改,完成在数据包的任何地方进行改写、添加和删除操作。
另外,其内部还包括:
HDMA:Host DMA,即主机直接内存访问模块。
IBDMA:Ingress Back DMA,即接收后端直接内存访问模块。
IFDMA:Ingress Front DMA,即接收前端直接内存访问模块。
EFDMA:Egress Front DMA,即发送前端直接内存访问模块。
EBDMA:Egress Back DMA,即发送后端直接内存访问模块。
HTFD Queue:Host Transmit Frame Descriptor Queue,即用于存储发往CP数据帧描述符的队列。
VOQ Queue:Virtual Output Queues,即用于存储发往交换开关数据帧描述符的队列。
ETFD Queue:Egress Transmit Frame Descriptor Queue,即用于存储发往网口数据帧描述符的队列。
STAT MSG Queue:Statistics Message Queue,即计数器模块发往CP的消息队列。
SRH Queue:Search Message Queue,即存储着增加或删除查找表项时发往CP的消息队列。
ICFD Queue:Ingress Classified Frame Descriptor Queue,即用于存储从网口进入NP(网络处理器)的数据帧描述符的队列。
ECFD Queue:Egress Classified Frame Descriptor Queue,即存储从交换开关或PCI进入NP(网络处理器)的数据帧描述符的队列。
RFD Tables:Receive Frame Descriptor Tables,即记录空闲的Buffer、以被占用的Buffer指针的表。
从图3可以看出,四种不同类型的TOPs处理器形成一种超标量体系结构,可用于并行处理和流水线处理。在每个处理阶段,每种类型的TOPs处理器中的多个处理器同时对多个数据帧进行处理,满足10GE对数据帧进行7层线速处理(全双工)的要求。
分配TOPs处理器去处理接收到的帧,传送分析结果,信息,帧指针从一个流水线阶段到另一个流水线阶段,以及维持数据帧的顺序等工作均由硬件完成。
本发明采用在NP-2a网络处理器中为每个IPv6穿越IPv4的隧道建立一个隧道端点,此端点和远端设备的另一个隧道端点(或者一组隧道端点)一起组成一个完整的IPv6穿越IPv4的隧道。隧道端点在NP-2a网络处理器中以虚拟的端点形式存在,和其上的物理端口并没有对应关系。如图4所示。
NP-2a网络处理器上的每个隧道以隧道标识码(Tunnel(隧道)ID)标识,并且认为每个隧道端点只属于整个设备,并不属于哪个具体的物理端口。也就是说,每个隧道端点相当于NP-2a网络处理器上独立的逻辑端口。
对于手工配置隧道,其本地端点(Local Node)和远端端点(Remote Node)的关系为“一点对一点”,这样配置隧道的隧道标识码完全对应隧道的两个端点,即通过隧道标识码可以确定封装报头的源地址和目标地址;对于自动隧道,其本地端点和远端端点的关系为“一点对多点”,所以对于自动隧道,每个隧道标识码对应隧道的本地端点,即通过隧道标识码可以确定封装报头的源地址。但是远端端点是不确定的,所以封装报头中的目标地址只能通过原报文目标地址(DIPv6),或者通过路由表中的下一跳地址获得。
根据IPv4报头中的协议号和目标地址来判断是否需要本地端点对报文进行解封装,如果需要,直接像处理普通IPv6报文一样处理被封装的IPv6报文。
为了支持10G线速的IPv6穿越IPv4的隧道报文加解封装处理,在进行隧道每个会话的首包处理时,同时在NP-2a网络处理器的查询存储器中建立相应的会话表项,使得属于这个会话的同一方向的后续报文得以10G线速处理。
同时须对隧道报文进行一定的合法性检测,将不合法的报文交由设备的控制层面处理,以免影响设备数据层面的高速性。
在NP-2a网络处理器上实现IPv6穿越IPv4的隧道,主要涉及四个主要数据结构,包括:隧道信息表、IPv6非法隧道地址列表、路由表和会话表。其中隧道信息表是其特有的数据结构,其他的数据结构都是设备上的所有模块共享的。
本网关IPv4地址集合,在NP-2a网络处理器的内容寻址存储器(CAM32)中记录本网关配置的所有IPv4地址,以便确定IPv4报头协议号为41/47的报文是否是发往本地隧道端点的。
隧道信息表记录隧道的相关信息,以直接表的形式存在。具体如表1所示:
表1:隧道信息表
IPv6非法隧道地址列表记录了非法的隧道源地址和目标地址组合,包含IPv6穿越IPv4隧道的非法地址,为了进行掩码匹配,其以树的形式存在。对于需要被加封装的报文,必须检测其源IPv6地址的合法性,对于需解封装的报文,必须检测其IPv4封装报头中源地址(SIPv4)是否为隧道配置表中相应隧道的远端IPv4地址和被封装的IPv6报头中IPv6地址的合法性。IPv6非法隧道地址表具体如表2所示:
表2:IPv6非法隧道地址表
路由表用来决定哪些报文需要被加封装,具体从属于哪个隧道。对于一些隧道,封装报头的目标地址也需要从路由表中获得,路由表以树的形式存在。路由表具体如表3所示:
表3:路由表
会话表是为了支持高速处理而存在的,使得同一会话同一方向的后续报文不用再经过多次查询才能确定处理路径和参数,而是通过匹配会话表的表项直接获得处理路径和参数,其以哈希表的形式存在。会话表具体如表4所示:
表4:会话表
下面分别对于IPv6穿越IPv4的隧道解封装和加封装进行详细的描述。
对于需要加封装的IPv6报文,在分析阶段(TOPparse)阶段并不区分,直至第一查找阶段(TOPsearchI)阶段由路由表或者会话表确定。如果是某个会话的首报文,根据隧道路由类型得到DIPv4,根据隧道标识码得到其隧道相关信息,进一步得到SIPv4。其后的处理就是以DIPv4为目的地的IPv4路由转发处理,但是如果遇上出错,只将原来的IPv6报文送至协议栈。在决策阶段(TOPresolve)阶段在会话表中会对这个IPv6报文创建加封装的表项。如果会话表命中,直接根据会话表相应表项的信息进行加封装处理。
请参阅图5,这是本发明基于网络处理器实现IPv6穿越IPv4的隧道报文处理方法中所述的为IPv6报文加封装IPv4报头的具体流程图。所述的加封装包括以下步骤:
d-1、对IPv6报文的源地址、目标地址进行非法地址列表匹配;如果命中,即表示具有非法地址,丢弃该报文;如果不命中,则以目标地址匹配路由表,然后根据路由结果进行不同的处理;包括:是隧道路由的处理和不是路由隧道的处理;如果是隧道路由,则进行隧道加封装处理;如果不是隧道路由,则进行正常的IPv6路由转发处理;
d-2、根据隧道的不同(配置的隧道、根据路由表下一跳地址得到封装头目标地址的隧道、根据原目标地址得到封装头目标地址的隧道),得到作为封装头的IPv4目标地址和源地址:如果是配置隧道,则根据路由表结果中的隧道标示码查询隧道信息表,在相应的隧道信息中取得远端IPv4作为封装头的目标地址,取得本地IPv4地址作为封装头的源地址;
如果是根据路由表下一跳地址得到封装头目标地址的隧道,则将路由表下一跳地址中的IPv4地址作为封装头的目标地址,取得隧道信息表的本地IPv4地址作为封装头的源地址;
如果是根据原目标地址得到封装头目标地址的隧道,则将原报文的目标地址中IPv4地址作为封装头的目标地址,取得隧道信息表的本地IPv4地址作为封装头的源地址。
d-3、将已获得的目标地址作为键查询路由表,作正常的IPv4路由转发处理,并通过隧道对应的ID计数器得到封装头的ID号;
d-4封装结束。
请参阅图6。本发明基于网络处理器实现IPv6穿越IPv4的隧道报文处理方法中,所述的解封装步骤包括:
e-1、对IPv4报文进行四层协议类型解析;如果其协议类型为封装IPv6报文的IPv4报文(协议号41)或者通用路由协议封装(协议号47),并且目标地址为本网关IPv4地址,则需要解封装,否则当作未知报文处理;
e-2、对封装的源地址、目标地址进行非法地址列表匹配;如果命中,即表示具有非法地址,丢弃该报文;如果不命中,则以被封装的IPv6报头中的源地址匹配路由表,得到的结果为隧道路由,根据结果中的隧道类型进一步检查封装头源地址的合法性;
e-3、检查是否是配置隧道?如果不是配置隧道,则进行一个通常的IPv6报文处理;如果是配置隧道,再检查源地址是否等于远端端点地址?如果是远端端点地址,则进行一个通常的IPv6报文处理;如果不是远端端点地址,则表明封装头中的源地址不合法,丢弃该报文;
e-4、解封装结束。
实际上,所述IPv6穿越IPv4的隧道解封装和加封装过程分别对已建立会话的报文和对未建立会话的报文进行处理时,网络处理器的各个不同阶段的任务处理模块进行不同的操作;所述的各个不同阶段的任务处理模块包括:
分析阶段的分析模块(TOPparse:Parse Module),用来分辨和提取各种数据帧的报头、标记、地址、端口、协议、领域、模式和关键字;
查找阶段的第一个查找模块(TOPsearchI:Search I Module),该模块使用分析过的区域作为关键字进行相关表的查找、分类和管理表;
决策阶段的决策模块(TOPresolve:Resolve Module),该模块进行数据包转发和QoS(服务质量)决策,并更新相关表和状态信息;
附加查找阶段的第二个查找模块(TOPserachII:Search II Module),该模块是可选的,在TOPresolve完成之后,进行附加的查找;
修改阶段的修改模块(TOPmodify:Modify Module),该模块对数据包的内容进行具体修改,完成在数据包的任何地方进行改写、添加和删除操作;
对于需要解封装的IPv4报文,在分析阶段(TOPparse)阶段即可以确定,具体办法就是通过四层协议号和IPv4报头的目标地址,然后分析其载荷中的IPv6报文,组建一个IPv6五元组(五元组指由源地址、目标地址、源端口、目标端口、协议号组成的集合)的复合键传至第一查找阶段(TOPsearchI),第一查找阶段(TOPsearchI)根据会话表或者源地址查询路由获得其加封装的隧道信息(某个会话的首报文),以便决策阶段(TOPresolve)检测合法性。然后将报文作为一个普通的IPv6进行路由转发处理,但是如果遇上出错,将原来已经封装的IPv4报文送至协议栈。如果是某个会话的首报文,在决策阶段(TOPresolve)阶段会在会话表中对这个IPv6报文创建解封装的表项。
下面对于IPv6穿越IPv4的隧道解封装和加封装过程以每个TOP的角度进行详细的描述。
对已建立会话的报文处理流程:
对于已经建立会话的报文,其处理所需的大部分信息已经保存在会话表中相应表项的结果中,只有一些动态的信息需要动态取得,所以对于已建立会话的报文处理相对简单,并且能够保证设备的10G线速。
1、在分析阶段(TOPparse),包括:区分不同类型的报文;创建由源地址、目标地址、源端口、目标端口、协议号组成的五元组,用于查找会话表;创建报文相关消息和硬件寄存器消息。
在区分不同类型的报文时,先区分该报文是从网口(RX端)进来还是从同一网络处理器的另一端(TX端)绕回的报文。隧道相关的报文只可能从RX端进入NP-2a网络处理器的TOPs,首先要区分出具体的3层和4层协议类型,即IPv4(TCP(传输控制协议),UDP(用户数据报协议),ICMP(网络控制消息协议),未知协议,隧道报文)或IPv6(TCP(传输控制协议),UDP(用户数据报协议),ICMP(网络控制消息协议),未知协议)。
对于隧道报文,是指封装头的协议号为41或者47的报文,如果其协议类型为封装IPv6报文的IPv4报文(协议号为41)或者为通用路由协议封装(协议号为47)并且目标地址为本网关配置的某个地址,这类报文即确定为需要进行解封装处理的隧道报文。
创建五元组用于查找会话表。
对于创建报文相关消息和硬件寄存器消息。
由于各个处理阶段(TOPs)之间信息的共享必须通过消息来实现,所以须为那些需要修改的数据或者那些将被后面阶段用到的信息创建消息。
硬件寄存器消息是所有报文所必需的,记录了所有硬件相关的信息。值得一提的是,该消息中的决策行标“RSV Label”域,存储的是跳转行标,用于在决策阶段(TOPresolve)实现多分支跳转。
2、第一查找阶段(TOPsearchI)
根据五元组查找相应的会话表即可。此时会话表一定命中,查询结果中几乎包含了所有需要的封装信息、路由信息,其中如果是加封装处理,必须动态从对应的计数器得到封装头的ID号,如果需要支持隧道QoS(服务质量),必须使用对应的Token Bucket(令牌桶)进行动态的流量测速。
3、决策阶段(TOPresolve)
根据会话表的结果中的控制字段进行分支跳转,进入相应的分支程序。如果是加封装,决定封装头中各个域的值和封装以后的路由;如果是解封装,决定解封装以后IPv6报文的路由。然后将这些信息组合成修改策略和修改行标“MDF Label”,以消息的形式传给修改阶段(TOPmodify)。
4、、修改阶段(TOPmodify)
根据决策阶段(TOPresolve)传入的消息和修改行标“MDF Label”进行具体的加封装和解封装。对于加封装就是在原报文的二层头和三层头之间加入一个IPv4报头,此报头的各个域值可以在决策阶段(TOPresolve)传入的消息中获得,然后再修改二层头相应的域;对于解封装,删除原有的封装头,还原封装前的IPv6报文,然后修改二层头相应的域。
对于未建立会话的报文处理流程,首先要进行隧道会话首包处理。
隧道会话首包就是在会话表没有对应表项的报文,有可能是需要解封装的IPv4报文,也有可能是需要加封装的IPv6报文,更加复杂的情况是,先解封装然后再进行另一个隧道的加封装。我们分别在相应的会话表中为首包所在方向建立相应的表项,以便该会话后续报文能被高速处理。包括:
1、分析阶段(TOPparse),包括:区分不同类型的报文;创建五元组用于查找会话表;创建报文相关消息和硬件寄存器消息。其中:
对于区分不同类型的报文:
先区分该报文是从网口(RX端)进来还是从同一网络处理器的另一端(TX端)绕回的报文。隧道相关的报文只可能从RX端进入NP-2a网络处理器的TOPs(NP网络处理器内的一种优化的任务处理器),首先要区分出具体的3层和4层协议类型,即IPv4包括TCP(传输控制协议)、UDP(用户数据报协议)、ICMP(网络控制消息协议)、未知协议、以及隧道报文,或IPv6包括TCP(传输控制协议)、UDP(用户数据报协议)、ICMP(网络控制消息协议)、未知协议。
对于隧道报文,是指封装头的协议号为41或者47,并且目标地址为本网关配置的某个地址,这类报文确定为需要设备进行解封装处理的隧道报文。
创建五元组用于查找会话表。
对于创建报文相关消息和硬件寄存器消息:
由于各个处理阶段(TOPs)之间信息的共享必须通过消息来实现,所以我们必须为那些需要修改的数据或者那些将被后面阶段用到的信息创建消息。
硬件寄存器消息是所有报文所必需的,记录了所有硬件相关的信息。值得一提的是,该消息中的决策行标“RSV Label”域,存储的是跳转行标,用于在决策阶段(TOPresolve)实现多分支跳转。
2、第一查找阶段(TOPsearchI):
以五元组为键查询会话表,此时会话表不命中,表明是一个会话首包。如果是解封装,直接进入解封装程序,首先使用报文五元组中的源地址和目标地址查询非法地址列表,然后用源地址反向查询路由,以此来获得封装隧道的相应信息,最后用五元组的目标地址进入IPv6报文路由处理,可能此时会进入另一个隧道的封装处理;如果是加封装,必须在用目标地址经过路由查询以后才能确定,确定相应的隧道以后,通过不同的隧道处理得到封装头中的源地址和目标地址。
如果系统需要支持隧道QoS(服务质量),还必须进行相应的QoS服务质量查询,主要涉及分类和测速。
3、决策阶段(TOPresolve):
根据分析阶段(TOPparse)传入的决策行标“RSV Label”值和各个数据结构匹配的结果进行分支跳转,进入相应的分支程序。如果是加封装,从相应的数据结构匹配结果中抽取出封装头中各个域的值和封装以后的路由信息;如果是解封装,也从相应的数据结构匹配结果中抽取出解封装以后IPv6报文的路由信息(有可能是另一个隧道的封装过程)。然后将这些信息组合成修改策略和修改行标“MDF Label”,以消息的形式传给修改阶段(TOPmodify)。
4、修改阶段(TOPmodify):
根据决策阶段(TOPresolve)传入的消息和“MDF Label”进行具体的加封装和解封装。对于加封装就是在原报文的二层头和三层头之间加入一个IPv4报头,此报头的各个域值可以在决策阶段(TOPresolve)传入的消息中获得,然后再修改二层头相应的域;对于解封装,删除原有的封装头,还原封装前的IPv6报文,然后修改二层头相应的域。
本发明的实施,可以使IPv6穿越IPv4网络时,能满足现在高速网络的需求,其灵活性可跟上网络协议和标准的快速改变,使其达到高性能的数据传输速度。
Claims (17)
1. 基于网络处理器实现IPv6穿越IPv4的隧道报文处理方法,其特征在于,采用IPv4报头来封装IPv6数据包,使得IPv6数据包能在IPv4网络上传输;
包括以下步骤:
a、在网络处理器中为每个IPv6穿越IPv4的隧道建立一个隧道端点,此端点和远端设备的另一个隧道端点或者一组隧道端点一起组成一个完整的IPv6穿越IPv4的隧道;
b、本地网络处理器上的每个隧道以隧道标识码标识;
c、建立隧道信息表、IPv6非法隧道地址列表、路由表和会话表;其中:隧道信息表记录隧道的相关信息;IPv6非法地址列表记录了非法的隧道源地址和隧道目标地址组合;路由表用来决定哪些报文需要被加封装,具体属于哪个隧道;会话表记录了同一会话的确定处理路径和参数;
d、通过查询隧道信息表、IPv6非法隧道地址列表、路由表和会话表,获得IPv4封装头的信息,然后为IPv6报文加封装IPv4报头,形成穿越IPv4网络的隧道报文;
e、根据IPv4报头中的协议号和目标地址来判断是否需要本地隧道端点对已封装的隧道报文进行解封装;如果需要,去掉IPv4报头,然后对解封装以后的报文做普通的IPv6路由处理。
2. 根据权利要求1所述的基于网络处理器实现IPv6穿越IPv4的隧道报文处理方法,其特征在于,还包括以下步骤:
f、同时,对于隧道报文进行合法性检测,并将不合法的报文交由设备的控制层面处理。
3. 根据权利要求1所述的基于网络处理器实现IPv6穿越IPv4的隧道报文处理方法,其特征在于,步骤d所述的为IPv6报文加封装IPv4报头的步骤包括:
d-1、对IPv6报文的源地址、目标地址进行非法地址列表匹配;如果命中,即表示具有非法地址,丢弃该报文;如果不命中,则以目标地址匹配路由表,然后根据路由结果进行不同的处理,包括:是隧道路由的处理和不是路由隧道的处理;如果是隧道路由,则进行隧道加封装处理;如果不是隧道路由,则进行正常的IPv6路由转发处理;
d-2、通过隧道信息表、或根据路由表下一跳地址、或根据原报文目标地址,得到作为封装头的IPv4目标地址:
d-3、通过隧道信息表取得封装头的源地址;
d-4、将已获得的目标地址作为键查询路由表,进行正常的IPv4路由转发处理,并通过隧道对应的ID计数器得到封装头的ID号;
d-5、封装结束。
4. 根据权利要求1所述的基于网络处理器实现IPv6穿越IPv4的隧道报文处理方法,其特征在于,步骤e所述的解封装步骤包括:
e-1、对IPv4报文进行四层协议类型解析,如果其协议类型为封装IPv6报文的IPv4报文(协议号41)或者通用路由协议封装(协议号47),并且目标地址为本网关IPv4地址,则需要解封装;
e-2、对封装的IPv6报文源地址、目标地址进行非法地址列表匹配;如果命中,即表示具有非法地址,丢弃该报文;如果不命中,则以被封装的IPv6报头中的源地址匹配路由表,得到的结果为隧道路由,根据结果中的隧道类型进一步检查封装头源地址的合法性;
e-3、检查是否是配置隧道?如果不是配置隧道,则进行一个通常的IPv6报文处理;如果是配置隧道,再检查源地址是否等于远端端点地址?如果是远端端点地址,则进行一个通常的IPv6报文处理;如果不是远端端点地址,则表明封装头中的源地址不合法,丢弃该报文;
e-4、解封装结束。
5. 根据权利要求1所述的基于网络处理器实现IPv6穿越IPv4的隧道报文处理方法,其特征在于,所述IPv6穿越IPv4的隧道解封装和加封装过程分别对已建立会话的报文和对未建立会话的报文进行处理时,网络处理器的各个不同阶段的任务处理模块进行不同的操作;所述的各个不同阶段的任务处理模块包括:
分析阶段的分析模块,用来分辨和提取各种数据帧的报头、标记、地址、端口、协议、领域、模式和关键字;
查找阶段的第一个查找模块,该模块使用分析过的区域作为关键字进行相关表的查找、分类和管理表;
决策阶段的决策模块,该模块进行数据包转发和服务质量决策,并更新相关表和状态信息;
附加查找阶段的第二个查找模块,该模块是可选的,在决策阶段完成之后,进行附加的查找;
修改阶段的修改模块,该模块对数据包的内容进行具体修改,完成在数据包的任何地方进行改写、添加和删除操作。
6. 根据权利要求5所述的基于网络处理器实现IPv6穿越IPv4的隧道报文处理方法,其特征在于,对已建立会话的报文处理流程包括;
(1)分析阶段
首先区分不同类型的报文;
然后创建由源地址、目标地址、源端口、目标端口、协议号组成的五元组,用于查找会话表;
再就是创建报文相关消息和硬件寄存器消息;
(2)第一查找阶段
根据五元组查找相应的会话表;
(3)决策阶段
根据会话表的结果中的控制字段进行分支跳转,进入相应的分支程序;
(4)修改阶段
根据决策阶段传入的消息和修改行标域进行具体的加封装和解封装。
7. 根据权利要求6所述的基于网络处理器实现IPv6穿越IPv4的隧道报文处理方法,其特征在于,所述的第一查找阶段根据五元组查找相应的会话表时,如果是加封装处理,须动态从对应的计数器得到封装头的ID号;如果需要支持隧道服务质量,必须使用对应的令牌桶进行动态的流量测速。
8. 根据权利要求6所述的基于网络处理器实现IPv6穿越IPv4的隧道报文处理方法,其特征在于,所述的决策阶段,如果是加封装,决定封装头中各个域的值和封装以后的路由;如果是解封装,决定解封装以后IPv6报文的路由,然后将这些信息组合成修改策略和修改行标,以消息的形式传给修改阶段。
9. 根据权利要求5所述的基于网络处理器实现IPv6穿越IPv4的隧道报文处理方法,其特征在于,所述的对于未建立会话的报文处理流程是对隧道会话首包处理的流程,该流程是指:在会话表没有对应表项的报文,包括是需要解封装的IPv4报文,或是需要加封装的IPv6报文,或者是先解封装然后再进行另一个隧道加封装的IPv4报文;具体流程是:
(1)分析阶段:首先区分不同类型的报文;然后创建由源地址、目标地址、源端口、目标端口、协议号组成的五元组,用于查找会话表;再就是创建报文相关消息和硬件寄存器消息;
(2)第一查找阶段:以五元组为键查询会话表,此时会话表不命中,表明是一个会话首包,然后进行一系列的查询,包括对隧道信息表、IPv6非法隧道地址列表、路由表的查询;
(3)决策阶段:根据分析阶段传入的决策行标值和各个数据结构匹配的结果进行分支跳转,进入相应的分支程序;
(4)修改阶段:根据决策阶段传入的消息和修改行标进行具体的加封装和解封装。
10. 根据权利要求9所述的基于网络处理器实现IPv6穿越IPv4的隧道报文处理方法,其特征在于,还包括分别在相应的会话表中为首包所在方向建立相应的表项,以便该会话后续报文能被高速处理。
11. 根据权利要求9所述的基于网络处理器实现IPv6穿越IPv4的隧道报文处理方法,其特征在于,所述的第一查找阶段中,如果是解封装,直接进入解封装程序,首先使用报文五元组中的源地址和目标地址查询非法地址列表,然后用源地址反向查询路由,以此来获得封装隧道的相应信息,最后用五元组的目标地址进入IPv6报文路由处理;如果是加封装,采用目标地址经过路由查询以后确定,确定相应的隧道以后,通过不同的隧道处理得到封装头中的源地址和目标地址。
12. 根据权利要求9所述的基于网络处理器实现IPv6穿越IPv4的隧道报文处理方法,其特征在于,所述的决策阶段中,如果是加封装,从相应的数据结构匹配结果中抽取出封装头中各个域的值和封装以后的路由信息;如果是解封装,也从相应的数据结构匹配结果中抽取出解封装以后IPv6报文的路由信息,包括可能是另一个隧道的封装过程;然后将这些信息组合成修改策略和修改行标,以消息的形式传给修改阶段。
13. 根据权利要求6或9所述的基于网络处理器实现IPv6穿越IPv4的隧道报文处理方法,其特征在于,所述的分析阶段区分不同类型的报文是指:区分该报文是从网口进来的隧道相关的报文,还是从同一网络处理器的另一端绕回的报文;对于从网口进入隧道相关的报文,网络处理器的任务处理器,首先要区分出具体的协议类型,包括IPv4传输控制协议、用户数据报协议、网络控制消息协议或IPv6的传输控制协议、用户数据报协议、网络控制消息协议。
14. 根据权利要求6或9所述的基于网络处理器实现IPv6穿越IPv4的隧道报文处理方法,其特征在于,所述的分析阶段创建报文相关消息是指为需要修改的数据或者将被后面阶段用到的信息创建消息;
所述的分析阶段硬件寄存器消息是指:所有报文所必需的、记录了所有硬件相关的信息,该消息中的决策行标域,存储的是跳转行标,用于在决策阶段实现多分支跳转。
15. 根据权利要求6或9所述的基于网络处理器实现IPv6穿越IPv4的隧道报文处理方法,其特征在于,所述的修改阶段,根据决策阶段传入的消息和修改行标进行具体的加封装和解封装:对于加封装就是在原报文的二层头和三层头之间加入一个IPv4报头,此报头的各个域值可以在决策阶段传入的消息中获得,然后再修改二层头相应的域;对于解封装,删除原有的封装头,还原封装前的IPv6报文,然后修改二层头相应的域。
16. 根据权利要求1所述的基于网络处理器实现IPv6穿越IPv4的隧道报文处理方法,其特征在于,所述的隧道端点在网络处理器中以虚拟的端点形式存在,
17. 根据权利要求1所述的基于网络处理器实现IPv6穿越IPv4的隧道报文处理方法,其特征在于,所述的网络处理器上的每个隧道端点相当于该网络处理器上一个独立的逻辑端口。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200710037457XA CN101247308B (zh) | 2007-02-13 | 2007-02-13 | 基于网络处理器实现IPv6穿越IPv4的隧道报文处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200710037457XA CN101247308B (zh) | 2007-02-13 | 2007-02-13 | 基于网络处理器实现IPv6穿越IPv4的隧道报文处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101247308A true CN101247308A (zh) | 2008-08-20 |
CN101247308B CN101247308B (zh) | 2011-04-27 |
Family
ID=39947530
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200710037457XA Expired - Fee Related CN101247308B (zh) | 2007-02-13 | 2007-02-13 | 基于网络处理器实现IPv6穿越IPv4的隧道报文处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101247308B (zh) |
Cited By (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101848171A (zh) * | 2010-07-01 | 2010-09-29 | 杭州华三通信技术有限公司 | 一种基于gre隧道的数据传输方法、设备和系统 |
CN102075519A (zh) * | 2010-12-10 | 2011-05-25 | 谭中飞 | 一种可以取代IPv6的网络层协议 |
CN102143246A (zh) * | 2010-12-20 | 2011-08-03 | 华为技术有限公司 | Ipv4网络与ipv6网络之间的端到端通信方法 |
CN102685271A (zh) * | 2012-05-30 | 2012-09-19 | 北京星网锐捷网络技术有限公司 | 一种防止自动隧道环路生成的方法及装置 |
CN102868642A (zh) * | 2012-10-09 | 2013-01-09 | 盛科网络(苏州)有限公司 | 在asic中实现nvgre报文转发的方法和装置 |
CN102938736A (zh) * | 2012-11-20 | 2013-02-20 | 杭州迪普科技有限公司 | 一种实现IPv4报文穿越IPv6网络的方法和设备 |
CN102970386A (zh) * | 2012-11-15 | 2013-03-13 | 杭州迪普科技有限公司 | 一种实现IPv6报文穿越IPv4网络的方法和设备 |
CN103428303A (zh) * | 2012-05-22 | 2013-12-04 | 中兴通讯股份有限公司 | IPv6主机访问IPv4服务器的方法及系统 |
CN103780469A (zh) * | 2012-10-23 | 2014-05-07 | 上海博达数据通信有限公司 | 多核平台上IPv6隧道的实现方法以及报文转发方法 |
CN101695047B (zh) * | 2009-10-26 | 2015-01-28 | 中兴通讯股份有限公司 | 一种实现动态隧道报文转发的方法及交换机 |
CN105684356A (zh) * | 2013-06-25 | 2016-06-15 | 谷歌公司 | 用于家庭网络的设备的高效通信 |
CN105939216A (zh) * | 2016-03-16 | 2016-09-14 | 杭州迪普科技有限公司 | 报文传输的方法及装置 |
CN105959236A (zh) * | 2015-11-06 | 2016-09-21 | 西安交大捷普网络科技有限公司 | 提升网络防护设备吞吐性能的数据包转发方法 |
CN106059932A (zh) * | 2016-08-08 | 2016-10-26 | 杭州华三通信技术有限公司 | 一种路由表项生成方法及装置 |
CN107770169A (zh) * | 2017-10-18 | 2018-03-06 | 盛科网络(苏州)有限公司 | 包转发芯片中IPv4和IPv6隧道间快速转换协议报头的方法 |
CN109039919A (zh) * | 2018-10-11 | 2018-12-18 | 平安科技(深圳)有限公司 | 转发路径确定方法、装置、系统、计算机设备及存储介质 |
CN109600293A (zh) * | 2018-12-24 | 2019-04-09 | 青岛海信电子设备股份有限公司 | 一种gre隧道建立方法及系统 |
CN110324437A (zh) * | 2019-07-09 | 2019-10-11 | 中星科源(北京)信息技术有限公司 | 一种原始地址传输方法、系统、存储介质和处理器 |
CN110768887A (zh) * | 2019-09-20 | 2020-02-07 | 杭州海兴电力科技股份有限公司 | 一种基于IPv6的电力网关系统及电力数据上传/下发方法 |
CN111565131A (zh) * | 2020-04-22 | 2020-08-21 | 烽火通信科技股份有限公司 | 一种家庭网关cpu测速方法及系统 |
CN112787923A (zh) * | 2019-11-07 | 2021-05-11 | 华为技术有限公司 | 一种报文的处理方法,装置和系统 |
CN112822084A (zh) * | 2019-11-18 | 2021-05-18 | 瑞昱半导体股份有限公司 | 一种网关控制芯片及其网络封包处理方法 |
CN113839850A (zh) * | 2018-09-27 | 2021-12-24 | 瞻博网络公司 | 根据需求生成灵活、可编程且可扩展的网络隧道 |
CN114422415A (zh) * | 2020-10-09 | 2022-04-29 | 瞻博网络公司 | 在分段路由中的出口节点处理流 |
CN114978807A (zh) * | 2022-05-12 | 2022-08-30 | 北京天融信网络安全技术有限公司 | 一种通信方法及电子设备 |
US20220353352A1 (en) * | 2021-04-29 | 2022-11-03 | Arris Enterprises Llc | Enhanced docsis packet classification for tunneled traffic having ipv4 and ipv6 rules mixed in a single upstream (us) and/or downstream (ds) traffic classifier |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107360154B (zh) * | 2017-07-10 | 2020-01-07 | 中国科学院沈阳计算技术研究所有限公司 | 一种内网安全接入方法及系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100550826C (zh) * | 2004-12-29 | 2009-10-14 | 中兴通讯股份有限公司 | 一种穿越IPv6网络地址翻译建立虚拟隧道的方法 |
CN100505754C (zh) * | 2005-01-14 | 2009-06-24 | 中兴通讯股份有限公司 | 一种实现动态4-in-6隧道建立的方法 |
-
2007
- 2007-02-13 CN CN200710037457XA patent/CN101247308B/zh not_active Expired - Fee Related
Cited By (42)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101695047B (zh) * | 2009-10-26 | 2015-01-28 | 中兴通讯股份有限公司 | 一种实现动态隧道报文转发的方法及交换机 |
CN101848171A (zh) * | 2010-07-01 | 2010-09-29 | 杭州华三通信技术有限公司 | 一种基于gre隧道的数据传输方法、设备和系统 |
CN101848171B (zh) * | 2010-07-01 | 2013-04-03 | 杭州华三通信技术有限公司 | 一种基于gre隧道的数据传输方法、设备和系统 |
CN102075519A (zh) * | 2010-12-10 | 2011-05-25 | 谭中飞 | 一种可以取代IPv6的网络层协议 |
CN102143246A (zh) * | 2010-12-20 | 2011-08-03 | 华为技术有限公司 | Ipv4网络与ipv6网络之间的端到端通信方法 |
CN103428303A (zh) * | 2012-05-22 | 2013-12-04 | 中兴通讯股份有限公司 | IPv6主机访问IPv4服务器的方法及系统 |
CN102685271A (zh) * | 2012-05-30 | 2012-09-19 | 北京星网锐捷网络技术有限公司 | 一种防止自动隧道环路生成的方法及装置 |
CN102868642B (zh) * | 2012-10-09 | 2015-11-18 | 盛科网络(苏州)有限公司 | 在asic中实现nvgre报文转发的方法和装置 |
CN102868642A (zh) * | 2012-10-09 | 2013-01-09 | 盛科网络(苏州)有限公司 | 在asic中实现nvgre报文转发的方法和装置 |
CN103780469B (zh) * | 2012-10-23 | 2018-01-23 | 上海博达数据通信有限公司 | 多核平台上IPv6隧道的实现方法以及报文转发方法 |
CN103780469A (zh) * | 2012-10-23 | 2014-05-07 | 上海博达数据通信有限公司 | 多核平台上IPv6隧道的实现方法以及报文转发方法 |
CN102970386A (zh) * | 2012-11-15 | 2013-03-13 | 杭州迪普科技有限公司 | 一种实现IPv6报文穿越IPv4网络的方法和设备 |
CN102970386B (zh) * | 2012-11-15 | 2016-01-13 | 杭州迪普科技有限公司 | 一种实现IPv6报文穿越IPv4网络的方法和设备 |
CN102938736A (zh) * | 2012-11-20 | 2013-02-20 | 杭州迪普科技有限公司 | 一种实现IPv4报文穿越IPv6网络的方法和设备 |
CN102938736B (zh) * | 2012-11-20 | 2016-06-08 | 杭州迪普科技有限公司 | 一种实现IPv4报文穿越IPv6网络的方法和设备 |
CN105684356B (zh) * | 2013-06-25 | 2019-04-09 | 谷歌有限责任公司 | 用于家庭网络的设备的高效通信 |
US10805200B2 (en) | 2013-06-25 | 2020-10-13 | Google Llc | Efficient communication for devices of a home network |
CN105684356A (zh) * | 2013-06-25 | 2016-06-15 | 谷歌公司 | 用于家庭网络的设备的高效通信 |
US10320763B2 (en) | 2013-06-25 | 2019-06-11 | Google Inc. | Efficient communication for devices of a home network |
CN105959236A (zh) * | 2015-11-06 | 2016-09-21 | 西安交大捷普网络科技有限公司 | 提升网络防护设备吞吐性能的数据包转发方法 |
CN105939216A (zh) * | 2016-03-16 | 2016-09-14 | 杭州迪普科技有限公司 | 报文传输的方法及装置 |
CN105939216B (zh) * | 2016-03-16 | 2019-11-12 | 杭州迪普科技股份有限公司 | 报文传输的方法及装置 |
CN106059932A (zh) * | 2016-08-08 | 2016-10-26 | 杭州华三通信技术有限公司 | 一种路由表项生成方法及装置 |
CN106059932B (zh) * | 2016-08-08 | 2020-12-11 | 新华三技术有限公司 | 一种路由表项生成方法及装置 |
CN107770169A (zh) * | 2017-10-18 | 2018-03-06 | 盛科网络(苏州)有限公司 | 包转发芯片中IPv4和IPv6隧道间快速转换协议报头的方法 |
CN113839850B (zh) * | 2018-09-27 | 2022-11-11 | 瞻博网络公司 | 根据需求生成灵活、可编程且可扩展的网络隧道 |
CN113839850A (zh) * | 2018-09-27 | 2021-12-24 | 瞻博网络公司 | 根据需求生成灵活、可编程且可扩展的网络隧道 |
CN109039919A (zh) * | 2018-10-11 | 2018-12-18 | 平安科技(深圳)有限公司 | 转发路径确定方法、装置、系统、计算机设备及存储介质 |
CN109039919B (zh) * | 2018-10-11 | 2021-09-21 | 平安科技(深圳)有限公司 | 转发路径确定方法、装置、系统、计算机设备及存储介质 |
CN109600293A (zh) * | 2018-12-24 | 2019-04-09 | 青岛海信电子设备股份有限公司 | 一种gre隧道建立方法及系统 |
CN109600293B (zh) * | 2018-12-24 | 2021-06-04 | 青岛海信电子设备股份有限公司 | 一种gre隧道建立方法及系统 |
CN110324437A (zh) * | 2019-07-09 | 2019-10-11 | 中星科源(北京)信息技术有限公司 | 一种原始地址传输方法、系统、存储介质和处理器 |
CN110768887A (zh) * | 2019-09-20 | 2020-02-07 | 杭州海兴电力科技股份有限公司 | 一种基于IPv6的电力网关系统及电力数据上传/下发方法 |
CN112787923A (zh) * | 2019-11-07 | 2021-05-11 | 华为技术有限公司 | 一种报文的处理方法,装置和系统 |
CN112822084A (zh) * | 2019-11-18 | 2021-05-18 | 瑞昱半导体股份有限公司 | 一种网关控制芯片及其网络封包处理方法 |
CN111565131B (zh) * | 2020-04-22 | 2022-04-08 | 烽火通信科技股份有限公司 | 一种家庭网关cpu测速方法及系统 |
CN111565131A (zh) * | 2020-04-22 | 2020-08-21 | 烽火通信科技股份有限公司 | 一种家庭网关cpu测速方法及系统 |
CN114422415A (zh) * | 2020-10-09 | 2022-04-29 | 瞻博网络公司 | 在分段路由中的出口节点处理流 |
CN114422415B (zh) * | 2020-10-09 | 2023-07-11 | 瞻博网络公司 | 在分段路由中的出口节点处理流 |
US20220353352A1 (en) * | 2021-04-29 | 2022-11-03 | Arris Enterprises Llc | Enhanced docsis packet classification for tunneled traffic having ipv4 and ipv6 rules mixed in a single upstream (us) and/or downstream (ds) traffic classifier |
US11870876B2 (en) * | 2021-04-29 | 2024-01-09 | Arris Enterprises Llc | Enhanced DOCSIS packet classification for tunneled traffic having IPV4 and IPV6 rules mixed in a single upstream (US) and/or downstream (DS) traffic classifier |
CN114978807A (zh) * | 2022-05-12 | 2022-08-30 | 北京天融信网络安全技术有限公司 | 一种通信方法及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN101247308B (zh) | 2011-04-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101247308B (zh) | 基于网络处理器实现IPv6穿越IPv4的隧道报文处理方法 | |
CN104348716B (zh) | 一种报文处理方法及设备 | |
CN101087296B (zh) | 利用网络处理器实现IPv4/IPv6网络协议转换的方法 | |
CN100555986C (zh) | 交换环境用的组合流水线式包分类和地址搜索方法及设备 | |
EP3282649B1 (en) | Data packet forwarding | |
CN102148773B (zh) | 一种IPv6协议和IPv4协议转换的方法及系统 | |
CN104410541B (zh) | Vxlan内层虚拟机流量在中间交换机上进行统计的方法及装置 | |
CN101267399B (zh) | 报文转发方法、报文转发设备及其上行接口板 | |
CN102571613B (zh) | 一种转发报文的方法及网络设备 | |
US20070171825A1 (en) | System, method, and computer program product for IP flow routing | |
CN102970227A (zh) | 在asic中实现vxlan报文转发的方法和装置 | |
CN102075438B (zh) | 单播数据帧传输方法及装置 | |
US8948180B2 (en) | Routing encapsulated data packets onto selected VLANs | |
US7583674B2 (en) | Switch and method for supporting internet protocol (IP) network tunnels | |
WO2008085375A2 (en) | Method and apparatus for multicast routing | |
JP2002314571A (ja) | スイッチングノードのための分類およびタグ付け規則 | |
CN109639552B (zh) | 一种三层转发方法及装置 | |
CN105827495A (zh) | Vxlan网关的报文转发方法和设备 | |
US10263901B2 (en) | Service packet processing method, apparatus, and system | |
CN102801622B (zh) | 一种数据报文的转发方法及转发装置 | |
CN100450095C (zh) | 为虚拟专线业务提供QoS服务的系统和方法 | |
CN105515995B (zh) | 报文处理方法及装置 | |
CN107733765B (zh) | 映射方法、系统和相关设备 | |
CN109246016B (zh) | 跨vxlan的报文处理方法和装置 | |
CN106209554B (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110427 Termination date: 20150213 |
|
EXPY | Termination of patent right or utility model |