首页> 中国专利> NAT-PT网关中PAT模式下ICMP差错报文的转换方法

NAT-PT网关中PAT模式下ICMP差错报文的转换方法

摘要

本发明涉及一种NAT-PT(网间地址转换协议)网关中PAT(基于端口号的地址转换)模式下ICMP(网间控制报文协议)差错报文的转换方法。该方法中,在PAT模式下,NAT-PT网关收到IPv4网络发来的ICMP差错报文时,需要根据所述报文的内部报头的地址及端口信息进行ICMP差错报文的地址转换处理。因此,本发明对于IPv4网络与IPv6网络互通时采用PAT方式进行地址转换处理的情况,可以保证由IPv4网络返回的ICMP差错报文正确地返回到IPv6网络中的源节点,从而实现了在IPv4网络与IPv6网络互通的过程中可以对出现的差错的控制处理,提高了网络的性能。

著录项

  • 公开/公告号CN1691664A

    专利类型发明专利

  • 公开/公告日2005-11-02

    原文格式PDF

  • 申请/专利权人 华为技术有限公司;

    申请/专利号CN200410037011.3

  • 发明设计人 梁铷;凯沙瓦克;

    申请日2004-04-21

  • 分类号H04L29/06;

  • 代理机构

  • 代理人

  • 地址 518129 广东省深圳市龙岗区坂田华为总部科研中心F1-18楼知识产权部

  • 入库时间 2023-12-17 16:42:25

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2009-05-20

    授权

    授权

  • 2006-07-19

    实质审查的生效

    实质审查的生效

  • 2005-11-02

    公开

    公开

说明书

技术领域

本发明涉及网络通信技术领域,尤其涉及一种NAT-PT(网间地址转换协议)中PAT(基于端口号的地址转换)模式下ICMP(网间控制报文协议)差错报文的转换方法。

背景技术

目前数据网络中以IPv4(互联网协议第四版)技术为主导,随着网络规模的扩大,IPv6(互联网协议第六版)技术以其庞大的地址空间等优势将逐渐取代目前的IPv4技术。然而,这种彻底的取代需要长期的过程。在这个长期的由IPv4技术向IPv6技术演进的过程中,为了共享网络资源,必须要解决IPv4网络和IPv6网络互通的问题,也就是使IPv6网络中的节点与IPv4网络中的节点可以互访,反之亦然。NAT-PT技术提供了一种主要的解决方案,该协议规范由RFC2766(RFC,请求注解)定义。

NAT-PT网关便是在IPv6网络和IPv4网络之间设置的基于NAT-PT实现的网关设备。在IPv6网络节点与IPv4网络节点相互通信时,NAT-PT网关将往来的IPv6报文和IPv4报文进行相互转换,以适应对端的IP(互联网协议)类型。所述的转换通常包括IP地址的转换以及协议的转换,例如,进行IPv4报文头和IPv6报文头的协议转换。

所述的转换的处理过程如图1所示,在报文转换过程中,需要用可标识的IPv4地址替换IPv6地址的问题,方法是从IPv4地址池中分配临时的IPv4地址来映射IPv6地址。对于用IPv6地址替换IPv4地址的问题,方式是分配专门的IPv6前缀,称为NAT-PT前缀,用前缀+IPv4地址构成新的IPv6地址来映射原来的IPv4地址。

下面以一个实例描述NAT-PT的转换处理过程:

从I Pv6网络中的节点发向IPv4网络中的节点的IPv6报文到达NAT-PT网关,首先进行IP地址转换,然后进行协议转换,具体包括:

将IPv6报文头被转换成IPv4报文头;

传输层报头经过校验和调整或端口转换后成为IPv4报文的传输层报头;

报文数据正文中的应用层协议报文在经过应用层ALG的处理后(即如果包含IP地址,可能需要IP地址转换),成为IPv4的报文数据正文。

从IPv4节点发向IPv6节点的IPv4报文到达NAT-PT网关,首先进行IPv4地址到I Pv6地址的转换,然后进行协议转换,具体包括:

IPv4报文头被转换成IPv6报文头;

IPv4报文中的传输层报头经过校验和调整或端口转换后成为IPv6报文的传输层报头;

报文数据正文中的应用层协议报文在经过应用层ALG的处理后(即如果包含IP地址,可能需要IP地址转换),成为IPv6的报文数据正文。

报文协议转换的具体细节,NAT-PT协议要求遵循SIIT(报头转换协议)协议规范。

在NAT-PT报文协议转换过程中,存在以下情况,如图2所示,IPv6网络中的源节点发送原始报文到IPv4网络中的目的节点,经过NAT-PT网关时被转换为IPv4报文,该IPv4报文到达IPv4网络的中间节点时,发生错误(如目的地不可达等),由该中间节点产生ICMPv4(基于IPv4的ICMP)差错报文发回给IPv6源节点,ICMPv4差错报文中包含出错IPv4报文(即NAT-PT网关转换后的IPv4原始报文)。ICMPv4差错报文的IPv4报文头称为外部IP报文头,而后面包含的IPv4原始报文中的IPv4报文头称为内部IP报文头。

当ICMPv4差错报文返回到NAT-PT网关时,需要转换成IPv6的协议类型的ICMPv6差错报文。要求外部IPv4报文头,ICMPv4报头,以及内部IPv4报文头和传输层都需要转换为相应的IPv6协议类型。

对于外部IPv4报文头和内部IPv4报文头的转换,均需要根据IPv4到IPv6地址的映射关系,进行源地址和目的地址的转换。但是对于NAT-PT的节省IPv4地址的PAT地址转换方式,因为需要根据地址+传输层的端口号进行转换,导致地址对所述的ICMP差错报文无法进行转换处理。在IPv6原始报文通过NAT-PT网关时,进行PAT地址转换,将IPv6源地址+IPv6源端口转换为IPv4源地址+I Pv4源端口(假设为ADDR4+PORT4)。当中间节点产生的ICMPv4差错报文返回经过NAT-PT网关时,对于IPv4报头需要根据IPv4目的地址+IPv4目的端口(此时为ADDR4+PORT4),确定需要转换的IPv6目的地址。但对于外部I Pv4报头,由于传输层已不是原始报文的传输层,而是ICMPv4报头,所以没有所需的目的端口信息,也就无法确定应该转换的IPv6目的地址,因此,所述的ICMP差错报文无法返回到I Pv6网络中的源节点。这样,便无法保证在IPv4网络与IPv6网络互通的过程中对差错的控制处理。

发明内容

本发明的目的是提供一种NAT-PT网关中PAT模式下ICMP差错报文的转换方法,从而实现了在IPv4网络与IPv6网络互通的过程中可以对出现的差错进行控制处理。

本发明的目的是通过以下技术方案实现的:

本发明提供了一种NAT-PT网关中PAT模式下ICMP差错报文的转换方法,该方法为:在PAT(基于端口的地址转换)模式下,NAT-PT(网间协议转换协议)网关收到IPv4网络发来的ICMP(网间控制协议)差错报文时,根据所述报文的内部报头的地址及端口信息进行ICMP差错报文的地址转换处理。

所述的NAT-PT网关中PAT模式下ICMP差错报文的转换方法进一步包括:

A、NAT-PT网关获取IPv4网络发来的ICMP差错报文的内部报头的IPv4地址信息及相应的端口信息;

B、根据所述的IPv4地址信息及相应的端口信息查找确定与其对应的IPv6地址信息及相应的端口信息;

C、利用确定的IPv6地址信息及相应的端口信息进行ICMP差错报文的转换。

本发明中,执行所述的步骤A之前还包括:

IPv6网络中的源节点向IPv4网络中的目的节点发送报文;

当所述的报文经过NAT-PT网关时,在NAT-PT网关保存IPv6源地址和IPv6源端口与IPv4源地址和IPv4源端口的对应关系。

所述的步骤A包括:

在NAT-PT网关,根据收到IPv4网络返回报文承载的信息确定为所述的ICMP差错报文,获取ICMP差错报文的内部报头的IPv4地址信息及相应的端口信息。

所述的步骤C包括:

将确定的IPv6地址信息作为发送给IPv6网络中的源节点的ICMP差错报文外部报头的目的地址,将确定的IPv6地址信息及相应的端口信息作为发送给IPv6网络中的源节点的ICMP差错报文的内部报头的源地址及源端口信息。

所述的ICMP差错报文为IPv4网络中的中间节点产生的ICMP差错报文,所述的中间节点为目的地址为IPv4网络中的节点的报文在IPv4网络中到达目的节点前经过的节点。

所述的NAT-PT网关中PAT模式下ICMP差错报文的转换方法还包括:

D、NAT-PT网关收到IPv6网络发来的ICMP差错报文时,根据所述报文的外部报头或内部报头的地址信息进行ICMP差错报文的地址转换处理。

所述的步骤D包括:

D1、NAT-PT网关收到IPv6网络发来的ICMP差错报文;

D2、从所述的ICMP差错报文中获取外部报头的地址信息,并根据获取的外部报头的地址信息确定地址转换处理需要的地址信息;

D3、根据确定的地址转换处理需要的地址信息进行所述的ICMP差错报文的转换处理。

所述的步骤D3包括:

根据确定的地址转换处理需要的地址信息进一步确定外部IPv6报文头、ICMPv6(基于IPv6的ICMP)报文头及内部IPv6报文头的地址信息及内部传输层的端口信息;

根据所述的进一步确定的地址信息和端口信息进行需要发送给IPv4网络的ICMP差错报文的转换处理。

由上述本发明提供的技术方案可以看出,本发明提供了一种在NAT-PT网关上对收到的ICMP差错报文的转换处理方法,便于对网络中出现的差错进行控制处理。而且,对于IPv4网络与IPv6网络互通时采用PAT方式进行地址转换处理的情况,本发明是通过提取经过NAT-PT网关上的I Pv4网络返回的ICMP差错报文的内部报头的地址信息及传输层端口信息进行差错报文的转换处理,保证了由IPv4网络返回到NAT-PT网关的ICMP差错报文可以正确地返回到IPv6网络中的源节点,从而实现了在IPv4网络与IPv6网络互通的过程中可以对出现的差错的控制处理,提高了网络的性能。

附图说明

图1为IPv4网络与IPv6网络互通的组网结构示意图;

图2为IPv4网络与IPv6网络互通时报文的转换过程示意图;

图3为IPv6网络与IPv4网络互通时产生差错报文的转换过程示意图;

图4为本发明所述的方法的流程图。

具体实施方式

在IPv4网络与IPv6网络互通的过程中,两网络需要经过NAT-PT网关进行报文的转换,从而保证两网的互通。同时,在IP网络中,当报文在传输过程出现错误时,则在出现错误的节点将产生ICMP差错报文,报文中承载着原始报文的信息及生成的ICMP差错报文的报头信息,所述的ICMP差错报文需要返回给发送原始报文的源节点,因此,在两网络进行报文交互的过程中,可能发生的以下两种情况:

第一,IPv4网络发向IPv6网络的报文经过NAT-PT网关进入IPv6网络后,在中间节点发生错误,此时,中间节点将向NAT-PT返回相应的ICMP错误报文,该报文返回到NAT-PT网关后,再经过相应的转换处理发送给IPv4网络中发送原始报文的源节点;

第二,IPv6网络发向IPv4网络的报文经过NAT-PT网关进入IPv4网络后,在中间节点发生错误,此时,中间节点将向NAT-PT网关返回相应的ICMP错误报文,该报文返回到NAT-PT网关后,再经过相应的转换处理发送给IPv6网络中发送原始报文的源节点。

对于以上两种情况中的第一种情况:当NAT-PT网关收到所述的ICMP差错报文后,获取报文的目的IPv6地址信息,根据所述的IPv6地址的映射关系,将其替换为相应的IPv4地址即可,对于差错报文的内部报头,则同样根据NAT-PT网关保存的地址映射关系进行转换,即获取内部报头的地址信息及端口信息,根据保存的地址映射关系查找与其对应的IPv4地址及端口信息,并进行相应的转换处理即可。所述的传输层可以是TCP(传输控制协议)或者UDP(数据报协议)。

而对于上述第二种情况:在基于PAT模式下,所述的差错报文的外部目的地址(IPv4地址),由于同一IPv4地址可以与多个IPv6地址形成映射关系,所以如果仍按照第一种情况采用的方法将无法找到确定的IPv6地址替换该IPv4地址;同时,因为所述的差错报文的外部传输层端口信息已经不是原始报文的传输层端口信息,所以无法根据差错报文的外部报头进行相应的转换处理;为此,本发明采用了根据差错报文内部报头的地址及传输层端口信息进行地址转换的解决方法。

下面对由IPv6网络发向IPv4网络的报文在IPv4网络中的中间节点处发生错误时,本发明提供的根据差错报文内部报头的地址及传输层端口信息进行地址转换的解决方法做进一步说明,本发明中,对于由IPv6网络到IPv4网络的原始报文转换采用PAT方式,因此,本发明具体的实现方式参见图3和图4,包括以下步骤:

步骤41:IPv6网络中的源节点发送报文6packet到IPv4网络中的目的节点,报文6packet源地址和源端口分别为6SourceAddr和6SourcePort,分别为IPv6的源地址和源端口。

步骤42:由IPv6网络发向IPv4网络的报文经过NAT-PT网关时,生成并记录IPv6源地址+IPv6源端口到IPv4源地址+IPv4源端口的转换关系;

所述的报文6packet经过NAT-PT网关时需要被转换为IPv4报文4packet,如果地址转换采用PAT模式实现,则假设转换后的IPv4源地址和源端口分别为4SourceAddr和4SourcePort,此时,在NAT-PT网关中保留地址映射关系为:6SourceAddr+6SourcePort<----->4SourceAddr+4SourcePort,为节省IPv4地址资源,通常一个IPv4地址通过与不同的端口号配合可以与多个不同的IPv6地址建立对应关系;

也就是说,在该步骤中,由IPv6网络发向IPv4网络的报文经过NAT-PT网关时,需要为所述的报文的源IPv6地址及端口号分配空闲的IPv4地址及空闲的IPv4端口号,并记录该源IPv6地址及端口号与分配的空闲的IPv4地址及空闲的IPv4端口号的映射关系,从而保证对所述的源节点发送的报文进行相应的地址转换处理,且对于返回的报文可以正确地返回IPv6网络中的源节点。

步骤43:所述的经过转换的IPv4报文4packet由NAT-PT网关发往IPv4目的节点,在经过IPv4网络的中间节点时产生错误,生成ICMPv4(基于IPv4的ICMP)差错报文4IcmpErrorPacket,报文4IcmpErrorPacket中包含出错报文4packet(即原始报文)的I P报文头以及传输层信息,由于所述的报文4IcmpErrorPacket需要发回给出错的原始报文的源节点,因此报文4IcmpErrorPacket的目的地址被设为4SourceAddr,使所述的报文将先返回到NAT-PT网关。

步骤44:当NAT-PT网关接收到IPv4网络返回的ICMP差错报文后,为进行相应的地址转换,则需要从所述的差错报文的内部IPv4报头以及传输层中提取IPv4源地址+IPv4源端口信息;

即根据目的地址4SourceAddr,报文4IcmpErrorPacket被发送到NAT-PT网关,NAT-PT网关需要将报文4IcmpErrorPacket转换成相应的IPv6ICMP差错报文6IcmpErrorPacket,以便发送给IPv6源节点,为了将收到的报文4IcmpErrorPacket转换为IPv6ICMP差错报文6IcmpErrorPacket,必须确定6IcmpErrorPacket的IPv6目的地址,该地址实际上应该为IPv6源节点的地址,即6SourceAddr;

由于报文4IcmpErrorPacket中包含出错报文4packet的IP报文头以及传输层信息,因此从中便可以得到被NAT-PT网关转换过的IPv4源地址4SourceAddr和源端口4SourcePort。

步骤45:通过提取的IPv4源地址及IPv4源端口信息,查找保存记录的转换关系,从而确定所需要转换的IPv6源地址+IPv6源端口;

具体为:使用4SourceAddr+4SourcePort关键字,通过NAT-PT网关保留的地址映射关系:6SourceAddr+6SourcePort<----->4SourceAddr+4SourcePort,反向查找到对应的IPv6地址6SourceAddr和IPv6端口6SourcePort。

步骤46:使用查找确定的IPv6源地址,作为外部IPv4报头中IPv4目的地址所要转换的I Pv6目的地址,即将6SourceAddr作为转换后的IPv6ICMP差错报文6IcmpErrorPacket的IPv6目的地址;

同时使用查找确定的IPv6源地址+IPv6源端口,对内部IPv4报文进行转换,即将内部IPv4报文头的IPv4源地址及IPv4源端口信息4SourceAddr+4SourcePort转换为查找确定的IPv6源地址+IPv6源端口6SourceAddr+6SourcePort。

步骤47:将转换完成的IPv6 ICMP差错报文6IcmpErrorPacket发送到IPv6网络中的源节点。

本发明中,对于由IPv6网络返回到NAT-PT网关的ICMP差错报文,则既可以根据所述报文的外部报头的地址信息进行转换处理,也可以根据所述报文的内部报头的地址信息进行转换处理。

由上述本发明的描述可以看出,本发明可以有效地对PAT模式下IPv4网络和IPv6网络互通时对所出现的差错进行控制处理,无论是基于由IPv4网络发往IPv6网络的报文产生的差错报文,还是基于由IPv6网络发往IPv4网络的报文产生的差错报文,均可以利用内部报头中的信息以及NAT-PT网关中保存的相应的地址映射关系进行相应的转换处理,并将所述的差错报文返回至相应的源节点,实现对出现的差错的控制处理。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号