通信网络中报告隧道数据包中各级错误的装置及方法

文档序号:7954230阅读:127来源:国知局
专利名称:通信网络中报告隧道数据包中各级错误的装置及方法
技术领域
本发明涉及通信网络,尤其涉及在通信网络(尤其是IP网络)中用于对基于IPSec (互联网协议安全)协议族的数据包的错误进行报 告和解析的端^妻^没备及其相应方法。
背景技术
IPSec协议族是广泛应用于IP层的网络安全访问协议。IPsec协 议族通过IKE (互联网密钥交换)协议在两个端接设备之间为某个特 定安全通信通过协商建立专用的安全通信隧道。其后.属于所述特定 通信的P数据包在该隧道两端的端接设备之间进行传送。为简明起 见,以下如无特别说明.基于IPSec协议的用于经安全通信隧道进行 通信的IP数据包称为隧道数据包。具体地,安全通信隧道建立后,源端接设备UP数据包的源地址 所对应的主4几所对应的端^l妻设备)在转发属于该特定通信的IP数据 包前,需要执行以下搡作1. 根据该隧道数据包的目的地址和源地址等相关信息,判断该 IP数据包是否属于某一个特定安全通信(特指基于IPsec协议族的安 全通信);2. 如果所述IP数据包属于一个特定安全通信,则利用与该特定 安全通信相应的安全联盟(包括加密密钥、加密算法等)对该IP数 据包进行加密、封装等处理,此时该IP数据包即成为一个隧道数据 包;3. 所述隧道数据包经由与所述特定安全通信对应的安全通信隧 道穿过互联网,到达目的端接设备(该隧道数据包的目的地址所对应
的主才几所属的端^妻设备)。目的端接设备接收到该隧道数据包后,根据相应的安全联盟,对 该数据包进行解密等搡作后转发经解密的IP数据包至该数据包的目 的地址对应的主机。在实际应用过程中,由于种种原因(黑客的恶意攻击、计算机系 统自身的错误、加解密算法的不匹配等),到达目的端接设备的隧道数据包可能存在各种错误,这些错误分为以下6种(1) 错误的SPI (安全策略指示);(2) -睑证失败;(3) 解压缩失败;(4) 解密失败;(5) 需要验证;(6) 需要授权。为了便于诊断并消除错误,当目的端接设备发现隧道数据包存在 错误后,需要向源端接设备报告相应的错误,根据错误报告,源端接 设备可以了解其发送的相应数据包的错误,并设法予以消除。现有技术中,隧道数据包的错误由目的端接设备通过ICMP (互 联网控制消息协议)安全失败消息来报告给源端接设备。然而,现有 的ICMP安全失败消息有明显不足,即其报告给源端接设备的错误 类型的粒度较大(细节程度较低),大于IPSec协议族提供的安全访 问粒度。这样, 一旦隧道数据包发生错误,基于现有的错误报告方案, 目的端4妾i殳备返回ICMP安全失败消息后,源端接设备只能知道该隧 道数据包的粗略的错误类型,而不能精确定位其发生的错误。因此,需要一种优化的错误报告方案,使目的端接设备能够精确 地报告隧道数据包的错误,使得源端接设备对隧道数据包错误的定位 和i貪断更准确和方f更。发明内容本发明正是为了解决现有技术中的上述问题而提出的,根据IPsec 协议族提供的网络安全访问的最小粒度,将隧道数据包现有的6种较粗略的错误进行相应的细分,并通过错误指示消息(譬如,ICMP安 全失败消息)将该隧道数据包存在的细化错误与其上一级错误一起报 告给源隧道服务器。根据本发明的第 一 个方面,提供了 一种在通信网络的端接设备 (譬如,隧道服务器)中用于对基于IPSec协议族的数据包的错误进 行报告的方法,包括接收来自一个源端接设备的一个数据包;判断 所述数据包是否存在错误;如果所述数据包存在错误,则为其生成错 误指示消息,所述错误指示消息指示该数据包所存在的错误的各级错 误类型;发送所述错误指示消息给所述源端接设备。各级错误类型包 括一级错误类型和二级错误类型,其中,二级错误类型包括一级错误 类型所述一级错误类型各自的一个或多个子错误类型;根据本发明的第二个方面,提供了 一种在通信网络中用于对基于 IPSec协议族的隧道数据包的错误进行报告的端接设备(譬如,隧道 服务器),其中包括 一个接收装置,用于接收一个源端接设备经互 联网发来的一个数据包; 一个判断装置,用于判断所述数据包是否存 在错误; 一个生成装置,用于当所述数据包存在错误时,为其生成错 误指示消息,其指示该数据包所存在的错误的二级错误类型; 一个发 送装置,用于将所述错误指示消息发送给所述源端接设备.,各级错误 类型包括一级错误类型和二级错误类型,其中,二级错误类型包括一 级错误类型各自的一个或多个子错误类型;根据本发明的第三个方面,提供了 一种在通信网络的端接设备 (譬如,隧道服务器)中用于对基于IPSec协议族的错误指示消息进 行解析的方法,包括以下步骤接收来自一个远端端接设备的错误指 示消息,该错误指示消息用于指示由所述端接设备发到该远端端接设 备的 一 个数据包所存在的错误的各级错误类型;由所述错误指示〉'肖,包-中解析出该数据包所存在的各级错误类型;根据本发明的第四个方面,提供了 一种在通信网络中用于对基于 IPSec协议族的错误指示消息进行解析的端接设备(譬如,隧道服务
器), 一种在通信网络中用于对基于IPSec协议族的错误指示消息进 行解析的端接设备,包括 一个接收装置,用于接收来自一个远端端 接设备的错误指示消息、该错误指示消息用于指示由所述端接设备发 到该远端端接设备的 一 个数据包所存在的错误的各级错误类型; 一 个 解析装置,用于由所述错误指示消息中解析出该数据包所存在的各级 错误类型。采用本发明提供的端接设备及方法,可以实现对隧道数据包的错 误的细化报告,使源端接设备更精确地定位隧道数据包的错误类型, 有利于错误的诊断和消除。


下面结合附图对本发明进行详细描述图1为基于IPSec协议族的用于经由安全通信隧道进行安全通信 的网络结构图;图2为RFC2521标准中定义的1CMP安全失败消息的格式示意图;图3为根据本发明的一个具体实施方式
的在通信网络的隧道服 务器中用于对基于IPSec协议族的数据包的错误进行报告的方法流程 图;图4为根据本发明的一个具体实施方式
的在通信网络中用于对 基于IPsec协议族的数据包的错误进行报告的隧道服务器框图;图5为根据本发明的一个具体实施方式
的用于隧道数据包错误 的细化报告的ICMP安全失败消息的格式示意图;图6为根据本发明的一个具体实施方式
的在通信网络的隧道服 务器中用于对基于IPSec协议族的错误指示消息进行解析的方法流程 图;图7为4艮据本发明的一个具体实施方式
的在通信网络中用于对 基于1PSec协议族的错误指示消息进行解析的隧道服务器框图。
具体实施方式
本发明中,端接设备与主机的关系包括两种情形I. 端接设备独立于各个主机,作为隧道n务器工作在安全通信 隧道的两端,这时, 一个隧道服务器可以控制一个或多个主机的安全通信(如图1所示)II. 端接设备集成在主机上,作为其中的一个安全通信控制装置存在,这时,所述端接设备主要负责其所归属的主机的安全通信,根 据需要,对该主机发往网卡的IP数据包和经由网卡接收到的数据包 (尤其是隧道数据包)进行相关处理。图1为基于IPSec协议族的用于经安全通信隧道进行安全通信的 网络结构图。该网络包括两个隧道服务器1和2 (即对应前述情形I 的端接设备)、处于上述两个隧道服务器控制下的多个主机,为简明 起见,{又示出主机a和主4几b。主才几a和主才几b通过图中的两个隧道 服务器间的安全通信隧道在互联网环境下进行基于IPSec协议族的特 定安全通信。用于主机a和主才几b间的特定安全通信的安全通信隧道建立后, 主才几a和主一几b即可开始安全通信-主机a向主机b发出一个IP数据包,很明显,此数据包属于其 间的特定安全通信,需要基于IPSec协议族进行处理后以隧道数据包 形式穿越互联网;-主机a发出的IP数据包会首先到达图中的隧道服务器1,隧道 服务器1根据该IP数据包的"目的地址-源地址"对,可以判断出该 数据包属于主机a与主机b间的特定安全通信^于是,隧道服务器1 根据相应的安全联盟对该数据包进行加密、封装等操作,该IP数据 包便成为能够安全穿越互联网的隧道数据包,就该隧道数据包而言, 隧道服务器1即为其源端接设备;-因为目的主机即主机b处于隧道服务器2的控制之下,该隧道
数据包经由隧道月良务器1和隧道服务器2之间的属于主4几a和主机b 间特定安全通信的安全通信隧道到达隧道服务器2,就该隧道数据包 而言,隧道服务器2即为目的端接设备;基于本发明提供的技术方案,隧道服务器2在接收到来自隧道 服务器1的所述隧道数据包后,判断该数据包是否存在错误,并经由 该安全通信隧道将存在错误的隧道数据包的细化错误通过错误指示 消息(譬如,ICMP安全失败消息)报告给隧道服务器1.容易理解,对应于前述情形ll所述的端接设备,图1所示的隧道 服务器1和隧道服务器2将分别位于主机a和主机b中(其它需要进 行基于1Psec的安全通信的主机也会拥有各自的端接设备),用于控 制相应主机的安全通信,其中,对数据包的处理过程与情形I下的处 理过程相同,不再赘述。为简明起见,以下的描述也将主要针对情形 I来展开。区别于现有技术,本发明披露的隧道数据包错误报告方法对现有 的1CMP安全失败消息进行了改进,RFC2521标准中定义的用于报告 基于IPSec协议族的隧道数据包的错误的1CMP安全失败消息的格式 如图2所示。由图可见,原有ICMP安全失败消息包括6个域,分别是 -Type域,其值为40,用于表示该消息为ICMP安全失败消息; -Code域,表示相应隧道数据包的错误类型,前已述及,现有的 1CMP安全失败消息单纯利用Code域进行错误报告,错误的细化程度 低,粒度大。其中,该域各个取值对应的错误类型(即此后所述之一 级错误类型)分别为,0:错误的SPI (安全策略指示);1:验证失 败;2:解压缩失败;3:解密失败;4:需要验证;5:需要授权。很 明显,现有1CMP安全失败消息由目的端接设备到达源端接设备后, 源端接设备对隧道数据包的错误的定位仅能精确到上述6种类型的程 度;-Checksum域,ICMP安全失败消息的校验和;-Reserved域(保留字段),现有的ICMP安全失败消息中,该 域全部置为"0":-Pointer域,SPI在ICMP安全失败消息对应的隧道数据包的IP 头中的偏移位置,如果没有SPI,则要求将其置"0";该ICMP安全失败消息对应的隧道数据包的IP头和前64位有效 载荷。采用上述ICMP安全失败消息作为隧道数据包的错误指示消息, 影响了隧道数据包错误的报告粒度,源端接设备无法准确定位错误的 具体类型,不利于对相应问题的解决。图3为根据本发明的一个具体实施方式
的在通信网络的隧道服 务器中用于对基于IPSec协议族的数据包的错误进行报告的方法流程 图。下面参照图3并结合图1和图5对该方法进行描述,其中,图5 为根据本发明的 一 个具体实施方式
的用于隧道数据包错误的细化报 告的ICMP安全失败消息的格式示意图。该方法起始于步骤SI01:在步骤S101中,隧道服务器2接收来自隧道服务器1的用于主 机a与主机b间特定安全通信的隧道数据包,该隧道数据包可能存在 各种错误,进到步骤S102;在步骤S102中,对所述接收到的数据包进行检测,判断其是否 存在各种错误。以前述的Code域值为5对应的一级错误类型为例, 本发明为其定义以下6种子错误类型(从属于该一级错误类型的各个 二级错误类型),并用图5所示的ICMP安全失败消息中的Subcode 域(属于原ICMP安全失败消息的Reserved域)束表示。在本实施例 中,Subcode域为8个比特,而原ICMP安全失败消息的Reserved域 共有16个比特,因此,剩余的8个空闲比特可以考虑仍然置"0"。对应Code域值为5即一级错误类型为"需要授权"的情况, Subcode域的取值与其表示的意义的如下,0:系统未识別错误子类型;1:名字未经授权;2:数据敏感等级未经授权;3:传输层协议未经授权;
4:源端口未经授权; 5:目的端口未经授权。很容易理解,Subcode域取值为1-5时,对应一级错误类型"需 要授权"的5种子错误类型,隧道服务器1收到该ICMP安全失败消 息后,根据该消息精确地定位其在先发送给隧道服务器2的隧道数据 包的错误类型.特别地,本发明中为Subcode域定义一个为"0"的取值,是因 为在现有的RFC2521标准中,Reserved域的值为16比特的"0", 当隧道服务器2按照现有标准(即,不对数据包的二级错误类型进行 报告)报告隧道数据包的错误时,其发送给隧道服务器1的ICMP安 全失败消息中的Code域仍指示相应隧道数据包的一级错误类型,而 图5中所示的Subcode i或和Reserved域均为8比特"0",这样,该 ICMP安全失败消息格式就与基于现有RFC2521标准的消息格式相 同-实现了对现有标准的兼容。当该消息到达隧道服务器1后,隧道服务器1根据该消息能够得 到以下信息该ICMP安全失败消息对应的隧道数据包发生了 Code 域取值为5时对应的错误"需要认证",但具体的二级错误类型未 知。应当理解,本发明中,在ICMP安全失败消息中用于指示隧道数 据包所存在的错误的二级错误类型的字段不限于上述实施例中所述 的"Subcode"域,甚至可以不限于图2所示的现有标准中ICMP安 全失败消息中的"Reserved"域,在实际操作中可以根据需要来在ICMP 安全失败消息中选择合适的字段用于实现上述功能。具体地,对应于Code域为5的情况,作为目的端接设备的隧道 服务器2通过以下过程来确定如何为ICMP安全失败消息的Subcode 域赋值1. 如果隧道服务器2采用现有标准中的方案来报告隧道数据包 的错误类型,则根据RFC2521的定义,进到步骤S103中,为该出错 隧道数据包生成一个ICMP安全失败消息,其中,该消息的Subcode
域取值为0;II. 隧道服务器2对来自隧道服务器1的隧道数据包进行正确解 封裝之后,判断解封装后的IP数棍包的有放栽荷中的名字和SA中相 应的选择符是否匹配,如果不匹配,则进到步骤S103,在步骤S103 中为该数据包生成一个ICMP安全失败消息,其中,该消息的Subcode 域取值为1;其中,隧道数据包的封装协议有两种AH和ESP,对于基于AH 协议封装的隧道数据包,在解封装之前,该数据包的有效载荷是未经 加密的明文,解封装时只需要检查数据包的数据完整性而对于基于 ESP协议封装的隧道数据包,在解封装之前,数据包的有效载荷是加 密过的密文,因此需要在解封装后不仅要检查数据包的数据完整性, 还要解密数据包的有效载荷;III. 隧道服务器2对来自隧道服务器1的隧道数据包进行正确解 封装之后,判断IP数据包有效载荷中的数据敏感等级和SA中相应的 选择符是否匹配,如果不匹配则进到步骤S103,为该数据包生成一 个ICMP安全失败消息,其中,该消息的Subcode域取值为2;IV. 隧道服务器2对来自隧道服务器1的隧道数据包进行正确解 封装之后,判断IP数据包有效载荷中的传输层协议和SA中相应的选 择符是否匹配,如果不匹配则进到步骤S103,为该数据包生成一个 ICMP安全失败消息,其中,该消息的Subcode域取值为3;V. 隧道服务器2对来自隧道服务器1的隧道数据包进行正确解 封装之后,判断IP数据包有效载荷中的源端口和SA中相应的选择符 是否匹配,如果不匹配则进到步骤S103,为该数据包生成一个ICMP 安全失败消息,其中,该消息的Subcode域取值为4;VI. 隧道服务器2对来自隧道服务器1的隧道数据包进行正确解 封装之后,判断1P数据包有效载荷中的目的端口和SA中相应的选择 符是否匹配,如果不匹配则进到步骤S103,为该数据包生成一个1CMP 安全失败消息,其中,该消息的Subcode域取值为5,在步骤S103中为出错隧道数据包生成1CMP安全失败消息后,
进到步骤S104,在步骤S104中,隧道服务器2将该ICMP安全失败 消息发送给隧道服务器1,隧道服务器1根据该1CMP安全失败消息 的指示,可以得知其之前发送的隧道数据包的真体的错误类型。图4为根据本发明的一个具体实施方式
的在通信网络中用于对 基于IPSec协议族的数据包的错误进行报告的隧道服务器框图。下面 参照图4并结合图l和图5对其进行描述。图1中工作在目的端接设 备状态下的隧道服务器2包括一个接收装置101、一个判断装置102、 一个生成装置103和一A发送装置104。来自源端接设备(隧道服务器1)的用于主机a与主机b间特定 安全通信的隧道数据包到达后,由所述接收装置101负责接收,该隧 道数据包可能存在各种错误,于是,接收装置101将其接收到的隧道 数据包传递给所述判断装置102;判断装置102通过对由接收装置101接收到的隧道数据包进行检 测,判断其是否存在各种错误。以前述的Code域值为5 —级错误类 型为例,本发明为其定义以下6种子错误类型(从属于该一级错误类 型的二级错误类型),并用图5所示的ICMP安全失败消息中的 Subcode域(属于原ICMP安全失败消息的Reserved域)来表示。在 本实施例中,Subcode域为8个比特,而原ICMP安全失败消息的 Reserved域共有16个比特,因此,剩余的8个空闲比特可以考虑仍 然置"0"..对应Code域值为5即一级错误类型为"需要授权"的Subcode 域的取值与其表示的意义的对应关系如下,0:系统未识别错误子类 型;1:名字未经授权2:数据敏感等级未经授权;3:传输层协议 未经授权;4:源端口未经授权;5:目的端口未经授权,很容易理解,Subcode域取值为卜5时,对应一级错误类型"需 要授权"的5种子错误类型,隧道服务器1 (源端接设备)收到来自 隧道服务器2的该CMP安全失败消息后,可以精确地定位其在先发 送给隧道服务器2的隧道数据包的错误类型,.特别地,本发明中为Subcode域定义一个为"0"的取值,是因
为在现有的RFC252
标准中,Reserved域的值为16比特的"0", 当隧道服务器2按照现有标准(即,不对数据包的二级错误类型进行 报告)报告隧道数据包的错误时,由其中的发送裝置104发送给隧道 服务器1的ICMP安全失败消息中的Code域仍指示相应隧道数据包 的一级错误类型,而图5中所示的Subcode域和Reserved域均为8 比特"0",这样,该ICMP安全失败消息格式就与基于现有RFC2521 标准的消息格式相同,实现了对现有标准的兼容。当该消息到达隧道服务器1后,隧道服务器1根据该消息能够得 到以下信息该ICMP安全失败消息对应的隧道数据包发生了 Code 域取值为5时对应的错误"需要认证",但具体的二级错误类型未 知,应当理解,本发明中,在ICMP安全失败消息中用于指示隧道数 据包所存在的错误的二级错误类型的字段不限于上述实施例中所述 的"Subcode"域,甚至可以不限于图2所示的现有标准中ICMP安 全失败消息中的"Reserved"域,在实际操作中可以根据需要来在ICMP 安全失败消息中选择合适的字段用于实现上述功能,'具体地,对应于Code域为5的情况,作为目的端接设备的隧道 服务器2通过以下过程来确定如何为ICMP安全失败消息的Subcode 域赋值I. 如果隧道服务器2采用现有标准中的方案来报告隧道数据包的 错误类型,则根据RFC2521的定义,由该生成装置103为该出错隧 道数据包生成一个ICMP安全失败消息,其中,该消息的Subcode域 取值为0, Code域取值为5 (下同,Code域取值情况不再赘述);II. 隧道服务器2对来自隧道服务器1的隧道数据包进行正确解 封装之后,判断装置102需要判断解封装后的IP数据包的有效载荷 中的名字和SA中相应的选择符是否匹配,如果不匹配,则由所述生 成装置
03为该出错隧道数据包生成一个ICMP安全失败消息,其中, 该消息的Subcode域取值为1;其中,隧道数据包的封装协议有两种AH和ESP,对于基于AH 协议封装的隧道数据包,在解封装之前,该数据包的有效载荷是未经 加密的明文,解封装时只需要^:查ft据包的数据完整性;而对于基于 ESP协议封装的隧道数据包,在解封装之前,数据包的有效载荷是加 密过的密文,因此需要在解封装后不仅要检查数据包的数据完整性, 还要解密数据包的有效栽荷;m. 隧道服务器2对来自隧道服务器1的隧道数据包进行正确解 封装之后,判断装置102需要判断IP数据包有效栽荷中的数据敏感 等级和SA中相应的选择符是否匹配,如果不匹配,则由该生成装置 103为该出错隧道数据包生成一个ICMP安全失败消息,其中,该消 息的Subcode域取值为2;IV. 隧道服务器2对来自隧道服务器1的隧道数据包进行正确解 封装之后,判断IP数据包有效载荷中的传输层协议和SA中相应的选 择符是否匹配,如果不匹配,则由该生成装置103为该出错隧道数据 包生成一个ICMP安全失败消息,其中,该消息的Subcode域取值为 3;V. 隧道服务器2对来自隧道服务器1的隧道数据包进行正确解 封装之后,判断IP数据包有效载荷中的源端口和SA中相应的选择符 是否匹配,如果不匹配,则由该生成装置103为该出错隧道数据包生 成一个1CMP安全失败消息,其中,该消息的Subcode域取值为4;VI. 隧道服务器2对来自隧道服务器1的隧道数据包进行正确解 封装之后,判断IP数据包有效载荷中的目的端口和SA中相应的选择 符是否匹配,如果不匹配,则由该生成装置03为该数据包生成一个 ICMP安全失败消息,其中,该消息的Subcode域取值为5。生成装置103为出错隧道数据包生成ICMP安全失败消息后,将 该消息传递给该发送装置104,并由发送装置104将该ICMP安全失 败消息发送给隧道服务器1,隧道服务器1根据该1CMP安全失败消 息的指示,可以得知其之前发送的隧道数据包的具体的^"误类型。为使作为目的端接设备的隧道服务器2根据接收到的上述隧道服 务器1发出的错误指示消息(如,ICMP安全失败消息)能够正确定 位相应出错隧道数据包的各级错误类型,本发明提供了一种在通信网 络的隧道服务器中用于对基于IPSec协议族的错误指示消息进行解析 的方法。图6为根据本发明的一个具体实施方式
的在通信网络的隧道服务 器中用于对基于IPSec协议族的错误指示消息进行解析的方法流程 图,下面参照图6并结合图1和图5对该方法进行详述,该方法起始 于步骤S201:在步骤S201中,隧道服务器1接收隧道服务器2经由安全通信 隧道发来的错误指示消息(譬如,ICMP安全失败消息),不失一般性, 假设该ICMP安全失败消息的Code域值为5, Subcode域值为1。接 收到该ICMP安全失败消息后,进到步骤S202;在步骤S202中,隧道服务器1从指示相应出错隧道数据包的各 级错误类型的错误指示消息中获取表示各级错误类型的错误信息,具 体地,在本实施例中,隧道服务器1从来自隧道服务器2的ICMP安 全失败消息的Code域和Subcode域中分别获fi到表示一级^"误类型 的错误信息"5"以及表示二级错误类型的错误信息"1",此后,进 到步骤S203;在步骤S203中,隧道服务器1通过将步骤S202中获取的错误信 息与本地保存的错误列表(包含错误信息与具体错误类型的映射关 系)进行比较以判断出该出错隧道数据包存在的各级错误类型,具体 地,可采用如下方式-将从Code域获取的"5"与该错误列表中的Code域部分进行 比较,可以判断出该出错隧道数据包存在的错误的 一 级错误类型为 "需要授权";-将从Subcode域获取的T与该错误列表中的Subcode域部分进行比较(可以结合上述从Code域获取的错误信息"5"),可以判断 出具体二级错误类型为"解封装后的IP数据包有效载荷中的名字与SA中相应的选择符不匹配"。图7为根据本发明的 一个具体实施方式
的在通信网络中用于对基于 IPSec协议族的错误指示消息进行解析的隧道服务器框图。下面参照 图7并结合图1和图5对该隧道服务器(如,图1所示的隧道服务器 1 )进行描述,其具体包括一个接收装置201和一个解析装置202,该 解析装置202包括一个获取装置2021和一个判断装置2022。当来自隧道服务器2的错误指示消息(譬如,ICMP安全失败消 息)经安全通信隧道到达隧道服务器1后,由该接收装置201负责接 收,不失一般性,假设该ICMP安全失败消息的Code域值为5, Subcode 域值为1。接收到该ICMP安全失败消息后,将其传递给该获取装置 2021;接着,由获取装置2021从措示出错隧道数据包的各级错误类型 的错误指示消息中获取表示各级错误类型的错误信息,具体地,在本 实施例中,隧道服务器1从来自隧道服务器2的ICMP安全失败消息 的Code域和Subcode域中分别获取到表示一级错误类型的错误信息 "5"以及表示二级错误类型的错误信息"1",此后将其获取到的错 误信息传递给该判断装置2022;判断装置2022通过将由该获取装置2021获取的错误信息与本地 保存的错误列表(包含错误信息与具体错误类型的映射关系)进行比 较以判断出该出错隧道数据包存在的各级错误类型,为保存该错误列 表,隧道服务器中可能还需要配置一个存储装置,为简明起见未在图 中示出。具体地,可采用如下方式-判断装置2022将从Code域获取的"5"与该错误列表中的Code域部分进行比较,可以判断出该出错隧道数据包存在的错误的一 级错误类型为"需要授权";-判断装置2022将从Subcode域获取的T与该错误列表中的 Subcode域部分进行比较(可以结合上述从Code域获取的错误信息 "5"),可以判断出具体二级错误类型为"解封装后的IP数据包有效 载荷中的名字与SA中相应的选择符不匹配"。至此,采用本发明提供的技术方案,实现了对出错隧道数据包的 错误类型的细化报告,便于源隧道数据包对该隧道数据包的错误进行4青确定位,以4更4非除。应当理解,隧道服务器1与隧道服务器2之间是相互对称的,当 隧道服务器2控制下的主机b需要经由隧道服务器1与隧道服务器2 之间的安全通信隧道向主机a发送属于其间安全通信的IP数据包时, 隧道服务器2就成为了源端接设备,隧道服务器1则成为了目的端接 设备,需要判断隧道数据包是否出错并为出错隧道数据包生成错误指 示消息,报告给隧道服务器2,即 一个端接设备应该同时具备发送 ICMP安全失败消息和解析该消息的功能。以上主要针对出错隧道数据包的一级错误类型为"需要授权"的 情形对本发明的具体实施例进行了描述,对于其它一级错误类型,可 以不予细化,或者根据实际操作中的技术需要进行相应的细化。需要 理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可 以在所附权利要求的范围内做出各种变形或修改。
权利要求
1.一种在通信网络的端接设备中用于对基于IPsec协议族的数据包的错误进行报告的方法,包括a.接收来自一个源端接设备的一个数据包;b.判断所述数据包是否存在错误;c.如果所述数据包存在错误,则为其生成错误指示消息,所述错误指示消息指示该数据包所存在的错误的各级错误类型;d.发送所述错误指示消息给所述源端接设备。
2. 根据权利要求1所述的方法,其特征在于,所述各级错误类 型包括一级错误类型和二级错误类型,其中,所述一级错误类型包括,错误的SPI、验证失败、解压缩失败、 解密失败、需要验证、需要授权;所述二级错误类型包括,所述一级错误类型各自的一个或多个 子错误类型。
3. 根据权利要求1或2所迷的方法,其特征在于,所述错误指 示消息为ICMP安全失败消息。
4. 根据权利要求3所述的方法,其特征在于,所述步骤c还包括所述数据包存在的错误的二级错误类型由1CMP安全失败消息 的保留字段的 一部分或全部来指示。
5. —种在通信网络中用于对基于IPsec协议族的隧道数据包的 错误进行报告的端接设备,包括接收装置,用于接收一个源端接设备经互联网发来的一个数据包判断装置,用于判断所述数据包是否存在错误; 生成装置,用于当所述数据包存在错误时,为其生成错误指示 消息,其指示该数据包所存在的错误的二级错误类型 发送装置,用于将所述错误指示消息发送给所述源端接设备。
6. 根据权利要求5所述的端接设备,其特征在于,所述各级错 误类型包括一级错误类型和二级错误类型,其中,所述一级错误类型包括,错误的SPI、验证失败、解压缩失敗、 解密失败、需要验证、需要授权;所述二级错误类型包括,所述一级错误类型各自的一个或多个 子错误类型。
7. 根据权利要求5或6所述的端接设备,其特征在于,所迷 错误指示消息为ICMP安全失败消息。
8. 根据权利要求7所述的端接设备,其特征在于,所述数据包 存在的错误的二级错误类型由ICMP安全失败消息的保留字段的 一部 分或全部来指示。
9. 一种在通信网络的端接设备中用于对基于1Psec协议族的错 误指示消息进行解析的方法,包括d. 接收来自一个远端端接设备的错误指示消息,该错误指示消 息用于指示由所迷端接设备发到该远端端接设备的 一 个数据包所存 在的错误的各级错误类型;e. 由所迷错误指示消息中解析出该数据包所存在的各级错误类型。
10. 根据权利要求9所述的方法,其特征在于,所述步骤e还包 括以下步骤-由所述错误指示消息中获取用于表示各级错误类型的错误信息;-通过将所述错误信息与本地保存的错误列表进行比较以判断 出所述数据包存在的各级错误类型。
11. 根据权利要求9或IO所述的方法,其特征在于,所述错误 指示消息为ICMP安全失败消息。
12. —种在通信网络中用于对基于1Psec协议族的错误指示消息 进行解析的端接设备,包括 接收装置,用于接收来自 一个远端端接设备的错误指示消息, 该错误指示消息用于指示由所述端接设备发到该远端端接设备的一个数据包所存在的错误的各级错误类型;解析装置,用于由所述错误指示消息中解析出该数据包所存在 的各级错误类型。
13. 根据权利要求12所述的端接设备,其特征在于,所述解析 装置还包括获取装置,用于由所述错误指示消息中获取用于表示各级错误 类型的错误信息;判断装置,用于通过将所述错误信息与本地保存的错误列表进 行比较以判断出所述数据包存在的各级错误类型
14. 根据权利要求〗2或13所述的端接设备,其特征在于,所述 错误指示消息为ICMP安全失败消息。
全文摘要
本发明提供了一种在通信网络中用于对基于IPsec协议族的数据包的错误进行报告和相应解析的端接设备及其方法。具体地,将ICMP安全失败消息的保留字段用于表示出错隧道数据包的二级错误类型。采用本发明的技术方案,可以实现对出错隧道数据包的错误类型的细化报告,在源端接设备端实现对该数据包所存在的错误的精确定位,便于对错误的排除。
文档编号H04L12/46GK101115055SQ20061002931
公开日2008年1月30日 申请日期2006年7月24日 优先权日2006年7月24日
发明者宾梵翔, 张青山, 温海波, 鄢仁祥, 马松伟 申请人:上海贝尔阿尔卡特股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1