一种生成段标识SID的方法和网络设备与流程

文档序号:26586695发布日期:2021-09-10 19:29阅读:48来源:国知局
一种生成段标识SID的方法和网络设备与流程
一种生成段标识sid的方法和网络设备
技术领域
1.本技术涉及通信技术领域,特别是涉及一种生成段标识(英文:segment identifier,简称:sid)的方法和网络设备。


背景技术:

2.随着业务的快速发展,段路由(英文:segment routing,简称:sr)技术被提出。将sr技术部署在第六版互联网协议(英文:internet protocol version 6,简称:ipv6)数据平面上,称为srv6。网络设备要为其上的接口以及业务配置对应的定位标识(英文:locator),基于该locator生成对应的sid;那么,为了在srv6场景下实现有效的报文转发,为用户提供高质量的业务服务,网络设备需要将其上所有的sid在网络中泛洪,并且,将基于所配置的locator生成的网段路由在网络中扩散,以便网络中其他网络设备根据该网段路由以及sid,识别出所接收的各sid分别对应的具体网络设备。
3.目前,各网络设备通常将其上所有的sid以列表的形式全部携带在用于发布sid的报文(例如:链路状态协议(英文:link state protocol,简称:lsp)报文)中,发送给网络中的其他网络设备。但是,由于用于在网络中发布sid的报文长度有限,而每个sid均为128比特的ipv6地址,若随着业务增多或者网络设备上接口数量增多,网络设备上生成的sid太多,则该报文无法承载下所有的sid,很可能导致该网络中无法进行正常通信。


技术实现要素:

4.基于此,本技术实施例提供了一种生成段标识sid的方法和网络设备,在srv6网络中,能够有效的减小发布相同数量sid所占用的报文空间,使得网络设备将其上所有的sid在网络中泛洪成为可能,从而确保该网络中通信的正常进行。
5.第一方面,提供了一种生成段标识sid的方法,应用于srv6网络中,该网络中至少包括第一网络设备和第二网络设备,第一网络设备能够接收第二网络设备发送的报文,该报文携带基准标识、第一功能标识和第二功能标识;此时,第一网络设备即可基于该报文中的基准标识、第一功能标识和第二功能标识,生成第一sid和第二sid,其中,第一sid和第二sid具有相同的公共部分,第一sid包括公共部分和第一功能标识,第二sid包括公共部分和第二功能标识,基准标识包括公共部分。这样,由于用于泛洪sid的报文中对于多个sid中的公共部分仅携带一次,即,多个sid中的公共部分不会重复的占用报文的存储空间,提高了报文传输效率,节省了网络带宽资源,使得该报文携带网络设备上生成的所有sid成为可能。
6.其中,基准标识、第一功能标识和第二功能标识可以是通过命令行在第二网络设备上配置的。通过在第二网络设备上配置基准标识、第一功能标识和第二功能标识,能够使得第二网络设备基于此生成第一sid和第二sid。而第一网络设备接收到携带基准标识、第一功能标识和第二功能标识的报文,也能够基于该基准标识、第一功能标识和第二功能标识生成第二网络设备相应的第一sid和第二sid。需要说明的是,第二网络设备生成第一sid
和第二sid,与第二网络设备向第一网络设备发送用于泛洪sid的报文,这两个步骤的实施可以不限定其先后顺序,可以按照先后顺序分别执行也可以同时执行,不影响本技术实施例的实现。
7.在一种可能的实现方式中,基准标识是一个128比特长度的信息,例如为一个sid。基准标识包括公共部分以及在除了公共部分以外的其他部分补零后的128比特信息。或者,第二网络设备先生成第一sid和/或第二sid,则,基准标识也可以是第一sid或第二sid,例如:假设第一sid为1:2:3:4580::1,第二sid为1:2:3:4581::1,公共部分为1:2:3:45,接口标识为1,那么,基准标识可以是:1:2:3:4500::1,也可以是1:2:3:4580::1,还可以是1:2:3:4581::1。这样,由于第二网络设备上产生的多个sid中的公共部分不会重复的占用用于泛洪sid的报文的空间,使得多个具有相同公共部分的sid占用该报文的空间大大降低,从而使得该报文携带网络设备上生成的所有sid成为可能。
8.在一种可能的实现方式中,该基准标识的长度为128比特,公共部分存储在基准标识的第1比特位到第k比特位,其中,k为小于或等于128的正整数,那么,第一网络设备根据基准标识、第一功能标识和第二功能标识生成第一sid和第二sid,具体可以包括:第一网络设备生成第一sid,第一sid的第1比特位到第k比特位之间存储有公共部分,第一sid的第k+1比特位到第128比特位之间存储有第一功能标识;同理,第一网络设备生成第二sid,第二sid的第1比特位到第k比特位之间存储有公共部分,第二sid的第k+1比特位到第128比特位之间存储有第二功能标识。作为一个示例,报文还包括第一位置信息和第二位置信息,第一位置信息用于指示第一功能标识存储在第一sid中第k+1比特位到第128比特位之间的位置,第二位置信息用于指示第二功能标识存储在第二sid中第k+1比特位到第128比特位之间的位置。需要说明的是,第一位置信息和第二位置信息可以相同,也可以不同,如果第一位置信息和第二位置信息相同,则,第一功能标识在第一sid中的位置和第二功能标识在第二sid中的位置一致,例如:第一sid和第二sid中,公共部分占用的是第1比特位到第55比特位,第一功能标识和第二功能标识占用的均是第56比特位到第128比特位中的第56比特位到第63比特位;如果第一位置信息和第二位置信息不相同,则,第一功能标识在第一sid中的位置和第二功能标识在第二sid中的位置虽然都在第k比特位到第128比特位之间,但却不是该区间中相同的位置,例如:第一sid和第二sid中,公共部分占用的是第1比特位到第55比特位,第一功能标识占用的是第56比特位到第128比特位中的第56比特位到第63比特位,第二功能标识占用的是第56比特位到第128比特位中的第121比特位到第128比特位。
9.在一种可能的实现方式中,该报文还可以包括第三位置信息,那么,第一网络设备根据基准标识、第一功能标识和第二功能标识生成第一sid和第二sid,具体可以包括:第一网络设备生成第一sid,第一功能标识存储在第一sid中第三位置信息所指示的位置;同理,第一网络设备生成第二sid,第二功能标识存储在第二sid中第三位置信息所指示的位置。其中,第三位置信息用于指示第一功能标识存储在第一sid中第m比特位到第n比特位,第三位置信息还用于指示第二功能标识存储在第二sid中第m比特位到第n比特位,其中,m和n均为正整数,n≤m≤128。例如:假设n=56,m=63,那么,在第一sid中的第56bit到第63bit存储第一功能标识,在第二sid中的第56bit到第63bit存储第二功能标识。
10.在一种可能的实现方式中,该报文还可以包括第三位置信息,那么,第一网络设备根据基准标识、第一功能标识和第二功能标识生成第一sid和第二sid,具体可以包括:第一
网络设备将第一功能标识存储在基准标识的第三位置信息所指示的位置得到第二标识,根据第二标识生成第一sid,第一sid的值与第二标识的值相同;同理,第一网络设备将第二功能标识存储在基准标识的第三位置信息所指示的位置得到第三标识,根据第三标识生成第一sid,第一sid的值与第三标识的值相同。该实现方式中,第三位置信息用于指示第一功能标识或第二功能标识存储在基准标识中第m比特位到第n比特位,其中,m和n均为正整数,m小于等于n。需要说明的是,该实现方式中,基准标识是固定不变的标识,对基准标识进行处理(即,将第一功能标识存储在基准标识的第三位置信息所指示的位置)得到第二标识,基于该第二标识的值得到第一sid,此时,基准标识的值是未发生变化的,而是将该次处理后的标识记作了第二标识;同理,对该对基准标识进行处理(即,将第二功能标识存储在基准标识的第三位置信息所指示的位置)得到第三标识,基于该第三标识的值得到第二sid,此时,基准标识的值是未发生变化的,而是将该次处理后的标识记作了第三标识。
11.需要说明的是,上述第一位置信息、第二位置信息或第三位置信息也可以是通过命令行在第二网络设备上配置的。
12.这样,通过上述几种可能的实现方式,确保第一网络设备基于占用报文空间较小的信息生成多个第二网络设备上的sid,实现了sid的有效泛洪。
13.本技术实施例中,作为一个示例,当功能标识用于表征灵活算法(英文:flexible algorithm,简称:flex-algo),该flex-algo用于转发路径计算,则,第一sid为中间系统到中间系统(英文:intermediate system to intermediate system,简称:isis)路由协议的第一end.x sid,第二sid为isis路由协议的第二end.x sid;作为另一个示例,当功能标识用于表征虚拟私有网络(英文:virtual private network,简称:vpn),则,第一sid为第一vpn sid,第二sid为第二vpn sid。
14.在一种可能的实现方式中,第二网络设备可以在报文中扩展多个tlv字段,采用tlv字段的vlaue字段分别承载第一功能标识、第二功能标识和第三位置信息(或者第一位置信息和第二位置信息);或者,也可以在报文中的一个tlv字段中扩展多个子tlv字段,采用子tlv字段的vlaue字段分别承载第一功能标识、第二功能标识和第三位置信息(或者第一位置信息和第二位置信息),例如:可以在报文中扩展第一子tlv和第二子tlv,其中,第一子tlv用于承载第三位置信息(或第一位置信息和第二位置信息),第二子tlv用于承载第一功能标识和第二功能标识。其中,该报文具体可以是链路状态协议lsp报文。
15.第二方面,还提供了一种生成段标识sid的方法,应用于srv6网络中,该网络中至少包括第二网络设备和第一网络设备,第二网络设备上可以生成报文,该报文中携带基准标识、第一功能标识和第二功能标识;那么,第二网络设备即可将该报文发送给第一网络设备,该报文用于指示第一网络设备生成第一sid和第二sid,其中,该第一sid和第二sid具有相同的公共部分,第一sid包括该公共部分和第一功能标识,第二sid包括公共部分和第二功能标识,该基准标识包括公共部分。这样,由于第二网络设备的多个sid中的公共部分不会重复的占用用于泛洪sid的报文的空间,使得多个具有相同公共部分的sid占用该报文的空间大大降低,提高了报文传输效率,节省了网络带宽资源,从而使得该报文携带网络设备上生成的所有sid成为可能。
16.其中,基准标识、第一功能标识和第二功能标识可以是通过命令行在第二网络设备上配置的。通过在第二网络设备上配置基准标识、第一功能标识和第二功能标识,能够使
得第二网络设备基于此生成第一sid和第二sid。一种情况下,第二网络设备可以直接基于基准标识、第一功能标识和第二功能标识生成报文,该报文中携带基准标识、第一功能标识和第二功能标识;另一种情况下,第二网络设备也可以先基于基准标识、第一功能标识和第二功能标识生成第一sid和第二sid,再基于第一sid和第二sid生成报文,该报文中携带基准标识、第一功能标识和第二功能标识。
17.可以理解的是,该报文还包括位置信息,该位置信息用于指示所述第一功能标识存储在所述第一sid的第m比特位到第n比特位之间,该位置信息还用于指示所述第二功能标识存储在所述第二sid的第m比特位到第n比特位之间,其中,m和n均为正整数,n≤m≤128,例如:第一sid和第二sid的位置信息为第56bit到第63bit,即,在第一sid中的第56bit到第63bit填充第一功能标识,在第二sid中的第56bit到第63bit填充第二功能标识。需要说明的是,用于指示第一功能标识存储在第一sid中的位置信息和用于指示第一功能标识存储在第一sid中的位置信息的取值可以相同,也可以不同。
18.本技术实施例中,作为一个示例,当功能标识用于表征灵活算法flex-algo,flex-algo用于转发路径计算,则,第一sid为中间系统到中间系统isis路由协议的第一end.x sid,第二sid为isis路由协议的第二end.x sid;作为另一个示例,当功能标识用于表征虚拟私有网络vpn,则,第一sid为第一vpn sid,第二sid为第二vpn sid。
19.在一种可能的实现方式中,第二网络设备可以在报文中扩展多个tlv字段,采用tlv字段的vlaue字段分别承载位置信息、第一功能标识和第二功能标识;或者,也可以在报文中的一个tlv字段中扩展多个子tlv字段,采用子tlv字段的vlaue字段分别承载位置信息、第一功能标识和第二功能标识,例如:可以在报文中扩展第一子tlv和第二子tlv,其中,第一子tlv用于承载位置信息,第二子tlv用于承载第一功能标识和第二功能标识。其中,该报文具体可以是链路状态协议lsp报文。
20.在一种可能的实现方式中,本技术实施例还可以包括:第二网络设备根据基准标识、第一功能标识和第二功能标识生成第一sid和所述第二sid。
21.作为一个示例,基准标识的长度为128比特,公共部分存储在基准标识的第1比特位到第k比特位,第二网络设备根据基准标识、第一功能标识和第二功能标识生成第一sid和第二sid,具体可以包括:第二网络设备生成第一sid,第一sid的第1比特位到第k比特位之间存储有公共部分,第一sid的第k+1比特位到第128比特位之间存储有第一功能标识;同理,第二网络设备生成第二sid,第二sid的第1比特位到第k比特位之间存储有公共部分,第二sid的第k+1比特位到第128比特位之间存储有第二功能标识。例如,报文还包括第一位置信息和第二位置信息,第一位置信息用于标识第一功能标识存储在第一sid中第k+1比特位到第128比特位之间的位置,第二位置信息用于标识第二功能标识存储在第二sid中第k+1比特位到第128比特位之间的位置。需要说明的是,第一位置信息和第二位置信息可以相同,也可以不同。
22.作为另一个示例,该报文还可以包括第三位置信息,那么,第二网络设备根据基准标识、第一功能标识和第二功能标识生成第一sid和第二sid,具体可以包括:第二网络设备生成第一sid,第一功能标识存储在第一sid中第三位置信息所指示的位置;同理,第二网络设备生成第二sid,第二功能标识存储在第二sid中第三位置信息所指示的位置。其中,第三位置信息用于指示第一功能标识存储在第一sid中第m比特位到第n比特位,第三位置信息
还用于指示第二功能标识存储在第二sid中第m比特位到第n比特位,其中,m和n均为正整数,n≤m≤128。
23.作为再一个示例,该报文还可以包括第三位置信息,那么,第二网络设备根据基准标识、第一功能标识和第二功能标识生成第一sid和第二sid,具体可以包括:第二网络设备将第一功能标识存储在基准标识的第三位置信息所指示的位置得到第二标识,根据第二标识生成第一sid,第一sid的值与第二标识的值相同;同理,第二网络设备将第二功能标识存储在基准标识的第三位置信息所指示的位置得到第三标识,根据第三标识生成第一sid,第一sid的值与第三标识的值相同。该实现方式中,第三位置信息用于指示第一功能标识或第二功能标识存储在基准标识中第m比特位到第n比特位,其中,m和n均为正整数,m小于等于n。需要说明的是,该实现方式中,基准标识是固定不变的标识,对基准标识进行处理(即,将第一功能标识存储在基准标识的第三位置信息所指示的位置)得到第二标识,基于该第二标识的值得到第一sid,此时,基准标识的值是未发生变化的,而是将该次处理后的标识记作了第二标识;同理,对该对基准标识进行处理(即,将第二功能标识存储在基准标识的第三位置信息所指示的位置)得到第三标识,基于该第三标识的值得到第二sid,此时,基准标识的值是未发生变化的,而是将该次处理后的标识记作了第三标识。
24.需要说明的是,上述第一位置信息、第二位置信息或第三位置信息也可以是通过命令行在第二网络设备上配置的。
25.第三方面,还提供了一种生成段标识sid的装置,该装置应用于第一网络设备,该装置包括:接收单元和生成单元。其中,接收单元用于接收第二网络设备发送的报文,该报文携带基准标识、第一功能标识和第二功能标识;生成单元用于根据基准标识、第一功能标识和第二功能标识生成第一sid和第二sid,第一sid和第二sid具有相同的公共部分,第一sid包括公共部分和第一功能标识,第二sid包括公共部分和第二功能标识,基准标识包含公共部分。
26.作为一个示例,基准标识的长度为128比特,公共部分存储在基准标识的第1比特位到第k比特位,其中,k为正整数,k小于128,生成单元,包括:第一生成子单元,用于生成第一sid,第一sid的第1比特位到第k比特位之间存储有公共部分,第一sid的第k+1比特位到第128比特位之间存储有第一功能标识;第二生成子单元,用于生成第二sid,第二sid的第1比特位到第k比特位之间存储有公共部分,第二sid的第k+1比特位到第128比特位之间存储有第二功能标识。其中,该报文还可以包括第一位置信息和第二位置信息,第一位置信息用于标识第一功能标识存储在第一sid中第k+1比特位到第128比特位之间的位置,第二位置信息用于标识第二功能标识存储在第二sid中第k+1比特位到第128比特位之间的位置。
27.作为另一个示例,该报文还可以包括第三位置信息,生成单元,包括:第三生成子单元,用于生成第一sid,第一功能标识存储在第一sid中第三位置信息所指示的位置;第四生成子单元,用于生成第二sid,第二功能标识存储在第二sid中第三位置信息所指示的位置。其中,第三位置信息用于指示第一功能标识存储在第一sid中第m比特位到第n比特位,第三位置信息还用于指示第二功能标识存储在第二sid中第m比特位到第n比特位,其中,m和n均为正整数,m小于等于n。
28.作为再一个示例,该报文还可以包括第三位置信息,生成单元,包括:第五生成子单元,用于将第一功能标识存储在基准标识的第三位置信息所指示的位置得到第二标识,
根据第二标识生成第一sid,第一sid的值与第二标识的值相同;第六生成子单元,用于将第二功能标识存储在基准标识的第三位置信息所指示的位置得到第三标识,根据第三标识生成第一sid,第一sid的值与第三标识的值相同。其中,第三位置信息用于指示第一功能标识或第二功能标识存储在基准标识中第m比特位到第n比特位,其中,m和n均为正整数,m小于等于n。
29.在一种可能的实现方式中,该报文可以包含第一子tlv和第二子tlv,其中,第一子tlv用于承载第三位置信息,第二子tlv用于承载第一功能标识和第二功能标识。
30.在一种可能的实现方式中,第一功能标识和第二功能标识分别用于标识灵活算法flex-algo,flex-algo用于转发路径计算,第一sid和第二sid分别为中间系统到中间系统isis路由协议的end.x sid;或者,第一功能标识和第二功能标识分别用于标识虚拟私有网络vpn,第一sid和第二sid分别为vpn sid。
31.需要说明的是,该报文可以是lsp报文。
32.需要说明的是,第三方面提供的生成段标识sid的装置与第一方面提供的方法对应,具体实现方式以及达到的效果,参见第一方面所示的方法的相关描述。
33.第四方面,还提供了一种生成段标识sid的装置,应用于第二网络设备,该装置包括:生成单元和发送单元。其中,生成单元用于生成报文,报文包括基准标识、第一功能标识和第二功能标识;发送单元用于向第一网络设备发送报文,报文用于指示第一网络设备生成第一sid和第二sid,第一sid和第二sid具有相同的公共部分,第一sid包括公共部分和第一功能标识,第二sid包括公共部分和第二功能标识,基准标识包含公共部分。
34.其中,基准标识、第一功能标识和第二功能标识为在第二网络设备上配置命令行获得的。
35.在一种可能的实现方式中,该报文还可以包括位置信息,位置信息用于指示第一功能标识存储在第一sid的第m比特位到第n比特位之间,位置信息还用于指示第二功能标识存储在第二sid的第m比特位到第n比特位之间,其中,m和n均为正整数,m小于等于n。
36.其中,该报文可以包含第一子tlv和第二子tlv,其中,第一子tlv用于承载位置信息,第二子tlv用于承载第一功能标识和第二功能标识。
37.在一些可能的实现方式中,第一功能标识和第二功能标识分别用于标识灵活算法flex-algo,flex-algo用于转发路径计算,第一sid和第二sid分别为中间系统到中间系统isis路由协议的end.x sid;或者,第一功能标识和第二功能标识分别用于标识虚拟私有网络vpn,第一sid和第二sid分别为vpn sid。
38.需要说明的是,该报文可以是lsp报文。
39.在一种可能的实现方式中,该装置的生成单元还可以用于:根据基准标识、第一功能标识和第二功能标识生成第一sid和所述第二sid。
40.作为一个示例,基准标识的长度为128比特,公共部分存储在基准标识的第1比特位到第k比特位,生成单元具体可以用于:生成第一sid,第一sid的第1比特位到第k比特位之间存储有公共部分,第一sid的第k+1比特位到第128比特位之间存储有第一功能标识;同理,生成第二sid,第二sid的第1比特位到第k比特位之间存储有公共部分,第二sid的第k+1比特位到第128比特位之间存储有第二功能标识。例如,报文还包括第一位置信息和第二位置信息,第一位置信息用于标识第一功能标识存储在第一sid中第k+1比特位到第128比特
位之间的位置,第二位置信息用于标识第二功能标识存储在第二sid中第k+1比特位到第128比特位之间的位置。需要说明的是,第一位置信息和第二位置信息可以相同,也可以不同。
41.作为另一个示例,该报文还可以包括第三位置信息,那么,生成单元具体可以用于:生成第一sid,第一功能标识存储在第一sid中第三位置信息所指示的位置;同理,生成第二sid,第二功能标识存储在第二sid中第三位置信息所指示的位置。其中,第三位置信息用于指示第一功能标识存储在第一sid中第m比特位到第n比特位,第三位置信息还用于指示第二功能标识存储在第二sid中第m比特位到第n比特位,其中,m和n均为正整数,n≤m≤128。
42.作为再一个示例,该报文还可以包括第三位置信息,那么,生成单元具体可以用于:将第一功能标识存储在基准标识的第三位置信息所指示的位置得到第二标识,根据第二标识生成第一sid,第一sid的值与第二标识的值相同;同理,将第二功能标识存储在基准标识的第三位置信息所指示的位置得到第三标识,根据第三标识生成第一sid,第一sid的值与第三标识的值相同。该实现方式中,第三位置信息用于指示第一功能标识或第二功能标识存储在基准标识中第m比特位到第n比特位,其中,m和n均为正整数,m小于等于n。需要说明的是,该实现方式中,基准标识是固定不变的标识。
43.需要说明的是,上述第一位置信息、第二位置信息或第三位置信息也可以是通过命令行在第二网络设备上配置的。
44.需要说明的是,第四方面提供的生成段标识sid的装置与第二方面提供的方法对应,具体实现方式以及达到的效果,参见第二方面所示的方法的相关描述。
45.第五方面,本技术实施例还提供了一种网络设备,包括存储器和处理器。其中,该存储器用于存储计算机程序或指令,处理器用于调用存储器中存储的计算机程序或指令,使得网络设备执行上述第一方面提供的方法。
46.第六方面,本技术实施例还提供了一种网络设备,包括存储器和处理器。其中,该存储器用于存储计算机程序或指令,处理器用于调用存储器中存储的计算机程序或指令,使得网络设备执行上述第二方面提供的方法。
47.第七方面,本技术实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得所述计算机执行以上第一方面或第二方面提供的方法。
48.第八方面,本技术实施例还提供了计算机程序产品,包括计算机程序或计算机可读指令,当所述计算机程序或所述计算机可读指令在计算机上运行时,使得计算机执行前述第一方面或第二方面提供的方法。
49.第九方面,本技术实施例还提供了一种通信系统,该通信系统包括第三方面提供的生成段标识sid的装置和第四方面提供的生成段标识sid的装置;或者,该通信系统包括第五方面提供的网络设备和第六方面提供的网络设备。
附图说明
50.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术中记载的一些实施
例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
51.图1为本技术实施例中一应用场景所涉及的网络系统框架示意图;
52.图2a为本技术实施例中一种携带sid的报文的tlv格式示意图;
53.图2b为本技术实施例中另一种携带sid的报文的tlv格式示意图;
54.图3为本技术实施例中一种生成段标识sid的方法100的信令流程图;
55.图4为本技术实施例中一种报文中tlv的格式示意图;
56.图5为本技术实施例中一种生成段标识sid的装置500的结构示意图;
57.图6为本技术实施例中一种生成段标识sid的装置600的结构示意图;
58.图7为本技术实施例中一种网络设备700的结构示意图;
59.图8为本技术实施例中一种网络设备800的结构示意图;
60.图9为本技术实施例中一种通信系900的结构示意图。
具体实施方式
61.对于srv6网络的配置阶段,为该网络中的各网络设备配置对应的位置标识(英文:locator),当业务引用该locator时,在该网络设备的接口上运行该业务对应的协议,产生包括该locator的sid,在srv6场景中,sid具体可以包括locator和功能(英文:function),locator用于路由和转发数据报文;function,是网络设备分配给本地转发指令的一个标识(英文:identity,简称:id)值,用于表征该网络设备具体执行的转发动作,在srv6中,不同的function代表该网络设备需要进行不同的转发行为。此外,sid还可以包括变量(英文:arguments,简称:args),跟在function后面,表示该function对应的转发指令在执行的时候所需要的参数,例如:流、服务等相关的可变参数。
62.可以理解的是,网络设备将其上所有sid发布给网络中的其他网络设备,以便各个网络设备能够彼此认识并相互配合,完成数据报文在该网络中的正常通信。通常,网络设备需要将其上生成的所有sid均携带在用于泛洪sid的报文中,发送给其他网络设备,以确保网络设备之间通信的正常进行。但是,随着网络设备上接口数量的不断增多,承载业务的多元化,网络设备上生成的sid将越来越多,而srv6场景中每个sid均为一个128比特(也称为128位)的ipv6地址,由于用于泛洪sid的报文长度有限,所以,该报文能够携带的sid的数量也有一定的限制,很可能无法将网络设备上产生的所有sid都携带在用于泛洪sid的报文中。
63.例如:若sid是中间系统到中间系统(英文:intermediate system to intermediate system,简称:isis)路由协议下的end.x sid,通过lsp报文泛洪sid,除了媒体存取控制(英文:media access control,简称:mac)地址、isis头信息等,最多能够携带大约40个end.x sid,那么,当网络设备上生成的end.x sid多于40个,如生成100个end.x sid时,lsp报文最多只能携带这100个中的40个,其余将近60个则无法通报给其他网络设备,从而,很可能导致该网络中无法进行正常通信。
64.而且,随着对通信可靠性要求的不断提高,不仅会基于各网络设备的sid生成转发路径,还可能利用sid生成转发路径的保护路径,例如:拓扑无关的无环备份快速重路由(英文:topology independent loop-free alternate fast reroute,简称:ti-lfa frr)中,如果网络设备未将其上生成的所有sid泛洪出来,那么,其他网络设备就无法学习到该网络
设备上全部的sid,从而无法建立转发路径对应的保护路径,使得ti-lfa失效,降低该网络中通信的可靠性。
65.基于此,本技术实施例提供了一种生成段标识sid的方法,在srv6的场景下,能够有效的减小发布相同数量sid所占用的空间,使得网络设备将其上所有的sid都能在网络中泛洪,从而确保该网络中通信的正常进行。具体实现时,网络设备可以生成报文,该报文中携带用于体现多个sid的差异部分的内容(例如功能标识)以及用于体现多个sid的公共部分的内容,从而,该网络设备将该报文发送给网络中的其他网络设备,由接收方网络设备基于该报文中所体现的公共部分以及差异部分,生成该多个sid。由于多个sid中的公共部分不重复的占用用于泛洪sid的报文的空间,大大降低了多个sid占用该报文的存储空间,提高了报文传输效率,节省了网络带宽资源,从而使得该报文携带网络设备上生成的所有sid成为可能。
66.举例来说,本技术实施例的场景之一,可以是应用到如图1所示的场景中。参见图1,该网络中至少包括网络设备10和网络设备20。网络设备10上生成与接口1对应的sid有:sid 1、sid 2和sid 3,sid 1具体为1:2:3:4580::1,sid 2具体为1:2:3:4581::1,sid 3具体为1:2:3:4582::1,假设网络设备10通过lsp报文将该网络设备10上生成的3个sid发布到网络中,具体可以发送给网络设备20,该网络设备20可以是指网络中除了网络设备10以外的任意一个网络设备。
67.作为一个示例,按照通常的方式,网络设备10生成的用于泛洪sid的lsp报文1,可以通过tlv字段携带sid,具体格式参见图2a所示,其中,type指示该tlv字段携带在是sid,length指示该tlv字段的长度,value具体包括:标志位(英文:flags)、算法(英文:algorithm)、权重(英文:weight)、sid 1、sid 2和sid 3,其中,sid 1、sid 2和sid 3分别占用128比特的报文长度,即,携带3个sid至少需要占用该lsp报文1的384比特。如此,网络设备20接收到网络设备10发送的lsp报文1后,可以通过解析该lsp报文1获得sid 1、sid 2和sid 3。
68.作为另一个示例,网络设备10可以确定3个sid的公共部分和差异部分,即,确定第0比特到第55比特为公共部分(即1:2:3:45),差异部分为第56比特到第63比特,根据本技术实施例提供的方法,网络设备10生成的用于泛洪sid的lsp报文2中用于携带sid的tlv字段的具体格式,可以参见图2b所示,该tlv字段的value至少包括标识1和2个子tlv,其中,标识1为包括公共部分的一个128比特的信息,例如:可以是sid 1、sid 2和sid 3中的任意一个,或者,也可以是提取的公共部分对应的1:2:3:4500::1;两个子tlv分别为sub-tlv 1和sub-tlv 2,其中,sub-tlv 1中的sub-type 1指示该sub-tlv 1携带的是差异部分的在标识1(或者也可以认为是在sid)中的位置,sub-tlv 1中的sub-length 1指示该sub-tlv 1的长度,sub-tlv 1中的sub-value1包括开始begin和结束end,取值分别为56和63,用于指示差异部分的在该标识1中的位置为:第56比特到第63比特。sub-tlv 2中的sub-type 2指示该sub-tlv 2携带的是差异部分对应的功能标识,sub-tlv 2中的sub-length 2指示该sub-tlv 2的长度,sub-tlv 2中的sub-value 2包括具体的功能标识,取值分别为80、81和82,用于指示sid 1对应功能标识80的业务1、sid 2对应功能标识81的业务2、以及sid 3对应功能标识82的业务3。这样,携带3个sid至少需要占用该lsp报文2的(128+32+40)=200比特,相比目前的方式下3个sid需要占用lsp报文1的384比特,能够有效减少携带相同数量的sid所占用
的空间。如此,网络设备20接收到网络设备10发送的lsp报文2后,可以通过解析该lsp报文2获得标识1、sub-tlv 1和sub-tlv 2,并通过拼接等处理,获得sid 1、sid 2和sid 3。
69.其中,图2a和图2b相比,不仅在sid的携带上存在上述区别,而且,图2b所示的lsp报文2中,由于sub-tlv 2中携带了具体算法或者具体的vpn等,所以,无需携带整体的算法algorithm字段,一定程度上也节约了lsp报文的空间,提高其携带sid的数量。
70.需要说明的是,图1所示的网络场景中,网络设备10和网络设备20可以是路由器(英文:router)、交换机(英文:switch)等数通设备。
71.可以理解的是,上述场景仅是本技术实施例提供的一个场景示例,本技术实施例并不限于此场景。
72.需要说明的是,当网络设备相应的sid中具有同一个公共部分的sid越多,利用本技术实施例提供的方法对sid进行泛洪时所节约的报文空间越多。而且,通过本技术实施例提供的方法中,能够克服目前由网络设备通过静态或动态的方式自动为各业务分配固定的sid,产生sid的灵活性较差的问题,各运营商可以根据需求自行在sid中定义其业务对应的功能标识(也称为业务值),提升了srv6场景下网络设备生成sid的灵活性。
73.可以理解的是,网络设备配置locator之后,一方面,该网络设备会生成所配置locator对应的网段路由,并通过内部网关协议(英文:interior gateway protocol,简称:igp)在sr域内扩展该网段路由;另一方面,各业务在该网络设备上引用locator生成对应的sid,并将所有的sid携带在报文中通过该网络路由泛洪给网络中的其他网络设备。如此,不仅该网络设备能够通过该网段路由到达其他网络设备,其他网络设备也可以根据该网段路由和sid定位到该网络设备,从为后续该网络设备和其他网络设备之间正常的通信提供了数据基础。
74.下面结合附图,通过实施例来详细说明本技术实施例中生成段标识sid的方法的具体实现方式。
75.图3为本技术实施例中一种生成段标识sid的方法100的流程示意图。参见图3,该方法100应用于srv6网络中,以网络中泛洪sid的第二网络设备和该网络中除第二网络设备以外的其他任一网络设备(下文中称为第一网络设备)之间的交互介绍本技术实施例。该方法100例如可以应用在图1所示的网络场景中,作为一个示例下,方法100可以是指网络设备10将其上对应的多个sid泛洪到网络设备20的过程,那么,网络设备10、网络设备20分别对应于方法100中的第二网络设备和第一网络设备;作为另一个示例,方法100可以是指网络设备20将其上对应的多个sid泛洪到网络设备10的过程,那么,网络设备10、网络设备20分别对应于方法100中的第一网络设备和第二网络设备。
76.需要说明的是,本技术实施例以第二网络设备上相应的两个sid为例,说明本技术实施例中第二网络设备上多个sid泛洪到第一网络设备的过程,具体实施时,泛洪的对象可以包括多个sid,多个sid和两个sid的泛洪过程类似,具体实现方式可以参见本实施例中的相关描述。
77.其中,在方法100之前,还可以通过命令行配置在第二网络设备上配置用于生成第一sid和第二sid的配置信息,例如:在第二网络设备上通过命令行配置基准标识、第一功能标识和第二功能标识,该基准标识包括第一sid和第二sid的公共部分。第一种情况下,参见下述方法100中s101~s105,第二网络设备可以基于该配置信息生成第一sid和第二sid,再
基于该第一sid和第二sid生成用于泛洪该第一sid和第二sid的报文;或者,第二种情况下,第二网络设备也可以直接基于该配置信息,生成报文,不依赖于第二网络设备是否生成第一sid和第二sid,即,方法100包括:s101’、s103、s104和s105,其中,s101’具体为:第二网络设备生成报文,该报文携带基准标识、第一位置、第一功能标识和第二功能标识。下述实施例中以第一种情况为例进行说明。
78.具体实现时,该方法100例如可以包括下述s101~s105:
79.s101,第二网络设备获得第一sid和第二sid,其中,第一sid和第二sid具有相同的公共部分,第一sid包括公共部分和第一功能标识,第二sid包括公共部分和第二功能标识,基准标识包含该公共部分。
80.在s101之前,能够通过命令行在第二网络设备上配置基准标识、第一功能标识和第二功能标识,基准标识包括公共部分,那么,第二网络设备基于该基准标识、第一功能标识和第二功能标识,生成第一sid和第二sid。
81.第二网络设备生成第一sid和第二sid的过程具体可以通过下述几种可能的示例实现:
82.作为一个示例,该基准标识的长度为128比特,公共部分存储在基准标识的第1比特位到第k比特位,其中,k为小于128的正整数,那么,s101具体可以包括:第二网络设备生成第一sid,第一sid的第1比特位到第k比特位之间存储有公共部分,第一sid的第k+1比特位到第128比特位之间存储有第一功能标识;同理,第二网络设备生成第二sid,第二sid的第1比特位到第k比特位之间存储有公共部分,第二sid的第k+1比特位到第128比特位之间存储有第二功能标识。例如,报文还包括第一位置信息和第二位置信息,第一位置信息用于标识第一功能标识存储在第一sid中第k+1比特位到第128比特位之间的位置,第二位置信息用于标识第二功能标识存储在第二sid中第k+1比特位到第128比特位之间的位置。
83.需要说明的是,第一位置信息和第二位置信息可以相同,也可以不同。如果第一位置信息和第二位置信息相同,则,第一功能标识在第一sid中的位置和第二功能标识在第二sid中的位置一致,例如:第一sid和第二sid中,公共部分占用的是第1比特位到第55比特位,第一功能标识和第二功能标识占用的均是第56比特位到第128比特位中的第56比特位到第63比特位。如果第一位置信息和第二位置信息不相同,则,第一功能标识在第一sid中的位置和第二功能标识在第二sid中的位置虽然都在第k比特位到第128比特位之间,但却不是该区间中相同的位置,例如:第一sid和第二sid中,公共部分占用的是第1比特位到第55比特位,第一功能标识占用的是第56比特位到第128比特位中的第56比特位到第63比特位,第二功能标识占用的是第56比特位到第128比特位中的第121比特位到第128比特位。
84.作为另一个示例,该报文还可以包括第三位置信息,那么,s101具体可以包括:第二网络设备生成第一sid,第一功能标识存储在第一sid中第三位置信息所指示的位置;同理,第二网络设备生成第二sid,第二功能标识存储在第二sid中第三位置信息所指示的位置。其中,第三位置信息用于指示第一功能标识存储在第一sid中第m比特位到第n比特位,第三位置信息还用于指示第二功能标识存储在第二sid中第m比特位到第n比特位,其中,m和n均为正整数,n≤m≤128。例如:假设n=56,m=63,那么,在第一sid中的第56bit到第63bit存储第一功能标识,在第二sid中的第56bit到第63bit存储第二功能标识。
85.作为再一个示例,该报文还可以包括第三位置信息,那么,s101具体可以包括:第
二网络设备将第一功能标识存储在基准标识的第三位置信息所指示的位置得到第二标识,根据第二标识生成第一sid,第一sid的值与第二标识的值相同;同理,第二网络设备将第二功能标识存储在基准标识的第三位置信息所指示的位置得到第三标识,根据第三标识生成第一sid,第一sid的值与第三标识的值相同。该示例中,第三位置信息用于指示第一功能标识或第二功能标识存储在基准标识中第m比特位到第n比特位,其中,m和n均为正整数,m小于等于n。需要说明的是,该示例中的基准标识是固定不变的标识,对基准标识进行处理(即,将第一功能标识存储在基准标识的第三位置信息所指示的位置)得到第二标识,基于该第二标识的值得到第一sid,此时,基准标识的值是未发生变化的,而是将该次处理后的标识记作了第二标识;同理,对该对基准标识进行处理(即,将第二功能标识存储在基准标识的第三位置信息所指示的位置)得到第三标识,基于该第三标识的值得到第二sid,此时,基准标识的值仍然是未发生变化的,而是将该次处理后的标识记作了第三标识。
86.需要说明的是,上述第一位置信息、第二位置信息或第三位置信息也可以是通过命令行在第二网络设备上配置的。
87.具体实现时,用户(即,运营商)可以第二网络设备上为第一业务配置第一功能标识,为第二业务配置第二功能标识,并配置第一业务和第二业务引用该第二网络设备上的locator,在对应的接口上运行对应的协议,对于任意对应的接口上,均可以生成第一sid和第二sid。其中,第一sid与第一业务对应,第二sid与第二业务对应。
88.需要说明的是,本技术实施例中,以同一接口下的两个不同业务引用locator生成两个不同的sid为例进行说明,下文中将不在接口的维度进行限定和描述,没有特别强调之处,均可以视作对是针对同一接口的相关说明。
89.公共部分,是指第一sid和第二sid均包括的部分,也就是说,第一sid的公共部分和第二sid的公共部分内容相同,且第一sid的公共部分在第一sid的位置和第二sid的公共部分在第二sid的位置也相同;除了公共部分,第一sid还可以包括第一功能标识,第二sid还包括第二功能标识,而且,第一功能标识在第一sid的位置和第二功能标识在第二sid的位置可以相同也可以不同,可以位置信息指示各功能标识在sid中的位置,位置信息用于指示sid中(或第二标识/第三标识中)的第n比特bit到第m bit,其中,n和m均为正整数,n小于等于m,m小于等于该sid包括的总比特数128,例如:第一sid为1:2:3:4580::1,第二sid为1:2:3:4581::1,公共部分为:1:2:3:45,第一功能标识为80,第二功能标识为81,位置信息指示第56比特到第63比特。又例如:第一sid为1:2:6788:4580::1,第二sid为1:2:6789:4580::1,公共部分为:1:2:67:4580::1,第一功能标识为88,第二功能标识为89,位置信息指示第40比特到第47比特。需要说明的是,sid中差异部分的长度和在sid中的位置,均可以因为不同的场景或者不同的业务而不同,在本技术实施例中不作具体限定。
90.具体实现时,第二网络设备上可以通过命令行的形式,定义一个公共的可编程的sid前缀,如:1:2:3:4500::64;并为第一功能标识和第二功能标识预留位置,如:第56到第63比特位,即1:2:3:4500::64中“00”对应的位置;接着,配置第一业务引用该公共的可编程的sid前缀,并指定第一业务对应的第一功能标识以及第二业务对应的第二功能标识,如,指定灵活算法(英文:flexible algorithm,简称:flex-algo)的业务值分别为80和81;那么,该第二网络设备在对应接口上运行相应的协议,如isis协议,在该协议进程下,第二网络设备会自动为该接口分配第一业务对应的第一sid以及第二业务对应的第二sid,如:对
于运行isis协议的接口1,第二网络设备可以在isis进程下生成2个sid,分别为1:2:3:4580::1和1:2:3:4581::1。
91.需要说明的是,第二网络设备基于不同网络协议,生成的第一sid和第二sid不同,作为一个示例,若在isis协议下,不同的业务可能对应于不同的灵活算法flex-algo,生成的sid为isis路由协议下的end.x sid,如,第一功能标识为80,用于表征第一业务对应80所指示的flex-algo;第二功能标识为81,用于表征第一业务对应81所指示的flex-algo。作为另一个示例,若在虚拟私有网络(英文:virtual private network,简称:vpn)协议下,不同的业务可能对应于不同的vpn,生成的sid为vpn sid,如,第一功能标识为1,用于表征第一业务对应1所指示的vpn;第二功能标识为2,用于表征第一业务对应2所指示的vpn。
92.举例来说,对于isis协议场景,可以在第二网络设备编辑命令行如下:
93.segment-routing ipv6
94.>programming-sid sid 1:2:3:4500::64//定义公共可编辑的sid前缀(即第0比特到第55比特)
95.>type flex-algo begin 56end 63//指定flex-algo对应功能标识占用的字节为从第56比特到第63比特。
96.>locator a3 ipv6-prefix sid static 32flex-algo 128 129//指定flex-algo对应功能标识(即flex-algo业务值)分别为128和129(转换为十六进制分别为80和81)
97.第二网络设备执行上述命令行,生成两个locator,分别是1:2:3:4580/64和1:2:3:4581/64,那么,第二网络设备在isis进程下引用这个locator a3之后,会自动为isis接口1分配end.x sid,其中,基于1:2:3:4580/64的locator分配的end.x sid为1:2:3:4580::1,基于1:2:3:4581/64的locator分配的end.x sid为1:2:3:4581::1。
98.举例来说,对于三层(英文:l3vpn)场景,可以在第二网络设备编辑命令行如下:
99.segment-routing ipv6
100.>programming-sid sid 1:2:3:1280::64//定义公共可编辑的sid前缀(即第0比特到第59比特)
101.>type l3vpn begin 60end 63//指定l3vpn对应功能标识占用的字节为从第60比特到第63比特
102.>locator a3 ipv6-prefix sid 64static 32//指定64比特后包括32比特为静态值
103.ip vpn vpn1
104.>segment-routing ipv6 locator a3 l3vpn 1//指定l3vpn引用locator a3之后,对应的功能标识(即,l3vpn值)为1
105.ip vpn vpn2
106.>segment-routing ipv6 locator a3 l3vpn 2//指定l3vpn引用locator a3之后,对应的功能标识(即,l3vpn值)为2
107.第二网络设备执行上述命令行,locator预留出第60比特到第63比特的预留空间,由l3vpn自行规划,私网引用该locator a3后,不同的vpn根据预留空间填充对应的vpn值,动态的为vpn的接口1生成vpn sid,其中,vpn 1对应的vpn sid为1:2:3:1281::1,vpn 2对应的vpn sid为1:2:3:1282::1。
108.可见,第二网络设备可以根据其上生成的locator,以及运营商自行定义和规划的功能标识,生成不同的sid,为后续第二网络设备在该网络中的通信提供了数据基础。
109.s102,第二网络设备根据第一sid和第二sid生成报文,其中,该报文携带基准标识、第一功能标识和第二功能标识,该基准标识包括公共部分。
110.基准标识,可以是一个128比特长度的标识,包括第一sid和第二sid的公共部分,具体可以是公共部分,而在除了公共部分以外的其他部分补零;也可以是包括该公共部分的第一sid或第二sid。此外,基准标识还包括第一sid和第二sid对应的接口标识,例如:第一sid为1:2:3:4580::1,第二sid为1:2:3:4581::1,公共部分为1:2:3:45,接口标识为1,那么,基准标识可以是:1:2:3:4500::1,也可以是1:2:3:4580::1,还可以是1:2:3:4581::1。
111.s102中的生成的报文还可以携带位置信息。位置信息,可以包括两个或多个sid差异部分在sid中的起始位置和结束位置,例如:位置信息指示起始位置56和结束位置63,即,指示在sid中从第56比特到第63比特为差异部分,用于存储对应的功能标识。
112.报文,是指用于泛洪第二网络设备上生成的sid的报文,例如,可以是lsp报文。该报文可以通过tlv字段的value携带基准标识、第一功能标识和第二功能标识,还可以携带位置信息,其中,tlv字段的value可以扩展第一子tlv(英文:sub-tlv 1)和第二子tlv(英文:sub-tlv 2),第一子tlv用于承载位置信息,第二子tlv用于承载第一功能标识和第二功能标识。具体而言,在第一子tlv的value中携带差异部分在sid中(即第一功能标识在第一sid中或第二功能标识在第二sid中)的起始位置和结束位置,在第二子tlv的value中携带第一功能标识和第二功能标识。需要说明的是,若第二网络设备还生成第三sid,且第三sid与第一sid和第二sid具有相同公共部分,第三sid还包括第三功能标识,那么,第二子tlv还用于承载第三功能标识。
113.其中,在报文的tlv字段中,第一子tlv和第二子tlv的顺序可以灵活设置,即,该tlv字段的value中可以依次包括:基准标识、第一子tlv和第二子tlv,或者,该tlv字段的value中也可以依次包括:基准标识、第二子tlv和第一子tlv。
114.举例来说,假设第二网络设备上包括第一sid、第二sid、第三sid、第四sid和第五sid,其中,第一sid、第二sid和第三sid分别为1:2:3:4580::1、1:2:3:4581::1和1:2:3:4582::1,具有公共部分:1:2:3:45,位置信息指示第56比特到第63比特,第一功能标识为80,第二功能标识为81,第三功能标识为82;第四sid和第五sid分别为1:2:6788:4580::1和1:2:6789:4580::1,具有公共部分:1:2:67:4580,位置信息指示第40比特到第17比特,第四功能标识为88,第五功能标识为89。那么,基于上述s102,第二网络设备生成的报文具体可以包括tlv 1和tlv 2,参见图4所示。其中,tlv 1中的value 1用于承载第一sid、第二sid和第三sid,value1中携带基准标识1:2:3:4500::1,并扩展sub-tlv 1和sub-tlv 2,sub-tlv 1中携带对应的位置信息(即,begin 1=56,end 1=63),sub-tlv 2中携带第一功能标识、第二功能标识和第三功能标识(即,功能标识分别为80、81和82);tlv 2中的value 2用于承载第四sid和第五sid,value 2中携带第二信息1:2:6700:4580::1,并扩展sub-tlv 3和sub-tlv 4,sub-tlv 3中携带对应的位置信息(即,begin 1=40,end 1=47),sub-tlv 4中携带第四功能标识和第五功能标识(即,功能标识分别为88和89)。
115.可以理解的是,执行s102中第二网络设备生成报文,能够大大降低各sid在报文中占用的空间,确保报文将第二网络设备上生成的sid均泛洪到网络中的其他网络设备,使得
该网络中网络设备之间进行正常通信成为可能。
116.s103,第二网络设备向第一网络设备发送所述报文。
117.s104,第一网络设备接收第二网络设备发送的报文。
118.第二网络设备生成报文后,可以向其所在网络中的其他网络设备均发生该报文,以第二网络设备向第一网络设备发送报文为例进行下述说明,可以理解的是,第一网络设备可以是第二网络设备所在网络中除了第二网络设备以外的任意一个网络设备。
119.s105,第一网络设备根据报文中的基准标识、第一功能标识和第二功能标识,生成的第一sid和第二sid。
120.具体实现时,第一网络设备可以对所接收到的报文进行解析,获得基准标识、第一功能标识和第二功能标识,接着,第一网络设备可以根据基准标识和第一功能标识,获得第一sid,并且,也可以根据基准标识和第二功能标识,获得第二sid。
121.在一些可能的实现方式中,该基准标识的长度为128比特,公共部分存储在基准标识的第1比特位到第k比特位,其中,k为小于128的正整数,那么,s104具体可以包括:第一网络设备生成第一sid,第一sid的第1比特位到第k比特位之间存储有公共部分,第一sid的第k+1比特位到第128比特位之间存储有第一功能标识;同理,第一网络设备生成第二sid,第二sid的第1比特位到第k比特位之间存储有公共部分,第二sid的第k+1比特位到第128比特位之间存储有第二功能标识。
122.作为一个示例,报文还包括第一位置信息和第二位置信息,第一位置信息用于标识第一功能标识存储在第一sid中第k+1比特位到第128比特位之间的位置,第二位置信息用于标识第二功能标识存储在第二sid中第k+1比特位到第128比特位之间的位置。需要说明的是,第一位置信息和第二位置信息可以相同,也可以不同。
123.在另一些可能的实现方式中,该报文还可以包括第三位置信息,那么,s104具体可以包括:第一网络设备生成第一sid,第一功能标识存储在第一sid中第三位置信息所指示的位置;同理,第一网络设备生成第二sid,第二功能标识存储在第二sid中第三位置信息所指示的位置。其中,第三位置信息用于指示第一功能标识存储在第一sid中第m比特位到第n比特位,第三位置信息还用于指示第二功能标识存储在第二sid中第m比特位到第n比特位,其中,m和n均为正整数,n≤m≤128。例如:假设n=56,m=63,那么,在第一sid中的第56bit到第63bit存储第一功能标识,在第二sid中的第56bit到第63bit存储第二功能标识。
124.在再一些可能的实现方式中,该报文还可以包括第三位置信息,那么,s104具体可以包括:第一网络设备将第一功能标识存储在基准标识的第三位置信息所指示的位置得到第二标识,根据第二标识生成第一sid,第一sid的值与第二标识的值相同;同理,第一网络设备将第二功能标识存储在基准标识的第三位置信息所指示的位置得到第三标识,根据第三标识生成第一sid,第一sid的值与第三标识的值相同。该实现方式中,第三位置信息用于指示第一功能标识或第二功能标识存储在基准标识中第m比特位到第n比特位,其中,m和n均为正整数,m小于等于n。需要说明的是,该实现方式中,基准标识是固定不变的标识,第一网络设备对基准标识进行处理得到第二标识后,再基于该第二标识的值得到第一sid,得到第二标识后基准标识的值未发生变化;同理,第一网络设备对该对基准标识进行处理得到第三标识,并基于该第三标识的值得到第二sid,得到第三标识后第一标示的值仍然未发生变化。
125.需要说明的是,上述实现方式中的第一位置信息、第二位置信息或第三位置信息也可以根据需要携带在该报文中。
126.举例来说,若第一网络设备接收到包括上述图4格式的报文,则,第一网络设备可以通过解析该报文,获得第一基准标识、位置信息1、第一功能标识、第二功能标识、第三功能标识、第二基准标识、位置信息2、第四功能标识和第五功能标识,并且,将第一功能标识80填入第一基准标识1:2:3:4500::1的第56比特到第63比特的位置,获得第一sid,即1:2:3:4580::1,同理,将第二功能标识81填入第一基准标识1:2:3:4500::1的第56比特到第63比特的位置,获得第二sid,即1:2:3:4581::1,将第三功能标识82填入第一基准标识1:2:3:4500::1的第56比特到第63比特的位置,获得第三sid,即1:2:3:4582::1;将第四功能标识88填入第二基准标识1:2:6700:4580::1的第40比特到第47比特的位置,获得第四sid,即1:2:6788:4580::1,同理,将第五功能标识89填入第二基准标识1:2:6700:4580::1的第40比特到第47比特的位置,获得第五sid,即1:2:6789:4580::1。
127.需要说明的是,第一网络设备可以基于报文中解析出的所有信息,根据上述实现方式,合成第二网络设备上生成的sid,从而第一网络设备可以在之后的通信中识别出所接收到的数据报文是否携带的是第二网络设备上的sid,使得第一网络设备和第二网络设备之间能够实现正常的通信。
128.需要说明的是,第二网络设备所在网络中的其他网络设备在接收到报文后,均可以参照下述s105生成第一sid和第二sid,在本技术实施例中不再赘述具体的实现方式。
129.可见,通过本技术实施例提供的方法,第二网络设备可以获得具有公共部分的多个sid,并作为发送方设备将该公共部分和多个sid的差异部分分别体现在用于泛洪sid的报文中,发送给网络中的其他网络设备,由接收方网络设备基于该报文中所体现的公共部分和差异部分,生成多个sid。由于多个sid中的公共部分不再重复的占用用于泛洪sid的报文的空间,大大的降低了多个sid占用该报文的空间,使得该报文携带第二网络设备上生成的所有sid成为可能,而且,由于通过一个报文可以携带多个具有相同公共部分的sid,提高了报文传输效率,节省了网络带宽资源。
130.相应的,本技术实施例还提供了一种生成段标识sid的装置500,参见图5所示。该装置500应用于第一网络设备,该装置500包括:接收单元501和生成单元502。其中,接收单元501用于接收第二网络设备发送的报文,该报文携带基准标识、第一功能标识和第二功能标识;生成单元502用于根据基准标识、第一功能标识和第二功能标识生成第一sid和第二sid,第一sid和第二sid具有相同的公共部分,第一sid包括公共部分和第一功能标识,第二sid包括公共部分和第二功能标识,基准标识包含公共部分。
131.其中,接收单元501具体可以执行上述方法100中s104对应的操作,生成单元502具体可以执行上述方法100中s105对应的操作。
132.作为一个示例,基准标识的长度为128比特,公共部分存储在基准标识的第1比特位到第k比特位,其中,k为正整数,k小于128,生成单元502,包括:第一生成子单元,用于生成第一sid,第一sid的第1比特位到第k比特位之间存储有公共部分,第一sid的第k+1比特位到第128比特位之间存储有第一功能标识;第二生成子单元,用于生成第二sid,第二sid的第1比特位到第k比特位之间存储有公共部分,第二sid的第k+1比特位到第128比特位之间存储有第二功能标识。其中,该报文还可以包括第一位置信息和第二位置信息,第一位置
信息用于标识第一功能标识存储在第一sid中第k+1比特位到第128比特位之间的位置,第二位置信息用于标识第二功能标识存储在第二sid中第k+1比特位到第128比特位之间的位置。
133.作为另一个示例,该报文还可以包括第三位置信息,生成单元502,包括:第三生成子单元,用于生成第一sid,第一功能标识存储在第一sid中第三位置信息所指示的位置;第四生成子单元,用于生成第二sid,第二功能标识存储在第二sid中第三位置信息所指示的位置。其中,第三位置信息用于指示第一功能标识存储在第一sid中第m比特位到第n比特位,第三位置信息还用于指示第二功能标识存储在第二sid中第m比特位到第n比特位,其中,m和n均为正整数,m小于等于n。
134.作为再一个示例,该报文还可以包括第三位置信息,生成单元502,包括:第五生成子单元,用于将第一功能标识存储在基准标识的第三位置信息所指示的位置得到第二标识,根据第二标识生成第一sid,第一sid的值与第二标识的值相同;第六生成子单元,用于将第二功能标识存储在基准标识的第三位置信息所指示的位置得到第三标识,根据第三标识生成第一sid,第一sid的值与第三标识的值相同。其中,第三位置信息用于指示第一功能标识或第二功能标识存储在基准标识中第m比特位到第n比特位,其中,m和n均为正整数,m小于等于n。
135.在一些可能的实现方式中,该报文可以包含第一子tlv和第二子tlv,其中,第一子tlv用于承载第三位置信息,第二子tlv用于承载第一功能标识和第二功能标识。
136.在一些可能的实现方式中,第一功能标识和第二功能标识分别用于标识灵活算法flex-algo,flex-algo用于转发路径计算,第一sid和第二sid分别为中间系统到中间系统isis路由协议的end.x sid;或者,第一功能标识和第二功能标识分别用于标识虚拟私有网络vpn,第一sid和第二sid分别为vpn sid。
137.需要说明的是,该报文可以是lsp报文。
138.需要说明的是,该生成段标识sid的装置500与上述方法100中的第一网络设备执行的操作对应,具体实现方式以及达到的效果,参见方法100中的相关描述。
139.此外,本技术实施例还提供了一种生成段标识sid的装置600,参见图6所示。该所示600可以实现图3所述实施例中的第二网络设备的功能,该装置600包括:生成单元601和发送单元602。其中,生成单元601用于生成报文,报文包括基准标识、第一功能标识和第二功能标识;发送单元602用于向第一网络设备发送报文,报文用于指示第一网络设备生成第一sid和第二sid,第一sid和第二sid具有相同的公共部分,第一sid包括公共部分和第一功能标识,第二sid包括公共部分和第二功能标识,基准标识包含公共部分。
140.其中,生成单元601具体可以执行上述方法100中s102对应的操作,发送单元602具体可以执行上述方法100中s103对应的操作。
141.其中,基准标识、第一功能标识和第二功能标识为在第二网络设备上配置命令行获得的。
142.在一些可能的实现方式中,该报文还可以包括位置信息,位置信息用于指示第一功能标识存储在第一sid的第m比特位到第n比特位之间,位置信息还用于指示第二功能标识存储在第二sid的第m比特位到第n比特位之间,其中,m和n均为正整数,m小于等于n。
143.其中,该报文可以包含第一子tlv和第二子tlv,其中,第一子tlv用于承载位置信
息,第二子tlv用于承载第一功能标识和第二功能标识。
144.在一些可能的实现方式中,第一功能标识和第二功能标识分别用于标识灵活算法flex-algo,flex-algo用于转发路径计算,第一sid和第二sid分别为中间系统到中间系统isis路由协议的end.x sid;或者,第一功能标识和第二功能标识分别用于标识虚拟私有网络vpn,第一sid和第二sid分别为vpn sid。
145.在另一些可能的实现方式中,该装置600的生成单元601还用于:根据基准标识、第一功能标识和第二功能标识生成第一sid和所述第二sid。
146.作为一个示例,基准标识的长度为128比特,公共部分存储在基准标识的第1比特位到第k比特位,生成单元601具体可以用于:生成第一sid,第一sid的第1比特位到第k比特位之间存储有公共部分,第一sid的第k+1比特位到第128比特位之间存储有第一功能标识;同理,生成第二sid,第二sid的第1比特位到第k比特位之间存储有公共部分,第二sid的第k+1比特位到第128比特位之间存储有第二功能标识。例如,报文还包括第一位置信息和第二位置信息,第一位置信息用于标识第一功能标识存储在第一sid中第k+1比特位到第128比特位之间的位置,第二位置信息用于标识第二功能标识存储在第二sid中第k+1比特位到第128比特位之间的位置。需要说明的是,第一位置信息和第二位置信息可以相同,也可以不同。
147.作为另一个示例,该报文还可以包括第三位置信息,那么,生成单元601具体可以用于:生成第一sid,第一功能标识存储在第一sid中第三位置信息所指示的位置;同理,生成第二sid,第二功能标识存储在第二sid中第三位置信息所指示的位置。其中,第三位置信息用于指示第一功能标识存储在第一sid中第m比特位到第n比特位,第三位置信息还用于指示第二功能标识存储在第二sid中第m比特位到第n比特位,其中,m和n均为正整数,n≤m≤128。
148.作为再一个示例,该报文还可以包括第三位置信息,那么,生成单元601具体可以用于:将第一功能标识存储在基准标识的第三位置信息所指示的位置得到第二标识,根据第二标识生成第一sid,第一sid的值与第二标识的值相同;同理,将第二功能标识存储在基准标识的第三位置信息所指示的位置得到第三标识,根据第三标识生成第一sid,第一sid的值与第三标识的值相同。该实现方式中,第三位置信息用于指示第一功能标识或第二功能标识存储在基准标识中第m比特位到第n比特位,其中,m和n均为正整数,m小于等于n。需要说明的是,该实现方式中,基准标识是固定不变的标识。
149.需要说明的是,上述第一位置信息、第二位置信息或第三位置信息也可以是通过命令行在第二网络设备上配置的。
150.需要说明的是,该生成段标识sid的装置600与上述图3所示实施例中的第二网络设备执行的操作对应,具体实现方式以及达到的效果,参见图3所示实施例中的相关描述。
151.此外,参见图7,本技术实施例还提供了一种网络设备700,该网络设备700可以实现上述图3所示实施例中第一网络设备的功能。网络设备700包括存储器701、处理器702和通信接口703。
152.所述存储器701用于存储计算机程序或指令;
153.所述处理器702用于调用存储器中存储的计算机程序或指令,使得所述网络设备执行上述图3所示实施例中第一网络设备实施的方法。
154.通信接口703,用于与该网络中的其他网络设备进行通信。
155.存储器701、处理器702和通信接口703通过总线704相互连接;总线704可以是外设部件互连标准(英文:peripheral component interconnect,简称:pci)总线或扩展工业标准结构(英文:extended industry standard architecture,简称:eisa)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
156.在具体实施例中,处理器701用于根据基准标识、第一功能标识和第二功能标识生成第一sid和第二sid。该处理器701的详细处理过程请参考上述图3所示实施例中s105,这里不再赘述。
157.通信接口703用于接收第二网络设备发送的报文。具体的过程请参考上述图3所示实施例中s104,这里不再赘述。
158.参见图8,本技术实施例还提供了一种网络设备800,该网络设备800可以实现上述图3所示实施例中第二网络设备的功能。网络设备800包括存储器801、处理器802和通信接口803。
159.所述存储器801用于存储计算机程序或指令;
160.所述处理器802用于调用存储器中存储的计算机程序或指令,使得所述网络设备执行上述图3所示实施例中第二网络设备实施的方法。
161.通信接口803,用于与该网络中的其他网络设备进行通信。
162.存储器801、处理器802和通信接口803通过总线804相互连接;总线804可以是pci总线或eisa总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
163.在具体实施例中,处理器801用于生成报文。该处理器801的详细处理过程请参考上述图3所示实施例中s102,这里不再赘述。
164.通信接口803用于向第一网络设备发送报文。具体的过程请参考上述图3所示实施例中s103,这里不再赘述。
165.上述存储器701和存储器801可以是随机存取存储器(英文:random-access memory,简称:ram)、闪存(英文:flash)、只读存储器(英文:read only memory,简称:rom)、可擦写可编程只读存储器(英文:erasable programmable read only memory,简称:eprom)、电可擦除可编程只读存储器(英文:electrically erasable programmable read only memory,简称:eeprom)、寄存器(英文:register)、硬盘、移动硬盘、cd-rom或者本领域技术人员知晓的任何其他形式的存储介质。
166.上述处理器702和处理器802例如可以是中央处理器(英文:central processing unit,简称:cpu)、通用处理器、数字信号处理器(英文:digital signal processor,简称:dsp)、专用集成电路(英文:application-specific integrated circuit,简称:asic)、现场可编程门阵列(英文:field programmable gate array,简称:fpga)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本技术公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,dsp和微处理器的组合等等。
167.上述通信接口703和通信接口803例如可以是接口卡等,可以为以太(英文:
ethernet)接口或异步传输模式(英文:asynchronous transfer mode,简称:atm)接口。
168.本技术实施例还提供了一种通信系统900,参见图9,该通信系统900包括第一网络设备901和第二网络设备902。其中,第一网络设备901为生成段标识sid的装置500,第二网络设备902为生成段标识sid的装置600;或者,第一网络设备901为网络设备700,第二网络设备902为网络设备800。
169.本技术实施例提供了一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行上述生成段标识sid的方法。
170.本技术实施例还提供了一种芯片,芯片设置在生成段标识sid的装置500或网络设备700中,芯片包括处理器和接口电路。接口电路用于接收代码指令并传输至处理器;处理器用于运行代码指令以执行上述应用于图3所示实施例中第一网络设备的生成段标识sid的方法。
171.本技术实施例还提供了一种芯片,芯片设置在生成段标识sid的装置600或网络设备800中,芯片包括处理器和接口电路。接口电路用于接收代码指令并传输至处理器;处理器用于运行代码指令以执行上述应用于图3所示实施例中第二网络设备的生成段标识sid的方法。
172.本技术中“至少一项(个)”是指一个或者多个,“多个”是指两个或两个以上。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。本技术中认为“a和/或b”包含单独a,单独b,和a+b。
173.本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
174.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
175.在本技术所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑模块划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
176.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要获取其中的部分或者全部单元来实现本实施例方案的目的。
177.另外,在本技术各个实施例中的各模块单元可以集成在一个处理单元中,也可以
是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件模块单元的形式实现。
178.所述集成的单元如果以软件模块单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(英文:read-only memory,简称:rom)、随机存取存储器(英文:random access memory,简称:ram)、磁碟或者光盘等各种可以存储程序代码的介质。
179.本领域技术人员应该可以意识到,在上述一个或多个示例中,本技术所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
180.以上所述的具体实施方式,对本技术的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本技术的具体实施方式而已。
181.以上所述,以上实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1