当分段路由遇上IPv6,新一代的IP承载协议SRv6,它实在太强了!
你好,这里是网络技术联盟站。
Segment Routing IPv6(SRv6)是一种基于IPv6的新型网络编址和转发机制,它在IPv6数据包的扩展头中嵌入了信息,以指导数据包在网络中的传输路径。SRv6的出现为网络管理和应用提供了更大的灵活性和可编程性,有望在现代网络中引领一场变革。本文瑞哥将深入介绍SRv6的各个方面,包括原理、特性、应用场景等。
目录:
一、为什么需要SRv6?
传统网络中,IP承载网存在着孤岛问题,不同域之间相互独立,导致端到端业务的部署变得复杂。即使在MPLS统一了承载网的情况下,IP骨干网、城域网、移动承载网之间仍然是独立的MPLS域。这要求使用跨域VPN等复杂技术来实现互联,使得网络部署和管理变得困难。SRv6通过路径编程的方式,能够消除这种孤岛问题,实现更加灵活的网络连接,简化端到端业务的部署。
随着新业务的涌现,对网络的编程需求也不断增加。然而,IPv4的可编程空间受到限制,IETF已经停止为IPv4制定更新的标准,使得在IPv4网络上满足新业务的需求变得困难。同时,MPLS的标签空间有限,且缺乏可扩展性,难以满足未来网络编程的需求。SRv6通过利用IPv6的灵活扩展头,为网络提供更大的可编程空间,使得网络更好地适应不断变化的业务需求。
传统网络中,应用与承载网相互解耦,导致网络自身的优化变得困难。这种隔离阻碍了网络从增值应用中获得相应的收益,同时也妨碍了网络的有效调度和优化。SRv6的出现有助于解决这一问题,通过将应用信息融入到网络中,实现应用与网络的紧密集成,为运营商提供更多的增值服务和收益机会。
在传统网络中,数据面和控制面通常是紧密耦合的,相互绑定在一起。这使得网络演进变得复杂,业务上线周期长,难以适应新兴业务快速发展的需求。SRv6通过实现数据面和控制面的解耦,以及提供更灵活的路径编程,使得网络演进更为简单和高效,有助于应对不断变化的业务需求。
SRv6的出现不仅解决了传统网络面临的问题,同时推动了网络进入一个更加灵活、可编程的新时代。其应用前景在应对日益复杂的网络环境和业务需求方面具有重要意义。
二、什么是Segment Routing?
Segment Routing (SR) 是一种源路由技术,旨在简化网络的路径控制和转发机制。其核心思想是将网络路径切割为不同的分段(Segments),并在路径的起始点插入分段信息,中间节点只需根据报文携带的分段信息进行转发。每个路径分段都有一个唯一的标识符,称为 Segment Identifier(SID)。
为了更好地理解 SR 的原理,可以通过一个旅行的例子进行比喻。假设你要从城市 A 出发,经过城市 B 和城市 C,最终到达城市 D。整个旅行路径可以分为两个段落:A 到 B,B 到 C,然后你只需要按照这两个段落的计划前进,最终到达 D。
类似地,SR 技术将网络路径划分为不同的段落,每个段落由一个唯一的 SID 标识。起始节点根据业务需求将这些段落组合成路径,并在报文中插入相应的 Segment List(路径列表)。中间节点只需按照报文中的路径列表信息进行转发,而不需要深入理解整个网络路径。
SR 技术支持两种不同的转发平面:
-
SR-MPLS(Segment Routing MPLS): 在 MPLS 网络中实现 SR,其中每个 Segment 被表示为 MPLS 标签(Label)。
-
SRv6: 基于 IPv6 转发平面的 SR,其中每个 Segment 被表示为 IPv6 地址。
在 SR 技术中,Segment 的组合和排序可以实现对路径的编程,以满足不同服务质量的需求。总的来说,SR 技术通过简化路径控制和转发机制,提高了网络的灵活性和可编程性。
三、什么是SRv6?
SRv6是一种新型的网络技术,它结合了Segment Routing(SR)和IPv6两种网络技术。SRv6的全称是Segment Routing over IPv6,也就是基于IPv6转发平面的段路由。这是一种新一代的IP承载协议。
SRv6采用了现有的IPv6转发技术,并通过灵活的IPv6扩展头,实现了网络的可编程。这种技术简化了网络协议类型,具有良好的扩展性和可编程性,可以满足更多新业务的多样化需求,提供高可靠性,在云业务中有良好的应用前景。
SRv6的出现解决了一系列的问题,推动网络进入一个全新的时代。SRv6是基于IPv6转发平面的SR技术,其结合了SR源路由优势和IPv6简洁易扩展的特质,具有其独特的优势。SRv6技术特点及价值可以归纳为以下三点:智慧、极简、纯IP化。
SRv6具有强大的可编程能力。SRv6具有网络路径、业务、转发行为三层可编程空间,使得其能支撑大量不同业务的不同诉求,契合了业务驱动网络的大潮流。SRv6完全基于架构,可以跨越APP和网络之间的鸿沟,将APP的应用程序信息带入到网络中,可以基于全局信息进行网络调度和优化。
SRv6不再使用LDP/RSVP-TE协议,也不需要MPLS标签,简化了协议,管理简单。EVPN和SRv6的结合,可以使得IP承载网简化归一。简化网络协议SRv6打破了MPLS跨域边界,部署简单,提升了跨域体验。
SRv6基于Native IPv6进行转发。SRv6是通过扩展报文头来实现的,没有改变原有IPv6报文的封装结构,SRv6报文依然是IPv6报文,普通的IPv6设备也可以识别SRv6报文。SRv6设备能够和普通IPv6设备共同部署,对现有网络具有更好的兼容性,可以支撑业务快速上线,平滑演进。
四、SRv6工作原理
SRv6的工作原理是基于IPv6的扩展头部。在扩展头部中携带了“IPv6地址(被称为SID)”,利用这个IPv6地址来指导支持SRv6的设备对报文进行报文转发。SRv6的设计理念在于对路径进行分段(Segment)以及在起始节点对路径进行排序组合(Segment List),确定出行路径。
SRv6主要有SRv6 BE和SRv6 TE Policy两种工作模式,虽然两种模式都可以用来承载传统业务,但也存在差异。前者主要使用一个业务SID来指引报文在链路中的转发,用于承载普通的VPN业务,虽然它不具备流量工程能力,但却能够快速开通业务。后者主要用于实现流量工程,通过在头节点封装一个有序的指令列表(即路径信息)来指导报文穿越网络,能够有效提升网络质量。
SRv6采用IPv6标准规范(RFC2460)中定义的路由扩展报头,新定义了一种IPv6的扩展报头——SRH(Segment Routing Header),该扩展头指定一个IPv6的显式路径,存储的是IPv6的Segment List信息。其作用与SR-MPLS里的Segment List类似,头节点在IPv6报文中增加一个SRH扩展头,中间SRv6节点就可以按照SRH里包含的路径信息进行处理和转发,而非SRv6节点只需要按照标准的目的IPv6进行传统转发。
SRv6的转发是通过读取SRH报头,更新指针,变换目的地址进行转发的。当网络中有不支持SRv6的节点时,该节点可根据数据包目的地址进行标准的IPv6转发,这意味着,SRv6可以与现有的IPv6网络可以实现无缝兼容,即SRv6可以在传统IPv6网络上实现增量部署,无须替换所有现网设备。
五、SRv6在网络中是如何工作的?
SRv6在网络中的工作可以通过两个关键方面来解释:SRv6报文转发流程和SRv6的工作模式。
5.1 SRv6报文转发流程
SRv6的报文转发流程主要涉及报文的封装和转发两个步骤。以下是基本的 SRv6 报文转发流程:
报文封装:
-
路径规划: 网络管理员规划业务路径,定义报文的 Segment List。
-
SRH的添加: 在报文的IPv6头部中添加 Segment Routing Header(SRH),该头部携带了 Segment List 的信息。
-
报文的转发: 报文从源节点出发,中间节点根据 SRH 中的 Segments Left 字段,判断下一个要经过的 Segment,然后按照 Segment List 中的顺序转发报文。
-
Segment的执行: 每个节点在处理报文时,执行与当前 Segment 相关的操作,这可以是一系列网络行为,例如流量工程、服务链路等。
-
报文的最终处理: 当报文到达最终目的地时,根据 SRH 中的信息,节点执行最后一个 Segment,并将报文交付到目标业务。
报文转发:
-
Segment识别: 中间节点通过解析报文的 IPv6 头部和 SRH,识别出当前报文要经过的下一个 Segment。
-
Segment执行: 中间节点执行与当前 Segment 相关的网络行为,包括路由、转发、服务链路等。
-
更新SRH: 中间节点更新 SRH 中的 Segments Left 字段,指示报文的当前位置。
-
报文的转发: 报文根据更新后的 SRH 信息继续被转发到下一个节点。
-
循环直至目的地: 重复上述步骤,直至报文到达最终目的地。
5.2 SRv6的工作模式
SRv6的工作模式主要包括两种:单一Segment模式和多重Segment模式。
单一Segment模式:
在单一Segment模式下,整个业务路径由单个Segment构成。报文只需按照Segment List中的顺序经过这个单一的Segment即可。这种模式适用于简单的路径需求,例如基本的流量转发。
多重Segment模式:
在多重Segment模式下,业务路径由多个Segment组成,每个Segment执行不同的网络行为。报文需要依次经过这些Segment,每个Segment都有特定的功能。这种模式适用于需要复杂服务链路或多层网络行为的场景。
SRv6通过报文的路径规划、报文封装、报文转发和Segment的执行等步骤,实现了网络中的工作。其灵活的工作模式使得网络管理员能够根据具体的业务需求定制化地配置网络路径,从而满足不同的服务质量和业务需求。这种工作方式使得SRv6在网络创新和应用定制方面具备了强大的潜力。
六、SRv6工作模式
6.1 SRv6 BE
- Segment Routing IPv6 Best Effort
SRv6 BE 模式是 SRv6 的基本工作模式,用于支持 IPv6 网络的基本承载服务,即“Best Effort”服务。在这种模式下,SRv6主要用于提供基本的路由和转发功能,使网络能够支持最佳努力传输的数据流。
特点
-
基础路由和转发: SRv6 BE 提供基础的路由和转发能力,适用于一般的网络传输需求。
-
承载传统业务: SRv6 BE 可以用来承载传统的业务,包括 L3VPN、EVPN L3VPN、EVPN VPLS、EVPN VPWS、公网 IP 等服务。
-
简化网络设计: 相对于传统的 IP/MPLS 网络,SRv6 BE 简化了网络设计和管理,提供了更灵活、可扩展的解决方案。
6.2 SRv6 TE Policy
- Segment Routing IPv6 Traffic Engineering Policy
SRv6 TE Policy 模式是在 SRv6 BE 的基础上,进一步引入流量工程策略,用于提供更精细的流量控制和路径优化。这个模式适用于对网络资源进行更细粒度控制和优化的场景,例如,需要满足特定业务的服务质量(QoS)要求。
特点
-
流量工程策略: SRv6 TE Policy 引入了流量工程的概念,使得网络管理员可以根据业务需求对流量进行更精细的控制。
-
路径优化: 这种模式下,SRv6 可以根据具体的策略优化路径,以满足特定服务质量的要求,例如带宽保障、低延迟等。
-
支持服务质量需求: SRv6 TE Policy 提供了更多的灵活性,以支持对不同业务流量的不同服务质量需求,从而更好地满足多样化的业务需求。
这两种模式为 SRv6 在网络中的应用提供了不同的选择,可以根据具体的网络场景和业务需求选择合适的工作模式。无论是基础的 Best Effort 服务还是更精细的 Traffic Engineering Policy,SRv6 都为网络提供了更灵活、可编程的解决方案。
七、SRv6的优势
SRv6的主要优势体现在三个方面:简化网络协议、Native IP属性和网络可编程能力。
7.1 简化网络协议
SRv6通过扩展IGP/BGP,去掉LDP和RSVP-TE等MPLS隧道技术,简化了控制面;在数据面直接使用IPv6地址作为转发标签,去除了MPLS标签;在控制面和数据面都实现了统一承载,极大地简化了网络协议,降低了运维的复杂度,让云、管、端可以基于同一个标准协议实现端到端可管可控,实现业务一线灵活入多云、业务敏捷开通。
7.2 Native IPv6属性
SRv6通过IPv6扩展报文头来实现,没有改变IPv6报文的封装结构,保持了对现有网络的兼容性;SRv6依赖IPv6可达性可实现任意IPv6节点之间的互通,使得SRv6跨域部署更加简单;在报文转发过程中,普通中间节点仅支持IPv6转发即可,无需支持特殊的转发逻辑,使得SRv6可以打破运营商网络和数据中心网络之间的界限,进入数据中心网络,极大地增强了SRv6的扩展性和部署的灵活性。
7.3 网络可编程能力
SRv6的网络可编程能力体现在SRH(Segment Routing Header)扩展头中,SRH中有三层编程空间。SRH通过将多个Segment有序组合进行路径编程,可根据业务意图、网络状态等智能选择最佳路径并实时调整。SRv6 SID为128位IPv6地址形式,标准格式为“Locator:Function:Args”,可以灵活分为多段,每段的长度可以变化,具备灵活编程能力。其中Locator表示到达该节点的路由信息,Function和Args分别表示在该节点执行的具体功能和所需的参数,按照不同功能定义不同SID,具备良好的扩展性。SRv6 SID既有IPv6地址的路由能力,又有SRv6特有的行为能力,不仅可以表示路由,还可以表示接口、设备、业务和应用等。对SRv6 SID的灵活定义和运用,可以实现设备级/应用级的可编程。Optional TLV可以用于进一步自定义功能,支持更丰富的网络编程。
八、SRv6如何实现网络编程?
SRv6实现网络编程的核心在于使用 Segment Routing Header(SRH),这是一种 IPv6 路由扩展头,用于指定报文的显式路径,从而实现路径编程。SRH 存储了 Segment List 的信息,该列表是有序排列的 Segments,表示报文的预定转发路径。
-
Segment的定义: 在网络中定义不同的 Segment,每个 Segment 都有一个唯一的标识符,即 Segment Identifier(SID)。
-
业务路径规划: 根据业务需求规划报文的路径,即定义报文的 Segment List。这个列表是按照预期的网络路径,将各个 Segment 有序排列的。
-
SRH的添加: 在报文的IPv6头部中添加 Segment Routing Header(SRH)。这个扩展头携带了 Segment List 的信息。
-
报文的转发: 中间节点根据 SRH 中的信息进行报文的转发。每个节点根据 SRH 中的 Segments Left 字段,判断下一个要经过的 Segment,然后按照 Segment List 中的顺序转发报文。
-
Segment的执行: 每个节点在处理报文时,执行与当前 Segment 相关的操作。这可以是一系列网络行为,例如流量工程、服务链路等。
-
报文的最终处理: 当报文到达最终目的地时,根据 SRH 中的信息,节点执行最后一个 Segment,并将报文交付到目标业务。
SRv6的关键在于 Segment Routing Header(SRH)的设计。SRH 不仅包含了 Segment List,还包括 Segments Left 字段,用于指示报文的当前位置。这种方式使得整个网络路径变得可控,能够精确指导报文的传输路径,从而实现对网络的编程。
通过这样的机制,SRv6为网络提供了极大的灵活性和可编程性,使得网络管理员可以根据具体业务需求定制化地配置网络路径,满足不同的服务质量和业务需求。
九、SRv6三层可编程空间
SRv6的可编程能力是由其三层可编程空间提供支持的,这三个关键组成部分分别是 Segment 序列、SRv6 SID(Segment Identifier)的运用、以及 Segment Routing Header(SRH)中的 Optional TLV(Type-Length-Value)。
9.1 Segment序列
Segment 序列是 SRv6 中实现路径编程的关键。多个 Segment 被组合成一个 SRv6 路径,从而实现对报文转发路径的精确控制。每个 Segment 在路径中执行一系列指令,定义了报文的行为和路径。这种路径的组合和排序实现了灵活的网络编程,使得网络管理员能够根据具体需求自定义网络路径。
9.2 SRv6 SID的运用
SRv6 中的 SID 是 Segment 的标识符,是一个 128 位的值,以 IPv6 地址的形式表示。每个 SID 包含 Locator、Function 和 Arguments 三个部分。这三个部分赋予了 SRv6 Segment 具体的路由、转发行为和参数信息。Locator 提供了 IPv6 路由能力,Function 表达了设备执行的转发动作,而 Arguments 则是对 Function 的补充,提供执行时的参数。通过这种灵活的 SID 结构,SRv6 能够实现丰富多样的网络编程。
9.3 Optional TLV
Optional TLV 是 SRH 中的一部分,用于在报文的转发过程中携带一些非规则的信息。这些信息可以包含在 SRH 中的 TLV 中,根据需要进行自定义。这为应用层提供了额外的编程空间,使得网络能够携带更多的信息,以更好地满足业务需求。
SRv6通过 Segment 序列、SRv6 SID 的运用以及 Optional TLV 这三个可编程空间,实现了对网络的精确控制和定制化编程。这种灵活性不仅使得网络能够更好地适应不同的业务需求,还使得 SRv6 能够与 SDN 技术完美融合,实现网络与应用的互动,构建业务驱动的可编程网络。这样的设计使得 SRv6 在网络创新和应用定制方面具备了强大的潜力。
十、SRv6的应用
10.1 云业务
SRv6简化了网络协议类型,具有良好的扩展性和可编程性,可以满足更多新业务的多样化需求,提供高可靠性,在云业务中有良好的应用前景。
10.2 5G-Advanced核心网
SRv6的优势使网络变得更简洁、更智能,使其成为IPv6时代最有前景的网络技术。SRv6不仅打破了云和网络的边界,将网络延伸到用户终端,使运营商网络避免被管道化,还可以帮助运营商快速发展智能云网,实现应用级/用户级的网络SLA保障,给运营商带来更多可能的增值。5G、IoT、云业务对网络的可扩展性、可维护性、确定性、稳定性和安全性提出了很高的要求,而5G-Advanced核心网仅需扩展UPF及SMF支持SRv6,就可以利用SRv6技术很好地匹配这些需求。
10.3 连接边缘电信云场景
SRv6可以用于连接边缘电信云场景,可以实现网络可编程。基于IPv6的可达性特点,SRv6在跨域的场景下不需要再采用背靠背等形式拼接,可直接跨多域,简化了跨域业务的部署。
十一、SRv6的挑战及解决方案
11.1 IP承载网的孤岛问题
统一了承载网,但是IP骨干网、城域网、移动承载网之间是独立的MPLS域,是相互分离的,需要使用跨域VPN等复杂的技术来互联,导致端到端业务的部署非常复杂。而且在L2VPN、L3VPN多种业务并存的情况下,设备中可能同时存在LDP、RSVP、IGP、BGP等协议,管理复杂,不适合大规模业务部署。
SRv6通过扩展IGP/BGP,去掉LDP和RSVP-TE等MPLS隧道技术,简化了控制面;在数据面直接使用IPv6地址作为转发标签,去除了MPLS标签;在控制面和数据面都实现了统一承载,极大地简化了网络协议,降低了运维的复杂度,让云、管、端可以基于同一个标准协议实现端到端可管可控,实现业务一线灵活入多云、业务敏捷开通。
11.2 IPv4与MPLS的可编程空间有限
当前很多新业务需要在转发平面加入更多的转发信息,但IETF已经发表声明,停止为IPv4制定更新的标准;另外MPLS只有20bit的标签空间,且标签字段固定、长度固定,缺乏可扩展性,导致很难满足未来业务的网络编程需求。
SRv6 SID为128位IPv6地址形式,标准格式为“Locator:Function:Args”,可以灵活分为多段,每段的长度可以变化,具备灵活编程能力。其中Locator表示到达该节点的路由信息,Function和Args分别表示在该节点执行的具体功能和所需的参数,按照不同功能定义不同SID,具备良好的扩展性。SRv6 SID既有IPv6地址的路由能力,又有SRv6特有的行为能力,不仅可以表示路由,还可以表示接口、设备、业务和应用等。对SRv6 SID的灵活定义和运用,可以实现设备级/应用级的可编程。Optional TLV可以用于进一步自定义功能,支持更丰富的网络编程。
11.3 应用与承载网隔离
目前应用与承载网的解耦,导致网络自身的优化困难,难以提升网络的价值。当前运营商普遍面临被管道化的挑战,无法从增值应用中获得相应的收益;而应用信息的缺失,也使得运营商只能采用粗放的方式进行网络调度和优化,造成资源的浪费。MPLS也曾试图更靠近主机和应用,但因为其本身网络边界多、管理复杂度大等多方面的原因,均以失败告终。
SRv6完全基于架构,可以跨越APP和网络之间的鸿沟,将APP的应用程序信息带入到网络中,可以基于全局信息进行网络调度和优化。
11.4 传统网络数据面和控制面紧密耦合
传统网络数据面和控制面紧密耦合,相互绑定销售,在演进上相互依赖,业务上线周期长,难以应对现在新兴业务快速发展的局面。
SRv6的数据面和控制面解耦,相互独立销售,在演进上相互独立,业务上线周期短,能够应对现在新兴业务快速发展的局面。
十二、SRv6 vs SR-MPLS
特征/优势 | SR-MPLS | SRv6 |
---|---|---|
转发平面 | 基于 MPLS 转发平面 | 基于 IPv6 转发平面 |
IPv6支持 | 需要额外的 IPv6-over-MPLS 封装 | 原生 IPv6 支持,无需额外封装 |
地址空间 | 32 位 MPLS 标签 | 128 位 IPv6 地址 |
报文封装 | MPLS 头 | IPv6 头 |
可编程性 | 相对受限,20 位标签空间,固定长度 | 灵活的 IPv6 扩展头,三层可编程空间 |
兼容性 | 需要支持 MPLS 的设备和网络 | 与普通 IPv6 设备兼容,更好的网络兼容性 |
协议简化性 | 使用 LDP 或 RSVP-TE 进行标签分发和维护 | 不需要 LDP 或 RSVP-TE,协议简化 |
路由发布 | 需要发布 MPLS 标签的路由 | 路由发布基于 IPv6 地址,更直观 |
可编程空间 | 有限的 MPLS 标签空间 | 三层可编程空间,包括 Segment 序列、SID 128bit 运用、Optional TLV 等 |
12.1 SRv6相对于SR-MPLS的优势
- 原生IPv6支持: SRv6直接基于IPv6转发平面,无需额外的IPv6-over-MPLS封装,提高了网络的简洁性和性能。
- 更灵活的可编程性: SRv6采用灵活的IPv6扩展头,具有三层可编程空间,包括Segment序列、SID 128bit的运用、Optional TLV等,使得其能支撑更多不同业务的不同需求,契合了业务驱动网络的潮流。
- 更大的地址空间: SRv6使用128位IPv6地址,相比于SR-MPLS的32位MPLS标签,拥有更大的地址空间,使得网络更为灵活,能够支持更多的业务。
- 协议简化: SRv6不再需要使用LDP或RSVP-TE进行标签的分发和维护,协议更为简化,减少了网络管理的复杂性。
- 兼容性: SRv6与普通IPv6设备兼容,更好地适应了网络的发展和演进,提高了网络的可部署性和可维护性。
十三、SRv6 vs Vxlan
特征/比较 | SRv6 | VxLAN (Virtual Extensible LAN) |
---|---|---|
基础协议 | IPv6 | UDP |
报文封装 | 基于 IPv6 头,使用 SRH 扩展头 | 基于 UDP 头,VxLAN 头 |
地址空间 | 128 位 IPv6 地址 | 24 位 VNI (VxLAN Network Identifier) |
网络编程能力 | 强大的网络编程能力,通过 SRH 实现路径编程 | 有限的网络编程能力,主要用于封装和隧道 |
灵活性 | 极高,支持多层可编程空间 | 较为有限,主要用于隧道封装 |
底层协议支持 | 只需支持 IPv6 的设备 | 需要支持 UDP 的设备 |
兼容性 | IPv6 设备兼容性较好 | 需要支持 VxLAN 的设备 |
性能开销 | 较低,原生 IPv6 支持,无额外封装 | 较高,需要封装 UDP 和 VxLAN 头 |
用途 | 网络编程、流量工程、业务定制等 | 虚拟化环境中的二层扩展、隧道封装 |
部署复杂性 | 相对较高,需要理解 SRv6 的网络编程概念 | 相对较低,VxLAN 部署较为简单 |
- 点赞
- 收藏
- 关注作者
评论(0)