CN117440057A - 报文转发方法、系统、网络设备、存储介质及程序产品 - Google Patents

报文转发方法、系统、网络设备、存储介质及程序产品 Download PDF

Info

Publication number
CN117440057A
CN117440057A CN202210818034.6A CN202210818034A CN117440057A CN 117440057 A CN117440057 A CN 117440057A CN 202210818034 A CN202210818034 A CN 202210818034A CN 117440057 A CN117440057 A CN 117440057A
Authority
CN
China
Prior art keywords
message
forwarding node
ipv6
control message
forwarding
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.)
Pending
Application number
CN202210818034.6A
Other languages
English (en)
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202210818034.6A priority Critical patent/CN117440057A/zh
Priority to PCT/CN2023/089293 priority patent/WO2024011982A1/zh
Publication of CN117440057A publication Critical patent/CN117440057A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/251Translation of Internet protocol [IP] addresses between different IP versions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/08Protocols for interworking; Protocol conversion

Abstract

公开了一种报文转发方法、系统、网络设备、存储介质及程序产品,属于通信技术领域。在该方法中,当IPv6网络的边缘节点第一转发节点接收来自同一IPv6网络中第二转发节点的第一控制消息时,基于第一控制消息生成第二控制消息,且第二控制消息为IPv4报文,以向IPv4网络中的第三转发节点发送第二控制消息。并在第二转发节点不具备IPv4地址时,对第二控制消息进行了扩展,以在第二控制消息中携带第二转发节点的IPv6地址。因此,通过本申请实施例提供的方法,IPv6网络中的中间节点在不具备IPv4地址时能够成功实现向IPv4网络中的转发节点通告报文转发情况。

Description

报文转发方法、系统、网络设备、存储介质及程序产品
技术领域
本申请实施例涉及通信技术领域,特别涉及一种报文转发方法、系统、网络设备、存储介质及程序产品。
背景技术
随着网络技术的发展,第六代网络协议(Internet Protocol version 6,IPv6)网络逐渐取代IPv4网络。其中,IPv6网络包括IPv6专用(only)网络,IPv6专用网络中除边缘节点外的中间节点仅仅配置有IPv6地址,并没有配置IPv4地址。这种场景下,如果IPv6专用网络中的中间节点接收到来自IPv4网络中的转发节点发送的报文,且确定当前不能继续转发该报文,IPv6专用网络中的中间节点需要向IPv4网络中的转发节点通告该报文的转发情况。
发明内容
本申请实施例提供了一种报文转发方法、系统、网络设备、存储介质及程序产品,可以实现IPv6专用网络中的中间节点向IPv4网络中的转发节点通告报文转发情况。所述技术方案如下:
第一方面,提供了一种报文转发方法,该方法应用于报文转发系统,该报文转发系统包括第一转发节点、第二转发节点和第三转发节点,第一转发节点为IPv6网络的边缘节点,第二转发节点位于IPv6网络,第三转发节点位于IPv4网络。
在该方法中,第一转发节点接收第三转发节点发送的第一报文,第一报文为IPv4报文。第一转发节点基于第一报文生成第二报文,并向第二转发节点发送第二报文,第二报文为IPv6报文。第一转发节点接收第二转发节点发送的第一控制消息,第一控制消息为IPv6报文,第一控制消息用于通告第二转发节点转发第二报文的情况。当第一转发节点确定第二转发节点不具备IPv4地址时,基于第一控制消息生成第二控制消息,并向第三转发节点发送第二控制消息,第二控制消息为IPv4报文,且第二控制报文携带第二转发节点的IPv6地址。
在本申请实施例中,当IPv6网络的边缘节点第一转发节点接收到来自同一IPv6网络中的第二转发节点的第一控制消息时,由于第一控制消息用于通告第二转发节点转发第二报文的情况,而第二报文是基于来自IPv4网络的第一报文生成的,因此第一转发节点在接收到第一控制消息时,需要向第一报文的发送方(IPv4网络中的第三转发节点)通告该报文转发情况。基于此,第一转发节点在接收到第一控制消息时,第一转发节点基于第一控制消息生成第二控制消息,且第二控制消息为IPv4报文,以向IPv4网络中的第三转发节点发送第二控制消息。并且在第二转发节点不具备IPv4地址时,为了能够实现成功向IPv4网络中第三转发节点通告IPv6网络中第二转发节点转发报文的情况,本申请实施例对第二控制消息进行了扩展,以在第二控制消息中携带第二转发节点的IPv6地址。因此,通过本申请实施例提供的方法,IPv6网络中的中间节点在不具备IPv4地址时能够成功实现向IPv4网络中的转发节点通告报文转发情况。
基于第一方面提供的方法,在一种可能的实现方式中,第一控制消息携带IPv6专用网络标识,IPv6专用网络标识指示IPv6网络中的中间节点没有配置IPv4地址。这种场景下,第一转发节点确定第二转发节点不具备IPv4地址的实现过程为:第一转发节点解析第一控制消息,得到IPv6专用网络标识;第一转发节点基于IPv6专用网络标识确定第二转发节点不具备IPv4地址。
如果第二转发节点所在的IPv6网络为IPv6专用网络,则第二转发节点上没有配置IPv4地址。这种场景下,为了触发第一转发节点采用本申请实施例提供的方法向第三转发节点通告第二转发节点转发第二报文的情况,第二转发节点可以在第一控制消息中携带IPv6网络的IPv6专用网络标识,以便于第一转发节点基于该IPv6专用网络标识确定出第二转发节点不具备IPv4地址,进而采用本申请实施例提供的方法向第三转发节点通告第二转发节点转发第二报文的情况。
基于第一方面提供的方法,在一种可能的实现方式中,第一控制消息为网络控制消息协议ICMP报文。其中,第一控制消息包括第一扩展对象,第一扩展对象携带IPv6专用网络标识,或者,第一控制消息包括第一ICMP报文头,第一ICMP报文头携带IPv6专用网络标识。
在本申请实施例中,当第一控制消息为ICMP报文时,可以对ICMP报文进行灵活扩展,以使扩展后的ICMP报文能够携带IPv6专用网络标识。提高了本申请实施例的灵活性。
基于第一方面提供的方法,在一种可能的实现方式中,第一转发节点确定第二转发节点不具备IPv4地址的实现过程为:第一转发节点获取本地存储的IPv6专用网络标识,IPv6专用网络标识指示IPv6网络中的中间节点没有配置IPv4地址;第一转发节点基于IPv6专用网络标识确定第二转发节点不具备IPv4地址。
在本申请实施例中,还可以预先在第一转发节点上配置与第二转发节点所在的IPv6网络对应的IPv6专用网络标识,如此后续第一转发节点直接从本地存储中便可获取该IPv6专用网络标识,以便于第一转发节点基于该IPv6专用网络标识确定出第二转发节点不具备IPv4地址,进而采用本申请实施例提供的方法向第三转发节点通告第二转发节点转发第二报文的情况。提高了本申请实施例的灵活性。
基于第一方面提供的方法,在一种可能的实现方式中,第一控制消息携带第二转发节点的IPv6地址。这种场景下,第一转发节点基于第一控制消息生成第二控制消息的实现过程为:第一转发节点从第一控制消息中获取第二转发节点的IPv6地址,以生成第二控制消息。
由于第二控制消息需要携带第二转发节点的IPv6地址,因此第一转发节点在生成第二控制消息时,需要先获取第二转发节点的IPv6地址。在本申请实施例中,第一转发节点可以从第一控制消息中获取第二转发节点的IPv6地址,也可以从本地存储中获取第二转发节点的IPv6地址,提高了本申请实施例的灵活性。
基于第一方面提供的方法,在一种可能的实现方式中,第一控制消息为网络控制消息协议ICMP报文,且第一控制消息包括第二扩展对象,第二扩展对象携带第二转发节点的IPv6地址。这种场景下,第一转发节点从第一控制消息中获取第二转发节点的IPv6地址的实现过程为:第一转发节点从第二扩展对象中获取第二转发节点的IPv6地址。
基于第一方面提供的方法,在一种可能的实现方式中,第一控制消息为网络控制消息协议ICMP报文,且第一控制消息包括第二ICMP报文头,第二ICMP报文头携带第二转发节点的IPv6地址。这种场景下,第一转发节点从第一控制消息中获取第二转发节点的IPv6地址的实现过程为:第一转发节点从第二ICMP报文头中获取第二转发节点的IPv6地址。
在本申请实施例中,当第一控制消息为ICMP报文时,可以对ICMP报文进行上述两种实现方式的灵活扩展,以使扩展后的ICMP报文能够携带第二转发节点的IPv6地址。提高了本申请实施例的灵活性。
基于第一方面提供的方法,在一种可能的实现方式中,第一控制消息包括第一IPv6报文头,第一IPv6报文头携带第二转发节点的IPv6地址。这种场景下,第一转发节点从第一控制消息中获取第二转发节点的IPv6地址的实现过程可以为:第一转发节点从第一IPv6报文头中获取第二转发节点的IPv6地址。
可选地,第一控制消息的IPv6报文头中可以携带有第二转发节点的IPv6地址,因此也可以不对第一控制消息进行扩展便可携带第二转发节点的IPv6地址。提高了本申请实施例的灵活性。
基于第一方面提供的方法,在一种可能的实现方式中,第一转发节点本地存储有第二转发节点IPv6地址。这种场景下,第一转发节点基于第一控制消息生成第二控制消息的实现过程为:第一转发节点获取本地存储的第二转发节点IPv6地址,以基于第一控制消息和第二转发节点的IPv6地址,生成第二控制消息。
在本申请实施例中,第一转发节点可以从第一控制消息中获取第二转发节点的IPv6地址,也可以从本地存储中获取第二转发节点的IPv6地址,提高了本申请实施例的灵活性。
基于第一方面提供的方法,在一种可能的实现方式中,第二控制消息为网络控制消息协议ICMP报文。其中,第二控制消息包括第三扩展对象,第三扩展对象携带第二转发节点的IPv6地址,或者,第二控制消息包括第三ICMP报文头,第三ICMP报文头携带第二转发节点的IPv6地址。
在本申请实施例中,可以对第二控制消息进行灵活扩展,以使第二控制消息能够携带第二转发节点的IPv6地址,提高了本申请实施例的应用灵活性。
基于第一方面提供的方法,在一种可能的实现方式中,第二控制消息还携带IPv6专用网络标识,IPv6专用网络标识指示IPv6网络中的中间节点没有配置IPv4地址。
在本申请实施例中,第二控制消息还可以进一步携带IPv6专用网络标识,以使第三转发节点能够获悉到第二转发节点为IPv6专用网络中的节点。进一步提高了本申请实施例的灵活性。
基于第一方面提供的方法,在一种可能的实现方式中,第二控制消息为网络控制消息协议ICMP报文;其中,第二控制消息包括第四扩展对象,第四扩展对象携带IPv6专用网络标识,或者,第二控制消息包括第四ICMP报文头,第四ICMP报文头携带IPv6专用网络标识。
在本申请实施例中,可以对第二控制消息进行灵活扩展,以使第二控制消息能够携带IPv6专用网络标识,提高了本申请实施例的应用灵活性。
基于第一方面提供的方法,在一种可能的实现方式中,第二转发节点满足以下两种情况之一:第二转发节点所在的IPv6网络中的中间节点没有配置IPv4地址;或者,第二转发节点配置有IPv4地址,但第二转发节点的IPv4地址不对外使用。
在本申请实施例中,不具备IPv4地址的第二转发节点除了可以是IPv6专用网络中的节点外,还可以包括配置有IPv4地址但是IPv4地址没有对外暴露的节点,进一步提高了本申请实施例的应用灵活性。
基于第一方面提供的方法,在一种可能的实现方式中,第一报文和第二报文均携带生存时间TTL,第一控制消息指示第二报文到达第二转发节点时所述第二报文的TTL超时。
基于本申请实施例提供的方法,可以通过第一控制消息和第二控制消息,实现IPv6网络中的第二转发节点在转发来自IPv4网络的报文的TTL超时而导致无法继续转发报文时,成功向IPv4网络中的节点通告该报文转发出错的情况。
基于第一方面提供的方法,在一种可能的实现方式中,第一报文和第二报文为路径追踪报文。
基于本申请实施例提供的方法,还可以实现在跨IPv6网络的路径追踪场景中,IPv6网络中的第二转发节点在确定来自IPv4网络的路径追踪报文的TTL超时时,成功向IPv4网络中的节点通告自身的IPv6地址,以使IPv4网络中的第三转发节点追踪到第二转发节点的IPv6地址。提高了路径追踪的成功率。
第二方面,提供了一种报文转发方法,该方法应用于报文转发系统,该报文转发系统包括第一转发节点、第二转发节点和第三转发节点,第一转发节点为第六代网络协议IPv6网络的边缘节点,第二转发节点位于IPv6网络,第三转发节点位于第四代网络协议IPv4网络。
需要说明的是,第二方面提供的方法的技术效果可以参考第一方面提供的方法的技术效果,在此不再赘述。
在该方法中,第三转发节点在向第一转发节点发送第一报文后,接收第一转发节点发送的第二控制消息,第二控制消息为IPv4报文且第二控制消息携带第二转发节点的IPv6地址,第一报文为IPv4报文;第三转发节点基于第二控制消息确定第二转发节点转发第一报文的情况。
基于第二方面提供的方法,在一种可能的实现方式中,第三转发节点基于第二控制消息确定第二转发节点转发第一报文的情况之后,方法还包括:
第三转发节点解析第二控制消息,得到第二转发节点的IPv6地址;
第三转发节点显示第二转发节点的IPv6地址。
基于第二方面提供的方法,在一种可能的实现方式中,第二控制消息为网络控制消息协议ICMP报文;
第二网络控制消息包括第三扩展对象,第三扩展对象携带第二转发节点的IPv6地址,或者,第二控制消息包括第三ICMP报文头,第三ICMP报文头携带第二转发节点的IPv6地址。
基于第二方面提供的方法,在一种可能的实现方式中,第三转发节点基于第二控制消息确定第一转发节点转发第一报文的情况之后,方法还包括:
第三转发节点确定IPv6专用网络标识,IPv6专用网络标识指示IPv6网络中的中间节点没有配置IPv4地址;
第三转发节点显示IPv6专用网络标识。
基于第二方面提供的方法,在一种可能的实现方式中,第三转发节点确定IPv6专用网络标识,包括:
第三转发节点解析第二控制消息,以得到IPv6专用网络标识。
基于第二方面提供的方法,在一种可能的实现方式中,第二控制消息为网络控制消息协议ICMP报文;
第二网络控制消息包括第四扩展对象,第四扩展对象携带IPv6专用网络标识,或者,第二控制消息包括第四ICMP报文头,第四ICMP报文头携带IPv6专用网络标识。
基于第二方面提供的方法,在一种可能的实现方式中,第二控制消息指示第一报文到达第二转发节点时,第一报文的生存时间TTL超时。
基于第二方面提供的方法,在一种可能的实现方式中,第一报文为路径追踪报文。
第三方面,提供了一种报文转发方法,该方法应用于报文转发系统,该报文转发系统包括第一转发节点和第二转发节点,第一转发节点为第六代网络协议IPv6网络的边缘节点,第二转发节点位于IPv6网络。
需要说明的是,第三方面提供的方法的技术效果同样可以参考第一方面提供的方法的技术效果,在此不再赘述。
在该方法中,第二转发节点接收第一转发节点发送的第二报文,第二报文为IPv6报文;
当第二转发节点确定当前不能继续转发第二报文,且确定第二报文具备IPv4报文头时,基于第二报文生成第一控制消息,第一控制消息指示第二转发节点转发第二报文的情况,且第一控制消息指示第二转发节点不具备IPv4地址;
第二转发节点向第一转发节点发送第一控制消息。
基于第三方面提供的方法,在一种可能的实现方式中,第一控制消息携带IPv6专用网络标识,IPv6专用网络标识指示IPv6网络中的中间节点没有配置IPv4地址。
基于第三方面提供的方法,在一种可能的实现方式中,第一控制消息为网络控制消息协议ICMP报文;
第一网络控制消息包括第一扩展对象,第一扩展对象携带IPv6专用网络标识,或者,第一控制消息包括第一ICMP报文头,第一ICMP报文头携带IPv6专用网络标识。
基于第三方面提供的方法,在一种可能的实现方式中,第一控制消息携带第二转发节点的IPv6地址。
基于第三方面提供的方法,在一种可能的实现方式中,第一控制消息为网络控制消息协议ICMP报文;
第一网络控制消息包括第二扩展对象,第二扩展对象携带第二转发节点的IPv6地址,或者,第一控制消息包括第二ICMP报文头,第二ICMP报文头携带第二转发节点的IPv6地址。
基于第三方面提供的方法,在一种可能的实现方式中,第一控制消息包括第一IPv6报文头,第一IPv6报文头携带第二转发节点的IPv6地址。
基于第三方面提供的方法,在一种可能的实现方式中,第二转发节点确定当前不能继续转发第二报文,包括:
当第二报文的生存时间TTL为1时,第二转发节点确定当前不能继续转发第二报文。
基于第三方面提供的方法,在一种可能的实现方式中,第二报文为路径追踪报文。
第四方面,提供了一种网络设备,该网络设备包括存储器和处理器;所述存储器用于存储程序指令;所述处理器被配置为调用所述存储器中存储的程序,以使得所述网络设备执行如第一方面所述的方法。
第五方面,提供了一种网络设备,该网络设备包括存储器和处理器;所述存储器用于存储程序指令;所述处理器被配置为调用所述存储器中存储的程序,以使得所述网络设备执行如第二方面所述的方法。
第六方面,提供了一种网络设备,该网络设备包括存储器和处理器;所述存储器用于存储程序指令;所述处理器被配置为调用所述存储器中存储的程序,以使得所述网络设备执行如第三方面所述的方法。
第七方面,提供了一种网络设备,该网络设备包括收发模块和处理模块:
收发模块用于执行如第一方面所述方法中收发相关的操作,处理模块用于执行如第一方面所述方法中除所述收发相关的操作之外的操作。
第八方面,提供了一种网络设备,该网络设备包括收发模块和处理模块:
收发模块用于执行如第二方面所述方法中收发相关的操作,处理模块用于执行如第二方面所述方法中除所述收发相关的操作之外的操作。
第九方面,提供了一种网络设备,该网络设备包括收发模块和处理模块:
收发模块用于执行如第三方面所述方法中收发相关的操作,处理模块用于执行如第三方面所述方法中除所述收发相关的操作之外的操作。
第十方面,提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当所述指令在处理器上运行时,实现第一方面所述的方法。
第十一方面,提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当所述指令在处理器上运行时,实现第二方面所述的方法。
第十二方面,提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当所述指令在处理器上运行时,实现第三方面所述的方法。
第十三方面,提供了一种计算机程序产品,该计算机程序产品包含指令,所述指令在处理器上运行时,实现第一方面所述的方法。
第十四方面,提供了一种计算机程序产品,该计算机程序产品包含指令,所述指令在处理器上运行时,实现第二方面所述的方法。
第十五方面,提供了一种计算机程序产品,该计算机程序产品包含指令,所述指令在处理器上运行时,实现第三方面所述的方法。
上述第四方面至第十五方面所获得的技术效果,可以参考第一方面至第三方面中对应的技术手段获得的技术效果,在这里不再赘述。
附图说明
图1是本申请实施例提供的一种IPv4报文穿越IPv6网络的示意图;
图2是本申请实施例提供的一种路径追踪流程示意图;
图3是本申请实施例提供的另一种路径追踪流程示意图;
图4是本申请实施例提供的一种报文转发系统的架构示意图;
图5是本申请实施例提供的另一种报文转发系统的架构示意图;
图6是本申请实施例提供的一种报文转发方法流程图;
图7是本申请实施例提供的一种ICMP报文的格式示意图;
图8是本申请实施例提供的一种追踪结果示意图;
图9是本申请实施例提供的另一种路径追踪流程示意图;
图10是本申请实施例提供的一种网络设备的结构示意图;
图11是本申请实施例提供的另一种网络设备的结构示意图;
图12是本申请实施例提供的另一种网络设备的结构示意图;
图13是本申请实施例提供的另一种报文转发系统的架构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
应当理解的是,本文提及的“多个”是指两个或两个以上。在本申请的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,为了便于清楚描述本申请实施例的技术方案,在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
在对本申请实施例进行详细解释说明之前,先对本申请实施例的应用场景进行介绍。
路径追踪(traceroute)技术是一种用于探测报文转发路径所经过的各个转发节点的技术。在路径追踪技术中,路径探测节点可以发送目的地址相同但生存时间(time tolive,TTL)不同的多个路径追踪报文,比如,TTL从1到10的10个不同的路径追踪报文。网络中任一转发节点在接收到某个路径追踪报文时,将该路径追踪报文中的TTL值减去1之后,继续转发该路径追踪报文。如果该转发节点接收到的路径追踪报文的TTL为1,则向路径探测节点返回网络控制消息协议(internet control message protocol,ICMP)差错报文,ICMP差错报文中携带该转发节点的IP地址。通过这种方式,路径探测节点便可得到报文转发路径所经过的各个转发节点的IP地址,从而实现路径追踪的目的。
目前,在第四代网络协议(Internet Protocol version 4,IPv4)网络中,转发节点在确定报文的TTL为1时,则向其他转发节点返回基于IPv4的网络控制消息协议(internet control message protocol,ICMP)差错报文,该ICMP差错报文为IPv4报文,且ICMP差错报文中携带该转发节点的IPv4地址,以使其他节点能够获悉到报文在该转发节点处转发出现差错。
随着网络技术的发展,第六代网络协议(Internet Protocol version 6,IPv6)网络正在逐渐取代IPv4网络。这种场景下,IPv4报文在网络中传输时,通常会穿越(over)IPv6网络。该报文可称为IPv4 over IPv6的数据。
图1是本申请实施例提供的一种IPv4报文穿越IPv6网络的示意图。图1中CE用于标记用户边缘(customer edge)设备,PE用于标记运营商边缘(provider edge)设备,P用于标记运营商中间设备。如图1所示,CE1向CE2发送IPv4报文。CE1和CE2之间中间经过一个IPv6网络,CE1发送的报文在PE1节点上进入IPv6网络,PE1在该报文外层多封装一层IPv6报文头(图1中简写为IPv6头)。IPv6网络的中间P节点上走IPv6的转发,最终到达IPv6网络的出口节点PE2,PE2会将IPv6报文头剥离,将IPv4报文送CE2。
在图1所示的场景中,如果进行路径追踪,则具体的追踪流程可以如图2所示。图2是本申请实施例提供的一种路径追踪流程示意图。如图2所示,该路径追踪流程包括如下几个步骤。
1、CE1向CE2发起路径追踪(Traceroute),也即分别发送TTL不同的多个路径追踪报文。
2、在路径追踪报文中的TTL为1时,路径追踪报文到达PE1,PE1检查TTL超时,直接给CE1回复TTL超时的ICMP差错报文。
3、在路径追踪报文中的TTL为2时,路径追踪报文到达PE1,PE1检查TTL的值,判断可以继续转发。然后将TTL减一(IPv4报文头中的TTL值变为1),并在路径追踪报文的外层封装IPv6报文头,将封装后的路径追踪报文继续转发。其中,IPv6网络的TTL模式可以为统一(Uniform)模式,此时封装的IPv6报文头中的TTL(实际IPv6报文头中的TTL字段叫Hoplimit,为了跟IPV4统一,IPv6的Hop limt也统一用TTL来称呼)设置为跟内层IPv4报文头的TTL相同,也即IPv6报文头中的TTL也是1。路径追踪报文到达P节点,P节点根据外层IPv6报文头判断TTL超时,需要给CE1回复TTL超时的ICMP差错报文。
4、在路径追踪报文中的TTL为3时的处理流程跟TTL为2时处理流程类似,在此不再重复说明。
5、在路径追踪报文中的TTL为4时,路径追踪报文到达PE1,PE1基于TTL的值判断需要继续转发。然后将TTL减一(IPv4报文头中的TTL值变为3),并在路径追踪报文外层封装IPv6报文头,IPv6报文头中的TTL也是3,将封装后的路径追踪报文继续转发。该路径追踪报文到达P节点,P节点基于IPv6继续转发路径追踪报文,并将路径追踪报文中的IPv6报文头的TTL减1(数值更新为2),将更新后的路径追踪报文转发给PE2。PE2收到路径追踪报文后判断需要继续转发,此时将IPv6的TTL减1,并且判断出自身是IPv6网络的出口节点,因此需要剥离IPv6报文头。同时由于PE2所在的IPv6网络的的TTL模式配置为统一(Uniform)模式,因此PE2将路径追踪报文中IPv6报文头的TTL数值写到IPv4报文头的TTL中,也就是此时PE2将接收到的路径追踪报文中的IPv6报文头剥离,并将IPv4报文头中的TTL更新为1,将处理后的路径追踪报文送CE2。CE2收到路径追踪报文后,判断TTL为1,由于路径追踪报文的目的地址是CE2,也就是路径追踪报文已经到达目的地了,此时CE2会对该路径追踪报文进行其他处理(本申请实施例对此不做详细说明),同时CE2给CE1回复端口不可达的ICMP差错报文,CE1收到CE2的报文后,由于CE2是路径追踪的目的地,因此路径追踪过程结束。
上述步骤2的详细流程可以如图3所示。
在图3中,CE1发送TTL为2的路径追踪报文到PE1,该路径追踪报文包括IPv4报文头和载荷,其中,IPv4报文头携带源地址(source address,SA)1.1.1.1和目的地址(destination address,DA)2.2.2.2,且IPv4报文头中的TTL为2。PE1接收到该路径追踪报文后,将该路径追踪报文的IPv4报文头中的TTL减为1,并在外层封装IPv6报文头(图3中简写为IPv6头),并且该IPv6报文头的TTL也设置为1,继续向P节点转发处理后的路径追踪报文。P节点接收到该路径追踪报文时,判断出IPv6报文头中的TTL超时,并且P节点判断接收到的路径追踪报文中包括IPv4报文头,因此P节点在回复的TTL超时的ICMP差错报文中携带P节点的IPv4地址100.1.1.2,并将ICMP差错报文通过PE1发送给CE1。其中,如图3所示,P节点的IPv4地址100.1.1.2承载在ICMP差错报文的ICMP报文头(图3中简写为ICMP头)中。
上述场景下,如果IPv6网络为IPv6专用网络,当IPv6专用网络中的转发节点接收到来自IPv4网络中的转发节点发送的报文,且确定报文的TTL为1时,由于IPv6专用网络中的转发节点仅仅配置有IPv6地址,没有配置IPv4地址,此时IPv6专用网络中的转发节点有两种处理方式。一种是:该转发节点直接丢弃该报文,并不会向IPv4网络中的转发节点发送基于IPv4的ICMP差错报文。另一种是:该转发节点向IPv6专用网络的边缘节点发送基于IPv6的ICMP差错报文,该基于IPv6的ICMP差错报文携带该转发节点的IPv6地址,边缘节点接收到基于IPv6的ICMP差错报文时,需要向IPv4网络中的转发节点继续转发该差错报文。但是由于该边缘节点接收到的是基于IPv6的ICMP差错报文,需要通告的网络为IPv4网络,因此此时边缘节点也会丢弃基于IPv6的ICMP差错报文。这两种处理方式均将导致IPv4网络中的转发节点无法感知到该报文在IPv6专用网络中转发出现差错。
基于此,本申请实施例提供了一种报文转发方法。该方法一方面能够实现IPv6专用网络中的转发节点向IPv4网络中的节点通告报文转发情况。另一方面如果IPv6网络中的转发节点配置有IPv4地址,但是该转发节点不愿意将该IPv4地址暴露在网络中,此时通过该方法也能实现该转发节点向IPv4网络中的节点通告报文转发情况。
下面对本申请实施例提供的报文转发系统、报文转发方法以及相关装置进行详细解释说明。
图4是本申请实施例提供的一种报文转发系统的架构示意图。如图4所示,该报文转发系统包括第一转发节点401、第二转发节点402和第三转发节点403。第一转发节点401与第二转发节点402之间通信,第二转发节点402与第三转发节点403之间通信。
其中,第一转发节点401为IPv6网络的边缘节点,第二转发节点402位于IPv6网络,第三转发节点403位于IPv4网络。第二转发节点402位于IPv6网络可以理解为:第二转发节点402为IPv6网络的中间节点。也即是,IPv6网络中的转发节点包括边缘节点和中间节点,边缘节点用于和其他网络内的转发节点进行通信,中间节点只与同一网络中的转发节点进行通信。第三转发节点403位于IPv4网络同样可以理解为:第三转发节点403为IPv4网络的中间节点。
在本申请实施例中,IPv6网络可以为IPv6专用网络。IPv6专用网络中的中间节点仅仅具备IPv6地址,不具备IPv4地址。IPv6专用网络中的边缘节点同时具备IPv4地址和IPv6地址。
其中,中间节点不具备IPv4地址可以是指:在IP地址分配时,并没有为中间节点配置IPv4地址,这种情况下,中间节点自然不具备IPv4地址。换句话说,对于IPv6专用网络中的中间节点,并没有为该中间节点配置IPv4地址。
需要说明的是,在本申请实施例中,转发节点不具备IPv4地址,除了可以为上述IPv6专用网络中的中间节点这种情况外,还可以包括另外一种情况。该情况为:为该转发节点配置有IPv4地址,但是该IPv4地址在某些场景下不对外使用,也即该IPv4地址并没有暴露在网络中。
需要说明的是,图4所示的报文转发系统中的节点用于示例说明,该报文转发系统示例地还可以包括其他节点,在此不再一一举例说明。
图5是本申请实施例提供的另一种报文转发系统的架构示意图。如图5所示,该报文转发系统包括五个转发节点,图5中分别标记为CE1、PE1、P、PE2、CE2。
其中,CE1和CE2位于IPv4网络,PE1和PE2为IPv6专用网络的边缘节点,P为IPv6专用网络的中间节点。基于此,CE1与PE1之间通信,PE1和PE2分别与P之间通信,PE2与CE2之间通信。
这种场景下,图4中的第一转发节点401可以为图5中的PE1,第二转发节点402可以为图5中的P,第三转发节点403可以为图5中的CE1。可选地,图4中的第一转发节点401可以为图5中的PE2,第二转发节点402可以为图5中的P,第三转发节点403可以为图5中的CE2。
需要说明的是,本申请实施例涉及的转发节点可以为具有网络层功能的网元,如路由器、三层交换机等。在此不再一一举例说明。
图6是本申请实施例提供的一种报文转发方法流程图。如图6所示,该报文转发方法包括如下几个步骤。
步骤601:第三转发节点向第一转发节点发送第一报文,第一报文为IPv4报文。其中,第三转发节点位于IPv4网络,第一转发节点为IPv6网络的边缘节点。
第一报文可以为业务流中的业务报文,也可以为路径追踪场景下的路径追踪报文。
第一报文为IPv4报文,可以理解为:第一报文包括IPv4报文头和载荷,IPv4报文头携带载荷对应的源地址和目的地址,该源地址和目的地址均为IPv4地址。基于此,第一报文为需要发送至IPv4网络的报文。其中,载荷对应的源地址可以理解为生成载荷对应的数据的通信端的地址。载荷对应的目的地址可以理解为需要将载荷发送到的目的通信端的地址。
另外,由于第一转发节点为IPv6网络的边缘节点,因此第一报文为需要穿越IPv6网络发送至IPv4网络的报文。
示例地,对于图5所示的报文转发系统,第三转发节点为CE1,第一转发节点为PE1。第一报文为CE1向CE2发送的报文,第一报文中载荷对应的源地址为CE1的IPv4地址,载荷对应的目的地址为CE2对应的IPv4地址。该报文需要通过PE1发送至CE2,因此当CE1确定出第一报文时,CE1将第一报文发送至PE1。
步骤602:第一转发节点接收第一报文,基于第一报文生成第二报文,并向第二转发节点发送第二报文,第二报文为IPv6报文。其中,第二转发节点位于IPv6网络。
由于第一报文为IPv4报文,而第一转发节点为IPv6网络的边缘节点,因此第一转发节点在接收到第一报文时,需要将第一报文发送至该IPv6网络中的第二转发节点,以通过第二转发节点将第一报文发送至IPv4网络中的目的地。
在一些实施例中,第一报文可能只包括一个IPv4报文头和载荷,此时该IPv4报文头携带的源地址和目的地址分别为载荷对应的源地址和目的地址。这种场景下,第一转发节点基于第一报文生成第二报文的实现过程可以为:第一转发节点在第一报文的外层封装IPv6报文头,得到第二报文。该IPv6报文头携带的源地址为第一转发节点的IPv6地址,该IPv6报文头携带的目的地址为该IPv6网络中另一个转发节点的IPv6地址。第一转发节点基于IPv6报文头中的目的地址查找转发表得到转发第二报文的出接口(也即下一跳接口),该下一跳接口为第一转发节点上与第二转发节点进行通信的接口,然后第一转发节点将第二报文通过查找到的下一跳接口发送,以实现将第二报文发送至第二转发节点。
示例地,对于图5所示的报文转发系统,第三转发节点为CE1,第一转发节点为PE1。第一报文为CE1向CE2发送的报文。PE1接收到第一报文时,基于第一报文生成的第二报文中的IPv6报文头的源地址为PE1的IPv6地址,目的地址为PE2的IPv6地址。第一转发节点基于IPv6报文头中的PE2的IPv6地址查找转发表得到下一跳接口,该下一跳接口为PE1上与P进行通信的接口,然后PE1将第二报文通过查找到的下一跳接口发送,以实现将第二报文发送至P,进而通过P发送至PE2。
在另一些实施例中,第一报文可能包括一个外层IPv4报文头,一个内层IPv4报文头和载荷,该内层IPv4报文头携带的源地址和目的地址分别为载荷对应的源地址和目的地址,该外层IPv4报文头携带的源地址和目的地址分别为报文转发路径上其他节点的地址。比如,在图5所示的场景中,如果CE1和PE1之间部署有VPN网络,则该外层IPv4报文头携带的源地址和目的地址可以为该VPN网络中的VPN隧道的源地址和目的地址。这种场景下,第一转发节点基于第一报文生成第二报文的实现过程可以为:第一转发节点剥掉第一报文的外层IPv4报文头,然后在内层IPv4报文头和载荷的外层封装IPv6报文头,得到第二报文。该IPv6报文头携带的源地址和目的地址相关解释可以参考上一段内容,在此不再赘述。
基于上述两种实施例,基于第一报文生成第二报文,可以理解为第二报文包括第一报文中的载荷以及携带载荷对应的源地址和目的地址的IPv4报文头。
步骤603:第二转发节点接收第二报文,并在确定当前不能继续转发第二报文,且第二报文具备IPv4报文报文头的情况下,基于第二报文生成第一控制消息,并向第一转发节点发送第一控制消息,第一控制消息为IPv6报文,且第一控制消息用于通告第二转发节点转发第二报文的情况。
当第二转发节点确定当前不能继续转发第二报文时,为了便于第二报文的发送方(也即第一转发节点)及时了解到该情况,第二转发节点可以生成用于通告第二报文转发情况的第一控制消息,并向第二报文的发送方发送第一控制消息。
在一些实施例中,第二转发节点确定当前不能继续转发第二报文的实现过程可以为:当第二报文的TTL为1时,第二转发节点则确定当前不能继续转发第二报文。比如,在当前为路径追踪(traceroute)场景,第一报文和第二报文均为路径追踪报文。
可选地,第二转发节点也可以在其他场景下确定当前不能继续转发第二报文。比如,第二报文的数据大小超过了第二转发节点的转发能力,此时第二转发节点也可以生成第一控制消息,以通告第二转发节点转发第二报文的情况。本申请实施例对第二转发节点当前不能继续转发第二报文的各种场景不再一一举例说明。
另外,在一些实施例中,第二转发节点基于第二报文生成第一控制消息的实现过程可以为:第二转发节点将第二报文中的全部或部分作为待生成的第一控制消息的载荷,然后基于确定的载荷生成第一控制消息。如此,后续第一转发节点在接收到第一控制消息时,对第一控制消息的载荷进行解析,便可确定第一控制消息是针对第二报文的控制消息,也即获悉到第一控制消息用于通告第二报文的转发情况。
可选地,第二转发节点也可以通过其他方式基于第二报文生成第一控制消息,本申请实施例在此不再一一举例说明。
另外,在本申请实施例中,第二转发节点可以通过网络控制消息协议(internetcontrol message protocol,ICMP)生成第一控制消息,以通过ICMP通告第二转发节点的报文转发情况。这种情况下,第一控制消息为ICMP报文,示例地可以为ICMP差错报文。关于ICMP报文的格式后续有详细说明,在此先不展开。
可选地,第二转发节点也可以通过其他协议生成第一控制消息,以通告第二转发节点的报文转发情况。本申请实施例在此不再一一举例说明。
下面对第一控制消息进行详细解释说明。
(1)第一控制消息携带IPv6专用网络标识。
基于图4所示的网络架构可知,如果第二转发节点所在的IPv6网络为IPv6专用网络,则第二转发节点上没有配置IPv4地址。这种场景下,为了触发第一转发节点采用本申请实施例提供的方法向第三转发节点通告第二转发节点转发第二报文的情况,第二转发节点可以在第一控制消息中携带IPv6网络的IPv6专用网络标识,以便于第一转发节点基于该IPv6专用网络标识确定出第二转发节点不具备IPv4地址,进而采用本申请实施例提供的方法向第三转发节点通告第二转发节点转发第二报文的情况。
其中,该IPv6专用网络标识用于标识第二转发节点所在的IPv6网络为一个IPv6专用网络。也即是,该IPv6专用网络标识用于指示第二转发节点所在的IPv6网络中的中间节点没有配置IPv4地址。
下面以第一控制消息为ICMP报文为例说明第一控制消息如何携带IPv6专用网络标识。
为了便于理解,在此先对ICMP报文的基本格式进行解释说明。图7是本申请实施例提供的一种ICMP报文的格式示意图。如图7所示,该ICMP报文通常包括IP报文头(图7中简写为IP头)、ICMP报文头(图7中简写为ICMP头)以及ICMP数据。
其中,IP报文头为IPv4报文头或IPv6报文头,IPv4报文头或IPv6报文头携带目的地址和源地址,以指导ICMP报文的转发。ICMP报文头包括整个ICMP数据的校验和。可选地,ICMP报文头还可以包括IP报文头中的源地址、目的地址以及下一报文头部等字段的校验和。另外,ICMP报文头中的包内容字段通常还包括源地址和目的地址,其中,ICMP报文头中的源地址为生成ICMP报文的节点的地址,ICMP报文头中的目的地址为该ICMP报文需要通告的节点的地址。ICMP数据用于承载ICMP报文的载荷。
可选地,在请求评论(request for comments,RFC)4884中,如图7所示,还可以在ICMP数据的尾部增加扩展数据结构(extension data structure)。该扩展数据结构包括一个扩展报文头部(图7中简写为扩展头)和以及可变数量个的扩展对象,以对ICMP报文的功能进行扩展。
基于上述ICMP报文的基本格式,在一些实施例中,第一控制消息为ICMP报文,且第一网络控制消息包括第一扩展对象,第一扩展对象携带IPv6专用网络标识。
也即是,当第一控制消息为网络控制消息协议ICMP报文时,可以通过在ICMP报文的载荷尾部增加的第一扩展对象来携带IPv6专用网络标识。
示例地,图7中还示出了本申请实施例提供的一种扩展对象的格式示意图。如图7所示,扩展对象包括长度字段,对象标识字段,对象类型字段,入接口索引字段以及入接口地址字段等。此时,第一扩展对象中的对象标识字段可以用来承载IPv6专用网络标识。
可选地,也可以通过第一扩展对象中的其他字段来承载IPv6专用网络标识,在此不再一一举例说明。关于第一扩展对象中各个字段的相关说明可以参考RFC4884。
在另一些实施例中,第一控制消息为网络控制消息协议ICMP报文,且第一网络控制消息包括第一ICMP报文头,第一ICMP报文头携带IPv6专用网络标识。
也即是,当第一控制消息为网络控制消息协议ICMP报文时,可以不在ICMP报文的载荷尾部增加的第一扩展对象来携带IPv6专用网络标识,而是对ICMP报文头中的字段进行扩展以承载IPv6专用网络标识。
示例地,基于图7所示的ICMP报文头的格式,可以对第一ICMP报文头中的类型字段或代码字段进行扩展,以使类型字段或代码字段能够承载IPv6专用网络标识。
可选地,也可以通过第一ICMP报文头中的其他字段来承载IPv6专用网络标识,在此不再一一举例说明。
(2)第一控制消息携带第二转发节点的IPv6地址。
为了能够向第一转发节点通告当前是第二转发节点无法继续转发第二报文,在本申请实施例中,第二转发节点在生成第一控制消息时,还可以在第一控制消息中携带第二转发节点的IPv6地址。
在一些实施例中,第一控制消息为ICMP报文,且第一网络控制消息包括第二扩展对象,第二扩展对象携带第二转发节点的IPv6地址。
也即是,当第一控制消息为网络控制消息协议ICMP报文时,可以通过在ICMP报文的载荷尾部增加的第二扩展对象来携带第二转发节点的IPv6地址。
示例地,第二扩展对象的格式如图7所示,则可以通过第二扩展对象中的入接口地址字段来承载第二转发节点的IPv6地址。
可选地,也可以通过第二扩展对象中的其他字段来承载二转发节点的IPv6地址,在此不再一一举例说明。
其中,第二扩展对象和前述的第一扩展对象可以为同一扩展对象,也可以为不同的扩展对象。本申请实施例对此没有限定。
在另一些实施例中,第一控制消息为ICMP报文,且第一网络控制消息包括第二ICMP报文头,第二ICMP报文头携带第二转发节点的IPv6地址;
也即是,当第一控制消息为网络控制消息协议ICMP报文时,可以不在ICMP报文的载荷尾部增加的第二扩展对象来携带第二转发节点的IPv6地址,而是对ICMP报文头中的字段进行扩展以承载第二转发节点的IPv6地址。
示例地,基于图7所示的ICMP报文头的格式,可以对第一ICMP报文头中包内容字段进行扩展,以使该字段能够承载第二转发节点的IPv6地址。
可选地,也可以通过第二ICMP报文头中的其他字段来承载第二转发节点的IPv6地址,在此不再一一举例说明。
此外,如图3所示的ICMP报文的格式可知,当第一控制消息为ICMP报文时,第一控制消息包括第一IPv6报文头,而第一IPv6报文头中携带的源地址为第二转发节点的IPv6地址。基于此,在另一些实施例中,可以不对ICMP报文进行扩展,这种情况下,当第二转发节点确定当前不能继续转发第二报文时,可以通过不扩展ICMP报文的方式生成第一控制消息。
需要说明的是,上述第一控制消息携带IPv6专用网络标识的各种可选方案,可以和第一控制消息携带第二转发节点的IPv6地址的各种可选方案组合使用。示例地,第一控制消息包括图7所示的扩展对象,通过扩展对象中的对象标识字段来承载IPv6专用网络标识,通过扩展对象中的入接口地址字段来承载第二转发节点的IPv6地址。其他的组合方案在此不再一一举例说明。
此外,第一控制消息还可以不携带IPv6专用网络标识,仅仅通过上述任一方案携带第二转发节点的IPv6地址。在此同样不再一一举例说明。
步骤604:第一转发节点接收第一控制消息,当第一转发节点确定第二转发节点不具备IPv4地址时,基于第一控制消息生成第二控制消息,并向第三转发节点发送第二控制消息,第二控制消息为IPv4报文,且第二控制报文携带第二转发节点的IPv6地址。
由于第一控制消息用于通告第二转发节点转发第二报文的情况,而第二报文是基于第一报文生成的,因此第一转发节点在接收到第一控制消息时,需要向第一报文的发送方第三转发节点通告该报文转发情况。基于此,第一转发节点在接收到第一控制消息时,基于第一控制消息生成第二控制消息,以向第三转发节点发送第二控制消息。并且为了能够实现向第三转发节点通告第二转发节点转发报文的情况,需要在第二控制消息中携带第二转发节点的IPv6地址。
另外,由于第三转发节点是IPv4网络中的节点,因此第二控制消息需要为IPv4报文,这样才能将第二控制消息发送至第三转发节点。因此,本申请实施例提供了一种方案,能够实现在IPv4报文格式的第二控制消息中携带第二转发节点的IPv6地址,以实现对向IPv4网络中的第三转发节点通告IPv6网络中的第二转发节点转发报文的情况。
另外,需要说明的是,由于IPv6网络中的一些节点还可能配置有IPv4地址,这种场景下,则无需通过本申请实施例提供的方法生成第二控制消息。因此,第一转发节点接收第一控制消息后,第一转发节点先判断第二转发节点是否具备IPv4地址,如果具备IPv4地址,则直接基于该IPv4地址向第三转发节点通告即可。当第一转发节点确定第二转发节点不具备IPv4地址时,第一转发节点则通过本申请实施例提供的方法基于第一控制消息生成第二控制消息,以实现在IPv4报文格式的第二控制消息中携带第二转发节点的IPv6地址。
在一些实施例中,在第一控制消息携带IPv6专用网络标识的场景中,由于该IPv6专用网络标识指示第二转发节点所在的IPv6网络中的中间节点没有配置IPv4地址,也即是,第二转发节点所在的IPv6网络为IPv6专用网络,因此第一转发节点可以通过该IPv6专用网络标识确定出第二转发节点不具备IPv4地址。
基于此,第一转发节点确定第二转发节点不具备IPv4地址的实现过程可以为:第一转发节点解析第一控制消息,得到IPv6专用网络标识;第一转发节点基于该IPv6专用网络标识确定第二转发节点不具备IPv4地址。
其中,第一转发节点解析第一控制消息得到IPv6专用网络标识的详细实现方式,与第一控制消息如何携带IPv6专用网络标识的相关。在此以下述两种场景为例说明,其他场景下的解析过程同样可以参考下述示例,不再一一举例说明。
示例地,在第一控制消息为ICMP报文,且第一控制消息包括第一扩展对象,第一扩展对象携带IPv6专用网络标识的场景中,第一转发节点可以通过解析第一扩展对象得到IPv6专用网络标识。
又示例地,在第一控制消息为ICMP报文,且第一控制消息包括第一ICMP报文头,第一ICMP报文头携带IPv6专用网络标识的场景中,第一转发节点可以通过解析第一ICMP报文头得到IPv6专用网络标识。
在另一些实施例中,网络管理员可以预先在第一转发节点上配置与第二转发节点所在的IPv6网络对应的IPv6专用网络标识。这种场景下,第一转发节点确定第二转发节点不具备IPv4地址的实现过程可以为:第一转发节点获取本地存储的IPv6专用网络标识,该IPv6专用网络标识指示第二转发节点所在的IPv6网络中的中间节点没有配置IPv4地址,如此第一转发节点基于该IPv6专用网络标识便可确定第二转发节点不具备IPv4地址。
其中,第一转发节点获取本地存储的IPv6专用网络标识的实现方式可以为:第一转发节点基于第一控制消息确定第二转发节点所在的IPv6网络的网络前缀,然后从本地存储中获取与该网络前缀对应的IPv6专用网络标识。
示例地,第一转发节点基于所述第一控制消息确定第二转发节点所在的IPv6网络的网络前缀的实现过程可以为:第一转发节点解析第一控制消息的IPv6报文头中的源地址,该源地址即为第二转发节点的IPv6地址,第一转发节点基于第二转发节点的IPv6地址便可确定该IPv6网络的网络前缀。
网络前缀是唯一标识一个网络的网络号,因此网络管理员在第一转发节点上配置与第二转发节点所在的IPv6网络对应的IPv6专用网络标识时,可以建立该IPv6网络的网络前缀和该IPv6专用网络标识之间的对应关系,以便于后续第一转发节点基于网络前缀索引到该IPv6专用网络标识。
可选地,在某些场景下,第二转发节点上配置有IPv4地址,但是第二转发节点在生成第一控制消息时出于某些原因并不愿意将IPv4地址暴露在网络中,此时第一控制消息并不会携带第二转发节点的IPv4地址。这种场景下,第一转发节点在接收到第一控制消息时,第一控制消息没有携带IPv6专用网络标识,且第一转发节点也没有从本地存储中获取到该IPv6专用网络标识,此时第一转发节点也可以确定第二转发节点不具备IPv4地址。
因此,在本申请实施例中,第一转发节点确定出不具备IPv4地址的第二转发节点满足以下两种情况之一。一种是第二转发节点所在的IPv6网络中的中间节点没有配置IPv4地址。另一种是第二转发节点配置有IPv4地址,但第二转发节点的IPv4地址不对外使用。
另外,在本申请实施例中,为了能够实现向第三转发节点通告第二转发节点转发报文的情况,需要在第二控制消息中携带第二转发节点的IPv6地址。基于此,第一转发节点在生成第二控制消息之前,需要先获取到第二转发节点的IPv6地址。
下面对第一转发节点如何获取第二转发节点的IPv6地址并生成第二控制消息的过程进行详细说明。
在一些实施例中,在第一控制消息携带第二转发节点的IPv6地址的场景中,第一转发节点基于第一控制消息生成第二控制消息的实现过程可以为:第一转发节点从第一控制消息中获取第二转发节点的IPv6地址,以生成第二控制消息。
其中,第一转发节点从第一控制消息中获取第二转发节点的IPv6地址的实现方式,与第一控制消息携带第二转发节点的IPv6地址的方式有关。在此以下述三种场景为例说明,其他场景下的获取过程同样可以参考下述示例,不再一一举例说明。
示例地,在第一控制消息为ICMP报文,且第一控制消息包括第二扩展对象,第二扩展对象携带第二转发节点的IPv6地址的场景中,第一转发节点从第一控制消息中获取第二转发节点的IPv6地址的实现过程可以为:第一转发节点从第二扩展对象中获取第二转发节点的IPv6地址。
比如,当第二扩展对象包括入接口地址字段时,第一转发节点可以从第二扩展对象入接口地址字段中获取第二转发节点的IPv6地址。
又示例地,在第一控制消息为ICMP报文,且第一控制消息包括第二ICMP报文头,第二ICMP报文头携带第二转发节点的IPv6地址的场景中,第一转发节点从第一控制消息中获取第二转发节点的IPv6地址的实现方式可以为:第一转发节点从第二ICMP报文头中获取第二转发节点的IPv6地址。
比如,当第二ICMP报文头包括包内容字段时,第一转发节点可以从第二ICMP报文头的包内容字段中获取第二转发节点的IPv6地址。
又示例地,在第一控制消息包括第一IPv6报文头,第一IPv6报文头携带第二转发节点的IPv6地址的场景中,第一转发节点从第一控制消息中获取第二转发节点的IPv6地址的实现方式为:第一转发节点从第一IPv6报文头中获取第二转发节点的IPv6地址。
其中,第一IPv6报文头的源地址即为第二转发节点的IPv6地址。
在另一些实施例中,网络管理员可以预先在第一转发节点上配置第二转发节点的IPv6地址,也即,第一转发节点本地存储有第二转发节点IPv6地址。这种场景下,第一转发节点基于第一控制消息生成第二控制消息的实现过程为:第一转发节点获取本地存储的第二转发节点IPv6地址,以基于第一控制消息和第二转发节点的IPv6地址,生成第二控制消息。
其中,网络管理员在第一转发节点上配置第二转发节点的IPv6地址时,可以建立第二转发节点的IPv6地址和入接口之间对应关系,第一转发节点基于接收第一控制消息的入接口,便可从本地存储中索引到第二转发节点的IPv6地址。可选地,第一转发节点也可以通过其他方式获取存储的第二转发节点的IPv6地址,本申请实施例对此不做限定。
另外,在本申请实施例中,为了能够实现向第三转发节点通告第二转发节点转发报文的情况,需要在第二控制消息中携带第二转发节点的IPv6地址。第二控制消息中携带第二转发节点的IPv6地址的实现方式可以有以下几种。
在一些实施例中,第二控制消息为ICMP报文,且第二控制消息包括第三扩展对象,第三扩展对象携带第二转发节点的IPv6地址。
在另一些实施例中,第二控制消息为网络控制消息协议ICMP报文,且第一控制消息包括第三ICMP报文头,第三ICMP报文头携带第二转发节点的IPv6地址。
上述第二控制消息携带第一转发节点的IPv6地址的具体实现方式,可以参考第一控制消息中通过扩展对象或ICMP报文头携带第二转发节点的IPv6地址的实现方式,在此不再赘述。
需要说明的是,由于第一控制消息包括第一IPv6报文头,因此第一控制消息还可以在第一IPv6报文头携带第二转发节点的IPv6地址。但是第二控制消息为IPv4报文,因此第二控制消息不包括IPv6报文头,如此第二控制消息需要通过扩展对象或扩展的ICMP报文头或其他扩展方式来携带第二转发节点的IPv6地址。
另外,在本申请实施例中,如果第二转发节点所在带IPv6网络为一个IPv6专用网络,第二控制消息中还可以携带IPv6专用网络标识,该IPv6专用网络标识指示第二转发节点所在IPv6网络中的中间节点没有配置IPv4地址。其中,第二转发节点携带IPv6专用网络标识的实现方式可以有以下几种。
在一些实施例中,第二控制消息为ICMP报文,且第二控制消息包括第四扩展对象,第四扩展对象携带IPv6专用网络标识。
在另一些实施例中,第二控制消息为ICMP报文,且第二控制消息包括第四ICMP报文头,第四ICMP报文头携带IPv6专用网络标识。
上述第二控制消息携带IPv6专用网络标识的具体实现方式,可以参考第一控制消息中通过扩展对象或ICMP报文头携带IPv6专用网络标识的实现方式,在此不再赘述。
上述以第二控制消息为ICMP报文为例说明第二控制消息如何携带第二转发节点的IPv6地址和IPv6专用网络标识。可选地,当通过其他协议实现第二控制消息时,同样可以对其他协议下的第二控制消息进行扩展,以使第二控制消息携带第二转发节点的IPv6地址和IPv6专用网络标识,在此同样不做详细说明。
步骤605:第三转发节点接收第二控制消息,并基于第二控制消息确定第二转发节点转发第一报文的情况。
第三转发节点在向第一转发节点发送第一报文后,基于前述步骤602-步骤604,第三转发节点将接收第一转发节点发送的第二控制消息。基于步骤604可知,第二控制消息为IPv4报文且第二控制消息携带第二转发节点的IPv6地址。
由于第二控制消息携带第二转发节点的IPv6地址,因此第三转发节点在接收到第一转发节点发送的第二控制消息时,基于第二转发节点的IPv6地址可以了解到是第二转发节点触发第一转发节点发送第二控制消息的,以借助第一转发节点通告第二转发节点转发第一报文的情况。
示例地,第二控制消息指示第一报文到达第二转发节点时,第一报文的生存时间TTL超时。也即是,第二控制消息用于通告第二转发节点转发第一报文出错,且出错原因为第一报文的生存时间TTL超时。
比如,路径追踪场景中,第一报文为路径追踪报文,第三转发节点在向第一转发节点发送一个路径追踪报文后,当第三转发节点接收到第二控制消息时,基于第二控制消息携带的第二转发节点的IPv6地址便可确定该路径追踪报文传输至第二转发节点时路径追踪报文中的TTL为1,因此第二转发节点不能继续转发该路径追踪报文。也即基于第二控制消息携带的第二转发节点的IPv6地址便可确定第二转发节点未能继续转发第一报文。
此外,在为了便于网络管理员及时了解第二转发节点转发第一报文的情况,第三转发节点基于第二控制消息确定第二转发节点转发第一报文的情况之后,第三转发节点还可以进一步解析第二控制消息,得到第二转发节点的IPv6地址;然后第三转发节点显示第二转发节点的IPv6地址。
示例地,在路径追踪场景中,第三转发节点在显示第二转发节点的IPv6地址时还可以显示第三转发节点发送的第一报文的初始TTL的数值。以便于网络管理员确定该TTL数值的路径追踪报文追踪的节点。
比如,假设第三转发节点为图5所示的架构中的CE1,第一转发节点为PE1,第二转发节点为P,则CE1在路径追踪场景中,可以显示图8所示的追踪结果。
如图8所示,路径追踪的目的地址为CE2的IPv4地址2.2.2.2(图8中显示为tracert2.2.2.2)。也即,CE1发起的所有第一报文(也即路径追踪报文)中的载荷的目的地址均为2.2.2.2。
当第一报文中的TTL为1时,追踪到的节点为PE1,因此显示PE1的IPv4地址100.1.1.1。图8中第二行的3个1毫秒(ms)指示CE1分别发送了三个TTL为1的第一报文,每个1ms指示发送相应第一报文后到接收到第二控制消息之间的时长。
当第一报文中的TTL为2时,追踪到的节点为P,因此显示P的IPv6地址A2::2。图8中第三行的3个1毫秒(ms)同样指示CE1分别发送了三个TTL为2的第一报文。需要说明的是,图5中P所在的IPv6网络为SRv6网络,因此P的IPv6地址为SRv6网络为其分配的段标识(segment identity,SID),该SID为A2::2。
其中,第三转发节点解析第二控制消息得到第二转发节点的IPv6地址的具体实现方式,与第二控制消息携带第二转发节点的IPv6地址的方式有关。详细内容可以参考步骤604中第二控制消息的相关内容,在此不再赘述。
需要说明的是,由于第二转发节点的IPv6地址有128比特位,而某些场景下第三转发节点可能不具备显示128比特位的IPv6地址的能力,此时第三转发节点可以显示一个提示信息,该提示信息用于当前追踪到的第二转发节点为IPv6网络中的节点。
此外,在第二转发节点为IPv6专用网络中的中间节点的情况下,为了便于网络管理员及时了解第二转发节点所在的IPv6网络,第三转发节点基于第二控制消息确定第一转发节点转发第一报文的情况之后,第三转发节点还可以进一步确定IPv6网络的IPv6专用网络标识,该IPv6专用网络标识指示第二转发节点所在的IPv6网络中的中间节点配置IPv4地址;然后第三转发节点显示IPv6专用网络标识。
在一些实施例中,第三转发节点确定IPv6网络的IPv6专用网络标识的实现过程可以为:第三转发节点解析第二控制消息,以得到IPv6专用网络标识。也即是,第三转发节点从第二控制消息中获取该IPv6专用网络标识。
其中,第三转发节点解析第二控制消息得到IPv6专用网络标识的具体实现方式,与第二控制消息携带IPv6专用网络标识的方式有关。详细内容可以参考步骤604中第二控制消息的相关内容,在此不再赘述。
可选地,在另一些实施例中,第三转发节点也可以从本地存储中获取IPv6专用网络标识。具体实现方式可以参考第一转发节点从本地存储中获取该IPv6专用网络标识的过程,在此不再赘述。
综上,基于图6所示的实施例,当IPv6网络的边缘节点第一转发节点接收到来自同一IPv6网络中的第二转发节点的第一控制消息时,由于第一控制消息用于通告第二转发节点转发第二报文的情况,而第二报文是基于来自IPv4网络的第一报文生成的,因此第一转发节点在接收到第一控制消息时,需要向第一报文的发送方(IPv4网络中的第三转发节点)通告该报文转发情况。基于此,第一转发节点在接收到第一控制消息时,第一转发节点基于第一控制消息生成第二控制消息,且第二控制消息为IPv4报文,以向IPv4网络中的第三转发节点发送第二控制消息。并且在第二转发节点不具备IPv4地址时,为了能够实现成功向IPv4网络中第三转发节点通告IPv6网络中第二转发节点转发报文的情况,本申请实施例对第二控制消息进行了扩展,以在第二控制消息中携带第二转发节点的IPv6地址。因此,通过本申请实施例提供的方法,IPv6网络中的中间节点在不具备IPv4地址时能够成功实现向IPv4网络中的转发节点通告报文转发情况。
需要说明的是,图6所示的实施例的步骤601至步骤606中的各种可选方案可以基于需求进行组合,本申请实施例对此不再一一举例说明。
下面以图9所示的路径追踪流程图为例对本申请实施例进一步解释说明。其中,图9是图6中各种可选方案的其中一种示例方案,并不构成对本申请实施例提供的方案的限定。
如图9所示。该路径追踪流程包括如下几个步骤。
(1)CE1发送TTL为2的路径追踪报文到PE1,该路径追踪报文包括IPv4报文头和载荷,其中,IPv4报文头携带源地址(SA)1.1.1.1和目的地址(DA)2.2.2.2,且IPv4报文头中的TTL为2。
(2)PE1接收到该路径追踪报文后,将该路径追踪报文的IPv4报文头中的TTL减为1,并在外层封装IPv6报文头(图9中简写为IPv6头),并且该IPv6报文头的TTL(实际为Hop)也设置为1,继续向P转发处理后的路径追踪报文。
(3)P接收到该路径追踪报文时,判断出该路径追踪报文的IPv6报文头中的TTL超时,并且P判断接收到的路径追踪报文包括IPv4报文头,因此P基于本申请实施例提供的方案生成需要通告TTL超时的ICMP差错报文(也即第一控制消息)。
如图9所示,P生成的ICMP差错报文是直接将接收到的路径追踪报文作为ICMP数据(也即ICMP差错报文的载荷),然后在ICMP数据的尾部添加扩展对象,并在ICMP数据的外层依次添加ICMP报文头(图9中简写为ICMP头)和IPv6报文头(图9中简写为IPv6头)得到。其中,扩展对象携带IPv6专用网络标识以及P的IPv6地址。需要说明的是,图9中P所在的IPv6网络为SRv6网络,因此P的IPv6地址为SRv6网络为其分配的段标识(segment identity,SID),该SID为A2::2。
另外,需要说明的是,P生成的ICMP差错报文中的ICMP报文头可以用于指示当前是IPv6网络转发出错,具体指示方式可以参考相关协议,在此不再详细说明。因此,P生成的ICMP差错报文中的ICMP报文头还可以称为ICMPv6报文头。
(4)PE1接收到P发送的ICMP差错报文时,剥掉该ICMP差错报文的外层IPv6报文头,以及ICMP数据中IPv6报文头,然后将剩下的IPv4报文头和载荷作为新的ICMP数据,基于新的ICMP数据以及扩展对象重新构造ICMP差错报文(也即第二控制消息),并将重新构造的ICMP差错报文发送至CE1。
同样需要说明的是,由于重新构造的ICMP差错报文是需要发送至IPv4网络的,因此重新构造的ICMP差错报文中的ICMP报文头可以用于指示IPv4网络差错,具体指示方式可以参考相关协议,在此不再详细说明。因此,PE1重新构造的ICMP差错报文中的ICMP报文头还可以称为ICMPv4报文头。
(5)CE1接收到PE1重新构造的ICMP差错报文时,基于接收到ICMP差错报文中的扩展对象得到P节点的IPv6地址,从而实现在TTL为2时,追踪到P节点的IPv6地址。
图10是本申请实施例提供的一种网络设备的结构示意图,该网络设备为图4所示的报文转发系统中的任一转发节点,比如第一转发节点或第二转发节点或第三转发节点。
具体地,如图10所示,网络设备1000包括收发模块1001和处理模块1002。
其中,收发模块1002用于执行图6实施例中收发相关的操作;处理模块1001用于执行图6实施例中除收发相关的操作之外的操作。
在图10所示的网络设备1000为前述实施例中的第一转发节点的场景中,收发模块1001和处理模块1002的具体功能如下。
收发模块1001,用于接收第三转发节点发送的第一报文,第一报文为IPv4报文。具体实现方式可以参考图6实施例中的步骤602。
处理模块1002,用于基于第一报文生成第二报文,并向第二转发节点发送第二报文,第二报文为IPv6报文。具体实现方式可以参考图6实施例中的步骤602。
收发模块1001,用于接收第二转发节点发送的第一控制消息,第一控制消息为IPv6报文,第一控制消息用于通告第二转发节点转发第二报文的情况。具体实现方式可以参考图6实施例中的步骤604。
处理模块1002,用于当确定第二转发节点不具备IPv4地址时,基于第一控制消息生成第二控制消息。具体实现方式可以参考图6实施例中的步骤604。
收发模块1001,用于向第三转发节点发送第二控制消息,第二控制消息为IPv4报文,且第二控制报文携带第二转发节点的IPv6地址。具体实现方式可以参考图6实施例中的步骤604。
可选地,第一控制消息携带IPv6专用网络标识,IPv6专用网络标识指示IPv6网络中的中间节点没有配置IPv4地址;
处理模块1002用于:
解析第一控制消息,得到IPv6专用网络标识;
基于IPv6专用网络标识确定第二转发节点不具备IPv4地址。
可选地,第一控制消息为网络控制消息协议ICMP报文;
第一控制消息包括第一扩展对象,第一扩展对象携带IPv6专用网络标识,或者,第一控制消息包括第一ICMP报文头,第一ICMP报文头携带IPv6专用网络标识。
可选地,处理模块1002用于:
获取本地存储的IPv6专用网络标识,IPv6专用网络标识指示IPv6网络中的中间节点没有配置IPv4地址;
基于IPv6专用网络标识确定第二转发节点不具备IPv4地址。
可选地,第一控制消息携带第二转发节点的IPv6地址;
处理模块1002用于:
从第一控制消息中获取第二转发节点的IPv6地址,以生成第二控制消息。
可选地,第一控制消息为网络控制消息协议ICMP报文,且第一控制消息包括第二扩展对象,第二扩展对象携带第二转发节点的IPv6地址;
处理模块1002用于:
从第二扩展对象中获取第二转发节点的IPv6地址。
可选地,第一控制消息为网络控制消息协议ICMP报文,且第一控制消息包括第二ICMP报文头,第二ICMP报文头携带第二转发节点的IPv6地址;
处理模块1002用于:
从第二ICMP报文头中获取第二转发节点的IPv6地址。
可选地,第一控制消息包括第一IPv6报文头,第一IPv6报文头携带第二转发节点的IPv6地址;
处理模块1002用于:
从第一IPv6报文头中获取第二转发节点的IPv6地址。
可选地,第一转发节点本地存储有第二转发节点IPv6地址;
处理模块1002用于:
获取存储的第二转发节点IPv6地址,以基于第一控制消息和第二转发节点的IPv6地址,生成第二控制消息。
可选地,第二控制消息为网络控制消息协议ICMP报文;
第二控制消息包括第三扩展对象,第三扩展对象携带第二转发节点的IPv6地址,或者,第二控制消息包括第三ICMP报文头,第三ICMP报文头携带第二转发节点的IPv6地址。
可选地,第二控制消息还携带IPv6专用网络标识,IPv6专用网络标识指示IPv6网络中的中间节点没有配置IPv4地址。
可选地,第二控制消息为网络控制消息协议ICMP报文;
第二控制消息包括第四扩展对象,第四扩展对象携带IPv6专用网络标识,或者,第二控制消息包括第四ICMP报文头,第四ICMP报文头携带IPv6专用网络标识。
可选地,第二转发节点满足以下两种情况之一:
第二转发节点所在的IPv6网络中的中间节点没有配置IPv4地址;
或者,第二转发节点配置有IPv4地址,但第二转发节点的IPv4地址不对外使用。
可选地,第一报文和第二报文均携带生存时间TTL,第一控制消息指示第二报文到达第二转发节点时第二报文的TTL超时。
可选地,第一报文和第二报文为路径追踪报文。
在图10所示的网络设备1000为前述实施例中的第二转发节点的场景中,收发模块1001和处理模块1002的具体功能如下。
收发模块1001,用于接收第一转发节点发送的第二报文,第二报文为IPv6报文。具体实现方式可以参考图6实施例中的步骤603。
处理模块1002,用于当确定当前不能继续转发第二报文,且确定第二报文具备IPv4报文头时,基于第二报文生成第一控制消息,第一控制消息指示第二转发节点转发第二报文的情况,且第一控制消息指示第二转发节点不具备IPv4地址。具体实现方式可以参考图6实施例中的步骤603。
收发模块1001,用于向第一转发节点发送第一控制消息。具体实现方式可以参考图6实施例中的步骤603。
可选地,第一控制消息携带IPv6专用网络标识,IPv6专用网络标识指示IPv6网络中的中间节点没有配置IPv4地址。
可选地,第一控制消息为网络控制消息协议ICMP报文;
第一网络控制消息包括第一扩展对象,第一扩展对象携带IPv6专用网络标识,或者,第一控制消息包括第一ICMP报文头,第一ICMP报文头携带IPv6专用网络标识。
可选地,第一控制消息携带第二转发节点的IPv6地址。
可选地,第一控制消息为网络控制消息协议ICMP报文;
第一网络控制消息包括第二扩展对象,第二扩展对象携带第二转发节点的IPv6地址,或者,第一控制消息包括第二ICMP报文头,第二ICMP报文头携带第二转发节点的IPv6地址。
可选地,第一控制消息包括第一IPv6报文头,第一IPv6报文头携带第二转发节点的IPv6地址。
可选地,处理模块1002用于:
当第二报文的生存时间TTL为1时,确定当前不能继续转发第二报文。
可选地,第二报文为路径追踪报文。
在图10所示的网络设备1000为前述实施例中的第三转发节点的场景中,收发模块1001和处理模块1002的具体功能如下。
收发模块1001,用于在向第一转发节点发送第一报文后,接收第一转发节点发送的第二控制消息,第二控制消息为IPv4报文且第二控制消息携带第二转发节点的IPv6地址,第一报文为IPv4报文。具体实现方式可以参考图6实施例中的步骤601和步骤605。
处理模块1002,用于基于第二控制消息确定第二转发节点转发第一报文的情况。具体实现方式可以参考图6实施例中的步骤605。
可选地,处理模块1002还用于:
解析第二控制消息,得到第二转发节点的IPv6地址;
显示第二转发节点的IPv6地址。
可选地,第二控制消息为网络控制消息协议ICMP报文;
第二网络控制消息包括第三扩展对象,第三扩展对象携带第二转发节点的IPv6地址,或者,第二控制消息包括第三ICMP报文头,第三ICMP报文头携带第二转发节点的IPv6地址。
可选地,处理模块1002还用于:
确定IPv6专用网络标识,IPv6专用网络标识指示IPv6网络中的中间节点没有配置IPv4地址;
显示IPv6专用网络标识。
可选地,处理模块1002用于:
解析第二控制消息,以得到IPv6专用网络标识。
可选地,第二控制消息为网络控制消息协议ICMP报文;
第二网络控制消息包括第四扩展对象,第四扩展对象携带IPv6专用网络标识,或者,第二控制消息包括第四ICMP报文头,第四ICMP报文头携带IPv6专用网络标识。
可选地,第二控制消息指示第一报文到达第二转发节点时,第一报文的生存时间TTL超时。
可选地,第一报文为路径追踪报文。
下面对本申请实施例涉及的硬件结构进行介绍。
图11是本申请实施例提供的一种设备1100的结构示意图。图12是本申请实施例提供的另一种设备1200的结构示意图。下面对这两个设备的结构进行解释说明。
需要说明的是,以下介绍的设备1100或设备1200对应于上述方法实施例中的任一转发节点。设备1100或设备1200中的各硬件、模块和上述其他操作和/或功能分别为了实现方法实施例中任一转发节点所实施的各种步骤和方法,关于设备1100或设备1200如何处理报文的详细流程,具体细节可参见上述方法实施例,为了简洁,在此不再赘述。其中,上述方法实施例的各步骤通过设备1100或设备1200处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤,为避免重复,这里不再详细描述。
设备1100对应于上述任一转发节点时,该转发节点中的每个功能模块采用设备1100的软件实现。换句话说,该转发节点包括的功能模块为设备1100的处理器读取存储器中存储的程序代码后生成的。
设备1200对应于上述任一转发节点时,该转发节点中的每个功能模块采用设备1200的软件实现。换句话说,该转发节点包括的功能模块为设备1200的处理器读取存储器中存储的程序代码后生成的。
参见附图11,图11是本申请实施例提供的一种设备1100的结构示意图。可选地,该设备1100配置为图4所示的第一转发节点或第二转发节点或第三转发节点。换句话说,上述方法实施例中的任一转发节点可选地通过设备1100实现。
该设备1100例如是网络设备,比如说设备1100是交换机、路由器等。或者,该设备1100例如是计算设备,比如说设备1100是主机、服务器或个人计算机等。该设备1100可以由一般性的总线体系结构来实现。
设备1100包括至少一个处理器1101、通信总线1102、存储器1103以及至少一个通信接口1104。
处理器1101例如是通用中央处理器(central processing unit,CPU)、网络处理器(network processer,NP)、图形处理器(Graphics Processing Unit,GPU)、神经网络处理器(neural-network processing units,NPU)、数据处理单元(Data Processing Unit,DPU)、微处理器或者一个或多个用于实现本申请方案的集成电路。例如,处理器1101包括专用集成电路(application-specific integrated circuit,ASIC),可编程逻辑器件(programmable logic device,PLD)或其组合。PLD例如是复杂可编程逻辑器件(complexprogrammable logic device,CPLD)、现场可编程逻辑门阵列(field-programmable gatearray,FPGA)、通用阵列逻辑(generic array logic,GAL)或其任意组合。
通信总线1102用于在上述组件之间传送信息。通信总线1102可以分为地址总线、数据总线、控制总线等。为便于表示,附图11中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器1103例如是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其它类型的静态存储设备,又如是随机存取存储器(random access memory,RAM)或者可存储信息和指令的其它类型的动态存储设备,又如是电可擦可编程只读存储器(electrically erasable programmable read-only Memory,EEPROM)、只读光盘(compactdisc read-only memory,CD-ROM)或其它光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其它磁存储设备,或者是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质,但不限于此。存储器1103例如是独立存在,并通过通信总线1102与处理器1101相连接。存储器1103也可以和处理器1101集成在一起。
通信接口1104使用任何收发器一类的装置,用于与其它设备或通信网络通信。通信接口1104包括有线通信接口,还可以包括无线通信接口。其中,有线通信接口例如可以为以太网接口。以太网接口可以是光接口,电接口或其组合。无线通信接口可以为无线局域网(wireless local area networks,WLAN)接口,蜂窝网络通信接口或其组合等。
在具体实现中,作为一种实施例,处理器1101可以包括一个或多个CPU,如附图11中所示的CPU0和CPU1。
在具体实现中,作为一种实施例,设备1100可以包括多个处理器,如附图11中所示的处理器1101和处理器1105。这些处理器中的每一个可以是一个单核处理器(single-CPU),也可以是一个多核处理器(multi-CPU)。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(如计算机程序指令)的处理核。
在具体实现中,作为一种实施例,设备1100还可以包括输出设备和输入设备。输出设备和处理器1101通信,可以以多种方式来显示信息。例如,输出设备可以是液晶显示器(liquid crystal display,LCD)、发光二级管(light emitting diode,LED)显示设备、阴极射线管(cathode ray tube,CRT)显示设备或投影仪(projector)等。输入设备和处理器1101通信,可以以多种方式接收用户的输入。例如,输入设备可以是鼠标、键盘、触摸屏设备或传感设备等。
在一些实施例中,存储器1103用于存储执行本申请方案的程序代码1110,处理器1101可以执行存储器1103中存储的程序代码1110。也即是,设备1100可以通过处理器1101以及存储器1103中的程序代码1110,来实现方法实施例提供的报文转发方法。
本申请实施例的设备1100可对应于上述各个方法实施例中的任一转发节点,并且,该设备1100中的处理器1101、通信接口1104等可以实现上述各个方法实施例中的任一转发节点所具有的功能和/或所实施的各种步骤和方法。为了简洁,在此不再赘述。
在本申请实施例采用设备1100实现的情况下,在一些实施例中,附图10所示的网络设备1000中的收发模块以及处理模块为设备1100中的程序代码1110中的软件模块,设备1100中的处理器1101通过执行程序代码1110来实现附图10中的网络设备600中的收发模块以及处理模块的功能。
参见附图12,附图12是本申请实施例提供的一种设备1200的结构示意图,可选地,该设备1200配置为图4所示的第一转发节点或第二转发节点或第三转发节点。换句话说,上述方法实施例中的任一转发节点可选地通过设备1200实现。
该设备1200例如是网络设备,比如说设备1200是交换机、路由器等。设备1200包括:主控板12010和接口板12030。
主控板也称为主处理单元(main processing unit,MPU)或路由处理卡(routeprocessor card),主控板12010用于对设备1200中各个组件的控制和管理,包括路由计算、设备管理、设备维护、协议处理功能。主控板12010包括:中央处理器12011和存储器12012。
接口板12030也称为线路接口单元卡(line processing unit,LPU)、线卡(linecard)或业务板。接口板12030用于提供各种业务接口并实现数据包的转发。业务接口包括而不限于以太网接口、POS(Packet over SONET/SDH)接口等,以太网接口例如是灵活以太网业务接口(Flexible Ethernet Clients,FlexE Clients)。接口板12030包括:中央处理器12031、网络处理器12032、转发表项存储器12034和物理接口卡(physical interfacecard,PIC)12033。
接口板12030上的中央处理器12031用于对接口板12030进行控制管理并与主控板12010上的中央处理器12011进行通信。
网络处理器12032用于实现报文的转发处理。网络处理器12032的形态可以是转发芯片。具体而言,网络处理器12032用于基于转发表项存储器12034保存的转发表转发接收到的报文,如果报文的目的地址为设备1200的地址,则将该报文上送至CPU(如中央处理器12011)处理;如果报文的目的地址不是设备1200的地址,则根据该目的地址从转发表中查找到该目的地址对应的下一跳和出接口,将该报文转发到该目的地址对应的出接口。其中,上行报文的处理包括:报文入接口的处理,转发表查找;下行报文的处理:转发表查找等等。
物理接口卡12033用于实现物理层的对接功能,原始的流量由此进入接口板12030,以及处理后的报文从该物理接口卡12033发出。物理接口卡12033也称为子卡,可安装在接口板12030上,负责将光电信号转换为报文并对报文进行合法性检查后转发给网络处理器12032处理。在一些实施例中,中央处理器也可执行网络处理器12032的功能,比如基于通用CPU实现软件转发,从而物理接口卡12033中不需要网络处理器12032。
可选地,设备1200包括多个接口板,例如设备1200还包括接口板12040,接口板12040包括:中央处理器12041、网络处理器12042、转发表项存储器12044和物理接口卡12043。
可选地,设备1200还包括交换网板12020。交换网板12020也可以称为交换网板单元(switch fabric unit,SFU)。在网络设备有多个接口板12030的情况下,交换网板12020用于完成各接口板之间的数据交换。例如,接口板12030和接口板12040之间可以通过交换网板12020通信。
主控板12010和接口板12030耦合。例如。主控板12010、接口板12030和接口板12040,以及交换网板12020之间通过系统总线与系统背板相连实现互通。在一种可能的实现方式中,主控板12010和接口板12030之间建立进程间通信协议(inter-processcommunication,IPC)通道,主控板12010和接口板12030之间通过IPC通道进行通信。
在逻辑上,设备1200包括控制面和转发面,控制面包括主控板12010和中央处理器12031,转发面包括执行转发的各个组件,比如转发表项存储器12034、物理接口卡12033和网络处理器12032。控制面执行路由器、生成转发表、处理信令和协议报文、配置与维护设备的状态等功能,控制面将生成的转发表下发给转发面,在转发面,网络处理器12032基于控制面下发的转发表对物理接口卡12033收到的报文查表转发。控制面下发的转发表可以保存在转发表项存储器12034中。在有些实施例中,控制面和转发面可以完全分离,不在同一设备上。
在转发节点采用设备1200实现的情况下,在一些实施例中,附图10所示的网络设备600中的收发模块相当于设备1200中的物理接口卡12033;网络设备600的处理模块相当于网络处理器12032、中央处理器12031或中央处理器12011。
应理解,本申请实施例中接口板12040上的操作与接口板12030的操作一致,为了简洁,不再赘述。应理解,本实施例的设备1200可对应于上述各个方法实施例中的任一转发节点,该设备1200中的主控板12010、接口板12030和/或12040可以实现上述各个方法实施例中的任一转发节点所具有的功能和/或所实施的各种步骤,为了简洁,在此不再赘述。
值得说明的是,主控板可能有一块或多块,有多块的时候可以包括主用主控板和备用主控板。接口板可能有一块或多块,网络设备的数据处理能力越强,提供的接口板越多。接口板上的物理接口卡也可以有一块或多块。交换网板可能没有,也可能有一块或多块,有多块的时候可以共同实现负荷分担冗余备份。在集中式转发架构下,网络设备可以不需要交换网板,接口板承担整个系统的业务数据的处理功能。在分布式转发架构下,网络设备可以有至少一块交换网板,通过交换网板实现多块接口板之间的数据交换,提供大容量的数据交换和处理能力。所以,分布式架构的网络设备的数据接入和处理能力要大于集中式架构的设备。可选地,网络设备的形态也可以是只有一块板卡,即没有交换网板,接口板和主控板的功能集成在该一块板卡上,此时接口板上的中央处理器和主控板上的中央处理器在该一块板卡上可以合并为一个中央处理器,执行两者叠加后的功能,这种形态设备的数据交换和处理能力较低(例如,低端交换机或路由器等网络设备)。具体采用哪种架构,取决于具体的组网部署场景,此处不做任何限定。
在另一些实施例中,本申请实施例还提供了一种报文转发系统。如图13所示,该报文转发系统1300包括第一转发节点1301、第二转发节点1302以及第三转发节点1303。第一转发节点1301为IPv6网络的边缘节点,第二转发节点1302位于IPv6网络,第三转发节点1303位于IPv4网络;
第三转发节点1303用于:向第一转发节点发送第一报文,第一报文为IPv4报文;
第一转发节点1301用于:接收第一报文,基于第一报文生成第二报文,并向第二转发节点发送第二报文,第二报文为IPv6报文;
第二转发节点1302用于:接收第二报文,并在确定当前不能继续转发第二报文,且第二报文具备IPv4报文头的情况下,基于第二报文生成第一控制消息,第一控制消息为IPv6报文,且第一控制消息用于通告第二转发节点转发第二报文的情况;
第一转发节点1301还用于:接收第一控制消息,当第一转发节点确定第二转发节点不具备IPv4地址时,基于第一控制消息生成第二控制消息,并向第三转发节点发送第二控制消息,第二控制消息为IPv4报文,且第二控制报文携带第二转发节点的IPv6地址;
第三转发节点1303还用于:接收第二控制消息,基于第二控制消息确定第二转发节点转发第一报文的情况。
上述报文转发系统各个转发节点的详细功能可以参考图6所示的实施例,在此不再赘述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例中描述的各方法步骤和模块,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各实施例的步骤及组成。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、设备和模块的具体工作过程,可以参见前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,该模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、设备或模块的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
该作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请实施例方案的目的。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以是两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
该集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例中方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请中术语“第一”“第二”等字样用于对作用和功能基本相同的相同项或相似项进行区分,应理解,“第一”、“第二”之间不具有逻辑或时序上的依赖关系,也不对数量和执行顺序进行限定。还应理解,尽管以下描述使用术语第一、第二等来描述各种元素,但这些元素不应受术语的限制。这些术语只是用于将一元素与另一元素区别分开。例如,在不脱离各种示例的范围的情况下,第一信息可以被称为第二信息,并且类似地,第二信息可以被称为第一信息。第一信息和第二信息都可以是信息,并且在某些情况下,可以是单独且不同的信息。
本申请中术语“至少一个”的含义是指一个或多个,本申请中术语“多个”的含义是指两个或两个以上。本文中术语“系统”和“网络”经常可互换使用。
还应理解,术语“若”可被解释为意指“当...时”(“when”或“upon”)或“响应于确定”或“响应于检测到”。类似地,根据上下文,短语“若确定...”或“若检测到[所陈述的条件或事件]”可被解释为意指“在确定...时”或“响应于确定...”或“在检测到[所陈述的条件或事件]时”或“响应于检测到[所陈述的条件或事件]”。
以上描述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机程序指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本申请实施例中的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,该计算机程序指令可以从一个网站站点、计算机、服务器或数据中心通过有线或无线方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如软盘、硬盘、磁带)、光介质(例如,数字视频光盘(digitalvideo disc,DVD)、或者半导体介质(例如固态硬盘)等。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上描述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (36)

1.一种报文转发方法,其特征在于,所述方法应用于报文转发系统,所述报文转发系统包括第一转发节点、第二转发节点和第三转发节点,所述第一转发节点为第六代网络协议IPv6网络的边缘节点,所述第二转发节点位于所述IPv6网络,所述第三转发节点位于第四代网络协议IPv4网络;所述方法包括:
所述第一转发节点接收所述第三转发节点发送的第一报文,所述第一报文为IPv4报文;
所述第一转发节点基于所述第一报文生成第二报文,并向所述第二转发节点发送所述第二报文,所述第二报文为IPv6报文;
所述第一转发节点接收所述第二转发节点发送的第一控制消息,所述第一控制消息为IPv6报文,所述第一控制消息用于通告所述第二转发节点转发所述第二报文的情况;
当所述第一转发节点确定所述第二转发节点不具备IPv4地址时,基于所述第一控制消息生成第二控制消息,并向所述第三转发节点发送所述第二控制消息,所述第二控制消息为IPv4报文,且所述第二控制报文携带所述第二转发节点的IPv6地址。
2.如权利要求1所述的方法,其特征在于,所述第一控制消息携带IPv6专用网络标识,所述IPv6专用网络标识指示所述IPv6网络中的中间节点没有配置IPv4地址;
所述第一转发节点确定所述第二转发节点不具备IPv4地址,包括:
所述第一转发节点解析所述第一控制消息,得到所述IPv6专用网络标识;
所述第一转发节点基于所述IPv6专用网络标识确定所述第二转发节点不具备IPv4地址。
3.如权利要求2所述的方法,其特征在于,所述第一控制消息为网络控制消息协议ICMP报文;
所述第一控制消息包括第一扩展对象,所述第一扩展对象携带所述IPv6专用网络标识,或者,所述第一控制消息包括第一ICMP报文头,所述第一ICMP报文头携带所述IPv6专用网络标识。
4.如权利要求1所述的方法,其特征在于,所述第一转发节点确定所述第二转发节点不具备IPv4地址,包括:
所述第一转发节点获取本地存储的IPv6专用网络标识,所述IPv6专用网络标识指示所述IPv6网络中的中间节点没有配置IPv4地址;
所述第一转发节点基于所述IPv6专用网络标识确定所述第二转发节点不具备IPv4地址。
5.如权利要求1-4任一所述的方法,其特征在于,所述第一控制消息携带所述第二转发节点的IPv6地址;
所述第一转发节点基于所述第一控制消息生成第二控制消息,包括:
所述第一转发节点从所述第一控制消息中获取所述第二转发节点的IPv6地址,以生成所述第二控制消息。
6.如权利要求5所述的方法,其特征在于,所述第一控制消息为网络控制消息协议ICMP报文,且所述第一控制消息包括第二扩展对象,所述第二扩展对象携带所述第二转发节点的IPv6地址;
所述第一转发节点从所述第一控制消息中获取所述第二转发节点的IPv6地址,包括:
所述第一转发节点从所述第二扩展对象中获取所述第二转发节点的IPv6地址。
7.如权利要求5所述的方法,其特征在于,所述第一控制消息为网络控制消息协议ICMP报文,且所述第一控制消息包括第二ICMP报文头,所述第二ICMP报文头携带所述第二转发节点的IPv6地址;
所述第一转发节点从所述第一控制消息中获取所述第二转发节点的IPv6地址,包括:
所述第一转发节点从所述第二ICMP报文头中获取所述第二转发节点的IPv6地址。
8.如权利要求5所述的方法,其特征在于,所述第一控制消息包括第一IPv6报文头,所述第一IPv6报文头携带所述第二转发节点的IPv6地址;
所述第一转发节点从所述第一控制消息中获取所述第二转发节点的IPv6地址,包括:
所述第一转发节点从所述第一IPv6报文头中获取所述第二转发节点的IPv6地址。
9.如权利要求1-4任一所述的方法,其特征在于,所述第一转发节点本地存储有所述第二转发节点IPv6地址;
所述第一转发节点基于所述第一控制消息生成第二控制消息,包括:
所述第一转发节点获取本地存储的所述第二转发节点IPv6地址,以基于所述第一控制消息和所述第二转发节点的IPv6地址,生成所述第二控制消息。
10.如权利要求1-9任一所述的方法,其特征在于,所述第二控制消息为网络控制消息协议ICMP报文;
所述第二控制消息包括第三扩展对象,所述第三扩展对象携带所述第二转发节点的IPv6地址,或者,所述第二控制消息包括第三ICMP报文头,所述第三ICMP报文头携带所述第二转发节点的IPv6地址。
11.如权利要求1-10任一所述的方法,其特征在于,所述第二控制消息还携带IPv6专用网络标识,所述IPv6专用网络标识指示所述IPv6网络中的中间节点没有配置IPv4地址。
12.如权利要求11所述的方法,其特征在于,所述第二控制消息为网络控制消息协议ICMP报文;
所述第二控制消息包括第四扩展对象,所述第四扩展对象携带所述IPv6专用网络标识,或者,所述第二控制消息包括第四ICMP报文头,所述第四ICMP报文头携带所述IPv6专用网络标识。
13.如权利要求1-12任一所述的方法,其特征在于,所述第二转发节点满足以下两种情况之一:
所述第二转发节点所在的所述IPv6网络中的中间节点没有配置IPv4地址;
或者,所述第二转发节点配置有IPv4地址,但所述第二转发节点的IPv4地址不对外使用。
14.如权利要求1-13任一所述的方法,其特征在于,所述第一报文和所述第二报文均携带生存时间TTL,所述第一控制消息指示所述第二报文到达所述第二转发节点时所述第二报文的TTL超时。
15.如权利要求14所述的方法,其特征在于,所述第一报文和所述第二报文为路径追踪报文。
16.一种报文转发方法,其特征在于,所述方法应用于报文转发系统,所述报文转发系统包括第一转发节点、第二转发节点和第三转发节点,所述第一转发节点为第六代网络协议IPv6网络的边缘节点,所述第二转发节点位于所述IPv6网络,所述第三转发节点位于第四代网络协议IPv4网络;所述方法包括:
所述第三转发节点在向所述第一转发节点发送第一报文后,接收所述第一转发节点发送的第二控制消息,所述第二控制消息为IPv4报文且所述第二控制消息携带所述第二转发节点的IPv6地址,所述第一报文为IPv4报文;
所述第三转发节点基于所述第二控制消息确定所述第二转发节点转发所述第一报文的情况。
17.如权利要求16所述的方法,其特征在于,所述第三转发节点基于所述第二控制消息确定所述第二转发节点转发所述第一报文的情况之后,所述方法还包括:
所述第三转发节点解析所述第二控制消息,得到所述第二转发节点的IPv6地址;
所述第三转发节点显示所述第二转发节点的IPv6地址。
18.如权利要求16或17所述的方法,其特征在于,所述第二控制消息为网络控制消息协议ICMP报文;
所述第二网络控制消息包括第三扩展对象,所述第三扩展对象携带所述第二转发节点的IPv6地址,或者,所述第二控制消息包括第三ICMP报文头,所述第三ICMP报文头携带所述第二转发节点的IPv6地址。
19.如权利要求16-18任一所述的方法,其特征在于,所述第三转发节点基于所述第二控制消息确定所述第一转发节点转发所述第一报文的情况之后,所述方法还包括:
所述第三转发节点确定IPv6专用网络标识,所述IPv6专用网络标识指示所述IPv6网络中的中间节点没有配置IPv4地址;
所述第三转发节点显示所述IPv6专用网络标识。
20.如权利要求19所述的方法,其特征在于,所述第三转发节点确定IPv6专用网络标识,包括:
所述第三转发节点解析所述第二控制消息,以得到所述IPv6专用网络标识。
21.如权利要求20所述的方法,其特征在于,所述第二控制消息为网络控制消息协议ICMP报文;
所述第二网络控制消息包括第四扩展对象,所述第四扩展对象携带所述IPv6专用网络标识,或者,所述第二控制消息包括第四ICMP报文头,所述第四ICMP报文头携带所述IPv6专用网络标识。
22.如权利要求16-21任一所述的方法,其特征在于,所述第二控制消息指示所述第一报文到达所述第二转发节点时,所述第一报文的生存时间TTL超时。
23.如权利要求22所述的方法,其特征在于,所述第一报文为路径追踪报文。
24.一种报文转发方法,其特征在于,所述方法应用于报文转发系统,所述报文转发系统包括第一转发节点和第二转发节点,所述第一转发节点为第六代网络协议IPv6网络的边缘节点,所述第二转发节点位于所述IPv6网络;所述方法包括:
所述第二转发节点接收所述第一转发节点发送的第二报文,所述第二报文为IPv6报文;
当所述第二转发节点确定当前不能继续转发所述第二报文,且确定所述第二报文具备IPv4报文头时,基于所述第二报文生成第一控制消息,所述第一控制消息指示所述第二转发节点转发所述第二报文的情况,且所述第一控制消息指示所述第二转发节点不具备IPv4地址;
所述第二转发节点向所述第一转发节点发送所述第一控制消息。
25.如权利要求24所述的方法,其特征在于,所述第一控制消息携带IPv6专用网络标识,所述IPv6专用网络标识指示所述IPv6网络中的中间节点没有配置IPv4地址。
26.如权利要求25所述的方法,其特征在于,所述第一控制消息为网络控制消息协议ICMP报文;
所述第一网络控制消息包括第一扩展对象,所述第一扩展对象携带所述IPv6专用网络标识,或者,所述第一控制消息包括第一ICMP报文头,所述第一ICMP报文头携带所述IPv6专用网络标识。
27.如权利要求24-26任一所述的方法,其特征在于,所述第一控制消息携带所述第二转发节点的IPv6地址。
28.如权利要求27所述的方法,其特征在于,所述第一控制消息为网络控制消息协议ICMP报文;
所述第一网络控制消息包括第二扩展对象,所述第二扩展对象携带所述第二转发节点的IPv6地址,或者,所述第一控制消息包括第二ICMP报文头,所述第二ICMP报文头携带所述第二转发节点的IPv6地址。
29.如权利要求27所述的方法,其特征在于,所述第一控制消息包括第一IPv6报文头,所述第一IPv6报文头携带所述第二转发节点的IPv6地址。
30.如权利要求24-29任一所述的方法,其特征在于,所述第二转发节点确定当前不能继续转发所述第二报文,包括:
当所述第二报文的生存时间TTL为1时,所述第二转发节点确定当前不能继续转发所述第二报文。
31.如权利要求30所述的方法,其特征在于,所述第二报文为路径追踪报文。
32.一种报文转发系统,其特征在于,所述报文转发系统包括第一转发节点、第二转发节点和第三转发节点,所述第一转发节点为第六代网络协议IPv6网络的边缘节点,所述第二转发节点位于所述IPv6网络,所述第三转发节点位于第四代网络协议IPv4网络;
所述第三转发节点用于:向所述第一转发节点发送第一报文,所述第一报文为IPv4报文;
所述第一转发节点用于:接收所述第一报文,基于所述第一报文生成第二报文,并向所述第二转发节点发送所述第二报文,所述第二报文为IPv6报文;
所述第二转发节点用于:接收所述第二报文,并在确定当前不能继续转发所述第二报文,且所述第二报文具备IPv4报文头的情况下,基于所述第二报文生成第一控制消息,所述第一控制消息为IPv6报文,且所述第一控制消息用于通告所述第二转发节点转发所述第二报文的情况;
所述第一转发节点还用于:接收所述第一控制消息,当所述第一转发节点确定所述第二转发节点不具备IPv4地址时,基于所述第一控制消息生成第二控制消息,并向所述第三转发节点发送所述第二控制消息,所述第二控制消息为IPv4报文,且所述第二控制报文携带所述第二转发节点的IPv6地址;
所述第三转发节点还用于:接收所述第二控制消息,基于所述第二控制消息确定所述第二转发节点转发所述第一报文的情况。
33.一种网络设备,其特征在于,所述网络设备包括存储器和处理器;
所述存储器用于存储程序指令;
所述处理器被配置为调用所述存储器中存储的程序,以使得所述网络设备执行如权利要求1-15任一项所述的方法,或者执行如权利要求16-23任一项所述的方法,或者执行权利要求24-31任一项所述的方法。
34.一种网络设备,其特征在于,所述网络设备包括收发模块和处理模块:
所述收发模块用于执行如权利要求1-15任一所述方法中收发相关的操作,所述处理模块用于执行如权利要求1-15任一所述方法中除所述收发相关的操作之外的操作;或者,
所述收发模块用于执行如权利要求16-23任一所述方法中收发相关的操作,所述处理模块用于执行如权利要求16-23任一所述方法中除所述收发相关的操作之外的操作;或者,
所述收发模块用于执行如权利要求24-31任一所述方法中收发相关的操作,所述处理模块用于执行如权利要求24-31任一所述方法中除所述收发相关的操作之外的操作。
35.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当所述指令在处理器上运行时,实现权利要求1-15任一项所述的方法,或者实现权利要求16-23任一项所述的方法,或者实现权利要求24-31任一项所述的方法。
36.一种计算机程序产品,其特征在于,所述计算机程序产品包含指令,所述指令在处理器上运行时,实现权利要求1-15任一项所述的方法,或者实现权利要求16-23任一项所述的方法,或者实现权利要求24-31任一项所述的方法。
CN202210818034.6A 2022-07-12 2022-07-12 报文转发方法、系统、网络设备、存储介质及程序产品 Pending CN117440057A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202210818034.6A CN117440057A (zh) 2022-07-12 2022-07-12 报文转发方法、系统、网络设备、存储介质及程序产品
PCT/CN2023/089293 WO2024011982A1 (zh) 2022-07-12 2023-04-19 报文转发方法、系统、网络设备、存储介质及程序产品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210818034.6A CN117440057A (zh) 2022-07-12 2022-07-12 报文转发方法、系统、网络设备、存储介质及程序产品

Publications (1)

Publication Number Publication Date
CN117440057A true CN117440057A (zh) 2024-01-23

Family

ID=89535377

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210818034.6A Pending CN117440057A (zh) 2022-07-12 2022-07-12 报文转发方法、系统、网络设备、存储介质及程序产品

Country Status (2)

Country Link
CN (1) CN117440057A (zh)
WO (1) WO2024011982A1 (zh)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5338783B2 (ja) * 2010-09-30 2013-11-13 ブラザー工業株式会社 情報通信システム、ノード装置、情報通信方法及びプログラム
CN102710802B (zh) * 2012-05-07 2017-10-17 中兴通讯股份有限公司 IPv6配置信息提供装置及获取方法
US9276841B2 (en) * 2014-01-31 2016-03-01 Edgecast Networks, Inc. Adapting network control messaging for anycast reliant platforms
CN112019433B (zh) * 2019-05-29 2022-01-14 华为技术有限公司 一种报文转发方法和装置
CN112751763A (zh) * 2019-10-30 2021-05-04 北京华为数字技术有限公司 一种报文转发方法、设备、存储介质及系统
CN114513485A (zh) * 2020-11-16 2022-05-17 华为技术有限公司 获取映射规则的方法、装置、设备、系统及可读存储介质

Also Published As

Publication number Publication date
WO2024011982A1 (zh) 2024-01-18

Similar Documents

Publication Publication Date Title
US20230078123A1 (en) Method for Forwarding Packet in SRV6 Service Function Chain and SF Device
US20220255857A1 (en) Packet Processing Method, Network Node, and System
US20230137778A1 (en) Packet Sending Method and Apparatus, Network Device, System, and Storage Medium
EP4149058A1 (en) Network performance measurement method, apparatus, device and system, and storage medium
EP4221006A1 (en) Topology information publishing method, network topology collecting method, and device
US11757775B2 (en) Message generation method and apparatus, and message processing method and apparatus
US11943099B2 (en) Capability notification method and related device
CN114697403A (zh) 业务报文的处理方法、装置、设备、系统及存储介质
US11909650B2 (en) Internet protocol operations and management option
US20230216792A1 (en) Method for Generating Routing Information, Method for Sending Location Information, Method for Forwarding Packet, and Device
CN114257494A (zh) 一种实现业务路径检测的方法、设备和系统
CN113765800A (zh) 传输报文的方法、装置、系统、设备及可读存储介质
CN117440057A (zh) 报文转发方法、系统、网络设备、存储介质及程序产品
CN115914087A (zh) 报文转发方法、装置、设备、系统及存储介质
CN116962161A (zh) 路径检测方法、装置、系统及计算机可读存储介质
CN115242699A (zh) 报文传输方法、切片生成方法、装置及系统
CN114006854A (zh) 通信方法及网络设备
CN114629834B (zh) 通信方法及装置
CN114025025B (zh) SRv6 SID的发布方法及网络设备
CN114697218B (zh) 网络管理方法和设备
EP4369690A1 (en) Method and apparatus for transmitting network layer readable information, device, system, and medium
CN114422435A (zh) 接口地址的通告方法、网络设备可达性的校验方法及设备
CN116074235A (zh) 报文处理方法、装置及系统
CN117955845A (zh) 拓扑信息的上报方法、装置、设备及存储介质
CN114915538A (zh) 一种故障检测方法、网络设备及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication