CN115622930A - 一种报文处理方法以及相关装置 - Google Patents
一种报文处理方法以及相关装置 Download PDFInfo
- Publication number
- CN115622930A CN115622930A CN202110800586.XA CN202110800586A CN115622930A CN 115622930 A CN115622930 A CN 115622930A CN 202110800586 A CN202110800586 A CN 202110800586A CN 115622930 A CN115622930 A CN 115622930A
- Authority
- CN
- China
- Prior art keywords
- sid
- node
- field
- packet
- message
- 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
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 16
- 238000000034 method Methods 0.000 claims description 91
- 238000004891 communication Methods 0.000 claims description 33
- 230000015654 memory Effects 0.000 claims description 28
- 238000004590 computer program Methods 0.000 claims description 6
- 230000006870 function Effects 0.000 description 44
- 238000010586 diagram Methods 0.000 description 33
- 238000012545 processing Methods 0.000 description 32
- 101100256921 Ajellomyces capsulatus SID3 gene Proteins 0.000 description 24
- 101100366400 Schizosaccharomyces pombe (strain 972 / ATCC 24843) spg1 gene Proteins 0.000 description 24
- 101000840469 Arabidopsis thaliana Isochorismate synthase 1, chloroplastic Proteins 0.000 description 18
- 230000008569 process Effects 0.000 description 18
- 101150096768 sid4 gene Proteins 0.000 description 17
- 101100365745 Ajellomyces capsulatus SID5 gene Proteins 0.000 description 12
- 101100064323 Arabidopsis thaliana DTX47 gene Proteins 0.000 description 10
- 101150026676 SID1 gene Proteins 0.000 description 10
- 230000008878 coupling Effects 0.000 description 6
- 238000010168 coupling process Methods 0.000 description 6
- 238000005859 coupling reaction Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 101100268668 Caenorhabditis elegans acc-2 gene Proteins 0.000 description 5
- 101100256918 Caenorhabditis elegans sid-2 gene Proteins 0.000 description 5
- 101100373202 Rattus norvegicus Cx3cl1 gene Proteins 0.000 description 5
- 238000011144 upstream manufacturing Methods 0.000 description 5
- 101100365746 Caenorhabditis elegans sid-5 gene Proteins 0.000 description 4
- 238000005538 encapsulation Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 101100268670 Caenorhabditis elegans acc-3 gene Proteins 0.000 description 2
- 101100268671 Caenorhabditis elegans acc-4 gene Proteins 0.000 description 2
- 101100256916 Caenorhabditis elegans sid-1 gene Proteins 0.000 description 2
- 101100256922 Caenorhabditis elegans sid-3 gene Proteins 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 230000002411 adverse Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- RGNPBRKPHBKNKX-UHFFFAOYSA-N hexaflumuron Chemical compound C1=C(Cl)C(OC(F)(F)C(F)F)=C(Cl)C=C1NC(=O)NC(=O)C1=C(F)C=CC=C1F RGNPBRKPHBKNKX-UHFFFAOYSA-N 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/34—Source routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/14—Routing performance; Theoretical aspects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/28—Routing or path finding of packets in data switching networks using route fault recovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/06—Notations for structuring of protocol data, e.g. abstract syntax notation one [ASN.1]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例公开了一种报文处理方法以及相关装置。本申请实施例中,通过特殊的字段标记哪些段标识SID允许被绕过,哪些SID不允许被绕过。使得在该SID不可达的情况下,在确认该SID允许被绕过时,才绕过该SID,直接跳转至后续SID转发报文。进而确保该报文必须经过该SID对应的具有重要功能的中间节点。以保障业务的正常执行。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种报文处理方法以及相关装置。
背景技术
在业务报文转发过程中,段路由(segment routing,SR)节点基于互联网协议第6版-段路由(Internet Protocol Version6-Segment Routing,IPv6 SR或SRv6)的段路由流量工程策略(segment routing traffic engineering policy,SR-TE Policy)提供的灵活选择转发路径的方式,可满足用户不同的转发需求。当源节点与目的节点之间存在多条转发路径时,合理利用SR-TE Policy选择转发路径,不仅方便管理人员对网络进行管理和规划,还可有效地减轻网络设备的转发压力。
为了解决与拓扑无关的无环路备份(topology independent-loop freealternate,TI-LFA)快速重路由(fast reroute,FRR)保护失效问题,需要由故障的中间节点(midpoint)的上游节点代替该故障的中间节点完成转发处理,从而绕过故障的中间节点,实现SRv6中间节点故障的保护。上述保护方式称为SRv6中间节点保护(SRv6 TE FRR)技术。
但是,某些中间节点具有重要功能,例如该中间节点负责安全保护或者负责计费。如果报文绕过上述具有重要功能的中间节点对应的SID,则对业务产生严重不良影响。
发明内容
第一方面,本申请实施例提出一种报文处理方法,包括:
第一节点获取第一报文,所述第一报文包括依次排列的多个段标识(segment id,SID),所述多个段标识用于指示所述第一报文的转发路径,所述多个SID包括第一SID和第二SID,所述第一SID排列在所述第二SID之前。所述第一SID排列在所述第二SID之前,可以是指报文的转发路径需要先经过第一SID,再经过第二SID。或者,剩余段(segment left,SL)指针首先指向第一SID,其次再指向第二SID。或者,第一报文首先到达第一SID对应的节点,第一报文其次到达第二SID对应的节点;
所述第一节点确定所述第一SID不可达。例如,当第一节点检测第一SID故障时,第一节点确定第一SID不可达。或者,第一节点根据第一SID查找路由失败时,第一节点确定第一SID不可达。
所述第一节点根据所述第一SID对应的第一字段,判断所述第一SID是否允许被绕过,所述第一字段包括在所述第一报文中;
当所述第一SID允许被绕过时,所述第一节点确定所述第二SID可达;
所述第一节点根据所述第二SID转发所述第一报文。
本申请实施例中,通过特殊的字段标记哪些段标识SID允许被绕过,哪些SID不允许被绕过。使得在该SID不可达的情况下,在确认该SID允许被绕过时,才绕过该SID,直接跳转至后续SID转发报文,进而确保该报文必须经过该SID对应的具有重要功能的中间节点或中间链路。以保障业务的正常执行。
在一种可能的实现方式中,当所述第一SID不允许被绕过时,则丢弃所述第一报文。以避免不正常的业务继续进行。
在一种可能的实现方式中,所述第一字段位于所述第一报文的分段路由头(segment routing header,SRH)中。
在一种可能的实现方式中,所述第一字段包括在所述SRH中可选的标记长度值Optional TLV字段中,其中,所述Optional TLV中的值部分指示一个或多个SID是否允许被绕过。
例如:该optional TLV中的值部分包括8个比特位,当该SRH包括5个SID时,该8个比特位中的5个比特位分别对应该5个SID。当比特位的值为“1”,则该比特位对应的SID不允许被绕过;当比特位的值为“0”,则该比特位对应的SID允许被绕过。可以理解的是,当比特位的值为“1”,则该比特位对应的SID不允许被绕过;当比特位的值为空,则该比特位对应的SID允许被绕过。
在一种可能的实现方式中,所述第一字段位于所述第一SID中。即每个SID中包括一个字段,该字段指示该SID是否允许被绕过。
在一种可能的实现方式中,所述第一字段位于所述第一SID的参数args字段中。例如该第一字段位于第一SID的args字段中的任意一个未被使用的比特位。
在一种可能的实现方式中,所述第一字段为所述第一SID的参数args字段中的最后一个比特位。示例性的,当比特位的值为“1”,则该比特位对应的SID不允许被绕过;当比特位的值为“0”,则该比特位对应的SID允许被绕过。
一种可能的实现方式中,第一报文包括至少一个段列表(segment list),该段列表包括第一SID和第二SID。
在一种可能的实现方式中,第一报文包括多个段列表,其中,该多个段列表包括第一段列表和第二段列表。第一段列表包括第一SID,第二段列表包括第二SID。其中,第一段列表排列顺序在第二段列表之前,第一报文首先到达第一段列表中SID对应的节点,其次到达第二段列表中SID对应的节点。
在一种可能的实现方式中,所述第一报文包括外层互联网协议第6版IPv6头和内层IPv6头,所述第一段列表包括在所述外层IPv6头中,所述第二段列表包括在所述内层IPv6头中。
在一种可能的实现方式中,针对业务链(service function chain,SFC)场景。所述第一SID或所述第二SID包括业务链SFC路径信息。示例性的,在业务分类节点(Serviceclassifier,SC)中,SC获取数据报文后,对该数据报文进行封装处理,生成第一报文。第一报文中包括第一SID和第二SID。第一SID或第二SID包括业务链路径信息,使得第一报文沿着业务链路径进行转发。
第二方面,本申请实施例提出一种报文处理方法,包括:
第二节点对数据报文进行封装处理,以得到第一报文,所述第一报文包括依次排列的多个段标识SID,所述多个段标识用于指示所述第一报文的转发路径,所述多个SID包括第一SID和第二SID,所述第一SID排列在所述第二SID之前,
其中,所述第一报文包括所述第一SID对应的第一字段,所述第一字段用于指示所述第一SID是否被绕过。
具体的,第二节点可以根据静态配置(例如命令行配置)获知哪些SID允许被绕过,哪些SID不允许被绕过。第二节点也可以通过接收来自控制器的控制报文获知哪些SID允许被绕过,哪些SID不允许被绕过。
本申请实施例中,通过特殊的字段标记哪些段标识SID允许被绕过,哪些SID不允许被绕过。使得在该SID不可达的情况下,在确认该SID允许被绕过时,才绕过该SID,直接跳转至后续SID转发报文,进而确保该报文必须经过该SID对应的具有重要功能的中间节点。以保障业务的正常执行。
在一种可能的实现方式中,所述第二节点接收来自控制器的控制报文,所述控制报文携带指示信息,所述指示信息用于指示所述第一SID是否允许被绕过;所述第二节点根据所述控制报文中的所述指示信息,确定所述第一字段的值。例如:控制节点中的指示信息指示第一节点不允许被绕过,则第二节点对数据报文进行封装处理,以得到第一报文。该第一报文中,第一字段的值为“1”。第一字段的值为“1”指示第一SID不允许被绕过。
在一种可能的实现方式中,控制报文为路径计算单元通信协议(PathComputation Element Communication Protocol,PCEP)报文,或者,控制报文为边界网关路由协议(Border Gateway Protocol,BGP)报文。
在一种可能的实现方式中,当所述控制报文为边界网关路由协议BGP报文时,所述指示信息位于所述控制报文中类型B的段-子标记长度值Type B Segment Sub-TLV中。
在一种可能的实现方式中,所述指示信息位于所述类型B的段-子标记长度值的标记Flags字段的未使用比特位中。
在一种可能的实现方式中,所述指示信息位于所述类型B的段-子标记长度值的标记Flags字段的保留字段中。
在一种可能的实现方式中,当所述控制报文为路径计算单元通信协议PCEP报文时,所述指示信息位于所述控制报文中互联网协议第6版段路由-显式路由对象子对象SRv6-ERO Subobject字段中。
在一种可能的实现方式中,所述指示信息位于所述SRv6-ERO Subobject字段的标记Flags字段的未使用比特位中。
在一种可能的实现方式中,所述指示信息位于SRv6-ERO Subobject字段的保留字段中。
第三方面,本申请实施例提出一种报文处理方法,包括:
控制器向第二节点发送控制报文,所述控制报文携带指示信息,所述指示信息用于指示第一SID是否允许被绕过,以使得所述第二节点根据所述指示信息对数据报文进行封装,所述第一报文的段列表中包括所述第一SID,所述第一报文还包括根据所述指示信息确定的第一字段,所述第一字段用于指示所述第一SID是否被绕过。
控制器可以向第二节点发送控制报文,该控制报文用于通知第二节点获知哪些SID允许被绕过,哪些SID不允许被绕过。
本申请实施例中,通过特殊的字段标记哪些段标识SID允许被绕过,哪些SID不允许被绕过。使得在该SID正常的情况下,携带该SID的报文的转发路径必须经过该SID,进而确保该报文必须经过该SID对应的具有重要功能的中间节点。以保障业务的正常执行。
在一种可能的实现方式中,所述控制报文为路径计算单元通信协议PCEP报文,或者,所述控制报文为边界网关路由协议BGP报文。
在一种可能的实现方式中,当所述控制报文为边界网关路由协议BGP报文时,所述指示信息位于所述控制报文中类型B的段-子标记长度值Type B Segment Sub-TLV中。
在一种可能的实现方式中,所述指示信息位于所述类型B的段-子标记长度值的标记Flags字段的未使用比特位中。
在一种可能的实现方式中,所述指示信息位于所述类型B的段-子标记长度值的保留字段中。
在一种可能的实现方式中,当所述控制报文为路径计算单元通信协议PCEP报文时,所述指示信息位于所述控制报文中互联网协议第6版段路由-显式路由对象子对象SRv6-ERO Subobject字段中。
在一种可能的实现方式中,所述指示信息位于所述SRv6-ERO Subobject字段的标记Flags字段的未使用比特位中。
在一种可能的实现方式中,所述指示信息位于SRv6-ERO Subobject字段的保留字段中。
第四方面,本申请实施例提出一种网络设备,包括:
收发模块,用于获取第一报文,所述第一报文包括依次排列的多个段标识SID,所述多个段标识用于指示所述第一报文的转发路径,所述多个SID包括第一SID和第二SID,所述第一SID排列在所述第二SID之前;
处理模块,用于确定所述第一SID不可达;
处理模块,还用于根据所述第一SID对应的第一字段,判断所述第一SID是否允许被绕过,所述第一字段包括在所述第一报文中;
处理模块,还用于当所述第一SID允许被绕过时,确定所述第二SID可达;
收发模块,还用于根据所述第二SID转发所述第一报文。
在一种可能的实现方式中,处理模块,还用于当所述第一SID不允许被绕过时,则丢弃所述第一报文。
在一种可能的实现方式中,所述第一字段位于所述第一报文的分段路由头SRH中。
在一种可能的实现方式中,所述第一字段包括在所述SRH中可选的标记长度值Optional TLV字段中,其中,所述Optional TLV中的值部分指示一个或多个SID是否允许被绕过。
在一种可能的实现方式中,所述第一字段位于所述第一SID中。
在一种可能的实现方式中,所述第一字段位于所述第一SID的参数args字段中。
在一种可能的实现方式中,所述第一字段为所述第一SID的参数args字段中的最后一个比特位。
在一种可能的实现方式中,所述第一报文至少包括一个段列表,其中,所述段列表包括所述第一SID和所述第二SID。
在一种可能的实现方式中,所述第一报文包括多个段列表,其中,所述多个段列表包括第一段列表和第二段列表,所述第一段列表包括所述第一SID,所述第二段列表包括所述第二SID。
在一种可能的实现方式中,所述第一报文包括外层互联网协议第6版IPv6头和内层IPv6头,所述第一段列表包括在所述外层IPv6头中,所述第二段列表包括在所述内层IPv6头中。
在一种可能的实现方式中,所述第一SID或所述第二SID包括业务链SFC路径信息。
第五方面,本申请实施例提出一种网络设备,包括:
处理模块,用于对数据报文进行封装处理,以得到第一报文,所述第一报文包括依次排列的多个段标识SID,所述多个段标识用于指示所述第一报文的转发路径,所述多个SID包括第一SID和第二SID,所述第一SID排列在所述第二SID之前,
其中,所述第一报文包括所述第一SID对应的第一字段,所述第一字段用于指示所述第一SID是否被绕过。
在一种可能的实现方式中,收发模块,用于接收来自控制器的控制报文,所述控制报文携带指示信息,所述指示信息用于指示所述第一SID是否允许被绕过;
处理模块,还用于根据所述控制报文中的所述指示信息,确定所述第一字段的值。
在一种可能的实现方式中,所述控制报文为路径计算单元通信协议PCEP报文,或者,所述控制报文为边界网关路由协议BGP报文。
在一种可能的实现方式中,当所述控制报文为边界网关路由协议BGP报文时,所述指示信息位于所述控制报文中类型B的段-子标记长度值Type B Segment Sub-TLV中。
在一种可能的实现方式中,所述指示信息位于所述类型B的段-子标记长度值的标记Flags字段的未使用比特位中。
在一种可能的实现方式中,所述指示信息位于所述类型B的段-子标记长度值的标记Flags字段的保留字段中。
在一种可能的实现方式中,当所述控制报文为路径计算单元通信协议PCEP报文时,所述指示信息位于所述控制报文中互联网协议第6版段路由-显式路由对象子对象SRv6-ERO Subobject字段中。
在一种可能的实现方式中,所述指示信息位于所述SRv6-ERO Subobject字段的标记Flags字段的未使用比特位中。
在一种可能的实现方式中,所述指示信息位于SRv6-ERO Subobject字段的保留字段中。
第六方面,本申请实施例提出一种网络设备,包括:
收发模块,用于向第二节点发送控制报文,所述控制报文携带指示信息,所述指示信息用于指示第一SID是否允许被绕过,以使得所述第二节点根据所述指示信息对数据报文进行封装,所述第一报文的段列表中包括所述第一SID,所述第一报文还包括根据所述指示信息确定的第一字段,所述第一字段用于指示所述第一SID是否被绕过。
在一种可能的实现方式中,所述控制报文为路径计算单元通信协议PCEP报文,或者,所述控制报文为边界网关路由协议BGP报文。
在一种可能的实现方式中,当所述控制报文为边界网关路由协议BGP报文时,所述指示信息位于所述控制报文中类型B的段-子标记长度值Type B Segment Sub-TLV中。
在一种可能的实现方式中,所述指示信息位于所述类型B的段-子标记长度值的标记Flags字段的未使用比特位中。
在一种可能的实现方式中,所述指示信息位于所述类型B的段-子标记长度值的保留字段中。
在一种可能的实现方式中,当所述控制报文为路径计算单元通信协议PCEP报文时,所述指示信息位于所述控制报文中互联网协议第6版段路由-显式路由对象子对象SRv6-ERO Subobject字段中。
在一种可能的实现方式中,所述指示信息位于所述SRv6-ERO Subobject字段的标记Flags字段的未使用比特位中。
在一种可能的实现方式中,所述指示信息位于SRv6-ERO Subobject字段的保留字段中。
第七方面,提供一种网络设备,包括处理器和通信接口;处理器用于执行指令,使得网络设备执行如第一方面任一实现方式的方法。
第八方面,提供一种网络设备,其特征在于,包括处理器和通信接口;处理器用于执行指令,使得网络设备执行如第二方面任一实现方式的方法。
第九方面,提供一种网络设备,其特征在于,包括处理器和通信接口;处理器用于执行指令,使得网络设备执行如第三方面任一实现方式的方法。
第十方面,提供一种通信系统,网络系统包括如第四方面的网络设备、如第五方面的网络设备和如第六方面的网络设备。
第十一方面,提供一种通信系统,网络系统包括如第七方面的网络设备、如第八方面的网络设备和如第九方面的网络设备。
本申请第十二方面提供一种计算机存储介质,该计算机存储介质可以是非易失性的;该计算机存储介质中存储有计算机可读指令,当该计算机可读指令被处理器执行时实现第一方面、第二方面、或第三方面中任意一种实现方式中的方法。
本申请第十三方面提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行如第一方面、第二方面、或第三方面中任意一种实现方式中的方法。
本申请第十四方面提供一种芯片系统,该芯片系统包括处理器,用于支持网络设备实现上述方面中所涉及的功能,例如,发送或处理上述方法中所涉及的数据和/或信息。在一种可能的设计中,芯片系统还包括存储器,存储器,用于保存网络设备必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包括芯片和其他分立器件。
附图说明
图1为中间节点发生故障的通信系统的示意图;
图2为本申请实施例中报文格式的示例图;
图3a为段列表字段的示意图;
图3b为段列表字段的示意图;
图4为SID字段的示意图;
图5为ISIS协议的场景示意图;
图6为本申请实施例提出的一种报文处理方法的实施例示意图;
图7为类型B的段-子标记长度值的结构示意图;
图8为Flags字段的结构示意图;
图9为互联网协议第6版段路由-显式路由对象子对象的结构示意图;
图10为本申请实施例提出的一种应用场景示意图;
图11为本申请实施例中一种报文头的结构示意图;
图12为本申请实施例提出的又一种场景示意图;
图13为本申请实施例中一种报文头的结构示意图;
图14为本申请实施例提出的又一种场景示意图;
图15为本申请实施例提供的一种网络设备1500的结构示意图;
图16为本申请实施例提供的一种网络设备1600的结构示意图;
图17为本申请实施例提供的一种网络设备1700的结构示意图;
图18为本申请实施例提出的一种网络系统1800示意图;
图19为本申请实施例提出的一种网络系统1900示意图。
具体实施方式
下面,对本申请实施例进行描述。显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。本领域普通技术人员可知,随着新应用场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的描述在适当情况下可以互换,以便使实施例能够以除了在本申请图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或模块。在本申请中出现的对步骤进行的命名或者编号,并不意味着必须按照命名或者编号所指示的时间/逻辑先后顺序执行方法流程中的步骤,已经命名或者编号的流程步骤可以根据要实现的技术目的变更执行顺序,只要能达到相同或者相类似的技术效果即可。本申请中所出现的单元的划分,是一种逻辑上的划分,实际应用中实现时可以有另外的划分方式,例如多个单元可以结合成或集成在另一个系统中,或一些特征可以忽略,或不执行,另外,所显示的或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元之间的间接耦合或通信连接可以是电性或其他类似的形式,本申请中均不作限定。并且,作为分离部件说明的单元或子单元可以是也可以不是物理上的分离,可以是也可以不是物理单元,或者可以分布到多个电路单元中,可以根据实际的需要选择其中的部分或全部单元来实现本申请方案的目的。
首先,介绍本申请实施例涉及的一些技术概念。
分段路由(segment routing,SR):是基于源路由的理念而设计的在网络中转发数据包的一种协议。SR将网络路径划分为一个个段,并且为这些段和网络节点分配分段标识(segment id,SID),通过对SID进行有序排列,可以得到段列表(SID List,在SR-MPLS中也称标签栈),SID List可以指示一条转发路径。通过SR技术,可以指定携带了SID List的数据包经过的节点以及路径,从而满足流量调优的要求。做一个类比,数据包可以比作行李,SR可以比作行李上贴的标签,如果要将行李从A地区发送到D地区,途径B地区和C地区,则可以在始发地A地区给行李贴上一个标签“先到B地区,再到C地区,最后到D地区”,这样一来,各个地区只需识别行李上的标签,依据行李的标签将行李从一个地区转发至另一个地区即可。在SR技术中,头节点会向数据包添加标签,中间节点可以根据标签转发至下一个节点,直至数据包到达目的节点。例如在数据包的包头中,插入<SID1,SID2,SID3>,则数据包packet会首先转发给SID1对应的节点,之后转发给SID2对应的节点,之后转发给SID3对应的节点。其中,SR-MPLS的中英文全称为分段路由多协议标签交换(segment routingmulti-protocol label switching)。
基于互联网协议第6版(Internet Protocol Version 6,IPv6)的分段路由(SRv6):是指将SR技术应用在IPv6网络中。使用IPv6地址(128bits)作为SID的表现形式。在转发数据包时,支持SRv6的网络设备会按照数据包中的目的地址((destination address,DA),查询本地段标识表(local sid table),当数据包的目的地址与本地段标识表中的任一SID最长匹配时,则按照本地段标识表中的SID相关的策略,执行该策略对应的操作,例如,可以将数据包从SID对应的出接口转发出去;如果数据包的目的地址与本地段标识表中的每个SID均不最长匹配,则再查IPv6的转发表,按照IPv6的转发表进行最长匹配转发。
分段路由头(segment routing header,SRH):IPv6报文是由IPv6标准头+扩展头(0...n)+负载Payload组成。为了基于IPv6转发平面实现SRv6,新增加一种IPv6扩展头,称作SRH扩展头,该扩展头指定一个IPv6的显式路径,存储的是IPv6的Segment List信息,其作用与SR MPLS里的Segment List一样。头节点在IPv6报文增加一个SRH扩展头,中间节点就可以按照SRH扩展头里包含的路径信息转发。具体地,在SRH中有两个关键信息,一个是IPv6地址形式的段列表(Segment List),类似于多协议标签交换(multi-protocol labelswitching,MPLS)网络中的标签栈信息,由有序排列的多个段标识(segment id,SID)构成的Segment List用于指示SR里的显式路径;另外一个则是剩余段(segment left,SL),SL是一个指针,用于指示当前的段标识。
在SRv6网络中,IPv6报文的DA字段的值是一个不断变换的,它的取值由SL和Segment List共同决定,当指针SL指向一个当前待处理的段,例如指向Segment List[2]时,需要将Segment List[2]的IPv6地址复制到DA字段。
在转发层面,如果节点支持SR,且该节点的段标识出现在了IPv6报文中的目的地址中,那么该节点在收到报文后,可以将SL进行减1操作,将指针偏移向新的段,并且将SL减一后对应的段标识(即IPv6地址格式)复制到DA字段,再向下一个节点转发报文。通常,当SL字段减为0时,节点可以弹出SRH报文头,然后对报文进行下一步处理。如果节点不支持SR,那么就不需要处理IPv6报文里面的SRH信息,仅依据IPv6目的地址字段,查找IPv6路由表,进行普通的IPv6转发即可。
SR策略(sr policy)是一种SR的流量工程机制。通常,一个SR Policy包括头节点(headend)、颜色标识(color)以及目的标识(endpoint),以及指示转发路径的段标识列表。其中,Headend用于标识执行SR Policy的头节点,Color用于SR与业务属性相关联,例如与低时延、高带宽等业务属性相关联,以概括该SR Policy的服务能力,Endpoint用于标识SRPolicy的目的地址。通常,通过(headend,color,endpoint)在确定一条SR Policy。对同一个headend来说,其也可以通过(color,endpoint)来确定一条Policy。SR policy可以包括一个或多个段标识列表,以实现负载均衡,多路径备份等工能。头节点在转发报文时,可以根据该SR policy确定报文对应的段标识列表,从而确定转发该报文的转发路径,并将该段标识列表封装到报文中以显示或分散的指示路径。
路由前缀:由IP地址和子网掩码构成。在IPv6网络中,该子网掩码的长度可以为128位,或小于128位。在一个示例中,该路由前缀的写法可以为:A1::1/32或A1::1/128,其中,A1::1为一个IP地址,32或128表明该子网掩码的长度。
子网前缀:由IP地址和子网掩码构成,表示一个子网,在IPv6网络中,该子网掩码的长度小于128位。在一个示例中,该子网前缀的写法可以为:A1::1/32或A1::1/64,其中,A1::1为一个IP地址,32或64表明该子网掩码的长度。
段路由流量工程中间节点保护(segment routing IPv6 traffic engineeringfast reroute,SRv6 TE FRR):在基于互联网协议第6版(Internet Protocol Version 6,IPv6)的段路由流量工程策略(segment routing traffic engineering policy,sR-TEPolicy)中,中间节点(midpoint)的上游节点可以代替中间节点完成转发报文的处理,这种上游节点可以称为代理转发(proxy forwarding)节点。
图1为中间节点发生故障的通信系统的示意图。在该通信系统中,正常情况下,报文从节点A发出,依次经过节点B、节点D和节点E,到达节点F,如图1中虚线箭头所示。然而,在某次事故或突发情况下,中间节点D发生了故障。此时中间节点D的上游节点B(代理转发节点)可以感知到报文的下一跳(中间节点D)接口故障,则该节点B修改报文中的参数,使得报文绕过故障节点D,经过节点C和节点E,到达节点F,如图1中实线箭头所示。具体的流程如下:
1、节点A向目的节点F转发报文,并在报文的SR扩展报文头(segment routingheader,SRH)中指定经过中间节点D。以下对本申请实施例中报文的格式进行简要介绍:
图2为本申请实施例中报文格式的示例图。该报文的格式可以包括但不限于三部分,第一部分为IPv6报文头201,该部分包括版本字段,用于表明该报文对应的IPv6协议版本。下一级报文头(next header)字段,用于表示下一级报文头的类型。示例性的,下一级报文头字段的值为43,则表示该IPv6报文头201的下一级报文头是SRH。源地址(sourceaddress)字段,用于表示该报文的源地址。目标地址(destination address)字段,用于表示该报文的目标地址。第二部分为SRH202,该部分包括段剩余(segment left,SL)字段,该字段相当于一种索引,用于指示设备读取当前报文应该访问的下一个中间节点(当SL=0时为目的节点)的信息。段列表(segment list)字段,用于搭载该报文需要经过的中间节点的信息或目的节点的信息。可以理解的是,Segment List[0]一般为目的节点的信息。可以理解的是,节点首先可以读取SL的值,然后根据SL的值读取相应的Segment List。示例性的,节点读取到SL的值为1,则节点将会读取Segment List[1]。报文中的SL和Segment List配合可以使得报文在转发过程中,通过SL的变更来更新当前报文需要到达的下一个中间节点。第三部分为类型长度值(tag length value,TLV),TLV为SRH头中的可选(optional)变量(variable)。第四部分为IPv6的报文负荷(IPv6payload)204,用于搭载报文的数据。
在实际应用中,该报文实际上还包括一些现有的字段,为简要描述,本申请实施例对此省略,不再赘述。该报文还可以包括其他字段,以实现其他功能,本申请实施例对此不做限定。
图3a为段列表字段的示意图之一。Segment List一般为128位,本申请实施例以128位为例子进行描述。当SID采用非压缩格式时,SID的字段也是128位,则该行SegmentList即是一个SID。图3b为段列表字段的示意图之二。当SID采用压缩格式时,SID的字段仅需32位,则该行Segment List可以包括4个SID。可以理解的是,当实际情况中没有达到4个压缩SID时(例如一行Segment List中仅包括3个SID),则相应位置可以留空,具体可以用相应位置的值全部置零的方式表示留空。即,段列表(segment list)中包括一个非压缩段标识(segment id,SID)或包括多个压缩SID。当段列表中包括多个压缩SID时,可以通过SID索引(sid index,SI)参数和SL来确定SID的位置。示例性的,SI为0表示该段列表的最后一个SID,则SL=5、SI=0表示SL=5对应的段列表的最后一个SID。
图4为SID字段的示意图。一般地,非压缩的SID字段可以包括3部分,位置标识(locator)字段、功能(function)字段和变量(args)字段。其中,Locator字段包括公共前缀部分(common prefix)和设备标识部分(nodeid),Function字段用于表示该节点所支持的功能,Args字段可以用于实现自定义的作用或用于携带一些参数。
相较于非压缩的SID,压缩的SID一般会省略公共前缀部分和参数部分,使得SID的长度减少到32位。在实际应用中,压缩的格式可以采用通用段标识(generalized segmentidentifier,G-SID),还可以采用其他压缩格式,本申请实施例对此不做限定。
图1中,节点A发出报文时(报文状态一),该报文中IPv6部分的目标地址为4::,说明该报文下一个中间节点为节点D。SRH部分的第一个SID的设备标识为6::,说明该报文的目的节点为节点F,第二个SID的设备标识为4::,说明该报文被指定为经过中间节点D。
2、报文到达节点B时,由于节点D故障,其上游节点B感知到报文下一跳接口故障,而下一跳正好是报文当前的目的地址4::,且此时SL>0,所以节点B执行代理转发行为。具体地,节点B将SL减1,并将下层SID 6::复制到外层IPv6报文头的目的地址字段(即将中间节点的下一跳的SID复制,需要先知道该中间节点的下一跳的SID类型是压缩还是非压缩,图1的示例中默认为非压缩SID)。此时由于SL=0,节点B可以去掉SRH扩展报文头,然后根据目的地址6::查表转发。此时报文被节点B处理后为状态二。
3、节点B处理报文为状态二后,节点B根据状态二的报文情况,建立报文到节点F的路径。由于节点B到目的地址6::之间的路径中,路径B-D-E-F的Cost为30(除特殊标记外,每个节点之间的Cost为10),而路径B-C-E-F之间的Cost为1020。因此对于节点B来说,目的地址6::的主下一跳依然是节点D。由于目的地址6::的主下一跳依然是节点D,但是节点B不是该目的地址的倒数第二跳,且SL=0,所以节点B不再符合代理转发条件,而是按照正常TI-LFA转发流程切换到备份路径转发,备份路径的Repair Segment List为<3::5>,所以节点B使用“H.Insert”的方式封装Segment List 3::5,新增1个SRH扩展报文头(SL置一),则报文以状态三被节点B发送出去,经过备份路径转发到节点F。
4、根据TI-LFA流程,在节点A感知到节点D故障,且IGP完成收敛以后,节点A删除到节点D的路由转发表项,所以节点A根据4::查表转发的时候,无法命中路由,此时节点A就要作为代理转发节点执行代理转发行为,SL减1,并将下层SID 6::更新到外层IPv6报文头,然后根据目的地址6::查表转发到节点B。节点B如果完成收敛,则按照收敛后的最短路径将报文转发到节点F;节点B如果未完成收敛,则按照TI-LFA流程经过备份路径转发到节点F。通过上述方式,就绕过了故障节点D。
上述方案称为基于Ipv6的段路由流量工程中间节点保护(segment routingIPv6traffic engineering fast reroute,SRv6 TE FRR)。其中,节点B修改报文中的参数时需要将报文中节点D的下一跳的段标识(segment identifier,SID)更新到头中。
跨IPv6头的TE-FRR技术:以中间系统-中间系统(intermediate system tointermediate system,ISIS)协议的场景为例。为了便于理解,请参阅图5,图5为ISIS协议的场景示意图。该场景包括ISIS n域和ISIS m域,其中,ISIS n域包括节点Acc1、节点Acc2、节点Acc3和节点Acc4;ISIS m域包括节点P11、节点P12、节点P13和节点P14。ISIS n域与ISIS m域之间包括:节点Agg1和节点Agg2,其中,节点Acc2通过节点Agg1与节点P11连接,节点Acc2通过节点Agg2与节点P12连接。该场景还包括边缘节点PE1和边缘节点PE2。
以节点Acc1为例,节点Acc1为头节点,节点Acc1的SRv6策略(SRv6 Policy)对应的栈为{BSID2,PE1}。节点Acc2发出的报文IPv6头包括:“DA=BSID2”、“VPNSID1”、“PE1”、“BSID2”和“payload”。该IPv6头称为该报文的外层IPv6头,该头指示该报文的最终目的地为节点PE1,该报文的下一跳节点为节点Agg1。
当报文到达节点Agg1后,节点Agg1对该报文进行如下处理:节点Agg1作为粘接节点“BSID2”,对该报文粘连新的SRv6策略,该新的SRv6策略对应的栈为{P11,P13},节点Agg1发出的报文包括:“DA=P11”、“P13”、“P11”、“DA=BSID2”、“VPNSID1”、“PE1”、“BSID2”和“payload”。其中,该报文的外层IPv6头包括:“DA=P11”、“P13”和“P11”;该报文的内层IPv6头包括:“DA=BSID2”、“VPNSID1”、“PE1”和“BSID2”。该外层IPv6头指示该报文需要经过的节点为:节点P11和P13。该内层IPv6头指示该报文的目的地为节点PE1。
当节点P11收到包括内层IPv6头和外层IPv6头的报文后,首先根据该外层IPv6头指示的目的地址“DA=P11”,确定需要对该报文进行处理。节点P11使用段标识“P11”查找本地段(localsid)列表,确定段标识“P11”为末尾段标识(end sid)。则查找指针偏向下一个段标识“P13”,并使用段标识“P13”查找路由。在一种故障场景中,节点P13故障。则节点P11使用段标识“P13”查找路由时,发现该路由的出接口关闭(down),触发TE-FRR。由于此时该外层IPv6头中的段标识处理完毕,需要跳转至内层IPv6头,并使用内层IPv6头包括的段标识查找路由。例如使用内层IPv6头的“VPNSID1”查找路由。完成报文的转发。
上述TE-FRR称为跨IPv6头的TE-FRR技术。
然而,某些中间节点具有重要功能,例如该中间节点负责安全保护或者负责计费。SRv6中间节点故障保护技术中,上述具有重要功能的节点对应的SID默认是允许被绕过。例如:图1中的节点D具有重要功能,若该节点D发生故障,则报文的转发路径中不包括该节点D对应的SID。或者,图5中的节点P11具有重要功能,若该节点P11发生故障,则报文的转发路径中不包括该节点P11对应的SID。因此,如果报文绕过上述具有重要功能的中间节点对应的SID,则对业务产生严重不良影响。
基于此,本申请实施例提出一种报文处理方法。通过特殊的字段标记哪些SID允许被绕过,哪些SID不允许被绕过。使得在该SID正常的情况下,报文的转发路径必须经过该SID,进而该报文必须经过该SID对应的具有重要功能的中间节点。以确保业务的正常执行。下面对本申请实施例进行详细说明。
请参阅图6,图6为本申请实施例提出的一种报文处理方法的实施例示意图。本申请实施例提出的一种报文处理方法包括:
601、第一节点获取第一报文。
本实施例中,第一节点为中间节点。第一节点获取来自第二节点的第一报文,该第二节点为头结点。该第一报文为第二节点针对数据报文进行封装处理得到的报文。可以理解的是,该第一报文也可以是第二节点针对其它报文进行封装处理得到的报文,例如是裸的IPv6报文,或者策略(policy)报文等,此处不作限定。
第一报文包括多个段标识SID,该多个SID用于指示第一报文的转发路径。例如:该多个SID包括:SID1、SID2和SID3,则该多个SID指示第一报文的转发路径为SID1至SID2至SID3。
该多个SID中包括第一SID和第二SID,其中,第一SID排列在第二SID之前。即报文的转发路径需要先经过第一SID,再经过第二SID。或者,剩余段(segment left,SL)指针首先指向第一SID,其次再指向第二SID。或者,第一报文首先到达第一SID对应的节点,第一报文其次到达第二SID对应的节点。
一种可能的实现方式中,第一报文包括至少一个段列表(segment list),该段列表包括第一SID和第二SID。例如表1-1所示:
表1-1
第一SID |
第二SID |
在又一种示例中,该段列表中除了第一SID和第二SID外,还包括多个SID,例如第三SID等,表1-2所示:
表1-2
··· |
第一SID |
··· |
第二SID |
··· |
第三SID |
···· |
在另一种可能的实现方式中,第一报文包括多个段列表,其中,该多个段列表包括第一段列表和第二段列表。第一段列表包括第一SID,第二段列表包括第二SID。其中,第一段列表排列顺序在第二段列表之前,第一报文首先到达第一段列表中SID对应的节点,其次到达第二段列表中SID对应的节点。需要说明的是,第一段列表中可以包括多个SID,第二段列表中可以包括多个SID,例如第一段列表包括:第一SID和第三SID等;第二段列表包括:第二SID和第四SID等。示例性的,第一段列表如表2-1所示,第二段列表如表2-2所示:
表2-1
··· |
第一SID |
··· |
第三SID |
··· |
表2-2
··· |
第二SID |
··· |
第四SID |
··· |
进一步的,第一报文中包括第一段列表和第二段列表,上述表2-1所示的第一段列表和上述表2-2所示的第二段列表在第一报文中的排列顺序为:第一段列表在第二段列表之前,第一报文首先到达第一段列表中SID对应的节点(例如第一SID),其次到达第二段列表中SID对应的节点(例如第二SID)。
可以理解的是,第一报文中还可以包括更多的段列表,此处不作限制。
在另一种可能的实现方式中,第一报文包括外层IPv6头和内层IPv6头。则,第一段列表包括在外层IPv6头中,第二段列表包括在内层IPv6头中。
对于第二节点,可以通过多种方式确定各个SID是否允许被绕过。示例性的,对于“End.as”节点对应的SID不允许被绕过。
一种可能的实现方式中,第二节点可以通过命令行配置(或者称为静态配置)的方式配置各个SID是否允许被绕过。示例性的,可以通过表3的形式配置。
表3
在表3的示例中,第一SID为“index 10sid ipv6 2002:DB8:300::333”,第一SID不允许被绕过。
在另一种可能的实现方式中,第二节点可以接收控制器的控制报文,该控制报文携带指示信息。该指示信息指示第一SID是否允许被绕过,以使得第二节点根据指示信息对数据报文进行封装,第一报文的段列表中包括所述第一SID,所述第一报文还包括根据所述指示信息确定的第一字段,所述第一字段用于指示所述第一SID是否被绕过。第二节点根据该控制报文中的指示信息,确定第一字段的值。例如:控制节点中的指示信息指示第一节点不允许被绕过,则第二节点对数据报文进行封装处理,以得到第一报文。该第一报文中,第一字段的值为“1”。第一字段的值为“1”指示第一SID不允许被绕过。
控制报文存在多种可能的实现方式,包括但不限于:控制报文为路径计算单元通信协议(Path Computation Element Communication Protocol,PCEP)报文,或者,控制报文为边界网关路由协议(Border Gateway Protocol,BGP)报文。下面分别进行说明。
当控制报文为BGP报文时,指示信息位于控制报文中类型B的段-子标记长度值(Type B Segment Sub-TLV)中。该指示信息指示该Type B Segment Sub-TLV字段中的SID是否允许被绕过。
示例性的,该控制报文为BGP SRv6 Policy报文,控制器通过该控制报文向第二节点下发SRv6 Policy。关于Type B Segment Sub-TLV。请参阅图7,图7为类型B的段-子标记长度值的结构示意图。Type B Segment Sub-TLV包括版本(type)字段、长度(length)字段、标记(flags)字段、保留(reserved)字段、SRv6 SID字段、和,SRv6节点行为和SID结构(SRv6endpoint behavior and SID structure)字段。
在一种可能的实现方式中,在Type B Segment Sub-TLV字段中,指示信息可以位于标记字段。请参阅图8,图8为Flags字段的结构示意图。目前,标记字段中第0-3比特位分别为V、A、S、B字段。因此,该指示信息可以位于该标记字段的未使用比特位中,例如第4-7比特位中的任意一个比特位。示例性的,该指示信息位于标记字段的最后一个比特位,即第7比特位。当第7比特位的值为“1”时,指示Type B Segment Sub-TLV字段的SID(即第一SID)不允许被绕过;当第7比特位的值为“0”时,指示Type B Segment Sub-TLV字段的SID(即第一SID)允许被绕过。
在另一种可能的实现方式中,在Type B Segment Sub-TLV字段中,指示信息可以位于保留字段。示例性的,该指示信息位于Type B Segment Sub-TLV字段中保留字段的任意一个未使用的比特位。
当控制报文为PCEP报文时,指示信息位于控制报文中互联网协议第6版段路由-显式路由对象子对象(SRv6-ERO Subobject)中。该指示信息指示该SRv6-ERO Subobject字段中的SID是否允许被绕过。首先,介绍PCEP报文:路径计算单元服务器(path computationelement server,PCE Server)在网络中负责路径计算,PCE Server负责根据路径计算客户端(path computation client,PCC)的请求计算出一条满足约束条件的最佳路径。PCEServer与PCC,PCE Server与其它域的PCE Server之间的通信交互,通过该PCEP报文实现。当第二节点(即头节点)作为PCC,向控制器(PCE Server)发送路径计算请求后,第二节点接收来自控制器的控制报文(该控制报文携带计算结果)并基于该控制报文建立标签交换路径(label switch path,LSP)。关于SRv6-ERO Subobject。请参阅图9,图9为互联网协议第6版段路由-显式路由对象子对象的结构示意图。SRv6-ERO Subobject包括L字段、版本(type)字段、长度(length)字段、NT字段、标记(flags)字段、V字段、T字段、F字段、S字段、保留(reserved)字段、SRv6节点行为(SRv6 endpoint behavior)字段、SID结构(SIDstructure)字段、SRv6 SID字段、NAI字段和SID结构字段。
在一种可能的实现方式中,在SRv6-ERO Subobject字段中,指示信息可以位于标记字段。该指示信息可以位于该标记字段的未使用比特位中。
在另一种可能的实现方式中,在SRv6-ERO Subobject字段中,指示信息可以位于保留字段。示例性的,该指示信息位于SRv6-ERO Subobject字段中保留字段的任意一个未使用的比特位。
602、第一节点确定第一SID不可达。
本实施例中,当第一节点获取第一报文后,第一节点检测第一SID是否可达。
具体的,当第一节点检测第一SID故障时,第一节点确定第一SID不可达。或者,第一节点根据第一SID查找路由失败时,第一节点确定第一SID不可达。
示例性的,第一节点根据第一SID查询路由时,发现出接口关闭(down),则第一节点确定第一SID不可达。
又一种示例中,第一节点通过双向转发检测(bidirectional forwardingdetection,BFD)感知第一SID对应的链路故障时,则第一节点确定第一SID不可达。
603、第一节点根据第一SID对应的第一字段,判断第一SID是否允许被绕过。
本实施例中,当第一节点确定第一SID不可达后,第一节点根据第一SID对应的第一字段,判断第一SID是否允许被绕过。本实施例中,以第一SID包括一个SID为例进行说明,可以理解的是,当第一SID包括多个SID,则第一字段中的多个比特位分别对应多个SID。当检测结果为:第一SID不允许被绕过,则进入步骤604;当第一SID允许被绕过,则进入步骤605。
一种可能的实现方式中,在第一报文中新定义字段,通过该新定义字段指示第一报文中的各个SID是否允许被绕过。示例性的,以第一报文包括:第一SID、第二SID、第三SID和第四SID为例,如表4所示:
表4
上述新定义字段中每一个比特位唯一对应一个SID,其中,每一个比特位的值指示对应的SID是否允许被绕过。例如:值“0”指示对应的SID允许被绕过,值“1”指示对应的SID不允许被绕过。可以理解的是,另一种方式中,值“1”指示对应的SID允许被绕过,值“0”指示对应的SID不允许被绕过。
本申请实施例中,将该新定义字段中与第一SID对应的字段称为第一字段。当第一SID不可达,则第一节点进一步读取与该第一SID对应的该第一字段,并判断与该第一SID是否允许被绕过。
可选的,当第一节点检测第一SID可达,则第一节点可以不读取该第一字段。以缩短报文的处理时间。
在另一种可能的实现方式中,在第一报文中新定义字段,通过该新定义字段指示第一报文中哪些SID不允许被绕过。示例性的,以第一报文包括:第一SID、第二SID、第三SID和第四SID为例,如表5所示:
表5
第一节点确定某个SID不可达后,则进一步读取该新定义字段中是否包括该SID,若包括,则该SID不允许被绕过。若该新定义字段不包括该SID,则该SID允许被绕过。
在另一种可能的实现方式中,在第一报文中新定义字段,通过该新定义字段指示第一报文中哪些SID允许被绕过。示例性的,以第一报文包括:第一SID、第二SID、第三SID和第四SID为例,如表6所示:
表6
第一节点确定某个SID不可达后,则进一步读取该新定义字段中是否包括该SID,若不包括,则该SID不允许被绕过。若该新定义字段包括该SID,则该SID允许被绕过。
一种可能的实现方式,该第一字段位于第一报文的分段路由头(segment routingheader,SRH)中。
可选的,该第一字段包括在SRH中的可选的标记长度值(optional TLV)字段中,其中,该optional TLV中的值部分(value)指示一个或多个SID是否运行被绕过。
例如:该optional TLV中的值部分包括8个比特位,当该SRH包括5个SID时,该8个比特位中的5个比特位分别对应该5个SID。当比特位的值为“1”,则该比特位对应的SID不允许被绕过;当比特位的值为“0”,则该比特位对应的SID允许被绕过。可以理解的是,当比特位的值为“1”,则该比特位对应的SID不允许被绕过;当比特位的值为空,则该比特位对应的SID允许被绕过。
在另一种可能的实现方式中,第一字段位于第一SID中。即每个SID中包括一个字段,该字段指示该SID是否允许被绕过。
可选的,该第一字段位于第一SID的参数(args)字段中。例如该第一字段位于第一SID的args字段中的任意一个未被使用的比特位。
可选的,该第一字段位于第一SID的args字段中的最后一个比特位。示例性的,当比特位的值为“1”,则该比特位对应的SID不允许被绕过;当比特位的值为“0”,则该比特位对应的SID允许被绕过。
604、第一SID不允许被绕过,则丢弃第一报文。
本实施例中,当第一SID不允许被绕过,则第一节点丢弃该第一报文。
需要说明的是,步骤604为可选步骤,当第一SID不允许被绕过时,第一节点也可以备份该第一报文,此处不做限制。
605、第一SID允许被绕过,则第一节点根据第二SID转发第一报文。
本实施例中,当第一SID允许被绕过,则第一节点根据第二SID转发第一报文。具体的,第一节点根据第一报文中排列顺序在第一SID之后的第二SID确定第一报文的转发路径。第一报文首先到达第一SID对应的节点,其次到达第二SID对应的节点。
例如:第一报文中SL列表包括的SID为“SID1”、“SID2”、“SID3”和“SID4”。则当第一节点确定SID2不可达,且SID2允许被绕过时,第一节点根据排列顺序在SID2之后的SID3和SID4转发该第一报文。具体的,第一节点将SL指针偏转至SID3,并检查SID3是否可达。若可达,则将第一报文转发至SID3;若不可达,则进一步检查SID3是否允许被绕过,若允许则将SL指针偏转至SID4,并检查SID4是否可达,以此类推。
对于第一报文包括外层IPv6头和内层IPv6头的情况,第一报文的第一段列表包括在外层IPv6头中,第一段列表包括第一SID;第二段列表包括在内层IPv6头中,第二段列表包括第二SID。当第一SID为第一SID为第一段列表中的最后一个SID,第一节点检测第一SID不可达时,第一节点判断第一SID是否允许被绕过。若允许,即第一SID对应的第一字段指示第一SID允许被绕过,由于此时第一SID为外层IPv6头的最后一个SID,第一节点需要根据内层IPv6头确定第一报文的转发路径。若不允许,即第一SID对应的第一字段指示第一SID不允许被绕过,则第一节点丢弃该第一报文。
本申请实施例中,通过特殊的字段标记哪些段标识SID允许被绕过,哪些SID不允许被绕过。使得在该SID正常的情况下,携带该SID的报文的转发路径必须经过该SID,进而确保该报文必须经过该SID对应的具有重要功能的中间节点。以保障业务的正常执行。
下面,结合实际场景对本申请实施例进行进一步说明,请参阅图10,图10为本申请实施例提出的一种应用场景示意图。该应用场景包括第一节点、第二节点、边缘节点和控制第一节点和第二节点的控制器。其中,第二节点作为头节点,第一节点作为中间节点,第一节点包括:SID0对应的节点、SID1对应的节点、SID2对应的节点、SID3对应的节点、SID4对应的节点、和SID5对应的节点。
首先,以第一SID为SID3为例,第二节点接收来自控制器的控制报文。该控制报文中包括的控制信息指示SID3不允许被绕过,即SID3对应的节点不允许被绕过。其次,第二节点获取数据报文,并对该数据报文进行封装,得到第一报文。该第一报文的报文头,如图11所示,图11为本申请实施例中一种报文头的结构示意图。该报文头中SID3对应的第一字段指示该SID3不允许被绕过(即第一SID不允许被绕过)。再次,第二节点生成第一报文后,向下一跳节点(SID5对应的节点)转发该第一报文,以此类推。当第一报文到达SID4对应的节点后,SID4对应的节点检测该第一报文中段列表指示的下一跳节点(SID3)是否可达。若SID3不可达,则第一节点检测该SID3是否允许被绕过(即检查SID3对应的第一字段)。若SID3不允许被绕过,则SID4对应的节点丢弃该第一报文。
在另一种示例中,若SID3允许被绕过(即第一SID允许被绕过)。则SID4对应的节点继续检测段列表中的下一跳节点(SID2对应的节点)是否可达(第二SID为SID2)。若SID2可达,则SID4对应的节点根据该SID2向SID2对应的节点转发该第一报文,即SID3对应的节点根据第二SID(SID2)转发第一报文(向SID2对应的节点转发该第一报文)。
若SID2不可达,则第一节点检测该SID2是否允许被绕过(即检查SID2对应的第一字段)。若SID2允许被绕过,则SID4对应的节点继续检测段列表中的下一跳节点(SID1对应的节点)是否可达。若SID1可达,则SID4对应的节点将该第一报文转发至SID1对应的节点。
对于跨IPv6头的报文转发场景,以中间系统-中间系统(intermediate system tointermediate system,ISIS)协议的场景为例进行说明。请参阅图12,图12为本申请实施例提出的又一种场景示意图。该应用场景包括第一节点、第二节点、边缘节点和控制第一节点和第二节点的控制器。其中,第二节点作为头节点,第一节点作为中间节点,第一节点包括:SID1对应的节点、SID2对应的节点、SID3对应的节点、SID4对应的节点、SID5对应的节点、SID6对应的节点、和SID7对应的节点。其中,SID5对应的节点、SID6对应的节点、和SID7对应的节点归属于ISIS n域;SID1对应的节点、SID2对应的节点、SID3对应的节点和SID4对应的节点归属于ISIS m域。
首先,以第一SID为SID5为例进行说明。第二节点接收来自控制器的控制报文。该控制报文中包括的控制信息指示SID5不允许被绕过,即SID5对应的节点不允许被绕过。其次,第二节点获取数据报文,并对该数据报文进行封装,得到第一报文。该第一报文的报文头,如图13所示,图13为本申请实施例中一种报文头的结构示意图。该报文头中,外层IPv6头包括的SID为:SID5、SID6、SID7;内层IPv6头包括的SID为:SID1、SID2、SID3和SID4。第一报文首先沿着外层IPv6头指示的路径转发,其次沿着内层IPv6头指示的路径转发。
该报文头中SID5对应的第一字段指示该SID5不允许被绕过。再次,第二节点生成第一报文后,向下一跳节点(SID7对应的节点)转发该第一报文,以此类推。当第一报文到达SID6对应的节点后,SID6对应的节点检测该第一报文中段列表指示的下一跳节点(SID5对应的节点)是否可达。若SID5不可达(第一SID不可达),则第一节点检测该SID5是否允许被绕过(即检查SID5对应的第一字段)。若SID5不允许被绕过,则SID6对应的节点丢弃该第一报文。
在另一种示例中,若SID5允许被绕过(即第一SID允许被绕过)。则SID6节点检测内层IPv6头的段列表中的下一跳节点(SID4对应的节点)是否可达(第二SID为SID4)。若SID4可达,则SID6对应的节点将该第一报文转发至SID4对应的节点(即根据第二SID转发第一报文)。
在又一种示例中,本申请实施例提出的报文处理方法还可以应用于业务链(service function chain,SFC)场景。业务链技术是一种给应用层提供有序服务的技术。SFC是用于将网络设备上的服务在逻辑层面上联接起来,从而形成一个有序的服务组合,具体的,通过在原始报文中添加业务链路径信息来实现报文按照指定的路径依次经过业务节点。为了便于理解,请参阅图14,图14为本申请实施例提出的又一种场景示意图。图14中,业务链场景包括:第二节点,该第二节点作为业务分类节点(Service classifier,SC);第一节点,第一节点作为业务转发节点(service function forwarder,SFF),具体的,第一节点包括:业务转发节点1、业务转发节点2和业务转发节点3;尾节点(tail end)。
当第二节点收到数据报文后,即业务分类节点收到数据报文后,业务分类节点对该报文封装业务链路径信息生成第一报文。该业务链路径信息可以封装在SRH头中,该SRH头中包括业务功能节点(service function,SF)的SID,例如是SFF1节点(业务转发节点1)的SID、SFF2节点的SID和SFF3节点的SID。上述SID包括业务链路径信息。该SRH头中还包括第一字段,该第一字段指示对应的SID是否允许被绕过。对于某些SFF节点,具有重要功能,例如SFF2节点为防火墙或者流量计费单元,那么该SFF2节点不允许被绕过。
以下介绍本申请实施例的网络设备,以下介绍的网络设备具有上述方法实施例中的第一节点、第二节点或控制器的任意功能。
图15为本申请实施例提供的一种网络设备1500的结构示意图,如图15所示,网络设备1500包括:收发模块1501,用于执行步骤601或605;处理模块1502,用于执行步骤602、603或604。
网络设备1500可以对应于上述方法实施例中的第一节点、第二节点或控制器,网络设备1500中的各单元和上述其他操作和/或功能分别为了实现方法实施例中的第一节点、第二节点或控制器所实施的各种步骤和方法,具体细节可参见上述方法实施例,为了简洁,在此不再赘述。
网络设备1500在处理报文时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将网络设备1500的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的网络设备1500与上述图1或图14对应的实施例方法属于同一构思,其具体实现过程详见上述方法实施例,这里不再赘述。
为了实现上述实施例,本申请还提供了一种网络设备。可以参阅图16,图16为本申请实施例提供的一种网络设备1600的结构示意图。
图16所示的网络设备1600尽管示出了某些特定特征,但是本领域的技术人员将从本申请实施例中意识到,为了简洁起见,图16未示出各种其他特征,以免混淆本申请实施例所公开的实施方式的更多相关方面。为此,作为示例,在一些实现方式中,网络设备1600包括一个或多个处理单元(如,CPU)1601、网络接口1602、编程接口1603、存储器1604和一个或多个通信总线1605,用于将各种组件互连。在另一些实现方式中,网络设备1600也可以在上述示例基础上省略或增加部分功能部件或单元。
在一些实现方式中,网络接口1602用于在网络系统中和一个或多个其他的网络设备/服务器连接。在一些实现方式中,通信总线1605包括互连和控制系统组件之间的通信的电路。存储器1604可以包括非易失性存储器,例如,只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。存储器1604也可以包括易失性存储器,易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。
在一些实现中,存储器1604或存储器1604的非暂时性计算机可读存储介质存储以下程序、模块和数据结构,或其子集,例如包括收发单元(图中未示出)、获取单元16041和处理单元16042。
在一个可能的实施例中,该网络设备1600可以具有上述图1-14对应的方法实施例中的第一节点、第二节点或控制器中的任意功能。
应理解,网络设备1600对应于上述方法实施例中的第一节点、第二节点或控制器,网络设备1600中的各模块和上述其他操作和/或功能分别为了实现上述方法实施例中的第一节点、第二节点或控制器所实施的各种步骤和方法,具体细节可参见上述图1-14对应的方法实施例,为了简洁,在此不再赘述。
应理解,本申请可以是由网络设备1600上的网络接口1602来完成数据的收发操作,也可以是由处理器调用存储器中的程序代码,并在需要时配合网络接口1602来实现收发单元的功能。
在各种实现中,网络设备1600用于执行本申请实施例提供的报文处理方法,例如是执行上述图1-14所示的实施例所对应的报文处理方法。
本申请图16所述的网络设备具体结构可以为图17所示。
图17为本申请实施例提供的一种网络设备1700的结构示意图,
网络设备1700包括:主控板1710和接口板1730。
主控板1710也称为主处理单元(main processing unit,MPU)或路由处理器(route processor),主控板1710用于对网络设备1700中各个组件的控制和管理,包括路由计算、设备管理、设备维护、协议处理功能。主控板1710包括:中央处理器1711和存储器1712。
接口板1730也称为线路处理单元(line processing unit,LPU)、线卡(linecard)或业务板。接口板1730用于提供各种业务接口并实现数据包的转发。业务接口包括但不限于以太网接口、POS(Packet over SONET/SDH)接口等。接口板1730包括:中央处理器1731、网络处理器1732、转发表项存储器1734和物理接口卡(physical interface card,PIC)1733。
接口板1730上的中央处理器1731用于对接口板1730进行控制管理并与主控板1710上的中央处理器1711通信。
网络处理器1732用于实现报文的转发处理。网络处理器1732的形态可以是转发芯片。
物理接口卡1733用于实现物理层的对接功能,原始的流量由此进入接口板1730,以及处理后的报文从该物理接口卡1733发出。物理接口卡1733包括至少一个物理接口,物理接口也称物理口,物理接口可以为灵活以太(Flexible Ethernet,FlexE)物理接口。物理接口卡1733也称为子卡,可安装在接口板1730上,负责将光电信号转换为报文并对报文进行合法性检查后转发给网络处理器1732处理。在一些实施例中,接口板1730的中央处理器1731也可执行网络处理器1732的功能,比如基于通用CPU实现软件转发,从而接口板1730中不需要网络处理器1732。
可选的,网络设备1700包括多个接口板,例如网络设备1700还包括接口板1740,接口板1740包括:中央处理器1741、网络处理器1742、转发表项存储器1744和物理接口卡1743。
可选的,网络设备1700还包括交换网板1720。交换网板1720也可以称为交换网板单元(switch fabric unit,SFU)。在网络设备有多个接口板1730的情况下,交换网板1720用于完成各接口板之间的数据交换。例如,接口板1730和接口板1740之间可以通过交换网板1720通信。
主控板1710和接口板耦合。例如,主控板1710、接口板1730和接口板1740,以及交换网板1720之间通过系统总线和/或系统背板相连实现互通。在一种可能的实现方式中,主控板1710和接口板1730之间建立进程间通信协议(inter-process communication,IPC)通道,主控板1710和接口板1730之间通过IPC通道进行通信。
在逻辑上,网络设备1700包括控制面和转发面,控制面包括主控板1710和中央处理器1731,转发面包括执行转发的各个组件,比如转发表项存储器1734、物理接口卡1733和网络处理器1732。控制面执行发布路由、生成转发表、处理信令和协议报文、配置与维护设备的状态等功能,控制面将生成的转发表下发给转发面,在转发面,网络处理器1732基于控制面下发的转发表对物理接口卡1733收到的报文查表转发。控制面下发的转发表可以保存在转发表项存储器1734中。在有些实施例中,控制面和转发面可以完全分离,不在同一设备上。
应理解,网络设备1600中的收发单元可以相当于网络设备1700中的物理接口卡1733或物理接口卡1743;网络设备1600中的获取单元16041和处理单元16042可以相当于网络设备1700中的中央处理器1711或中央处理器1731,也可以相当于存储器1712中存储的程序代码或指令。
应理解,本申请实施例中接口板1740上的操作与接口板1730的操作一致,为了简洁,不再赘述。应理解,本实施例的网络设备1700可对应于上述各个方法实施例中的第一节点、第二节点或控制器,该网络设备1700中的主控板1710、接口板1730和/或接口板1740可以实现上述各个方法实施例中的第一节点、第二节点或控制器所具有的功能和/或所实施的各种步骤,为了简洁,在此不再赘述。
值得说明的是,主控板可能有一块或多块,有多块的时候可以包括主用主控板和备用主控板。接口板可能有一块或多块,网络设备的数据处理能力越强,提供的接口板越多。接口板上的物理接口卡也可以有一块或多块。交换网板可能没有,也可能有一块或多块,有多块的时候可以共同实现负荷分担冗余备份。在集中式转发架构下,网络设备可以不需要交换网板,接口板承担整个系统的业务数据的处理功能。在分布式转发架构下,网络设备可以有至少一块交换网板,通过交换网板实现多块接口板之间的数据交换,提供大容量的数据交换和处理能力。可选的,网络设备的形态也可以是只有一块板卡,即没有交换网板,接口板和主控板的功能集成在该一块板卡上,此时接口板上的中央处理器和主控板上的中央处理器在该一块板卡上可以合并为一个中央处理器,执行两者叠加后的功能。具体采用哪种架构,取决于具体的组网部署场景,此处不做唯一限定。
在一些可能的实施例中,上述第一网络设备可以实现为虚拟化设备。虚拟化设备可以是运行有用于发送报文功能的程序的虚拟机(virtual machine,VM),虚拟路由器或虚拟交换机。虚拟化设备部署在硬件设备上(例如,物理服务器)。例如,可以基于通用的物理服务器结合网络功能虚拟化(network functions virtualization,NFV)技术来实现第一网络设备。
应理解,上述各种产品形态的网络设备,分别具有上述方法实施例中第一节点、第二节点或控制器的任意功能,此处不再赘述。
本申请实施例还提供的一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机控制网络装置执行如前述方法实施例所示任一项实现方式。
本申请实施例还提供的一种计算机程序产品,计算机程序产品包括计算机程序代码,当计算机程序代码在计算机上运行时,使得计算机执行如前述方法实施例所示任一项实现方式。
进一步地,本申请实施例还提供了一种计算机程序产品,当该计算机程序产品在网络设备上运行时,使得网络设备执行上述图1-14对应的方法实施例中第一节点、第二节点或控制器执行的方法。
本申请实施例还提供了一种芯片系统,包括处理器和接口电路,接口电路,用于接收指令并传输至处理器。其中,所述处理器用于实现上述任一方法实施例中的方法。
可选的,该芯片系统还包括存储器,该芯片系统中的处理器可以为一个或多个。该处理器可以通过硬件实现也可以通过软件实现。当通过硬件实现时,该处理器可以是逻辑电路、集成电路等。当通过软件实现时,该处理器可以是一个通用处理器,通过读取存储器中存储的软件代码来实现上述任一方法实施例中的方法。
可选的,该芯片系统中的存储器也可以为一个或多个。该存储器可以与处理器集成在一起,也可以和处理器分离设置,本申请并不限定。示例性的,存储器可以是非瞬时性处理器,例如只读存储器ROM,其可以与处理器集成在同一块芯片上,也可以分别设置在不同的芯片上,本申请对存储器的类型,以及存储器与处理器的设置方式不作具体限定。
请参阅图18,图18为本申请实施例提出的一种网络系统1800示意图。该网络系统1800包括:第一节点1801、第二节点1802和控制器1803。第一节点1801和第二节点1802例如可以为路由器、交换机或网关等物理设备,也可以是支持路由发布和报文转发的虚拟设备等。本实施例对第一节点1801和第二节点1802的具体类型不做限定。控制器1803可以是管理上述第一节点1801和第二节点1802的服务器。可选的,第一节点1801可以是网络设备1500、网络设备1600或者网络设备1700。可选的,第二节点1802可以是网络设备1500、网络设备1600或者网络设备1700。可选的,控制器1803可以是网络设备1500、网络设备1600或者网络设备1700。
请参阅图19,图19为本申请实施例提出的一种网络系统1900示意图。该网络系统1900包括:第一网络设备1901、第一中间网络设备1902、第二中间网络设备1903和控制器1904。第一网络设备1901、第一中间网络设备1902和第二中间网络设备1903例如可以为路由器、交换机或网关等物理设备,也可以是支持路由发布和报文转发的虚拟设备等。本实施例对第一网络设备1901、第一中间网络设备1902和第二中间网络设备1903的具体类型不做限定。控制器1904可以是管理上述第一网络设备1901、第一中间网络设备1902和第二中间网络设备1903的服务器。
示例性的,网络系统1900应用于图1所示的场景时,该第一网络设备1901可以为头节点A,该第一中间网络设备1902可以是节点B、节点C、节点D、节点E或者节点F,该第二中间网络设备1903可以是节点B、节点C、节点D、节点E或者节点F中与第一中间网络设备1902不同的其它节点。控制器1904在图1所示的场景中未示出。
可选的,第一网络设备1901、第一中间网络设备1902和第二中间网络设备1903属于同一个内部网关协议(Interior Gateway Protocols,IGP)域。
可选的,第一网络设备1901、第一中间网络设备1902属于同一个内部网关协议(Interior Gateway Protocols,IGP)域。第一中间网络设备1902与第二中间网络设备1903属于不同的IGP域。
示例性的,网络系统1900应用于图5所示的场景时,该第一网络设备1901可以为头节点Acc1。该第一中间网络设备1902可以是节点Acc2、节点Acc3或者节点Acc4。该第二中间网络设备1903可以是节点P11、节点P12、节点P13、或者节点P14。
第一网络设备1901获取数据报文后,对该数据报文进行封装处理,得到第一报文。该第一报文包括一次排列的多个SID,该多个SID用于指示第一报文的转发路径。该多个SID包括第一SID和第二SID,第一SID排列在第二SID之前。第二SID对应第二中间网络设备1903。
第一网络设备1901向第一中间网络设备1902发送该第一报文。
第一中间网络设备1902获取该第一报文后,确定第一SID不可达,第一中间网络设备1902根据所述第一SID对应的第一字段,判断所述第一SID是否允许被绕过,所述第一字段包括在所述第一报文中。
当所述第一SID允许被绕过时,第一中间网络设备1902确定所述第二SID可达。第一中间网络设备1902根据所述第二SID向第二中间网络设备1903转发所述第一报文。
在一种示例中,第一网络设备1901接收控制器1904发送的控制报文,该控制报文中包括指示信息。该指示信息指示第二中间网络设备1903不允许被绕过。
本申请实施例中,第一中间网络设备1902获取的第一报文中通过特殊的字段标记哪些段标识SID允许被绕过,哪些SID不允许被绕过。使得在该SID正常的情况下,携带该SID的报文的转发路径必须经过该SID,进而确保该报文必须经过该SID对应的具有重要功能的中间节点。以保障业务的正常执行。
上述各种产品形态的网络设备,分别具有上述方法实施例中第一节点、第二节点或控制器的任意功能,此处不再赘述。
以上对本申请实施例进行了详细介绍,本申请实施例方法中的步骤可以根据实际需要进行顺序调度、合并或删减;本申请实施例装置中的模块可以根据实际需要进行划分、合并或删减。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
应理解,在本申请实施例中,“与A相应的B”表示B与A相关联,根据A可以确定B。但还应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其它信息确定B。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
Claims (25)
1.一种报文处理方法,其特征在于,包括:
第一节点获取第一报文,所述第一报文包括依次排列的多个段标识SID,所述多个段标识用于指示所述第一报文的转发路径,所述多个SID包括第一SID和第二SID,所述第一SID排列在所述第二SID之前;
所述第一节点确定所述第一SID不可达;
所述第一节点根据所述第一SID对应的第一字段,判断所述第一SID是否允许被绕过,所述第一字段包括在所述第一报文中;
当所述第一SID允许被绕过时,所述第一节点确定所述第二SID可达;
所述第一节点根据所述第二SID转发所述第一报文。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述第一SID不允许被绕过时,则丢弃所述第一报文。
3.根据权利要求1-2中任一项所述的方法,其特征在于,
所述第一字段位于所述第一报文的分段路由头SRH中。
4.根据权利要求3所述的方法,其特征在于,所述第一字段包括在所述SRH中可选的标记长度值Optional TLV字段中,其中,所述Optional TLV中的值部分指示一个或多个SID是否允许被绕过。
5.根据权利要求1-3中任一项所述的方法,其特征在于,所述第一字段位于所述第一SID中。
6.根据权利要求5所述的方法,其特征在于,所述第一字段位于所述第一SID的参数args字段中。
7.根据权利要求6所述的方法,其特征在于,所述第一字段为所述第一SID的参数args字段中的最后一个比特位。
8.根据权利要求1-7中任一项所述的方法,其特征在于,所述第一报文至少包括一个段列表,其中,所述段列表包括所述第一SID和所述第二SID。
9.根据权利要求1-7中任一项所述的方法,其特征在于,所述第一报文包括多个段列表,其中,所述多个段列表包括第一段列表和第二段列表,所述第一段列表包括所述第一SID,所述第二段列表包括所述第二SID。
10.根据权利要求9所述的方法,其特征在于,
所述第一报文包括外层互联网协议第6版IPv6头和内层IPv6头,所述第一段列表包括在所述外层IPv6头中,所述第二段列表包括在所述内层IPv6头中。
11.根据权利要求1-10中任一项所述的方法,其特征在于,所述第一SID或所述第二SID包括业务链SFC路径信息。
12.一种报文处理方法,其特征在于,包括:
第二节点对数据报文进行封装处理,以得到第一报文,所述第一报文包括依次排列的多个段标识SID,所述多个段标识用于指示所述第一报文的转发路径,所述多个SID包括第一SID和第二SID,所述第一SID排列在所述第二SID之前,
其中,所述第一报文包括所述第一SID对应的第一字段,所述第一字段用于指示所述第一SID是否被绕过。
13.根据权利要求12所述的方法,其特征在于,所述方法还包括:
所述第二节点接收来自控制器的控制报文,所述控制报文携带指示信息,所述指示信息用于指示所述第一SID是否允许被绕过;
所述第二节点根据所述控制报文中的所述指示信息,确定所述第一字段的值。
14.根据权利要求13所述的方法,其特征在于,所述控制报文为路径计算单元通信协议PCEP报文,或者,所述控制报文为边界网关路由协议BGP报文。
15.根据权利要求14所述的方法,其特征在于,当所述控制报文为边界网关路由协议BGP报文时,所述指示信息位于所述控制报文中类型B的段-子标记长度值Type B SegmentSub-TLV中。
16.根据权利要求15所述的方法,其特征在于,所述指示信息位于所述类型B的段-子标记长度值的标记Flags字段的未使用比特位中。
17.根据权利要求15所述的方法,其特征在于,所述指示信息位于所述类型B的段-子标记长度值的标记Flags字段的保留字段中。
18.根据权利要求14所述的方法,其特征在于,当所述控制报文为路径计算单元通信协议PCEP报文时,所述指示信息位于所述控制报文中互联网协议第6版段路由-显式路由对象子对象SRv6-ERO Subobject字段中。
19.根据权利要求18所述的方法,其特征在于,所述指示信息位于所述SRv6-EROSubobject字段的标记Flags字段的未使用比特位中。
20.根据权利要求18所述的方法,其特征在于,所述指示信息位于所述SRv6-EROSubobject字段的保留字段中。
21.一种报文处理方法,其特征在于,包括:
控制器向第二节点发送控制报文,所述控制报文携带指示信息,所述指示信息用于指示第一SID是否允许被绕过,以使得所述第二节点根据所述指示信息对数据报文进行封装,所述第一报文的段列表中包括所述第一SID,所述第一报文还包括根据所述指示信息确定的第一字段,所述第一字段用于指示所述第一SID是否被绕过。
22.根据权利要求21所述的方法,其特征在于,所述控制报文为路径计算单元通信协议PCEP报文,或者,所述控制报文为边界网关路由协议BGP报文。
23.一种通信装置,其特征在于,包括:处理器以及存储器;
所述存储器用于存储程序代码,
所述处理器用于执行所述程序代码,以使得所述通信装置执行如权利要求1-11所述的方法,或者,执行如权利要求12-20所述的方法,或者,执行如权利要求21-22所述的方法。
24.一种计算机程序存储介质,其特征在于,所述计算机程序存储介质具有程序指令,当所述程序指令被直接或者间接执行时,使得如权利要求1-11所述的方法被执行,或者,执行如权利要求12-20所述的方法被执行,或者,执行如权利要求21-22所述的方法被执行。
25.一种通信系统,其特征在于,所述通信系统包括:如权利要求1-11所述的第一节点,如权利要求12-20所述的第二节点,和如权利要求21-22所述的控制器。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110800586.XA CN115622930A (zh) | 2021-07-15 | 2021-07-15 | 一种报文处理方法以及相关装置 |
PCT/CN2022/105410 WO2023284774A1 (zh) | 2021-07-15 | 2022-07-13 | 一种报文处理方法以及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110800586.XA CN115622930A (zh) | 2021-07-15 | 2021-07-15 | 一种报文处理方法以及相关装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115622930A true CN115622930A (zh) | 2023-01-17 |
Family
ID=84856149
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110800586.XA Pending CN115622930A (zh) | 2021-07-15 | 2021-07-15 | 一种报文处理方法以及相关装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN115622930A (zh) |
WO (1) | WO2023284774A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116915685A (zh) * | 2023-09-06 | 2023-10-20 | 新华三技术有限公司 | 报文传输方法、装置及电子设备 |
CN118101555A (zh) * | 2024-04-22 | 2024-05-28 | 新华三技术有限公司 | 报文转发方法、装置、电子设备及计算机可读存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109981458B (zh) * | 2019-03-08 | 2022-07-26 | 华为技术有限公司 | 一种确定报文转发路径的方法、网络节点及系统 |
CN111682996B (zh) * | 2019-03-11 | 2024-01-05 | 华为技术有限公司 | 网络中报文转发的方法、网络节点、网络系统 |
CN112787931B (zh) * | 2019-11-06 | 2022-09-23 | 华为技术有限公司 | 报文传输方法、代理节点及存储介质 |
CN111628995B (zh) * | 2020-05-26 | 2023-06-16 | 新华三信息安全技术有限公司 | 基于SRv6的SID压缩方法、装置、设备及存储介质 |
-
2021
- 2021-07-15 CN CN202110800586.XA patent/CN115622930A/zh active Pending
-
2022
- 2022-07-13 WO PCT/CN2022/105410 patent/WO2023284774A1/zh active Application Filing
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116915685A (zh) * | 2023-09-06 | 2023-10-20 | 新华三技术有限公司 | 报文传输方法、装置及电子设备 |
CN116915685B (zh) * | 2023-09-06 | 2023-12-12 | 新华三技术有限公司 | 报文传输方法、装置及电子设备 |
CN118101555A (zh) * | 2024-04-22 | 2024-05-28 | 新华三技术有限公司 | 报文转发方法、装置、电子设备及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2023284774A1 (zh) | 2023-01-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11838200B2 (en) | Packet network interworking including segment routing | |
CN113300949B (zh) | 转发报文的方法、发布路由信息的方法、装置及系统 | |
US20200145331A1 (en) | Using In-Band Operations Data to Signal Packet Processing Departures in a Network | |
US8576721B1 (en) | Local forwarding bias in a multi-chassis router | |
KR102640600B1 (ko) | 하이브리드 네트워크에서 패킷을 포워딩하기 위한 방법, 디바이스, 및 시스템 | |
CN113079089A (zh) | 业务链的故障保护方法、装置、设备、系统及存储介质 | |
WO2023284774A1 (zh) | 一种报文处理方法以及相关装置 | |
CN112311673A (zh) | 在采用分段路由的网络中使用和处理每切片分段标识符 | |
CN114374634A (zh) | 报文转发方法以及网络设备 | |
CN113973082A (zh) | 一种报文处理方法及网络设备 | |
CN112202669A (zh) | 使用分段路由的弹性多协议标签交换(mpls)环 | |
CN114531395B (zh) | 一种通告网络设备处理能力的方法、设备和系统 | |
US20230412508A1 (en) | Packet processing method and related apparatus | |
CN113852550A (zh) | 发送报文的方法、装置、网络设备、系统及存储介质 | |
US20230155930A1 (en) | Packet Processing Method and Network Device | |
US20230308386A1 (en) | Packet Transmission Method and Apparatus | |
WO2022222750A1 (zh) | 报文转发方法、装置、网络设备及存储介质 | |
CN115550252A (zh) | 路由发布和转发报文的方法、装置、设备和存储介质 | |
US20230344751A1 (en) | Route Processing Method, Related Apparatus, and Network System | |
US11082540B2 (en) | Network operations including protocol processing of a packet updating an operations data field of a different protocol | |
CN115426305A (zh) | 报文处理方法、装置及系统 | |
CN114338518A (zh) | 一种路由处理方法及网络设备 | |
WO2024067084A1 (zh) | 一种路径故障检测的方法以及相关装置 | |
WO2023236880A1 (zh) | 一种报文控制方法以及相关装置 | |
CN117061406A (zh) | 一种报文处理的方法及相关设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |