CN112804148A - 一种报文转发方法及装置 - Google Patents
一种报文转发方法及装置 Download PDFInfo
- Publication number
- CN112804148A CN112804148A CN202110312656.7A CN202110312656A CN112804148A CN 112804148 A CN112804148 A CN 112804148A CN 202110312656 A CN202110312656 A CN 202110312656A CN 112804148 A CN112804148 A CN 112804148A
- Authority
- CN
- China
- Prior art keywords
- sid
- node
- companion
- srv6
- standard
- 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.)
- Withdrawn
Links
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
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例提供了一种报文转发方法及装置,应用于SRv6网络中的节点,该方法包括:从第一SRv6报文携带的多个伴生SID中提取下一跳节点的第一伴生SID,其中,每个伴生SID的长度均小于标准SID的长度;若从多个伴生SID中提取到第一伴生SID,则根据预先存储的伴生SID与标准SID的关联关系,确定第一伴生SID关联的第一标准SID;将第一SRv6报文的目的地址更新为第一标准SID,得到第二SRv6报文;转发第二SRv6报文。应用本申请实施例提供的技术方案,能够降低SRv6网络中传输的SRv6报文的报文头的开销,提高网络链路带宽利用率。
Description
技术领域
本申请涉及通信技术领域,特别是涉及一种报文转发方法及装置。
背景技术
随着通信技术的发展,SRv6(Segment Routing Internet Protocol Version 6,基于第六版互联网协议的分段路由)网络得到了广泛应用。
在SRv6网络中,采用SID(Segment Identifier,分段标识)定义网络功能以及指令等,实现网络设备间的通信。标准SID采用IPv6(Internet Protocol Version 6,互联网协议第六版)地址格式。标准SID继承了IPv6地址灵活连接、全局路由和可编程的优点,且,标准SID具有SR(Segment Routing,分段路由)的源路由、网络简化和路径可回溯的优势。
虽然SRv6网络的标准SID具有上述优点,但是由于SRv6网络中传输的SRv6报文的报文头中需要携带SRH(Segment Routing Header,分段路由头),该SRH包括的SL(SegmentList,分段列表)中携带有源节点至尾节点的路径上各个节点的SID,导致SRv6报文的报文头的开销过大,网络链路带宽利用率低。
发明内容
本申请实施例的目的在于提供一种报文转发方法及装置,以降低SRv6网络中传输的SRv6报文的报文头的开销,提高网络链路带宽利用率。具体技术方案如下:
第一方面,本申请实施例提供了一种报文转发方法,应用于SRv6网络中的节点,所述方法包括:
从第一SRv6报文携带的多个伴生SID中提取下一跳节点的第一伴生SID,其中,每个伴生SID的长度均小于标准SID的长度;
若从所述多个伴生SID中提取到所述第一伴生SID,则根据预先存储的伴生SID与标准SID的关联关系,确定所述第一伴生SID关联的第一标准SID;
将所述第一SRv6报文的目的地址更新为所述第一标准SID,得到第二SRv6报文;
转发所述第二SRv6报文。
可选的,所述方法还包括:
获取所述第一SRv6报文的目的地址,作为第二标准SID;
若从预先存储的伴生SID与标准SID的关联关系中,查找到所述第二标准SID关联的第二伴生SID,则执行所述从第一SRv6报文携带的多个伴生分段标识SID中提取下一跳节点的第一伴生SID的步骤;
若从预先存储的伴生SID与标准SID的关联关系中,未查找到所述第二标准SID关联的第二伴生SID,则将所述第二标准SID与预设路由表进行匹配,得到目标路由;按照所述目标路由转发所述第一SRv6报文。
可选的,所述方法还包括:
获取分段列表,所述分段列表包括从源节点至尾节点的路径上各个节点的伴生SID,且各个节点的伴生SID按照从尾节点至源节点的顺序排序;
将所述分段列表封装至初始报文中,得到所述第一SRv6报文。
可选的,所述方法还包括:
若从所述多个伴生SID中未提取到所述第一伴生SID,且所述节点为尾节点,则提取所述第一SRv6报文的载荷,将所述载荷转发给所述节点连接的主机;
若从所述多个伴生SID中未提取到所述第一伴生SID,且所述节点为中间节点,将所述第一SRv6报文的目的地址与预设路由表进行匹配,得到目标路由;按照所述目标路由转发所述第一SRv6报文。
可选的,所述方法还包括:
获取所述节点的伴生SID和标准SID;
向其他节点发布所述节点的伴生SID和标准SID,以使所述其他节点存储所述节点的伴生SID和标准SID的关联关系。
第二方面,本申请实施例提供了一种报文转发装置,其特征在于,应用于SRv6中的节点,所述装置包括:
提取单元,用于从第一SRv6报文携带的多个伴生SID中提取下一跳节点的第一伴生SID,其中,每个伴生SID的长度均小于标准SID的长度;
确定单元,用于若从所述多个伴生SID中提取到所述第一伴生SID,则根据预先存储的伴生SID与标准SID的关联关系,确定所述第一伴生SID关联的第一标准SID;
更新单元,用于将所述第一SRv6报文的目的地址更新为所述第一标准SID,得到第二SRv6报文;
转发单元,用于转发所述第二SRv6报文。
可选的,所述装置还包括:第一获取单元和匹配单元;
所述第一获取单元,用于获取所述第一SRv6报文的目的地址,作为第二标准SID;
所述提取单元,具体用于若从预先存储的伴生SID与标准SID的关联关系中,查找到所述第二标准SID关联的第二伴生SID,则从第一SRv6报文携带的多个伴生分段标识SID中提取下一跳节点的第一伴生SID;
所述匹配单元,用于若从预先存储的伴生SID与标准SID的关联关系中,未查找到所述第二标准SID关联的第二伴生SID,则将所述第二标准SID与预设路由表进行匹配,得到目标路由;
所述转发单元,还用于按照所述目标路由转发所述第一SRv6报文。
可选的,所述装置还包括:
第二获取单元,用于获取分段列表,所述分段列表包括从源节点至尾节点的路径上各个节点的伴生SID,且各个节点的伴生SID按照从尾节点至源节点的顺序排序;
封装单元,用于将所述分段列表封装至初始报文中,得到所述第一SRv6报文。
可选的,所述转发单元,还用于:
若从所述多个伴生SID中未提取到所述第一伴生SID,且所述节点为尾节点,则提取所述第一SRv6报文的载荷,将所述载荷转发给所述节点连接的主机;
若从所述多个伴生SID中未提取到所述第一伴生SID,且所述节点为中间节点,将所述第一SRv6报文的目的地址与预设路由表进行匹配,得到目标路由;按照所述目标路由转发所述第一SRv6报文。
可选的,所述装置还包括:
第三获取单元,用于获取所述节点的伴生SID和标准SID;
发布单元,用于向其他节点发布所述节点的伴生SID和标准SID,以使所述其他节点存储所述节点的伴生SID和标准SID的关联关系。
第三方面,本申请实施例提供了一种网络设备,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:实现上述任一所述的方法步骤。
第四方面,本申请实施例提供了一种机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:实现上述任一所述的方法步骤。
本申请实施例提供的技术方案中,SRv6网络中传输的SRv6报文中携带的是伴生SID,伴生SID的长度小于标准SID的长度。通过传输携带长度小于标准SID的伴生SID的SRv6报文,实现不同节点间的通信,大大降低了SRv6网络中传输的SRv6报文的报文头的开销,提高了网络链路带宽利用率。
当然,实施本申请的任一产品或方法必不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1a为IPv6报文的一种结构示意图;
图1b为IPv6标准头的一种结构示意图;
图1c为SRH的一种结构示意图;
图1d为IPv6报文的另一种结构示意图;
图2为SRH的另一种结构示意图;
图3为本申请实施例提供的报文转发方法的第一种流程示意图;
图4a为未采用本申请实施例提供的技术方案的SRH的一种结构示意图;
图4b为采用本申请实施例提供的技术方案的SRH的一种结构示意图;
图5为本申请实施例提供的报文转发方法的第二种流程示意图;
图6为本申请实施例提供的报文转发方法的第三种流程示意图;
图7为本申请实施例提供的网络拓扑的一种结构示意图;
图8a为图7中节点A获得的SRH的一种结构示意图;
图8b为图7中节点A获得的IPv6标准头的一种结构示意图;
图8c为图7中节点A获得的报文的一种结构示意图;
图9a为图7中节点B获得的IPv6标准头的一种结构示意图;
图9b为图7中节点B获得的报文的一种结构示意图;
图9c为图7中节点B获得的报文的另一种结构示意图;
图10为本申请实施例提供的报文转发装置的一种结构示意图;
图11为本申请实施例提供的网络设备的一种结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。本领域普通技术人员基于本申请所获得的所有其他实施例,都属于本申请保护的范围。
下面对本申请实施例中出现的词语进行解释说明。
IPv6:是IETF(The Internet Engineering Task Force,互联网工程任务组)设计的用于替代IPv4 Internet Protocol Version 4,互联网协议第四版)的下一代IP(Internet Protocol,互联网协议)。
SR:采用源路径选择机制,由源节点选择路径,并且引导数据包沿着选择的路径通过网络。具体实施是,报文的报文头中插入顺序的SL,利用SL指示收到这些报文的节点转发和处理这些报文。
SRv6是SR和IPv6两种网络技术的结合体。SRv6是在IPv6报文的IP扩展头中进行了新的扩展,这个扩展称为SRH。
节点是指网络设备,如路由器、交换机等。
IPv6报文包括IPv6标准头、扩展头和载荷。其中,扩展头可以包括一个或多个。以扩展头只有SRH为例,IPv6报文的结构如图1a所示。IPv6标准头的结构如图1b所示,SRH的结构如图1c所示。综合上图1a、1b和1c,IPv6报文的具体结构如图1d所示。在SRv6网络中,上述IPv6报文又可以称为SRv6报文。
在SRH中SL[i]表示一个标准SID,i=0,1,…,n-1,n为从源节点至尾节点的路径上除源节点外的节点总数。标准SID采用IPv6地址格式,由位置标识(Locator)、功能(Function)和可选执行参数(Arguments),如图2所示。其中,Locator是网络拓扑中分配给一个节点的标识,用于指导转发报文到该节点。Function用来指示节点要执行的转发动作。Arguments是可选执行参数,可以包含流、服务或其他任何相关信息。
SRv6网络中,节点接收到SRv6报文后,根据剩余分段字段的取值从SL中确定下一跳节点的标准SID,并将IPv6标准头中的目的地址更新为所确定的标准SID。进而,该节点根据路由表,将更新后的SRv6报文发送给下一跳节点。
由上可知,SRv6网络中,SRv6报文中携带多个节点的标准SID。而一个标准SID的长度为128比特(bit)。这种情况下,随着源节点至尾节点的路径上节点的数量的增多,将会大大增加SRH中标准SID的数量,进而大大增加SRv6网络中传输的SRv6报文的报文头的开销,大大降低网络链路带宽利用率。例如,256字节包长的报文,在SRv6报文的报文头中具有8层标准SID的情况下带宽利用率只有60%左右。
为解决上述问题,本申请实施例提供了一种报文转发方法,该方法可以应用于SRv6网络中的路由器、交换机等网络设备,该网络设备可以是源节点,也可以是尾节点,还可以是中间节点。为便于理解和描述,下面以节点为执行主体进行说明,并不起限定作用。
该报文转发方法中,从第一SRv6报文携带的多个伴生SID中提取下一跳节点的第一伴生SID,其中,每个伴生SID的长度均小于标准SID的长度;若从多个伴生SID中提取到第一伴生SID,则根据预先存储的伴生SID与标准SID的关联关系,确定第一伴生SID关联的第一标准SID;将第一SRv6报文的目的地址更新为第一标准SID,得到第二SRv6报文;转发第二SRv6报文。
本申请实施例提供的技术方案中,SRv6网络中传输的SRv6报文中携带的是伴生SID,伴生SID的长度小于标准SID的长度。通过传输携带长度小于标准SID的伴生SID的SRv6报文,实现不同节点间的通信,大大降低了SRv6网络中传输的SRv6报文的报文头的开销,提高了网络链路带宽利用率。
下面通过具体实施例,对本申请实施例提供的报文转发方法进行详细说明。
如图3所示,图3为本申请实施例提供的报文转发方法的第一种流程示意图,该方法应用于SRv6网络中的节点,包括如下步骤:
步骤S31,从第一SRv6报文携带的多个伴生SID中提取下一跳节点的第一伴生SID。
本申请实施例中,每个伴生SID的长度均小于标准SID的长度。第一SRv6报文可以为任一SRv6报文,这里仅以第一SRv6报文为例进行说明,并不起限定作用。第一SRv6报文携带的SID为伴生SID。可以理解的是,第一SRv6报文携带的SL中包括的是伴生SID。这种情况下,SRH的结构由图4a变更为图4b。
当节点获取到第一SRv6报文后,从第一报文的SRH的SL中,提取下一跳节点的伴生SID,作为第一伴生SID。
由于伴生SID的长度小于标准SID的长度,因此,携带伴生SID的SRH开销小于携带标准SID的SRH开销。进而,相对于携带标准SID的报文头,本申请实施例提供的技术方案,降低了SRv6网络中传输的SRv6报文的报文头的开销,提高了网络链路带宽利用率。
上述伴生SID的长度可以为8bit、16bit或32bit,具体可以根据实际需求进行设定。为了保证不同节点间的通信,上述伴生SID在SRv6网络中具有唯一性。
一个可选的实施例中,当节点为源节点或中间节点时,节点可以从第一SRv6报文携带的多个伴生SID中提取到下一跳节点的第一伴生SID。而,当节点为尾节点时,节点无法从第一SRv6报文携带的多个伴生SID中提取到下一跳节点的第一伴生SID。也就是,在从多个伴生SID中未提取到第一伴生SID的情况下,节点可确定自身为尾节点,解封装第一SRv6报文,以去除第一SRv6报文的报文头,获得第一SRv6报文的载荷,进而将载荷转发给与该节点连接的主机。
一个可选的实施例中,若节点为中间节点,且该节点不支持SRv6时,节点无法识别SRH,进而无法从第一SRv6报文携带的多个伴生SID中提取到下一跳节点的第一伴生SID。这种情况下,节点将第一SRv6报文的目的地址与预设路由表进行匹配,确定目标路由;按照目标路由转发第一SRv6报文。
步骤S32,若从多个伴生SID中提取到第一伴生SID,则根据预先存储的伴生SID与标准SID的关联关系,确定第一伴生SID关联的第一标准SID。
本申请实施例中,节点中预先存储了伴生SID与标准SID的关联关系。这里,具有关联关系的伴生SID和标准SID对应同一节点。
若从第一SRv6报文携带的多个伴生SID中提取到第一伴生SID,则节点从预先存储的伴生SID与标准SID的关联关系中,查找包括第一伴生SID的关联关系。若查找到,节点可将该查找到的关联关系包括的标准SID作为第一伴生SID关联的第一标准SID。这里,第一标准SID即为下一跳节点的标准SID。
一个可选的实施例中,若未找到包括第一伴生SID的关联关系,则节点可确定当前未接收到第一伴生SID对应的节点发布的信息,等待预设时长。在等待预设时长后,节点再次从预先存储的伴生SID与标准SID的关联关系中,查找包括第一伴生SID的关联关系。若仍未查找到,则节点可确定第一SRv6报文为非法报文,丢弃第一SRv6报文。这提高了网络安全性。
步骤S33,将第一SRv6报文的目的地址更新为第一标准SID,得到第二SRv6报文。
在确定下一跳节点的第一标准SID后,节点将第一SRv6报文的目的地址更新为第一标准SID,即将第一报文的IPv6标准头中的目的地址更新为第一标准SID。该目的地址更新后的第一SRv6报文为第二SRv6报文。
步骤S34,转发第二SRv6报文。
本申请实施例中,在得到第二SRv6报文后,节点将第一标准SID与预设路由表进行匹配,确定与第一标准SID匹配的路由,按照所确定的路由转发第二SRv6报文。
本申请实施例提供的技术方案中,通过传输携带长度小于标准SID的伴生SID的报文,实现不同节点间的通信,大大降低了SRv6网络中传输的SRv6报文的报文头的开销,提高了网络链路带宽利用率。
另外,本申请实施例提供的技术方案中,只需要为每个节点分配唯一的伴生SID,就可以实现对报文头的压缩,降低SRv6网络中传输的SRv6报文的报文头的开销。这里,不需要所有伴生SID或标准SID具有共同前缀等信息,突破了由共同前缀等信息给SRv6网络带来的规模限制。
一个可选的实施例中,本申请实施例还提供了一种报文转发方法,如图5所示,该方法还可以包括如下步骤:
步骤S35,获取第一SRv6报文的目的地址,作为第二标准SID。
在获取到第一SRv6报文后,节点从第一SRv6报文的IPv6标准头中,提取第一SRv6报文的目的地址,该第一SRv6报文的目的地址为该节点的标准SID,即第二标准SID。
步骤S36,从预先存储的伴生SID与标准SID的关联关系中,查找第二标准SID关联的第二伴生SID。若查找到,则执行步骤S31。若否,则执行步骤S37。
本申请实施例中,节点在获取到第二标准SID,从预先存储的伴生SID与标准SID的关联关系中,查找包括第二标准SID的关联关系。若查找到包括第二标准SID的关联关系,节点可将该关联关系中的伴生SID作为第二标准SID关联的第二伴生SID。在查找到第二伴生SID的情况下,节点可确定自身支持SRv6,继续执行步骤S31,以将第一SRv6报文转发给下一跳节点。
若未查找到包括第二标准SID的关联关系,则节点可确定自身不支持SRv6,执行步骤S37。
步骤S37,将第二标准SID与预设路由表进行匹配,得到目标路由。
本申请实施例中,在未查找到包括第二标准SID的关联关系的情况下,节点将第二标准SID与预设路由表进行匹配,获得与第二标准SID匹配的路由作为目标路由。
这里,节点可以按照最长匹配原则或其他原则,从预设路由表中获得与第二标准SID匹配的目标路由。
步骤S38,按照目标路由转发第一SRv6报文。
本申请实施例中,在确定目标路由后,节点按照目标路由,将第一报文转发至下一跳节点。
本申请实施例提供的技术方案中,SRv6网络中可以兼容支持SRv6的节点和不支持SRv6的节点,可以最大限度的提高SRv6网络的规模。
一个可选的实施例中,本申请实施例还提供了一种报文转发方法,如图6所示,该方法还可以包括如下步骤:
步骤S39,获取分段列表,分段列表包括从源节点至尾节点的路径上各个节点的伴生SID,且各个节点的伴生SID按照从尾节点至源节点的顺序排序。
本申请实施例中,当节点作为源节点,且源节点需要向尾节点发送SRv6报文时,该节点获取SL。
一个示例中,节点连接的SDN(Software Defined Network,软件定义网络)控制器可以向该节点下发SL。进而,该节点获取到SL。另一个示例中,用户可以手动向节点下发SL。进而,节点获取到SL。
步骤S310,将分段列表封装至初始报文中,得到第一SRv6报文。
本申请实施例中,在获取到SL后,节点将SL封装至初始报文的SRH中,也就是,以逆序压入的方式,将从源节点至尾节点的路径上除源节点外各个节点的伴生SID压入初始报文的SRH中,得到第一SRv6报文。进而节点执行后续步骤S31-S34,实现报文的转发。上述初始报文为源节点连接的主机发送给源节点的。初始报文携带有需要发送给尾节点连接的主机的载荷。
一个可选的实施例中,在转发报文前,节点按照预设算法生成标准SID关联的伴生SID,或用户手动配置标准SID关联的伴生SID。节点获取到该节点的伴生SID、标准SID,以及该节点的Locator信息后,向其他节点发布该节点的伴生SID、标准SID、以及Locator信息。其他节点在接收到该节点的伴生SID、标准SID、以及Locator信息后,存储该节点的伴生SID和标准SID的关联关系,并记录该节点的Locator信息。之后,其他节点可基于存储本节点的伴生SID和标准SID,与该节点通信。
同时,节点可以接收其他节点发布的伴生SID、标准SID、以及Locator信息,并存储其他节点的伴生SID与标准SID的关联关系、以及Locator信息。进而,该节点可基于存储其他节点的伴生SID和标准SID,与其他节点通信,如上述步骤S31-S34。
下面结合图7所示的网络拓扑结构,对本申请实施例提供的报文转发方法进行详细说明。图7中,主机H1至主机H2的路径上包括节点依次为:节点A、节点B、节点C和节点D。节点A为源节点,节点D为尾节点。节点A、节点B和节点D支持SRv6,节点C不支持SRv6。各个节点中存储的伴生SID与标准SID的关联关系如表1所示。
表1
伴生SID | 标准SID | |
节点A | 0xA001 | A::1 |
节点B | 0xB001 | B::1 |
节点D | 0xD001 | D::1 |
在主机H1需要向主机H2发送载荷1时,主机H1将载荷1发送给节点A。节点A将自身的标准SID(即A::1)复制到IPv6标准头的源地址字段,并按照逆序,将节点B的伴生SID(即0xB001)和节点D的(即0xD001)压入SRH的分段列表。分段列表包括2个伴生SID,因此,节点A设置剩余分段的值为1。此时,节点A获得的SRH如图8a所示。
剩余分段的值指向当前需要处理的操作指令SL[1]。节点A从SRH的分段列表中提取SL[1]的值,即下一跳节点B的伴生0xB001。节点A查询表1,得到0xB001对应的下一跳节点B的标准SID(即B::1),并将B::1复制到IPv6标准头的目的地址字段。此时,节点A获得的IPv6标准头如图8b所示,获得的携带载荷1的SRv6报文1如图8c所示。节点A按照最长匹配原则,将SRv6报文1的目的地址(即B::1)与路由表进行匹配,获得路由1。节点A按照路由1将SRv6报文1转发给节点B。
节点B接收SRv6报文1,从表1中查找包括SRv6报文1的目的地址B::1(即节点B的标准SID)。若查找到,则节点B将剩余分段的值减1,此时剩余分段的值为0。
剩余分段的值指向当前需要处理的操作指令SL[0]。节点B从SRH的分段列表中提取SL[0]的值,即下一跳节点D的伴生0xD001。节点B查询表1,得到0xD001对应的下一跳节点D的标准SID(即D::1),并将D::1复制到IPv6标准头的目的地址字段。此时,节点B获得的IPv6标准头如图9a所示,SRv6报文1更新为携带载荷1的SRv6报文2,如图9b所示。节点B按照最长匹配原则,将SRv6报文2的目的地址(即D::1)与路由表进行匹配,获得路由2。节点B按照路由2将SRv6报文2转发给节点C。
这里,节点B为节点A至节点B的路径上的倒数第二个节点,若节点D的标准SID为PSP(Penultimate Segment POP,次末分段弹出)类型的SID,而节点B为次末节点,则节点B弹出SRH。这种情况下,节点B获得的携带载荷1的SRv6报文2’,如图9c所示。节点B按照最长匹配原则,将SRv6报文2’的目的地址(即D::1)与路由表进行匹配,获得路由2。节点B按照路由2将SRv6报文2’转发给节点C。
以下以节点B将SRv6报文2转发给节点C为例进行说明。
节点C接收SRv6报文2。由于节点C不支持SRv6,无法识别SRH,只支持处理IPv6标准头,也就是,无法查询表1,得到0xD001对应的下一跳节点D的标准SID,因此,节点C按照正常的IPv6报文处理流程,按照最长匹配原则,将SRv6报文2的目的地址(即D::1)与路由表进行匹配,获得路由3。节点C按照路由3将SRv6报文2转发给节点D。
节点D接收SRv6报文2,从表1中查找包括SRv6报文2的目的地址D::1(即节点D的标准SID)。由于SRv6报文2中剩余分段的值为0,因此,节点D无法从SRv6报文2中获取下一跳节点的伴生SID,节点D确定自身为尾节点,解封装SRv6报文2,以去除SRv6报文2的报文头,获得SRv6报文2的载荷1,进而将载荷1转发给与节点D连接的主机H2。
与上述报文转发方法对应,本申请实施例还提供了一种报文转发装置,如图10所示,该装置应用于SRv6网络中的节点,包括:
提取单元101,用于从第一SRv6报文携带的多个伴生SID中提取下一跳节点的第一伴生SID,其中,每个伴生SID的长度均小于标准SID的长度;
确定单元102,用于若从多个伴生SID中提取到第一伴生SID,则根据预先存储的伴生SID与标准SID的关联关系,确定第一伴生SID关联的第一标准SID;
更新单元103,用于将第一SRv6报文的目的地址更新为第一标准SID,得到第二SRv6报文;
转发单元104,用于转发第二SRv6报文。
一个可选的实施例中,上述报文转发装置还可以包括:第一获取单元和匹配单元;
第一获取单元,用于获取第一SRv6报文的目的地址,作为第二标准SID;
提取单元101,具体可以用于若从预先存储的伴生SID与标准SID的关联关系中,查找到第二标准SID关联的第二伴生SID,则从第一SRv6报文携带的多个伴生分段标识SID中提取下一跳节点的第一伴生SID;
匹配单元,用于若从预先存储的伴生SID与标准SID的关联关系中,未查找到第二标准SID关联的第二伴生SID,则将第二标准SID与预设路由表进行匹配,得到目标路由;
转发单元104,还可以用于按照目标路由转发第一SRv6报文。
一个可选的实施例中,上述报文转发装置还可以包括:
第二获取单元,用于获取分段列表,分段列表包括从源节点至尾节点的路径上各个节点的伴生SID,且各个节点的伴生SID按照从尾节点至源节点的顺序排序;
封装单元,用于将分段列表封装至初始报文中,得到第一SRv6报文。
一个可选的实施例中,转发单元104,还可以用于:
若从多个伴生SID中未提取到第一伴生SID,且节点为尾节点,则提取第一SRv6报文的载荷,将载荷转发给节点连接的主机;
若从多个伴生SID中未提取到第一伴生SID,且节点为中间节点,将第一SRv6报文的目的地址与预设路由表进行匹配,得到目标路由;按照目标路由转发第一SRv6报文。
一个可选的实施例中,上述报文转发装置还可以包括:
第三获取单元,用于获取节点的伴生SID和标准SID;
发布单元,用于向其他节点发布节点的伴生SID和标准SID,以使其他节点存储节点的伴生SID和标准SID的关联关系。
本申请实施例提供的技术方案中,SRv6网络中传输的SRv6报文中携带的是伴生SID,伴生SID的长度小于标准SID的长度。通过传输携带长度小于标准SID的伴生SID的报文,实现不同节点间的通信,大大降低了SRv6网络中传输的SRv6报文的报文头的开销,提高了网络链路带宽利用率。
与上述报文转发方法对应,本申请实施例还提供了一种网络设备,如图11所示,包括处理器111和机器可读存储介质112,机器可读存储介质112存储有能够被处理器111执行的机器可执行指令。该网络设备即为上述节点。处理器111被机器可执行指令促使实现上述图1-图9所示的任一步骤。
与上述报文转发方法对应,本申请实施例还提供了一种机器可读存储介质,机器可读存储介质存储有能够被处理器执行的机器可执行指令。处理器被机器可执行指令促使实现上述图1-图9所示的任一步骤。
上述机器可读存储介质可以包括RAM(Random Access Memory,随机存取存储器),也可以包括NVM(Non-Volatile Memory,非易失性存储器),例如至少一个磁盘存储器。另外,机器可读存储介质还可以是至少一个位于远离前述处理器的存储装置。
上述处理器可以是通用处理器,包括CPU(Central Processing Unit,中央处理器)、NP(Network Processor,网络处理器)等;还可以是DSP(Digital Signal Processing,数字信号处理器)、ASIC(Application Specific Integrated Circuit,专用集成电路)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)或其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、网络设备、机器可读存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的较佳实施例,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。
Claims (10)
1.一种报文转发方法,其特征在于,应用于基于第六版互联网协议的分段路由SRv6网络中的节点,所述方法包括:
从第一SRv6报文携带的多个伴生分段标识SID中提取下一跳节点的第一伴生SID,其中,每个伴生SID的长度均小于标准SID的长度;
若从所述多个伴生SID中提取到所述第一伴生SID,则根据预先存储的伴生SID与标准SID的关联关系,确定所述第一伴生SID关联的第一标准SID;
将所述第一SRv6报文的目的地址更新为所述第一标准SID,得到第二SRv6报文;
转发所述第二SRv6报文。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述第一SRv6报文的目的地址,作为第二标准SID;
若从预先存储的伴生SID与标准SID的关联关系中,查找到所述第二标准SID关联的第二伴生SID,则执行所述从第一SRv6报文携带的多个伴生分段标识SID中提取下一跳节点的第一伴生SID的步骤;
若从预先存储的伴生SID与标准SID的关联关系中,未查找到所述第二标准SID关联的第二伴生SID,则将所述第二标准SID与预设路由表进行匹配,得到目标路由;按照所述目标路由转发所述第一SRv6报文。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取分段列表,所述分段列表包括从源节点至尾节点的路径上各个节点的伴生SID,且各个节点的伴生SID按照从尾节点至源节点的顺序排序;
将所述分段列表封装至初始报文中,得到所述第一SRv6报文。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
若从所述多个伴生SID中未提取到所述第一伴生SID,且所述节点为尾节点,则提取所述第一SRv6报文的载荷,将所述载荷转发给所述节点连接的主机;
若从所述多个伴生SID中未提取到所述第一伴生SID,且所述节点为中间节点,将所述第一SRv6报文的目的地址与预设路由表进行匹配,得到目标路由;按照所述目标路由转发所述第一SRv6报文。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述方法还包括:
获取所述节点的伴生SID和标准SID;
向其他节点发布所述节点的伴生SID和标准SID,以使所述其他节点存储所述节点的伴生SID和标准SID的关联关系。
6.一种报文转发装置,其特征在于,应用于基于第六版互联网协议的分段路由网络SRv6中的节点,所述装置包括:
提取单元,用于从第一SRv6报文携带的多个伴生分段标识SID中提取下一跳节点的第一伴生SID,其中,每个伴生SID的长度均小于标准SID的长度;
确定单元,用于若从所述多个伴生SID中提取到所述第一伴生SID,则根据预先存储的伴生SID与标准SID的关联关系,确定所述第一伴生SID关联的第一标准SID;
更新单元,用于将所述第一SRv6报文的目的地址更新为所述第一标准SID,得到第二SRv6报文;
转发单元,用于转发所述第二SRv6报文。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:第一获取单元和匹配单元;
所述第一获取单元,用于获取所述第一SRv6报文的目的地址,作为第二标准SID;
所述提取单元,具体用于若从预先存储的伴生SID与标准SID的关联关系中,查找到所述第二标准SID关联的第二伴生SID,则从第一SRv6报文携带的多个伴生分段标识SID中提取下一跳节点的第一伴生SID;
所述匹配单元,用于若从预先存储的伴生SID与标准SID的关联关系中,未查找到所述第二标准SID关联的第二伴生SID,则将所述第二标准SID与预设路由表进行匹配,得到目标路由;
所述转发单元,还用于按照所述目标路由转发所述第一SRv6报文。
8.根据权利要求6所述的装置,其特征在于,所述装置还包括:
第二获取单元,用于获取分段列表,所述分段列表包括从源节点至尾节点的路径上各个节点的伴生SID,且各个节点的伴生SID按照从尾节点至源节点的顺序排序;
封装单元,用于将所述分段列表封装至初始报文中,得到所述第一SRv6报文。
9.根据权利要求8所述的装置,其特征在于,所述转发单元,还用于:
若从所述多个伴生SID中未提取到所述第一伴生SID,且所述节点为尾节点,则提取所述第一SRv6报文的载荷,将所述载荷转发给所述节点连接的主机;
若从所述多个伴生SID中未提取到所述第一伴生SID,且所述节点为中间节点,将所述第一SRv6报文的目的地址与预设路由表进行匹配,得到目标路由;按照所述目标路由转发所述第一SRv6报文。
10.根据权利要求6-9任一项所述的装置,其特征在于,所述装置还包括:
第三获取单元,用于获取所述节点的伴生SID和标准SID;
发布单元,用于向其他节点发布所述节点的伴生SID和标准SID,以使所述其他节点存储所述节点的伴生SID和标准SID的关联关系。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110312656.7A CN112804148A (zh) | 2021-03-24 | 2021-03-24 | 一种报文转发方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110312656.7A CN112804148A (zh) | 2021-03-24 | 2021-03-24 | 一种报文转发方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112804148A true CN112804148A (zh) | 2021-05-14 |
Family
ID=75815703
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110312656.7A Withdrawn CN112804148A (zh) | 2021-03-24 | 2021-03-24 | 一种报文转发方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112804148A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113472658A (zh) * | 2021-06-29 | 2021-10-01 | 新华三信息安全技术有限公司 | 一种报文封装方法、报文转发方法及装置 |
CN113726654A (zh) * | 2021-08-13 | 2021-11-30 | 新华三信息安全技术有限公司 | Srv6协议的报文转发方法、装置、电子设备及介质 |
CN113810288A (zh) * | 2021-09-17 | 2021-12-17 | 新华三信息安全技术有限公司 | 一种报文回程方法及装置 |
CN114124781A (zh) * | 2021-11-23 | 2022-03-01 | 中国联合网络通信集团有限公司 | SRv6中报文的转发方法、系统、电子设备及存储介质 |
CN114157601A (zh) * | 2021-11-29 | 2022-03-08 | 中国联合网络通信集团有限公司 | 一种报文传输方法、装置及存储介质 |
CN115632977A (zh) * | 2022-08-31 | 2023-01-20 | 中电信数智科技有限公司 | 一种基于混合组网转发SRv6报文的装置 |
WO2023193471A1 (zh) * | 2022-04-08 | 2023-10-12 | 中兴通讯股份有限公司 | 地址设置方法、装置、存储介质及电子装置 |
-
2021
- 2021-03-24 CN CN202110312656.7A patent/CN112804148A/zh not_active Withdrawn
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113472658A (zh) * | 2021-06-29 | 2021-10-01 | 新华三信息安全技术有限公司 | 一种报文封装方法、报文转发方法及装置 |
CN113472658B (zh) * | 2021-06-29 | 2022-11-18 | 新华三信息安全技术有限公司 | 一种报文封装方法、报文转发方法及装置 |
CN113726654A (zh) * | 2021-08-13 | 2021-11-30 | 新华三信息安全技术有限公司 | Srv6协议的报文转发方法、装置、电子设备及介质 |
CN113810288A (zh) * | 2021-09-17 | 2021-12-17 | 新华三信息安全技术有限公司 | 一种报文回程方法及装置 |
CN114124781A (zh) * | 2021-11-23 | 2022-03-01 | 中国联合网络通信集团有限公司 | SRv6中报文的转发方法、系统、电子设备及存储介质 |
CN114157601A (zh) * | 2021-11-29 | 2022-03-08 | 中国联合网络通信集团有限公司 | 一种报文传输方法、装置及存储介质 |
CN114157601B (zh) * | 2021-11-29 | 2024-03-29 | 中国联合网络通信集团有限公司 | 一种报文传输方法、装置及存储介质 |
WO2023193471A1 (zh) * | 2022-04-08 | 2023-10-12 | 中兴通讯股份有限公司 | 地址设置方法、装置、存储介质及电子装置 |
CN115632977A (zh) * | 2022-08-31 | 2023-01-20 | 中电信数智科技有限公司 | 一种基于混合组网转发SRv6报文的装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112804148A (zh) | 一种报文转发方法及装置 | |
US11863440B2 (en) | Method for forwarding packet and network device | |
KR100453055B1 (ko) | Ip 네트워크 상에서의 경로 mtu 탐색 방법 및 그 장치 | |
KR100453056B1 (ko) | 동적 ip 네트워크 상에서의 pmtu 변경 방법 및 그장치 | |
KR20120079124A (ko) | 동적 터널 메시지 전달 구현 방법 및 스위치 | |
US20180048593A1 (en) | Flow entry generating and packet processing based on flow entry | |
US20240022652A1 (en) | A method of using bit vectors to allow expansion and collapse of header layers within packets for enabling flexible modifications and an apparatus thereof | |
US9473601B2 (en) | Method of representing a generic format header using continuous bytes and an apparatus thereof | |
US20060109807A1 (en) | Multicasting using tunneling method | |
KR102368168B1 (ko) | 수정을 위해 패킷을 개별 레이어들로 분할하고 수정 후에 레이어들을 지능적으로 다시 연결하는 방법 및 이의 장치 | |
US9497294B2 (en) | Method of using a unique packet identifier to identify structure of a packet and an apparatus thereof | |
US7746865B2 (en) | Maskable content addressable memory | |
EP2958288B1 (en) | A method of modifying packets to a generic format for enabling programmable modifications and an apparatus thereof | |
US9628385B2 (en) | Method of identifying internal destinations of networks packets and an apparatus thereof | |
US20070268885A1 (en) | Method and system for two stage forwarding information base | |
CN103973576B (zh) | 一种链路本地组播报文的处理方法和网络设备 | |
EP2958286B1 (en) | A method of using generic modification instructions to enable flexible modifications of packets and an apparatus thereof | |
KR100778348B1 (ko) | IPv6 라우터의 라인 카드에서 터널 포워딩 정보 구축방법 | |
JP2019097053A (ja) | パケット識別装置および方法 |
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 | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20210514 |
|
WW01 | Invention patent application withdrawn after publication |