路由通告的方法、网络设备和系统与流程

未命名 08-13 阅读:79 评论:0

sid;所述第一网络设备生成第一路由,所述第一路由包括所述第一前缀和所述n个srv6 sid。
8.基于本技术提供的方案,在路由通告过程中,将与第一前缀对应的n个srv6 sid的公共部分承载在一个公共字段中,第一网络设备根据所述公共字段中的所述n个srv6 sid的公共部分和所述第一srv6 sid的可变部分得到所述n个srv6 sid,并生成第一路由,该第一路由包含第一前缀和所述n个srv6 sid。由于,不需要将n个srv6 sid的公共部分分别承载在路由通告报文的不同字段中,从而减少了路由通告报文的长度,降低了路由通告报文占用的带宽,提升了路由通告的效率。
9.在一种可能的实现方式中,所述n个srv6 sid还对应于第二前缀,所述方法还包括:所述第一网络设备生成第二路由,所述第二路由包括所述第二前缀和所述n个srv6 sid。
10.基于本技术提供的方案,当所述n个srv6 sid还对应第二前缀时,由于n个srv6sid的公共部分单独承载在路由通告报文中的一个公共字段中,因此,可以通过一个路由通告报文通告多个路由前缀的路由,而不需要分别通过多个报文通告多个路由前缀的路由,第一网络设备可以基于一个路由通告报文分别生成第一路由和第二路由,第二路由包括所述第二前缀和所述n个srv6 sid,进一步降低了路由通告报文占用的带宽,提升了路由通告的效率,并提高了路由收敛速度。
11.在一种可能的实现方式中,所述路由通告报文还包括n-1个可变字段,所述n-1个可变字段分别用于承载n-1个srv6 sid的可变部分,所述n-1个srv6 sid为所述n个srv6 sid中除所述第一srv6 sid以外的srv6 sid,所述第一网络设备根据所述公共部分和所述第一srv6 sid的可变部分获得所述n个srv6 sid包括:
12.所述第一网络设备根据所述公共部分、所述第一srv6 sid的可变部分和所述n-1个srv6 sid的可变部分获得所述n个srv6 sid。
13.基于本技术提供的方案,在所述路由通告报文中,包括一个公共字段承载所述n个srv6 sid的公共部分,还包括n个可变字段分别承载n个srv6 sid的可变部分,由于所述n个srv6 sid中的每一个srv6 sid都包括公共部分和可变部分,所以所述第一网络设备根据所述通告报文中的所述公共部分和每一个srv6 sid的可变部分可以分别获得所述n个srv6 sid中的每一个srv6 sid。从而,本技术提供的方案可以根据一个路由通告报文中的一个公共字段和每一个srv6 sid的可变部分获得n个srv6 sid,不需要分别根据不同的字段分别获得n个srv6 sid中每一个srv6 sid的公共部分和可变部分,提升了对路由通告报文的处理效率。
14.在一种可能的实现方式中,所述第一网络设备根据所述公共部分、所述第一srv6sid的可变部分和所述n-1个srv6 sid的可变部分获得所述n个srv6 sid包括:
15.所述第一网络设备根据所述公共部分和所述第一srv6 sid的可变部分获得所述第一srv6 sid;所述第一网络设备根据所述公共部分和所述n-1个srv6 sid的可变部分获得所述n-1个srv6 sid。
16.在一种可能的实现方式中,所述路由通告报文还包括偏移值和长度值,所述长度值指示所述n个srv6 sid的可变部分中的每个可变部分的长度,所述偏移值指示所述n个srv6 sid的可变部分中的每个可变部分在srv6 sid中的偏移位置。
17.在一种可能的实现方式中,所述路由通告报文还包括指示信息,所述指示信息指示所述n个srv6 sid的数目,所述第一网络设备根据所述公共部分和所述第一srv6sid的可变部分获得所述n个srv6 sid包括:
18.所述第一网络设备根据所述公共部分、所述第一srv6 sid的可变部分和所述指示信息获得所述n个srv6 sid。
19.在一种可能的实现方式中,所述第一网络设备根据所述公共部分、所述第一srv6sid的可变部分和所述指示信息获得所述n个srv6 sid包括:
20.所述第一网络设备根据所述公共部分和所述第一srv6 sid的可变部分获得所述第一srv6 sid;所述第一网络设备根据所述第一srv6 sid和所述指示信息,获得n-1个srv6 sid,所述n-1个srv6 sid为所述n个srv6 sid中除所述第一srv6 sid以外的srv6 sid。
21.基于本技术提供的方案,所述路由通告报文中包括所述n个srv6 sid的公共部分、第一srv6 sid的可变部分和指示所述n个srv6 sid的数目的指示信息。由于所述n个srv6 sid中的每一个srv6 sid都包括公共部分和可变部分,所以所述第一网络设备根据所述公共部分和第一srv6 sid的可变部分可以获得所述第一srv6 sid。所述第一网络设备根据指示信息可以获得n-1的值。然后所述第一网络设备根据所述第一srv6 sid和n个srv6 sid之间的特定关系依次获得n-1个srv6 sid,所述特定关系包括所述n个srv6 sid是等差数列或所述n个srv6 sid是非等差数列。从而,本技术提供的方案可以根据一个路由通告报文中固定的字段获得n个srv6 sid,而不需要分别根据不同的字段分别获得n个srv6 sid,提升了对路由通告报文的处理效率。
22.在一种可能的实现方式中,所述n个srv6 sid是等差数列。
23.基于本技术提供的方案,所述n个srv6 sid之间的特定关系满足所述n个srv6sid是等差数列,在默认情况下,所述路由通告报文中可以不携带所述等差数列的公差,在这种情况下,所述等差数列的公差为1或-1。当公差为1时,所述第一网络设备根据所述第一srv6 sid依次加1分别获得所述n-1个srv6 sid。当公差为-1时,所述第一网络设备根据所述第一srv6 sid依次减1分别获得所述n-1个srv6 sid。从而,本技术提供的方案可以根据一个路由通告报文中固定的字段获得n个公差为1或-1的n个srv6 sid,而不需要分别根据不同的字段分别获得n个srv6 sid,提升了对路由通告报文的处理效率。
24.在一种可能的实现方式中,所述路由通告报文还包括等差数列的公差,所述n个srv6 sid中第二srv6 sid之后的每一个srv6 sid与前一个srv6 sid的差都等于所述公差。
25.基于本技术提供的方案,所述n个srv6 sid之间的特定关系满足所述n个srv6sid是等差数列,所述路由通告报文中还包括所述等差数列的公差,此时,所述公差可以是任意整数。所述第一网络设备根据所述第一srv6 sid依次加所述公差分别获得所述n-1个srv6 sid。从而,本技术提供的方案可以根据一个路由通告报文中固定的字段获得n个公差为任意整数的srv6 sid,而不需要分别根据不同的字段分别获得n个srv6 sid,提升了对路由通告报文的处理效率。
26.在一种可能的实现方式中,所述n个srv6 sid是非等差数列,此时,在所述路由通告报文中还包括n个srv6 sid中第二srv6 sid之后的每一个srv6 sid与前一个srv6 sid的差。
27.基于本技术提供的方案,所述n个srv6 sid是非等差数列,所述路由通告报文中包
sid向所述第二网络设备转发流量,所述ce双归接入所述第二网络设备和所述第三网络设备。
43.第二方面,本技术提供了一种路由通告的方法,所述方法包括:第一网络设备获得路由通告报文,所述路由通告报文包括公共字段和可变字段,所述公共字段用于承载n个srv6 sid的公共部分,所述可变字段用于承载所述n个srv6 sid中的第一srv6 sid的可变部分,所述n个srv6 sid对应于第一前缀,所述n为大于等于2的正整数;所述第一网络设备向第二网络设备发送所述路由通告报文。
44.基于本技术提供的方案,在路由通告过程中,将与第一前缀对应的n个srv6 sid的公共部分承载在一个公共字段中,由于,不需要将n个srv6 sid的公共部分分别承载在路由通告报文的不同字段中,从而减少了路由通告报文的长度,降低了路由通告报文占用的带宽,提升了路由通告的效率。
45.在一种可能的实现方式中,所述n个srv6 sid还对应于第二前缀。
46.基于本技术提供的方案,当所述n个srv6 sid还对应第二前缀时,由于n个srv6sid的公共部分单独承载在路由通告报文中的一个公共字段中,因此,可以通过一个路由通告报文通告多个路由前缀的路由,而不需要分别通过多个报文通告多个路由前缀的路由,进一步降低了路由通告报文占用的带宽,提升了路由通告的效率,并提高了路由收敛速度。
47.在一种可能的实现方式中,所述路由通告报文还包括n-1个可变字段,所述n-1个可变字段分别用于承载n-1个srv6 sid的可变部分,所述n-1个srv6 sid为所述n个srv6 sid中除所述第一srv6 sid以外的srv6 sid。
48.在一种可能的实现方式中,所述路由通告报文还包括偏移值和长度值,所述长度值指示所述n个srv6 sid的可变部分中的每个可变部分的长度,所述偏移值指示所述n个srv6 sid的可变部分中的每个可变部分在srv6 sid中的偏移位置。
49.在一种可能的实现方式中,所述路由通告报文还包括指示信息,所述指示信息指示所述n个srv6 sid的数目。
50.在一种可能的实现方式中,所述n个srv6 sid是等差数列。
51.在一种可能的实现方式中,所述路由通告报文还包括等差数列的公差,所述n个srv6 sid中第二srv6 sid之后的每一个srv6 sid与前一个srv6 sid的差都等于所述公差。
52.在一种可能的实现方式中,所述n个srv6 sid是非等差数列,此时,在所述路由通告报文中还包括n个srv6 sid中第二srv6 sid之后的每一个srv6 sid与前一个srv6 sid的差。
53.在一种可能的实现方式中,所述路由通告报文还包括偏移值和长度值,所述长度值指示所述第一srv6 sid的可变部分的长度,所述偏移值指示所述第一srv6 sid的可变部分在所述第一srv6 sid中的偏移位置。
54.在一种可能的实现方式中,所述路由通告报文包括第一nlri字段,所述第一nlri字段包括所述n-1个可变字段。
55.在一种可能的实现方式中,所述第一nlri字段包括所述可变字段和/或所述n-1个可变字段。
56.在一种可能的实现方式中,所述路由通告报文包括第一附加类型长度值字段,所述第一附加类型长度值字段用于承载所述指示信息。
57.在一种可能的实现方式中,所述第一附加类型长度值字段包括所述指示信息和/或n个行为字段,所述n个行为字段分别用于承载与所述n个srv6 sid关联的srv6端点行为编码值。
58.在一种可能的实现方式中,所述路由通告报文包括srv6 sid结构类型长度值字段,所述srv6 sid结构类型长度值字段用于承载所述偏移值和所述长度值。
59.在一种可能的实现方式中,所述路由通告报文包括第二nlri字段,所述第二nlri字段包括所述可变字段。
60.在一种可能的实现方式中,所述路由通告报文包括第二附加类型长度值字段,所述第二附加类型长度值字段包括n个行为字段,所述n个行为字段分别用于承载与所述n个srv6 sid关联的srv6端点行为编码值。
61.在一种可能的实现方式中,所述路由通告报文包括bgp更新消息或bgp链路状态协议通告消息。
62.在一种可能的实现方式中,所述公共部分携带在所述bgp更新消息的前缀sid属性中。
63.在一种可能的实现方式中,所述公共字段为所述前缀sid属性的sid字段。
64.在一种可能的实现方式中,所述公共部分包括srv6 sid的位置部分,所述n个srv6 sid的可变部分中每个可变部分包括srv6 sid的功能部分和/或srv6 sid的参数部分。
65.在一种可能的实现方式中,所述路由通告报文用于通告以下路由的至少一个:evpn类型1路由、evpn类型2路由、evpn类型5路由和三层虚拟专用网路由。
66.在一种可能的实现方式中,所述n个srv6 sid中的所述第一srv6 sid用于所述第二网络设备向所述第一网络设备转发流量。
67.在一种可能的实现方式中,所述第二网络设备向第三网络设备转发流量,所述第三网络设备与ce的连接故障时,所述第三网络设备使用所述n个srv6 sid中的第二srv6 sid向所述第一网络设备转发流量,所述ce双归接入所述第一网络设备和所述第三网络设备。
68.第三方面,本技术提供了一种网路设备,包括:收发单元和处理单元。其中:所述收发单元用于接收来自第二网络设备的路由通告报文,所述路由通告报文包括公共字段和可变字段,所述公共字段用于承载n个srv6 sid的公共部分,所述可变字段用于承载所述n个srv6 sid中的第一srv6 sid的可变部分,所述n个srv6 sid对应于第一前缀,所述n为大于等于2的正整数;所述处理单元用于根据所述公共部分和所述第一srv6 sid的可变部分获得所述n个srv6 sid;所述处理单元还用于生成第一路由,所述第一路由包括所述第一前缀和所述n个srv6 sid。
69.在一种可能的实现方式中,所述n个srv6 sid还对应于第二前缀,所述处理单元还用于生成第二路由,所述第二路由包括所述第二前缀和所述n个srv6 sid。
70.在一种可能的实现方式中,所述路由通告报文还包括n-1个可变字段,所述n-1个可变字段分别用于承载n-1个srv6 sid的可变部分,所述n-1个srv6 sid为所述n个srv6 sid中除所述第一srv6 sid以外的srv6 sid,所述处理单元具体用于根据所述公共部分、所述第一srv6 sid的可变部分和所述n-1个srv6 sid的可变部分获得所述n个srv6 sid。
71.在一种可能的实现方式中,所述处理单元具体用于:
72.根据所述公共部分和所述第一srv6 sid的可变部分获得所述第一srv6 sid;
73.根据所述公共部分和所述n-1个srv6 sid的可变部分获得所述n-1个srv6 sid。
74.在一种可能的实现方式中,所述路由通告报文还包括偏移值和长度值,所述长度值指示所述n个srv6 sid的可变部分中的每个可变部分的长度,所述偏移值指示所述n个srv6 sid的可变部分中的每个可变部分在srv6 sid中的偏移位置。
75.在一种可能的实现方式中,所述路由通告报文还包括指示信息,所述指示信息指示所述n个srv6 sid的数目,所述处理单元具体用于根据所述公共部分、所述第一srv6 sid的可变部分和所述指示信息获得所述n个srv6 sid。
76.在一种可能的实现方式中,所述处理单元具体用于:
77.根据所述公共部分和所述第一srv6 sid的可变部分获得所述第一srv6 sid;
78.根据所述第一srv6 sid和所述指示信息,获得n-1个srv6 sid,所述n-1个srv6sid为所述n个srv6 sid中除所述第一srv6 sid以外的srv6 sid。
79.在一种可能的实现方式中,所述n个srv6 sid是等差数列。
80.在一种可能的实现方式中,所述路由通告报文还包括等差数列的公差,所述n个srv6 sid中第二srv6 sid之后的每一个srv6 sid与前一个srv6 sid的差都等于所述公差。
81.在一种可能的实现方式中,所述n个srv6 sid是非等差数列,此时,在所述路由通告报文中还包括n个srv6 sid中第二srv6 sid之后的每一个srv6 sid与前一个srv6 sid的差。
82.在一种可能的实现方式中,所述路由通告报文还包括偏移值和长度值,所述长度值指示所述第一srv6 sid的可变部分的长度,所述偏移值指示所述第一srv6 sid的可变部分在所述第一srv6 sid中的偏移位置。
83.在一种可能的实现方式中,所述路由通告报文包括第一nlri字段,所述第一nlri字段包括所述n-1个可变字段。
84.在一种可能的实现方式中,所述第一nlri字段包括所述可变字段和/或所述n-1个可变字段。
85.在一种可能的实现方式中,所述路由通告报文包括第一附加类型长度值字段,所述第一附加类型长度值字段用于承载所述指示信息。
86.在一种可能的实现方式中,所述第一附加类型长度值字段包括所述指示信息和/或n个行为字段,所述n个行为字段分别用于承载与所述n个srv6 sid关联的srv6端点行为编码值。
87.在一种可能的实现方式中,所述路由通告报文包括srv6 sid结构类型长度值字段,所述srv6 sid结构类型长度值字段用于承载所述偏移值和所述长度值。
88.在一种可能的实现方式中,所述路由通告报文包括第二nlri字段,所述第二nlri字段包括所述可变字段。
89.在一种可能的实现方式中,所述路由通告报文包括第二附加类型长度值字段,所述第二附加类型长度值字段包括n个行为字段,所述n个行为字段分别用于承载与所述n个srv6 sid关联的srv6端点行为编码值。
90.在一种可能的实现方式中,所述路由通告报文包括bgp更新消息或bgp链路状态协议通告消息。
91.在一种可能的实现方式中,所述公共字段在所述bgp更新消息的前缀sid属性中。
92.在一种可能的实现方式中,所述公共字段为所述前缀sid属性的sid字段。
93.在一种可能的实现方式中,所述公共部分包括srv6 sid的位置部分,所述n个srv6 sid的可变部分中每个可变部分包括srv6 sid的功能部分和/或srv6 sid的参数部分。
94.在一种可能的实现方式中,所述路由通告报文用于通告以下路由的至少一个:evpn类型1路由、evpn类型2路由、evpn类型5路由和三层虚拟专用网路由。
95.在一种可能的实现方式中,所述n个srv6 sid中的所述第一srv6 sid用于所述第一网络设备向所述第二网络设备转发流量。
96.在一种可能的实现方式中,所述第一网络设备向第三网络设备转发流量,所述第三网络设备与ce的连接故障时,所述第三网络设备使用所述n个srv6 sid中的第二srv6 sid向所述第二网络设备转发流量,所述ce双归接入所述第二网络设备和所述第三网络设备。
97.第四方面,本技术提供了一种网路设备,包括:收发单元和处理单元。其中:所所述处理单元用于获得路由通告报文,所述路由通告报文包括公共字段和可变字段,所述公共字段用于承载n个srv6 sid的公共部分,所述可变字段用于承载所述n个srv6 sid中的第一srv6 sid的可变部分,所述n个srv6 sid对应于第一前缀,所述n为大于等于2的正整数;所述收发单元用于向第二网络设备发送所述路由通告报文。
98.在一种可能的实现方式中,所述n个srv6 sid还对应于第二前缀。
99.在一种可能的实现方式中,所述路由通告报文还包括n-1个可变字段,所述n-1个可变字段分别用于承载n-1个srv6 sid的可变部分,所述n-1个srv6 sid为所述n个srv6 sid中除所述第一srv6 sid以外的srv6 sid。
100.在一种可能的实现方式中,所述路由通告报文还包括偏移值和长度值,所述长度值指示所述n个srv6 sid的可变部分中的每个可变部分的长度,所述偏移值指示所述n个srv6 sid的可变部分中的每个可变部分在srv6 sid中的偏移位置。
101.在一种可能的实现方式中,所述路由通告报文还包括指示信息,所述指示信息指示所述n个srv6 sid的数目。
102.在一种可能的实现方式中,所述n个srv6 sid是等差数列。
103.在一种可能的实现方式中,所述路由通告报文还包括等差数列的公差,所述n个srv6 sid中第二srv6 sid之后的每一个srv6 sid与前一个srv6 sid的差都等于所述公差。
104.在一种可能的实现方式中,所述n个srv6 sid是非等差数列,此时,在所述路由通告报文中还包括n个srv6 sid中第二srv6 sid之后的每一个srv6 sid与前一个srv6 sid的差。
105.在一种可能的实现方式中,所述路由通告报文还包括偏移值和长度值,所述长度值指示所述第一srv6 sid的可变部分的长度,所述偏移值指示所述第一srv6 sid的可变部分在所述第一srv6 sid中的偏移位置。
106.在一种可能的实现方式中,所述路由通告报文包括第一nlri字段,所述第一nlri字段包括所述n-1个可变字段。
107.在一种可能的实现方式中,所述第一nlri字段包括所述可变字段和/或所述n-1个可变字段。
108.在一种可能的实现方式中,所述路由通告报文包括第一附加类型长度值字段,所述第一附加类型长度值字段用于承载所述指示信息。
109.在一种可能的实现方式中,所述第一附加类型长度值字段包括所述指示信息和/或n个行为字段,所述n个行为字段分别用于承载与所述n个srv6 sid关联的srv6端点行为编码值。
110.在一种可能的实现方式中,所述路由通告报文包括srv6 sid结构类型长度值字段,所述srv6 sid结构类型长度值字段用于承载所述偏移值和所述长度值。
111.在一种可能的实现方式中,所述路由通告报文包括第二nlri字段,所述第二nlri字段包括所述可变字段。
112.在一种可能的实现方式中,所述路由通告报文包括第二附加类型长度值字段,所述第二附加类型长度值字段包括n个行为字段,所述n个行为字段分别用于承载与所述n个srv6 sid关联的srv6端点行为编码值。
113.在一种可能的实现方式中,所述路由通告报文包括bgp更新消息或bgp链路状态协议通告消息。
114.在一种可能的实现方式中,所述公共部分携带在所述bgp更新消息的前缀sid属性中。
115.在一种可能的实现方式中,所述公共字段为所述前缀sid属性的sid字段。
116.在一种可能的实现方式中,所述公共部分包括srv6 sid的位置部分,所述n个srv6 sid的可变部分中每个可变部分包括srv6 sid的功能部分和/或srv6 sid的参数部分。
117.在一种可能的实现方式中,所述路由通告报文用于通告以下路由的至少一个:evpn类型1路由、evpn类型2路由、evpn类型5路由和三层虚拟专用网路由。
118.在一种可能的实现方式中,所述n个srv6 sid中的所述第一srv6 sid用于所述第二网络设备向所述第一网络设备转发流量。
119.在一种可能的实现方式中,所述第二网络设备向第三网络设备转发流量,所述第三网络设备与ce的连接故障时,所述第三网络设备使用所述n个srv6 sid中的第二srv6 sid向所述第一网络设备转发流量,所述ce双归接入所述第一网络设备和所述第三网络设备。
120.第五方面,本技术提供了一种网络设备,所述网络设备包括存储器和处理器;所述存储器,用于存储程序代码;所述处理器,用于运行所述程序代码中的指令,使得所述网络设备执行以上任一方面以及任一方面任一可能的实现方式中所述的方法。例如:第五方面所述的网络设备作为第一网络设备执行第一方面所述的方法时,所述处理器执行所述指令,使得所述网络设备用于:接收来自第二网络设备的路由通告报文,所述路由通告报文包括公共字段和可变字段,所述公共字段用于承载n个srv6 sid的公共部分,所述可变字段用于承载所述n个srv6 sid中的第一srv6 sid的可变部分,所述n个srv6 sid对应于第一前缀,所述n为大于等于2的正整数;根据所述公共部分和所述第一srv6 sid的可变部分获得所述n个srv6 sid;生成第一路由,所述第一路由包括所述第一前缀和所述n个srv6 sid。
121.第六方面,本技术提供了一种网络设备,所述网络设备包括通信接口和处理器,所述通信接口用于执行前述任一方面所述的方法以及任一方面的任一可能的实现方式中所涉及的收发操作,所述处理器用于执行以上任一方面所述的方法以及任一方面的任一可能
的实现方式中所涉及的除收发操作之外的其它操作。例如,第六方面所述的网络设备作为第一网络设备执行第一方面所述的方法时,所述通信接口用于接收来自第二网络设备的路由通告报文,所述路由通告报文包括公共字段和可变字段,所述公共字段用于承载n个srv6 sid的公共部分,所述可变字段用于承载所述n个srv6sid中的第一srv6 sid的可变部分,所述n个srv6 sid对应于第一前缀,所述n为大于等于2的正整数。所述处理器用于根据所述公共部分和所述第一srv6 sid的可变部分获得所述n个srv6 sid;所述处理器还用于生成第一路由,所述第一路由包括所述第一前缀和所述n个srv6 sid。
122.第七方面,本技术提供了一种通信系统,该通信系统包括:第一网络设备和第二网络设备,该第一网络设备用于执行第一方面以及第一方面任一可能的实现方式中由所述第一网络设备所执行的部分或全部操作;所述第二网络设备用于执行第二方面以及第二方面任一可能的实现方式中由所述第一网络设备所执行的部分或全部操作。
123.第八方面,本技术提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在处理器上运行时,实现前述任一方面所述的方法以及前述任一方面的任一可能的实现方式中所包括的部分或全部操作。
124.第九方面,本技术提供了一种计算机程序产品,所述计算机程序产品包含指令,当其在处理器上运行时,实现前述任一方面所述的方法以及前述任一方面的任一可能的实现方式中所包括的部分或全部操作。
125.第十方面,本技术提供了一种芯片,包括:接口电路和处理器。所述接口电路和所述处理器相连接,所述处理器用于使得所述芯片执行前述任一方面所述的方法以及前述任一方面的任一可能的实现方式中所包括的部分或全部操作。
126.第十一方面,本技术提供了一种数据结构,所述数据结构包括公共字段和可变字段,所述公共字段用于承载n个srv6 sid的公共部分,所述可变字段用于承载所述n个srv6 sid中的第一srv6 sid的可变部分,所述n个srv6 sid对应于第一前缀,所述n为大于等于2的正整数。
127.在一种可能的实现方式中,所述数据结构还包括n-1个可变字段,所述n-1个可变字段分别用于承载n-1个srv6 sid的可变部分,所述n-1个srv6 sid为所述n个srv6 sid中除所述第一srv6 sid以外的srv6 sid。
128.在一种可能的实现方式中,所述数据结构还包括偏移值和长度值,所述长度值指示所述n个srv6 sid的可变部分中的每个可变部分的长度,所述偏移值指示所述n个srv6 sid的可变部分中的每个可变部分在srv6 sid中的偏移位置。
129.在一种可能的实现方式中,所述数据结构还包括指示信息,所述指示信息指示srv6 sid数目。
130.在一种可能的实现方式中,所述数据结构还包括偏移值和长度值,所述长度值指示所述第一srv6 sid的可变部分的长度,所述偏移值指示所述第一srv6 sid的可变部分在所述第一srv6 sid中的偏移位置。
131.在一种可能的实现方式中,所述数据结构包括第一nlri字段,所述第一nlri字段包括所述n-1个可变字段。
132.在一种可能的实现方式中,所述数据结构包括第一nlri字段,所述第一nlri字段包括所述可变字段和/或所述n-1个可变字段。
pe3,pe1可以直接通过通信链路和pe2连接,也可以通过运营商网络的其他设备和pe2连接,例如,pe1通过rr和pe2连接。rr分别和pe1、pe2、pe3建立bgp邻居以通告虚拟私有网络(virtual private network,vpn)路由。rr可以直接和pe1、pe2、pe3连接,也可以通过网络和pe1、pe2、pe3连接。在图1a的场景中可以没有rr设备,网络设备之间直接建立bgp邻居,例如pe1和pe2建立bgp邻居。图1a示出的场景用于承载evpn vpws业务,图1a示出了4个vpn,每个vpn包括2个站点(site)site1和site2,以vpn1为例,vpn1 site1的边缘设备是ce1,ce1通过通信链路双归接入pe1和pe2,vpn1 site2的边缘设备是ce5,ce5通过通信链路单归接入pe3,pe之间通过运营商网络为同一vpn的2个站点提供连接。
153.图1b示出了本技术实施例的另一种应用场景,下面具体介绍图1b示出的场景,图1b示出的设备以及设备连接关系与图1a相同,此处不再赘述。图1b示出的场景用于evpn vpls或l3vpn业务,图1b示出了2个vpn,每个vpn包括4个站点site1、site2、site3和site4,以vpn1为例,vpn1 site1的边缘设备是ce1,ce1通过通信链路双归接入pe1和pe2,vpn1 site2的边缘设备是ce3,ce3同样通过通信链路双归接入到pe1和pe2,vpn1 site3的边缘设备是ce5,ce5通过通信链路单归接入pe3,vpn1 site4的边缘设备是ce7,ce7同样通过通信链路单归接入pe3,pe之间通过运营商网络为同一vpn的4个站点提供连接。
154.应理解,在本技术实施例中的通信链路不仅包括有线链路,还包括无线链路。在图1a和图1b示出的场景中,仅示例性的示出了8个ce,3个pe,1个rr,事实上,该网络可以包括任意其他数量的ce,pe,rr,本技术实施例并不对ce,pe,rr的数量进行限定。
155.在本技术实施例中,通过bgp承载的业务包括evpn vpws、evpn vpls和l3vpn,应理解,本技术实施例同样适用于其他类型的业务,本技术实施例并不对bgp承载的业务类型进行限定。
156.下面具体介绍在本技术实施例中对于bgp承载的不同类型的业务,在pe为每个前缀分配1个srv6 sid的场景中,pe通告路由的方法。
157.在本技术实施例中,pe为每个前缀分配1个srv6 sid包括pe基于每前缀进行srv6 sid分配、pe基于每实例进行srv6 sid分配以及pe基于每下一跳进行srv6 sid分配。
158.1、evpn vpws
159.对于evpn vpws,pe基于每前缀进行srv6 sid分配,那么,pe为不同的前缀分配不同的srv6 sid。在一个bgp更新消息中,可以承载srv6 sid相同的多个前缀,如果多个前缀对应的srv6 sid不同,则需要分别通过多个不同的bgp更新消息通告对应所述多个前缀的路由。所以,对于pe对应的多个前缀,由于其对应的srv6 sid不同,需要通过多个bgp更新消息来通告所述多个前缀和对应的srv6 sid。
160.下面结合图1a所示的场景进行介绍,在pe1上,包括4个evpn vpws实例,分别对应vpn 1、vpn 2、vpn 3和vpn 4,假设每个ce对应1个前缀,那么,4个vpn对应的srv6 sid不同,pe1为通告4个vpn的前缀和srv6 sid,需要发送4个bgp更新消息,如表1所示。在表1中,第一列表示pe1发送的bgp更新消息的编号,应理解,此编号用于本技术实施例中区分不同的bgp更新消息,并不表示发送bgp更新消息的顺序,第二列表示bgp更新消息中的srv6 sid,第三列表示bgp更新消息中的前缀。下面以bgp更新消息1为例具体说明,bgp更新消息1的报文编号是1,在bgp更新消息中的srv6 sid为100::1,前缀为prefix1。
161.在本技术实施例中采用ipv6地址的简化表示形式,ipv6地址大小为128比特,通常
表示为x:x:x:x:x:x:x:x,其中x是1组16比特的十六进制值,例如:100:0:0:0:0:0:0:1。在一个ipv6地址中出现多个x为0是比较常见的,所以对ipv6地址采用简化的表示形式,使用::来压缩一组或多组等于0的x,100:0:0:0:0:0:0:1的简化表示为100::1。
162.bgp更新消息编号srv6 sid前缀1100::1prefix12100::2prefix23100::3prefix34100::4prefix4
163.表1
164.从表1可以看出,对于evpn vpws,每一个bgp更新消息只能通告一个前缀,4个不同的前缀需要分别通过4个不同的bgp更新消息发送,导致路由通告的效率低,路由收敛速度慢。
165.2、evpn vpls
166.对于evpn vpls,pe基于每实例进行srv6 sid分配,那么,对应于同一个evpn vpls实例的多个前缀可以共享同一个srv6 sid,这些前缀可以通过一个bgp更新消息通告,但是,不同的evpn vpls实例对应的srv6 sid不同,对应的前缀只能分别通过多个bgp更新消息通告。
167.下面结合图1b所示的场景进行介绍,在pe1上,包括2个evpn vpls实例,分别对应vpn1和vpn 2,假设每个ce对应1个前缀,那么每个vpn对应2个前缀,每个vpn对应的srv6 sid相同,pe1为通告4个前缀和2个srv6 sid,需要发送2个bgp更新消息,如表2所示。在表2中,第一列表示pe1发送的bgp更新消息的编号,此编号的含义参考表1的相关描述,第二列表示bgp更新消息中的srv6 sid,第三列表示bgp更新消息中的第一个前缀,第四列表示bgp更新消息中的第二个前缀。下面以bgp更新消息1为例具体说明,bgp更新消息1的报文编号是1,在bgp更新消息中的srv6 sid为100::1,前缀为prefix1和prefix2。
168.bgp更新消息编号sid第一个前缀第二个前缀1100::1prefix1prefix22100::2prefix3prefix4
169.表2
170.从表2可以看出,对于evpn vpls,每一个bgp更新消息可以通告属于同一个实例的2个前缀,属于不同实例的前缀需要分别通过不同的bgp更新消息发送,即使所述evpn vpls实例对应的前缀较少(例如在表2中,一个实例对应2个前缀),也不能和其他evpn vpls实例的前缀在一个bgp更新消息中发送,导致路由通告的效率低,网络的路由收敛速度慢。
171.3、l3vpn
172.对于l3vpn,pe包括两种srv6 sid分配的方式,第一种方式是pe基于每实例进行srv6 sid分配,第二种方式是pe基于每下一跳进行srv6 sid分配,即,pe为相同下一跳的多个前缀分配相同的srv6 sid,对于这两种分配方式,pe通告的bgp更新消息均可以参考evpn vpws或者evpn vpls中的相关描述,此处不再赘述。
173.综上,对于evpn vpws、evpn vpws或者l3vpn来说,由于同一个bgp更新消息只可以通告相同的srv6 sid的前缀,导致srv6 sid不同的前缀需要分别通过不同的bgp更新消息
通告,路由通告的效率低,路由收敛速度慢。
174.为解决上述技术问题,草案draft-ietf-bess-srv6-services提出了一种路由通告的方法,发送端pe将分别对应于多个不同前缀的多个srv6 sid的公共部分提取出来,通过bgp更新消息的公共字段承载,然后将每个srv6 sid的可变部分通过对应前缀的标签字段承载。接收端pe收到bgp更新消息之后,通过公共字段中的所述公共部分和每个前缀的标签字段中的可变部分,可以分别获得多个srv6 sid中的每个srv6sid。
175.然而,在pe为每个前缀分配2个及2个以上srv6 sid的场景中,草案提供的路由通告方法不再适用。例如,在pe为每个前缀分配2个srv6 sid的场景中,pe使用草案提供的路由通告方法进行路由通告时,期望每个前缀的标签字段承载其对应的2个srv6 sid的可变部分,但是由于一个srv6 sid的可变部分长度通常为16比特,2个srv6 sid的可变部分长度为32比特,超过了前缀中标签字段的长度(通常是24比特),所以草案提供的路由通告方法无法适用于pe为每个前缀分配2个srv6 sid的场景。基于类似的理由,草案提供的路由通告方法同样无法适用于pe为每个前缀分配2个以上srv6 sid的场景。
176.参见图2,本技术实施例提出了一种路由通告的方法100,用于提升路由通告的效率,提高路由收敛速度。所述方法100可以应用于图1a-图1b所示的场景中,下面以图1a为例介绍方法100,其中,网络设备1相当于图1a所示的pe1或rr,网络设备2相当于图1a所示的pe2或pe3,所述方法100包括s101-s105。
177.s101、网络设备1获得路由通告报文,所述路由通告报文包括公共字段和可变字段,所述公共字段用于承载n个srv6 sid的公共部分,所述可变字段用于承载所述n个srv6 sid中的第一srv6 sid的可变部分,所述n个srv6 sid对应于第一前缀,所述n为大于等于2的正整数。
178.在本技术实施例中,当网络设备基于每前缀分配srv6 sid时,所述n个srv6 sid对应于第一前缀;当网络设备基于每实例分配srv6 sid时,所述n个srv6 sid还对应于第二前缀,所述第一前缀和所述第二前缀对应于同一个vpn实例;当网络设备基于每下一跳分配srv6 sid时,所述n个srv6 sid还对应于第二前缀,所述第一前缀和所述第二前缀对应的下一跳相同。
179.在一种具体的实现方式中,网络设备1包括以下两种方式获得路由通告报文。
180.方式1:网络设备1生成路由通告报文。
181.方式2:网络设备1接收其他设备发送的路由通告报文。
182.作为方式1生成路由通告报文的一种具体的实现方式,网络设备1包括以下两种方式生成路由通告报文。
183.方式1:网络设备1生成所述路由通告报文,网络设备1获得对应于第一前缀的n个srv6 sid的公共部分,将该公共部分携带在路由通告报文中的公共字段中。网络设备1将n个srv6 sid的可变部分,分别携带在路由通告报文中的n个可变字段中,其中,网络设备1将所述n个srv6 sid中的第一srv6 sid的可变部分携带在第一可变字段中,网络设备1将n-1个srv6 sid的可变部分分别携带在n-1个可变字段中。
184.在本技术实施例中,n-1个srv6 sid是所述n个srv6 sid中除所述第一srv6sid以外的srv6 sid。
185.在本技术实施例中,所述n个srv6 sid的公共部分包括srv6 sid的位置部分,所述
n个srv6 sid的可变部分中每个可变部分包括srv6 sid的功能部分和/或srv6sid的参数部分。
186.在一种具体的实现方式中,所述路由通告报文还包括偏移值和长度值,所述长度值指示所述n个srv6 sid的可变部分中的每个可变部分的长度,所述偏移值指示所述n个srv6 sid的可变部分中的每个可变部分在srv6 sid中的偏移位置。应理解,所述路由通告报文还可能不包括偏移值和长度值,网络设备1和网络设备2协商或配置了默认偏移值和默认长度值。
187.方式2:网络设备1生成所述路由通告报文,网络设备1获得对应于第一前缀的n个srv6 sid的公共部分,将该公共部分携带在路由通告报文中的公共字段中,网络设备1将n个srv6 sid中第一srv6 sid的可变部分携带在路由通告报文中的可变字段中,网络设备1将指示所述n个srv6 sid的数目的指示信息,例如:所述n或者n-1,携带在指示信息对应的字段中。
188.在方式2的一种具体的实现方式中,所述n个srv6 sid包括特定关系,包括以下三种情况:
189.所述n个srv6 sid是等差数列,并且所述等差数列的公差为1或-1时,在所述路由通告报文中可以不包括等差数列的公差,或者包括等差数列的公差,公差等于1或-1。当所述公差为1时,所述第一srv6 sid是所述n个srv6 sid中数值最小的srv6 sid,当所述公差为-1时,所述第一srv6 sid是所述n个srv6 sid中数值最大的srv6 sid。
190.所述n个srv6 sid是等差数列,并且所述等差数列的公差不等于1或-1时,在所述路由通告报文中还包括等差数列的公差,所述公差等于所述n个srv6 sid中第二srv6 sid之后的每一个srv6 sid与前一个srv6 sid的差,所述第二srv6 sid是所述n个srv6 sid顺序排列时,与所述第一srv6 sid相邻的srv6 sid。
191.所述n个srv6 sid是非等差数列,在所述路由通告报文中还包括n个srv6 sid中第二srv6 sid之后的每一个srv6 sid与前一个srv6 sid的差,所述第二srv6 sid是所述n个srv6 sid顺序或者随机排列时,与所述第一srv6 sid相邻的srv6 sid。
192.在一种具体的实现方式中,所述路由通告报文还包括偏移值和长度值,所述长度值指示所述第一srv6 sid的可变部分的长度,所述偏移值指示所述第一srv6 sid的可变部分在所述第一srv6 sid中的偏移位置。应理解,所述路由通告报文还可能不包括偏移值和长度值,网络设备1和网络设备2协商或配置了默认偏移值和默认长度值。
193.在本技术实施例中,所述路由通告报文用于通告以下路由的至少一个:evpn类型1路由、evpn类型2路由、evpn类型5路由和三层虚拟专用网路由。
194.在本技术实施例中,所述n为大于等于2的正整数,当n等于2时,所述n个srv6 sid中的第一srv6 sid用于远端pe转发流量,所述n个srv6 sid中的第二srv6 sid用于同一侧双归的pe和ce连接故障时,通过逃生(bypass)链路转发流量。下面以图1a所示的场景为例进行说明,在图1a中,每个pe,例如pe1,会为每个前缀分配2个srv6 sid,然后通过bgp更新消息将2个srv6 sid通过rr发送给pe2和pe3,远端的pe3使用第一srv6 sid向pe1发送流量,同一侧双归连接的pe2与ce的连接故障时,使用第二srv6 sid转发流量。例如,pe3以负载分担的方式向pe1和pe2发送流量,假设pe2与ce3的连接故障,那么pe2上通过pe1分配的第二srv6 sid,将流量通过pe2-pe1之间的bypass链路转发到pe1,再通过pe1向ce3转发流量,这
样,在pe2与ce3连接故障时,也能保障流量通过pe2-pe1-ce3到达客户设备,避免流量丢失。进一步,这种场景下,pe1通过识别包括第二srv6 sid的流量,使该流量不从bypass链路再次转发到pe2上,防止了流量的环路。当n等于3时,3个srv6 sid均可以用于远端pe转发流量,远端的pe发送流量时,可以使用第一srv6 sid、第二srv6 sid或第三srv6 sid以实现负载分担或者业务隔离。应理解,当n大于3时,所述n个srv6 sid同样均可以用于远端pe转发流量以实现负载分担或者业务隔离。
195.s102、网络设备1向网络设备2发送路由通告报文。
196.网络设备1可以直接向网络设备2发送路由通告报文,也可以通过其他网络设备,例如rr,向网络设备2发送路由通告报文。
197.s103、网络设备2接收路由通告报文。
198.s104、网络设备2根据公共部分和第一srv6 sid的可变部分获得n个srv6 sid。
199.在一个具体的实现方式中,所述网络设备2包括以下两种方式获得所述n个srv6sid。
200.方式1:当网络设备1以方式1生成路由通告报文时,路由通告报文中的公共字段用于承载所述n个srv6 sid的公共部分,路由通告报文中的n个可变字段分别用于承载所述n个srv6 sid的可变部分,其中第一个可变字段用于承载所述n个srv6sid中的第一srv6 sid的可变部分,n-1个可变字段分别用于承载n-1个srv6 sid的可变部分。由于所述n个srv6 sid中的每一个srv6 sid都包括所述公共部分和所述srv6 sid的可变部分,网络设备2根据所述公共部分、所述第一srv6 sid的可变部分和所述n-1个srv6 sid的可变部分获得所述n个srv6 sid。其中,网络设备2根据所述公共部分、所述第一srv6 sid的可变部分获得所述第一srv6 sid。网络设备2根据所述公共部分和所述n-1个srv6 sid的可变部分分别获得所述n-1个srv6sid。
201.在一种具体的实现方式中,当所述路由通告报文包括偏移值和长度值时,网络设备2根据所述长度值指示的所述n个srv6 sid的可变部分中的每个可变部分的长度分别从n个可变字段获取n个srv6 sid的可变部分,网络设备2根据所述偏移值指示的所述n个srv6 sid的可变部分中的每个可变部分在srv6 sid中的偏移位置,分别将所述公共部分和所述n个srv6 sid可变部分组合获得所述n个srv6 sid。例如,所述路由通告报文的偏移值为112,长度值为16(单位:比特)。网络设备2分别从n个可变字段获取长度为16比特的n个srv6 sid的可变部分,网络设备2根据偏移值为112,确定可变部分的偏移位置为从左到右计数的第112-127位,然后可以确定所述公共部分的偏移位置为从左到右计数的第0-111位,从而获得所述n个srv6 sid。应理解,所述路由通告报文还可能不包括偏移值和长度值,网络设备1和网络设备2协商或配置了默认偏移值和默认长度值。网络设备2根据默认偏移值和默认长度值分别将所述公共部分和所述n个srv6 sid可变部分组合获得所述n个srv6 sid。
202.方式2:当网络设备1以方式2生成路由通告报文时,路由通告报文中的公共字段用于承载所述n个srv6 sid的公共部分,路由通告报文中的可变字段用于承载所述第一srv6 sid的可变部分,路由通告报文中还包括指示信息,指示所述n个srv6sid的数目。网络设备2根据所述公共部分、所述第一srv6 sid的可变部分和所述指示信息获得所述n个srv6 sid。其中,网络设备2根据所述公共部分和第一srv6 sid的可变部分获得所述第一srv6 sid。网络设备2根据所述指示信息获得在所述n个srv6sid中,除第一srv6 sid之外,还有n-1个
srv6 sid。网络设备2根据所述第一srv6sid和所述指示信息获得所述n-1个srv6 sid。
203.在方式2的一种具体的实现方式中,所述n个srv6 sid具有特定关系,包括以下三种情况。
204.当所述路由通告报文中不包括公差时,所述n个srv6 sid是等差数列,并且公差等于1或者-1,此时所述第一srv6 sid可以是所述等差数列中的数值最小值或数值最大值,当所述第一srv6 sid是所述等差数列中的数值最小值时,网络设备2根据所述第一srv6 sid依次加1获得所述n-1个srv6 sid,当所述第一srv6 sid是所述等差数列中的数值最大值时,网络设备2根据所述第一srv6 sid依次加-1获得所述n-1个srv6 sid。
205.当所述路由通告报文中包括1个公差,则表示所述n个srv6 sid是公差为任意整数的等差数列,那么所述n个srv6 sid中第二srv6 sid之后的每一个srv6 sid与前一个srv6 sid的差都等于所述公差,所述第二srv6 sid是所述n个srv6 sid顺序排列时,与所述第一srv6 sid相邻的srv6 sid,网络设备2根据所述第一srv6sid依次加公差获得所述n-1个srv6 sid。
206.当所述路由通告报文中包括n个srv6 sid中第二srv6 sid之后的每一个srv6sid与前一个srv6 sid的差,所述第二srv6 sid是所述n个srv6 sid顺序或者随机排列时,与所述第一srv6 sid相邻的srv6 sid,则表示所述n个srv6 sid是非等差数列,此时,网络设备2根据所述第一srv6 sid,依次加n个srv6 sid中第二srv6 sid之后的所述每一个srv6 sid与前一个srv6 sid的差获得所述n-1个srv6sid。
207.在一种具体的实现方式中,当所述路由通告报文包括偏移值和长度值时,网络设备2根据所述长度值指示的所述第一srv6 sid的可变部分的长度从可变字段获取第一srv6 sid的可变部分,网络设备2根据所述偏移值指示的所述第一srv6 sid的可变部分在所述第一srv6 sid中的偏移位置,将所述公共部分和所述第一srv6 sid可变部分组合获得所述第一srv6 sid,应理解,所述路由通告报文还可能不包括偏移值和长度值,网络设备1和网络设备2协商或配置了默认偏移值和默认长度值。所述网络设备2按照所述偏移位置将将所述公共部分和所述第一srv6 sid可变部分组合获得所述第一srv6 sid的具体实现方式可以参考方式1的相关描述,此处不再赘述。
208.s105、网络设备2生成第一路由,所述第一路由包括所述第一前缀和所述n个srv6 sid。
209.网络设备2生成第一路由,所述第一路由是使流量到达所述第一前缀的路由,所述第一路由可以是一条路由表项,所述一条路由表项包括所述第一前缀和所述n个srv6 sid,也可以是多条路由表项,所述多条路由表项包括所述第一前缀和所述n个srv6 sid,本技术实施例并不对路由表项的数量进行限定。
210.在一种具体的实现方式中,所述n个srv6 sid还对应于第二前缀,网络设备2生成第二路由,所述第二路由是使流量到达所述第二前缀的路由,所述第二路由包括所述第二前缀和所述n个srv6 sid,所述第二路由可以参考所述第一路由的描述,此处不再赘述。
211.在如上所述的方法100所描述的路由通告的方法中,由于所述n个srv6 sid有相同的公共部分,所述路由通告报文通过公共字段承载所述公共部分,实现了通过一个路由通告报文通告n个srv6的公共部分,从而,本技术实施例提供的方案在pe为每个前缀分配n(n是大于等于2的正整数)个srv6 sid的场景中,不需要将n个srv6 sid的公共部分分别承载
在路由通告报文的不同字段中,从而减少了路由通告报文的长度,降低了路由通告报文占用的带宽,提升了路由通告的效率。
212.以上描述了本技术实施例提供的一种路由通告的方法100,下面结合图3,对本技术实施例提供的一种路由通告报文的报文格式进行描述。在本技术实施例中,所述路由通告报文包括bgp更新消息,下面结合bgp更新消息的格式,介绍bgp更新消息中与本技术实施例相关的字段,在图3示出的bgp更新消息中,与本技术实施例相关的字段包括bgp前缀段标识(bgp prefix sid)属性(也称为前缀属性或前缀sid属性)和多协议可达网络层可达信息(multiprotocol reachable network layer reachability information,mp_reach_nlri)属性,与本技术实施例无关的字段统一用其他表示,不再一一列出。其中,所述mp_reach_nlri属性包括bgp多协议扩展(multiprotocol extensions for bgp,mp-bgp)nlri,用于承载前缀以及路由;所述bgp前缀sid属性包括srv6服务(service)类型长度值(type length value,tlv),所述srv6 service tlv包括2个tlv,分别用于实现2层和3层的srv6 sid通告。
213.下面首先介绍所述mp-bgp nlri,所述mp-bgp nlri包括前缀和路由属性两部分,对于不同路由类型来说,前缀和路由属性是不同的,例如,对于以太网自动发现路由(也称为evpn类型1路由)的nlri,包括路由标识(route distinguisher,rd),以太网段标识(ethernet segment identifier,esi),以太网标签(ethernet tag)标识,多协议标签交换(mpls)标签。其中,esi和ethernet tag标识是该nlri的前缀,mpls标签是该nlri的路由属性。在nlri的路由属性中包括标签字段,例如mpls标签字段,用于承载本技术实施例中srv6 sid的可变部分。对于evpn类型2路由中前缀和路由属性的定义可以参考rfc7432中的说明,对于evpn类型5路由中前缀和路由属性的定义可以参考rfc9136中的说明,对于三层虚拟专用网路由中前缀和路由属性的定义可以参考rfc4364中的说明,此处不再赘述。
214.接下来,介绍所述srv6 service tlv,在所述srv6 service tlv中,包括类型,长度,预留和srv6 service子类型长度值(sub-tlv),所述srv6 service sub-tlv用于携带srv6服务相关的信息。在srv6 service sub-tlv中,包括类型、长度和值。
215.当所述srv6 service sub-tlv的类型等于1时,所述srv6 service sub-tlv表示srv6 sid信息(information)sub-tlv,srv6 sid information sub-tlv的格式如图4所示。所述srv6 sid information sub-tlv包括类型、长度、预留1、srv6 sid值、srv6 sid标志位、srv6端点行为、预留2、srv6 service数据(data)子子类型长度值(sub-sub-tlv)。其中,类型字段用于承载该sub-tlv的类型,长度字段用于承载该sub-tlv字段的长度,srv6 sid值字段用于承载n个srv6 sid的公共部分,srv6 sid标志位目前还没有定义,在发送bgp更新消息时应填充0,在接收bgp更新消息时忽略,srv6端点行为字段用于承载与srv6 sid相关的端点行为编码值,srv6 service data sub-sub-tlv用于通告srv6 sid的属性。
216.当所述srv6 service data sub-sub-tlv类型等于1时,所述srv6 service data sub-sub-tlv表示srv6 sid结构(structure)sub-sub-tlv,所述srv6 sid structure sub-sub-tlv用于通告srv6 sid各个部分(包括所述公共部分和可变部分)的长度。所述srv6 sid structure sub-sub-tlv包括类型、长度、位置块长度(locator block length)、位置节点长度(locator node length)、功能长度(function length)、参数长度(argument length)、转置长度(transpositon length)、转置偏移量(transposition offset)。其中,
类型等于1,长度字段用于承载该tlv值的总长度,位置块长度字段用于承载srv6 sid位置块的长度,位置节点长度字段用于承载srv6 sid位置节点的长度,参数长度字段用于承载srv6 sid中参数字段的长度,转置长度字段用于承载srv6 sid的可变部分的长度,转置偏移量字段用于承载srv6 sid的可变部分的在srv6 sid中的偏移位置。
217.另外,本技术实施例定义了附加(attach)sub-sub-tlv,所述attach sub-sub-tlv用于承载srv6 sid的数目信息、srv6 sid的标记和行为。所述attach sub-sub-tlv包括类型、长度、附加计数(attach count)、srv6 sid标志位、srv6端点行为。其中,类型字段用于承载该tlv的类型,长度字段用于承载该tlv值的总长度,附加计数字段用于承载指示srv6 sid数目的指示信息,所述attach sub-sub-tlv还包括n个srv6 sid标志位字段和n个srv6端点行为字段,n个srv6 sid标志位字段目前没有定义,在发送bgp更新消息时应填充0,在接收bgp更新消息时忽略,n个srv6端点行为字段中每个srv6端点行为字段分别用于承载与srv6 sid相关的端点行为编码值。
218.以上描述了本技术实施例提供的一种路由通告的方法100以及方法100中路由通告报文的具体格式,下面结合图5,对本技术实施例提供的一种路由通告的方法200进行描述。所述方法200可以应用到图1a-图1b所示的场景中,当方法200应用于图1a所示的场景中时,方法200中的第一网络设备对应图1a中的pe2或者pe3,方法200中的第二网络设备对应图1a中的pe1或rr。所述方法200具体可以用于实现所述方法100,当方法200用于实现方法100时,第一网络设备相当于方法100中的网络设备2,第二网络设备相当于方法100中的网络设备1。所述方法200包括s201-s203。
219.s201、第一网络设备接收来自第二网络设备的路由通告报文,所述路由通告报文包括公共字段和可变字段,所述公共字段用于承载n个srv6 sid的公共部分,所述可变字段用于承载所述n个srv6 sid中的第一srv6 sid的可变部分,所述n个srv6sid对应于第一前缀,所述n为大于等于2的正整数。
220.所述路由通告报文包括以下两种格式。
221.格式1:所述路由通告报文包括公共字段和可变字段,所述公共字段用于承载n个srv6 sid的公共部分,所述可变字段用于承载所述n个srv6 sid中的第一srv6sid的可变部分,所述n个srv6 sid对应于第一前缀,所述n为大于等于2的正整数。所述路由通告报文还包括n-1个可变字段,所述n-1个可变字段分别用于承载n-1个srv6 sid的可变部分。
222.所述路由通告报文还包括偏移值和长度值,所述长度值指示所述n个srv6 sid的可变部分中的每个可变部分的长度,所述偏移值指示所述n个srv6 sid的可变部分中的每个可变部分在srv6 sid中的偏移位置。应理解,所述路由通告报文还可能不包括偏移值和长度值,第一网络设备和第二网络设备协商或配置了默认偏移值和默认长度值。
223.在一种具体的实现方式中,所述路由通告报文包括bgp更新消息或bgp链路状态协议通告消息,当所述路由通告报文是bgp更新消息时,所述公共字段为如图3-图4所示的所述bgp更新消息的前缀sid属性中的srv6 sid information sub-tlv中的sid字段,应理解,所述sid字段具体可以是srv6 sid值字段,也可以是其他字段,本技术实施例并不对此进行限制,应理解,所述公共字段也可以在前缀sid属性的其他字段中,本技术实施例并不对此进行限制。所述路由通告报文包括第一nlri字段,所述第一nlri字段包括所述n-1个可变字段,所述路由通告报文包括第二nlri字段,所述第二nlri字段包括所述可变字段,所述第一
nlri字段和第二nlri字段为如图3所示的所述bgp更新消息的mp-bgp nlri字段,应理解,所述第一nlri字段和所述第二nlri字段可以是相同的nlri字段,也可以是不同的nlri字段,本技术实施例并不对此进行限定。可变字段可以是mpls标签字段,也可以是其他字段,本技术实施例并不对此进行限定。所述路由通告报文还包括如图4所示的srv6sid structure sub-sub-tlv,所述srv6 sid structure sub-sub-tlv中的转置长度字段用于承载所述长度值,所述srv6 sid structure sub-sub-tlv中的转置偏移量字段用于承载所述偏移值,应理解,所述路由通告报文还可能不包括偏移值和长度值,此时,所述路由通告报文可以包括或者不包括所述srv6 sid structure sub-subtlv,本技术实施例并不对此进行限制。所述路由通告报文还包括第二附加类型长度值字段,所述第二附加类型长度值字段为图4所示的attach sub-sub-tlv字段,所述第二附加类型长度值字段包括n个行为字段,所述n个行为字段分别用于承载与所述n个srv6 sid关联的srv6端点行为编码值。应理解,所述路由通告报文还可能不包括所述第二附加类型长度值字段,此时与所述n个srv6 sid关联的srv6端点行为编码值可以是默认配置,本技术实施例并不对此进行限制。当所述路由通告报文是bgp链路状态协议通告消息时,与本技术实施例相关的信息携带在bgp链路状态协议通告消息相对应的字段中,本技术实施例并不对bgp链路状态协议通告消息携带与本技术实施例相关的信息的方式进行限定。
224.格式2:所述路由通告报文包括公共字段和可变字段,所述公共字段用于承载n个srv6 sid的公共部分,所述可变字段用于承载所述n个srv6 sid中的第一srv6sid的可变部分,所述n个srv6 sid对应于第一前缀,所述n为大于等于2的正整数。所述路由通告报文还包括指示信息,所述指示信息用于指示所述n个srv6 sid的数目。
225.在一种具体的实现方式中,所述n个srv6 sid具有特定的关系,包括以下三种情况:
226.所述n个srv6 sid是等差数列,所述路由通告报文不包括所述等差数列的公差,此时所述等差数列的公差为1或者-1。
227.所述n个srv6 sid是等差数列,所述路由通告报文还包括所述等差数列的公差,所述n个srv6 sid中第二srv6 sid之后的每一个srv6 sid与前一个srv6 sid的差都等于所述公差,所述公差为任意整数。
228.所述n个srv6 sid是非等差数列,此时,在所述路由通告报文中还包括n个srv6sid中第二srv6 sid之后的每一个srv6 sid与前一个srv6 sid的差。
229.所述路由通告报文还包括偏移值和长度值,所述长度值指示所述第一srv6 sid的可变部分的长度,所述偏移值指示所述第一srv6 sid的可变部分在所述第一srv6sid中的偏移位置。应理解,所述路由通告报文还可能不包括偏移值和长度值,第一网络设备和第二网络设备协商或配置了默认偏移值和默认长度值。
230.在一种具体的实现方式中,所述路由通告报文包括bgp更新消息或bgp链路状态协议通告消息,当所述路由通告报文是bgp更新消息时,所述公共字段为如图3-图4所示的所述bgp更新消息的前缀sid属性中的srv6 sid information sub-tlv中的sid字段,应理解,所述sid字段具体可以是srv6 sid值字段,也可以是其他字段,本技术实施例并不对此进行限制,应理解,所述公共字段也可以在前缀sid属性的其他字段中,本技术实施例并不对此进行限制。所述路由通告报文包括第二nlri字段,所述第二nlri字段包括所述可变字段,所
述第二nlri字段为如图3所示的所述bgp更新消息的mp-bgp nlri字段。可变字段可以是mpls标签字段,也可以是其他字段,本技术实施例并不对此进行限定。所述路由通告报文还包括第一附加类型长度值字段,所述第一附加类型长度值字段为图4所示的attach sub-sub-tlv字段,所述第一附加类型长度值字段用于承载所述指示信息。所述路由通告报文还包括第二附加类型长度值字段,所述第二附加类型长度值字段为图4所示的attach sub-sub-tlv字段,所述第二附加类型长度值字段包括n个行为字段,所述n个行为字段分别用于承载与所述n个srv6 sid关联的srv6端点行为编码值。应理解,第一附加类型长度值字段和第二附加类型长度值字段可以是相同的字段,也可以是不同的字段,本技术实施例并不对此进行限定。应理解,所述路由通告报文还可能不包括所述n个行为字段,此时与所述n个srv6 sid关联的srv6端点行为编码值可以是默认配置,本技术实施例并不对此进行限制。所述路由通告报文包括还包括如图4所示的srv6sid structure sub-subtlv,所述srv6 sid structure sub-subtlv中的转置长度字段用于承载所述长度值,所述srv6 sid structure sub-subtlv中的转置偏移量字段用于承载所述偏移值,应理解,所述路由通告报文还可能不包括偏移值和长度值,此时,所述路由通告报文可以包括或者不包括所述srv6 sid structure sub-subtlv,本技术实施例并不对此进行限制。当所述路由通告报文是bgp链路状态协议通告消息时,与本技术实施例相关的信息携带在bgp链路状态协议通告消息相对应的字段中,本技术实施例并不对bgp链路状态协议通告消息携带与本技术实施例相关的信息的方式进行限定。
231.s202、所述第一网络设备根据所述公共部分和所述第一srv6 sid的可变部分获得所述n个srv6 sid。
232.当所述路由通告报文为s201的格式1时,所述第一网络设备根据所述公共部分、所述第一srv6 sid的可变部分和所述n-1个srv6 sid的可变部分获得所述n个srv6sid。此步骤的具体实现方式可以参考s104的方式1的相关描述,此处不再赘述。
233.当所述路由通告报文为s201的格式2时,所述第一网络设备根据所述公共部分、所述第一srv6 sid的可变部分和所述指示信息获得所述n个srv6 sid。此步骤的具体实现方式可以参考s104的方式2的相关描述,此处不再赘述。
234.s203、所述第一网络设备生成第一路由,所述第一路由包括所述第一前缀和所述n个srv6 sid。
235.在一种具体的实现方式中,所述n个srv6 sid还对应于第二前缀,所述第一网络设备生成第二路由,所述第二路由包括所述第二前缀和所述n个srv6 sid。
236.s203的具体实现方式可以参考s105的相关描述,此处不再赘述。
237.下面结合图6,对本技术实施例提供的一种路由通告的方法300进行描述。所述方法300可以应用到图1a-图1b所示的场景中,当方法300应用于图1a所示的场景中时,方法300中的第一网络设备对应图1a中的pe1或rr,方法300中的第二网络设备对应图1a中的pe2或者pe3。所述方法300具体可以用于实现所述方法100,当方法300用于实现方法100时,第一网络设备相当于方法100中的网络设备1,第二网络设备相当于方法100中的网络设备2。所述方法300包括s301-s302。
238.s301、第一网络设备获得路由通告报文,所述路由通告报文包括公共字段和可变字段,所述公共字段用于承载n个srv6 sid的公共部分,所述可变字段用于承载所述n个
srv6 sid中的第一srv6 sid的可变部分,所述n个srv6 sid对应于第一前缀,所述n为大于等于2的正整数。
239.作为一种具体的实现方式,第一网络设备包括以下两种方式获得路由通告报文。
240.方式1:第一网络设备生成路由通告报文。
241.方式2:第一网络设备接收其他设备发送的路由通告报文。
242.作为方式1的一种具体的实现方式,第一网络设备可以生成以下两种格式的路由通告报文。
243.格式1:所述路由通告报文包括公共字段和可变字段,所述公共字段用于承载n个srv6 sid的公共部分,所述可变字段用于承载所述n个srv6 sid中的第一srv6sid的可变部分,所述n个srv6 sid对应于第一前缀,所述n为大于等于2的正整数;所述路由通告报文还包括n-1个可变字段,所述n-1个可变字段分别用于承载n-1个srv6 sid的可变部分,所述n-1个srv6 sid为所述n个srv6 sid中除所述第一srv6 sid以外的srv6 sid。
244.此步骤具体实现方式可以参考s101生成路由通告报文方式1的相关描述,此处不再赘述。
245.此步骤中的所述路由通告报文的格式可以参考s201中格式1的相关描述,此处不再赘述。
246.格式2:所述路由通告报文包括公共字段和可变字段,所述公共字段用于承载n个srv6 sid的公共部分,所述可变字段用于承载所述n个srv6 sid中的第一srv6sid的可变部分,所述n个srv6 sid对应于第一前缀,所述n为大于等于2的正整数;所述路由通告报文还包括指示信息,所述指示信息指示所述n个srv6 sid的数目。
247.此步骤的具体实现方式可以参考s101生成路由通告报文方式2的相关描述,此处不再赘述。
248.此步骤中的所述路由通告报文的格式可以参考s201中格式2的相关描述,此处不再赘述。
249.s302、所述第一网络设备向第二网络设备发送所述路由通告报文。
250.s302的具体实现方式可以参考s102的相关描述,此处不再赘述。
251.此外,本技术实施例还提供了一种网络设备700,参见图7所示。图7是本技术实施例的网络设备700的结构示意图。图7所示的网络设备700包括收发单元701、处理单元702。该网络设备700可以用于执行以上实施例中的方法100、方法200或方法300。当网络设备700用于执行以上实施例中的方法200时,网络设备700相当于方法200中的第一网络设备。网络设备700可以应用于图1a-图1b所示的应用场景中,例如可以是图1a所示场景中的pe2设备。所述收发单元701,用于执行方法200中由第一网络设备执行的收发操作。所述处理单元702,用于执行方法200中由第一网络设备执行的除收发操作之外的操作。例如,
252.所述收发单元701,用于接收来自第二网络设备的路由通告报文,所述路由通告报文包括公共字段和可变字段,所述公共字段用于承载n个srv6 sid的公共部分,所述可变字段用于承载所述n个srv6 sid中的第一srv6 sid的可变部分,所述n个srv6 sid对应于第一前缀,所述n为大于等于2的正整数。
253.所述处理单元702,用于根据所述公共部分和所述第一srv6 sid的可变部分获得所述n个srv6 sid。
254.所述处理单元702,还用于生成第一路由,所述第一路由包括所述第一前缀和所述n个srv6 sid。
255.当网络设备700用于执行以上实施例中的方法300时,网络设备700相当于方法300中的第一网络设备。网络设备700可以应用于图1a-图1b所示的应用场景中,例如可以是图1a所示场景中的pe1设备。所述收发单元701,用于执行方法300中由第一网络设备执行的收发操作。所述处理单元702,用于执行方法300中由第一网络设备执行的除收发操作之外的操作。例如,
256.所述处理单元702,用于获得路由通告报文,所述路由通告报文包括公共字段和可变字段,所述公共字段用于承载n个srv6 sid的公共部分,所述可变字段用于承载所述n个srv6 sid中的第一srv6 sid的可变部分,所述n个srv6 sid对应于第一前缀,所述n为大于等于2的正整数。
257.所述收发单元701,用于向第二网络设备发送所述路由通告报文。
258.需要说明的是,本技术实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。本技术实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。例如,上述实施例中,收发单元701和处理单元702可以是同一个单元,也可以是不同的单元。上述集成的单元既可以采用硬件的形式实现,例如芯片,也可以采用软件功能单元的形式实现。
259.此外,本技术实施例还提供了一种网络设备800,参见图8所示,图8是本技术实施例的网络设备800的结构示意图。该网络设备800包括通信接口801和与通信接口801连接的处理器802。通信接口例如为收发器一类的装置。该网络设备800可以用于执行以上实施例中的方法100、方法200或方法300。具体来说,该网络设备800可以作为网络设备1执行方法100中由网络设备1执行的操作,网络设备800可以作为网络设备2执行方法100中由网络设备2执行的操作。其中,通信接口801用于执行方法100中由所述网络设备1或网络设备2所执行的收发操作。处理器802用于执行方法100中由所述网络设备1或网络设备2所执行的收发操作以外的操作。网络设备800可以作为第一网络设备执行方法200中由第一网络设备执行的操作,网络设备800可以作为第一网络设备执行方法300中由第一网络设备执行的操作。其中,通信接口801用于执行方法200或方法300中由所述第一网络设备所执行的收发操作。处理器802用于执行方法200或方法300中由所述第一网络设备所执行的收发操作以外的操作。例如,当网络设备800作为第一网络设备执行方法200时,所述通信接口801,用于接收来自第二网络设备的路由通告报文,所述路由通告报文包括公共字段和可变字段,所述公共字段用于承载n个srv6 sid的公共部分,所述可变字段用于承载所述n个srv6 sid中的第一srv6 sid的可变部分,所述n个srv6 sid对应于第一前缀,所述n为大于等于2的正整数。所述处理器802,用于根据所述公共部分和所述第一srv6 sid的可变部分获得所述n个srv6 sid。所述处理器802,还用于生成第一路由,所述第一路由包括所述第一前缀和所述n个srv6 sid。
260.此外,本技术实施例还提供了一种网络设备900,参见图9所示,图9为本技术实施例提供的一种网络设备的结构示意图。如图9所示,网络设备900可以包括处理器910,与所述处理器910耦合连接的存储器920,收发器930。收发器930例如可以是通信接口,光模块
等。处理器910可以是中央处理器(central processing unit,cpu),网络处理器(network processor,np)或者cpu和np的组合。处理器还可以是专用集成电路(application-specific integrated circuit,asic),可编程逻辑器件(programmable logic device,pld)或其组合。上述pld可以是复杂可编程逻辑器件(complex programmable logic device,cpld),现场可编程逻辑门阵列(field-programmable gate array,fpga),通用阵列逻辑(generic array logic,gal)或其任意组合。处理器910可以是指一个处理器,也可以包括多个处理器。存储器920可以包括易失性存储器(volatile memory),例如随机存取存储器(random-access memory,ram);存储器也可以包括非易失性存储器(non-volatile memory),例如只读存储器(read-only memory,rom),快闪存储器(flash memory),硬盘(hard disk drive,hdd)或固态硬盘(solid-state drive,ssd);存储器920还可以包括上述种类的存储器的组合。存储器920可以是指一个存储器,也可以包括多个存储器。在一个实施方式中,存储器920中存储有计算机可读指令,所述计算机可读指令包括多个软件模块,例如发送模块921,处理模块922和接收模块923。处理器910执行各个软件模块后可以按照各个软件模块的指示进行相应的操作。在本实施例中,一个软件模块所执行的操作实际上是指处理器910根据所述软件模块的指示而执行的操作。可选地,处理器910也可以存储执行本技术实施例方案的程序代码或指令,在这种情况下处理器910不需要到存储器920中读取程序代码或指令。
261.该网络设备900可以用于执行以上实施例中的方法100、方法200或方法300。具体来说,该网络设备900可以作为网络设备1执行方法100中由网络设备1执行的操作,网络设备900可以作为网络设备2执行方法100中由网络设备2执行的操作。网络设备900可以作为第一网络设备执行方法200中由第一网络设备执行的操作,网络设备900可以作为第一网络设备执行方法300中由第一网络设备执行的操作。例如,当网络设备900作为第一网络设备执行方法200时,所述处理器910用于执行所述存储器920中的相关指令,使得网络设备900用于:接收来自第二网络设备的路由通告报文,所述路由通告报文包括公共字段和可变字段,所述公共字段用于承载n个srv6sid的公共部分,所述可变字段用于承载所述n个srv6 sid中的第一srv6 sid的可变部分,所述n个srv6 sid对应于第一前缀,所述n为大于等于2的正整数;根据所述公共部分和所述第一srv6 sid的可变部分获得所述n个srv6 sid;生成第一路由,所述第一路由包括所述第一前缀和所述n个srv6 sid。
262.本技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在处理器上运行时,实现前述实施例中任一实施例所述的方法(例如,方法100、方法200或方法300)中任一方法中的部分或全部操作。
263.本技术实施例还提供了一种计算机程序产品,包括计算机程序,当其在处理器上运行时,实现前述实施例中任一实施例所述的方法(例如,方法100、方法200或方法300)中任一方法中的部分或全部操作。
264.本技术实施例还提供一种通信系统,包括第一网络设备和第二网络设备,第一网络设备是结构如图7、图8或图9对应的网络设备,第二网络设备是结构如图7、图8或图9对应的网络设备。上述通信系统用于实现前述实施例中任一实施例所述的方法(例如,方法100,方法200或方法300)中任一方法中的部分或全部操作。
265.本技术实施例还提供了另一种通信系统,包括至少一个存储器和至少一个处理
器,该至少一个存储器存储有指令,该至少一个处理器执行所述指令,使得所述通信系统实现前述实施例中任一实施例所述的方法(例如,方法100,方法200或方法300)中任一方法中的部分或全部操作。
266.本技术实施例还提供了一种芯片,包括:接口电路和处理器。所述接口电路和所述处理器相连接,所述处理器用于使得所述芯片执行前述实施例中任一实施例所述的方法(例如,方法100、方法200或方法300)中任一方法中的部分或全部操作。
267.本技术实施例还提供一种芯片系统,包括:处理器,所述处理器与存储器耦合,所述存储器用于存储程序或指令,当所述程序或指令被所述处理器执行时,使得该芯片系统实现前述实施例中任一实施例所述的方法(例如,方法100,方法200或方法300)中任意一个方法中的部分或全部操作。
268.可选地,该芯片系统中的处理器可以为一个或多个。该处理器可以通过硬件实现也可以通过软件实现。当通过硬件实现时,该处理器可以是逻辑电路、集成电路等。当通过软件实现时,该处理器可以是一个通用处理器,通过读取存储器中存储的软件代码来实现。
269.可选地,该芯片系统中的存储器也可以为一个或多个。该存储器可以与处理器集成在一起,也可以和处理器分离设置,本技术实施例并不限定。示例性的,存储器可以是非瞬时性处理器,例如只读存储器rom,其可以与处理器集成在同一块芯片上,也可以分别设置在不同的芯片上,本技术实施例对存储器的类型,以及存储器与处理器的设置方式不作具体限定。
270.示例性的,该芯片系统可以是fpga,可以是asic,还可以是系统芯片(system on chip,soc),还可以是cpu,还可以是np,还可以是数字信号处理电路(digital signal processor,dsp),还可以是微控制器(micro controller unit,mcu),还可以是可编程控制器(programmable logic device,pld)或其他集成芯片。
271.本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
272.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
273.在本技术所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑业务划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
274.作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络
单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
275.另外,在本技术各个实施例中的各业务单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件业务单元的形式实现。
276.集成的单元如果以软件业务单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
277.本领域技术人员应该可以意识到,在上述一个或多个示例中,本技术所描述的业务可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些业务存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
278.以上的具体实施方式,对本技术的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上仅为本技术的具体实施方式而已。
279.以上,以上实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的范围。

技术特征:
1.一种路由通告的方法,其特征在于,包括:第一网络设备接收来自第二网络设备的路由通告报文,所述路由通告报文包括公共字段和可变字段,所述公共字段用于承载n个基于第六版因特网协议的段路由srv6段标识sid的公共部分,所述可变字段用于承载所述n个srv6 sid中的第一srv6 sid的可变部分,所述n个srv6 sid对应于第一前缀,所述n为大于等于2的正整数;所述第一网络设备根据所述公共部分和所述第一srv6 sid的可变部分获得所述n个srv6 sid;所述第一网络设备生成第一路由,所述第一路由包括所述第一前缀和所述n个srv6sid。2.如权利要求1所述的方法,其特征在于,所述n个srv6 sid还对应于第二前缀,所述方法还包括:所述第一网络设备生成第二路由,所述第二路由包括所述第二前缀和所述n个srv6sid。3.如权利要求1或2所述的方法,其特征在于,所述路由通告报文还包括n-1个可变字段,所述n-1个可变字段分别用于承载n-1个srv6 sid的可变部分,所述n-1个srv6 sid为所述n个srv6 sid中除所述第一srv6 sid以外的srv6 sid,所述第一网络设备根据所述公共部分和所述第一srv6 sid的可变部分获得所述n个srv6 sid包括:所述第一网络设备根据所述公共部分、所述第一srv6 sid的可变部分和所述n-1个srv6 sid的可变部分获得所述n个srv6 sid。4.如权利要求3所述的方法,其特征在于,所述路由通告报文还包括偏移值和长度值,所述长度值指示所述n个srv6 sid的可变部分中的每个可变部分的长度,所述偏移值指示所述n个srv6 sid的可变部分中的每个可变部分在srv6 sid中的偏移位置。5.如权利要求1或2所述的方法,其特征在于,所述路由通告报文还包括指示信息,所述指示信息指示所述n个srv6 sid的数目,所述第一网络设备根据所述公共部分和所述第一srv6 sid的可变部分获得所述n个srv6 sid包括:所述第一网络设备根据所述公共部分、所述第一srv6 sid的可变部分和所述指示信息获得所述n个srv6 sid。6.如权利要求5所述的方法,其特征在于,所述第一网络设备根据所述公共部分、所述第一srv6 sid的可变部分和所述指示信息获得所述n个srv6 sid包括:所述第一网络设备根据所述公共部分和所述第一srv6 sid的可变部分获得所述第一srv6 sid;所述第一网络设备根据所述第一srv6 sid和所述指示信息获得n-1个srv6 sid,所述n-1个srv6 sid为所述n个srv6 sid中除所述第一srv6 sid以外的srv6 sid。7.如权利要求5或6所述的方法,其特征在于,所述n个srv6 sid是等差数列。8.如权利要求5-7任一项所述的方法,其特征在于,所述路由通告报文还包括偏移值和长度值,所述长度值指示所述第一srv6 sid的可变部分的长度,所述偏移值指示所述第一srv6 sid的可变部分在所述第一srv6 sid中的偏移位置。9.如权利要求3或4所述的方法,其特征在于,所述路由通告报文包括第一网络层可达信息nlri字段,所述第一nlri字段包括所述n-1个可变字段。
10.如权利要求5-8任一项所述的方法,其特征在于,所述路由通告报文包括第一附加类型长度值字段,所述第一附加类型长度值字段用于承载所述指示信息。11.如权利要求4或8所述的方法,其特征在于,所述路由通告报文包括srv6 sid结构类型长度值字段,所述srv6 sid结构类型长度值字段用于承载所述偏移值和所述长度值。12.如权利要求1-11任一项所述的方法,其特征在于,所述路由通告报文包括第二nlri字段,所述第二nlri字段包括所述可变字段。13.如权利要求1-12任一项所述的方法,其特征在于,所述路由通告报文包括第二附加类型长度值字段,所述第二附加类型长度值字段包括n个行为字段,所述n个行为字段分别用于承载与所述n个srv6 sid关联的srv6端点行为编码值。14.如权利要求1-13任一项所述的方法,其特征在于,所述路由通告报文包括边界网关协议bgp更新消息或bgp链路状态协议通告消息。15.如权利要求14所述的方法,其特征在于,所述公共字段在所述bgp更新消息的前缀sid属性中。16.如权利要求15所述的方法,其特征在于,所述公共字段为所述前缀sid属性的sid字段。17.如权利要求1-16任一项所述的方法,其特征在于,所述公共部分包括srv6 sid的位置部分,所述n个srv6 sid的可变部分中每个可变部分包括srv6 sid的功能部分和/或srv6 sid的参数部分。18.如权利要求1-17任一项所述的方法,其特征在于,所述路由通告报文用于通告以下路由的至少一个:以太网虚拟专用网络evpn类型1路由、evpn类型2路由、evpn类型5路由和三层虚拟专用网路由。19.一种路由通告的方法,其特征在于,包括:第一网络设备获得路由通告报文,所述路由通告报文包括公共字段和可变字段,所述公共字段用于承载n个基于第六版因特网协议的段路由srv6段标识sid的公共部分,所述可变字段用于承载所述n个srv6 sid中的第一srv6 sid的可变部分,所述n个srv6 sid对应于第一前缀,所述n为大于等于2的正整数;所述第一网络设备向第二网络设备发送所述路由通告报文。20.如权利要求19所述的方法,其特征在于,所述n个srv6 sid还对应于第二前缀。21.如权利要求19或20所述的方法,其特征在于,所述路由通告报文还包括n-1个可变字段,所述n-1个可变字段分别用于承载n-1个srv6 sid的可变部分,所述n-1个srv6 sid为所述n个srv6 sid中除所述第一srv6 sid以外的srv6 sid。22.如权利要求19或20所述的方法,其特征在于,所述路由通告报文还包括指示信息,所述指示信息指示所述n个srv6 sid的数目。23.如权利要求22所述的方法,其特征在于,所述n个srv6 sid是等差数列。24.如权利要求21所述的方法,其特征在于,所述路由通告报文包括第一网络层可达信息nlri字段,所述第一nlri字段包括所述n-1个可变字段。25.如权利要求22或23所述的方法,其特征在于,所述路由通告报文包括附加类型长度值字段,所述附加类型长度值字段用于承载所述指示信息。26.如权利要求19-25任一项所述的方法,其特征在于,所述路由通告报文包括第二
nlri字段,所述第二nlri字段包括所述可变字段。27.如权利要求19-26任一项所述的方法,其特征在于,所述路由通告报文包括边界网关协议bgp更新消息或bgp链路状态协议通告消息。28.如权利要求27所述的方法,其特征在于,所述公共字段在所述bgp更新消息的前缀sid属性中。29.如权利要求19-28任一项所述的方法,其特征在于,所述公共部分包括srv6 sid的位置部分,所述n个srv6 sid的可变部分中每个可变部分包括srv6 sid的功能部分和/或srv6 sid的参数部分。30.如权利要求19-29任一项所述的方法,其特征在于,所述路由通告报文用于通告以下路由的至少一个:以太网虚拟专用网络evpn类型1路由、evpn类型2路由、evpn类型5路由和三层虚拟专用网路由。31.一种网络设备,其特征在于,包括收发单元和处理单元,其中,所述收发单元用于执行权利要求1-18任一项所述方法中由所述第一网络设备所执行的接收和/或发送相关的操作;所述处理单元用于执行权利要求1-18任一项所述方法中由所述第一网络设备所执行的收发以外的操作。32.一种网络设备,其特征在于,包括:存储器,所述存储器包括计算机可读指令;与所述存储器相连的处理器,所述计算机可读指令被所述处理器执行时,使得所述网络设备执行权利要求1-18任一项所述的方法。33.一种网络设备,其特征在于,包括收发单元和处理单元,其中,所述收发单元用于执行权利要求19-30任一项所述方法中由所述第一网络设备所执行的接收和/或发送相关的操作;所述处理单元用于执行权利要求19-30任一项所述方法中由所述第一网络设备所执行的收发以外的操作。34.一种网络设备,其特征在于,包括:存储器,所述存储器包括计算机可读指令;与所述存储器相连的处理器,所述计算机可读指令被所述处理器执行时,使得所述网络设备执行权利要求19-30任一项所述的方法。35.一种通信系统,其特征在于,包括第一网络设备和第二网络设备,所述第一网络设备用于执行权利要求1-18任一项所述的方法,所述第二网络设备用于执行权利要求19-30任一项所述的方法。36.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当所述指令在处理器上运行时,实现权利要求1-30任一项所述的方法。37.一种计算机程序产品,其特征在于,所述计算机程序产品包含程序,当所述程序在处理器上运行时,实现权利要求1-30任一项所述的方法。38.一种芯片,其特征在于,包括:接口电路和处理器,所述接口电路和所述处理器相连接,所述处理器用于使得所述芯片执行权利要求1-30任一项的方法。

技术总结
本申请实施例提供了一种路由通告的方法、网络设备和系统,第一网络设备接收来自第二网络设备的路由通告报文,所述路由通告报文包括公共字段和可变字段,所述公共字段用于承载N个基于第六版因特网协议的段路由SRv6段标识SID的公共部分,所述可变字段用于承载所述N个SRv6 SID中的第一SRv6 SID的可变部分,所述N个SRv6 SID对应于第一前缀,所述N为大于等于2的正整数;所述第一网络设备根据所述公共部分和所述第一SRv6 SID的可变部分获得所述N个SRv6 SID;所述第一网络设备生成第一路由,所述第一路由包括所述第一前缀和所述N个SRv6 SID。该方法减少了路由通告报文的长度,降低了路由通告报文占用的带宽,提升了路由通告的效率。率。率。


技术研发人员:朱彤 任化军
受保护的技术使用者:华为技术有限公司
技术研发日:2022.01.30
技术公布日:2023/8/9
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐