SRv6探险之旅(1)技术与测试方法解读(上)

文摘   2024-09-09 11:52   北京  

在信息技术飞速发展的今天,互联网的业务需求在日益多样化,网络架构和技术也在不断演进,传统的网络架构已难以满足新业务对灵活性和可扩展性的要求,SRv6(Segment Routing over IPv6)作为一种新兴的网络技术,基于IPv6原生地址和Segment Routing(SR)技术,为构建更灵活、高效和智能的网络提供了新的解决方案。


本篇将聚焦于SRv6技术的基础理论,以探讨SRv6技术的关键特性与核心原理为主,包括以下4个方面内容:

1、SRv6 技术概述

2、SRv6 技术优势

3、SRv6 基本原理

4、SRv6控制面协议
 SRv6 技术概述  
SRv6是基于源路由理念而设计的在IPv6网络上转发数据包的一种协议。SRv6通过在IPv6数据报中嵌入一个路由扩展头SRH(Segment Routing Header),在SRH中指定一系列的Segment Identifier(SID),这些SID都是显式的IPv6地址栈,并由中间节点不断的进行更新目的地址和偏移地址栈的操作来完成逐跳转发,从而实现了对数据包转发路径的精确控制。

SRv6 技术优势  

相比于传统的网络技术,SRv6具有多项显著优势,主要体现在以下几个方面:

强大的可编程能力:SRv6提供了网络路径、业务、转发行为三层可编程空间,通过SRH中的SID,可灵活定义转发路径和转发行为

简化网络协议与运维:SRv6通过在IPv6数据包中嵌入SID,简化了网络协议栈,减少了对专用信令协议的需求(如LDP和RSVP-TE),降低了网络的复杂性和运维难度。

原生IPv6的支持与兼容性基于Native IPv6进行转发,没有改变IPv6报文的封装结构,保持了与现有IPv6设备的兼容性,增强了网络的扩展性和灵活性。

强大的业务驱动能力:SRv6完全基于SDN架构,能够将应用信息带入网络,实现网络与应用之间的深度互动, 并利用全局信息进行网络调度和优化。

 SRv6 基本原理  

3.1 SRv6 SRH

SRv6报文是由IPv6标准头+扩展头+负载Payload组成。为了基于IPv6转发平面实现Segment Routing,新增加一种IPv6路由扩展头Segment Routing Header (SRH),该扩展头指定一个IPv6的显式路径Segment List,存储的是IPv6 路径约束信息。头节点在IPv6报文增加一个SRH扩展头,中间节点就可以按照SRH扩展头里包含的路径信息转发。

SRH扩展头的格式如下图所示:

IPv6 基本头中Next Header 取值为43,标识下一个报文头为路由扩展头。路由扩展头的路由类型字段取值为4,标识该路由扩展头为SRH

SRH 主要包含以下几个部分:

· Next Header:标识紧跟在SRH之后的报文头的类型。常见的类型如4代表IPv4封装;41代表IPv6封装

· Hdr Ext Len:SRH头的长度(不包括前8字节)

· Routing Type: 路由扩展头类型,4表明该路由扩展头为SRH

· Segments Left(SL): SRv6剩余未处理的SID个数。转发过程中通过修改SL,同时更换DIP为活跃的SID来完成分段转发

· Last Entry:Segment List中最后一个元素的索引

· FLags:预留的标志位

· Tag:标识同组数据包

· Segment List: 有序的SRv6 段列表,段列表从路径的最后一段开始编码。Segment List[0]是路径的最后一个Segment;Segment List[2]是路径的第一个Segment。

3.2 SRv6 Segment

SRv6 Segment是SRv6技术中的一个核心概念,即路由段,每个Segment由SID唯一标识,实际上是一个特定的IPv6地址,代表了网络中一个特定转发路径或节点。多个Segments嵌入在IPv6数据包的SRH中形成一个Segment List。SRv6 SID由Locator、Function和Arguments三部分组成(Argument为可选部分),格式是Locator:Function:Arguments,其中Locator占据IPv6地址的高比特位,Function/Arguments占据IPv6地址的剩余部分。

Locator是网络拓扑中的一个网络节点的标识,用于路由和转发报文到该节点,实现网络指令的可寻址。节点配置Locator之后,系统会生成一条Locator网段路由,并通过IGP在SR域内通告。

Function:用来表示该指令要执行的转发动作,不同的转发动作由不同的Function来标识

Arguments:为可选字段,可以定义一些报文的流和服务等信息。

SRv6 Segment常见类型:

功能描述

发布协议

类型

End

标识网络中的某个目的节点(Node),报文到达End  SID指定的节点时,该节点会执行相应的转发动作,如更新IPv6目的IP地址并查找IPv6路由表进行报文转发。

IGP

路径SID

End.X

标识网络中的某条链路(Adjacency)。当报文到达End.X SID指定的节点时,该节点会根据SID的指示,从绑定的出接口转发报文。

IGP

路径SID

End.DT4

PE类型的Endpoint SID,用于标识网络中的某个IPv4 VPN实例。对应的转发动作是解封装报文,并查找IPv4 VPN实例路由表进行转发,主要用于L3VPNv4场景,等同于IPv4 VPN的标签。

BGP

业务SID

End.DT6

PE类型的Endpoint SID,用于标识网络中的某个IPv6 VPN实例。对应的转发动作同样是解封装报文,并查找IPv6 VPN实例路由表转发,主要用于L3VPNv6场景,等同于IPv6 VPN的标签。

BGP

业务SID

End.DX4

PE类型的Endpoint SID,用于标识网络中的某个IPv4 CE。对应的转发动作是解封装报文,并且将解封后的IPv4报文在该SID绑定的三层接口上转发。End.DX4 SIDL3VPNv4 场景使用,等同于连接到CE的邻接标签。

BGP

业务SID

End.DX6

PE类型的Endpoint SID,用于标识网络中的某个IPv6 CE。对应的转发动作是解封装报文,并且将解封后的IPv6报文在该SID绑定的三层接口上转发。End.DX6 SIDL3VPNv6场景使用,等同于连接到CE的邻接标签。

BGP

业务SID


3.3 SRv6 节点

在SRv6网络中,节点扮演着关键的角色,它们负责处理、转发和接收SRv6报文。

SRv6网络中存在的节点角色,基本上分为三类:

SRv6源节点(Source SRv6 Node):

定义:生成SRv6报文的源节点。

功能:负责生成SRv6报文,并在报文中嵌入有序的路径信息Segment List,以指导报文在网络中按路径转发。

中转节点(Transit Node):

定义:在SRv6报文转发路径上只转发SRv6报文但不进行SRv6处理的节点。

功能:这些节点只负责根据IPv6报头中的目的地址进行转发,不处理SRv6的SRH。

段端点节点(SRv6 Segment Endpoint Node):

定义:接收并处理SRv6报文的任何节点,该报文的IPv6目标地址是本地配置的SID。

功能:这些节点会检查并处理SRv6报文中的SRv6 SID和SRH,根据IPv6报文的目的地址查找本地SID表,执行与该SID绑定的指令动作

3.4 SRv6 报文转发

SRv6主要有两种转发模式,分别是SRv6 BE(Best Effort,尽力而为)和SRv6 TE Policy(Traffic Engineering Policy,流量工程策略)

SRv6 BE 的场景类似于MPLS LDP,LDP 利用 IGP的最短路径算法计算得到一条最优的转发路径。SRv6 BE 仅使用一个业务 SID来指导报文的转发,是一种尽力而为的工作模式。在该工作模式下,SRv6 功能只需要部署在首尾节点,实现较为简单。

SRv6 TE Policy 则利用了源路由的特性,在首节点封装一个有序的Segment List来指导报文在网络中如何转发。结合Segment List 的可编程特性,并引入着色机制(设置Color 属性),SRv6 TE Policy 可以灵活地指定报文的转发路径,从而实现流量工程、灵活引流、负载分担等功能。

以下是一个典型的SRv6 TE报文转发流程,假设从节点A(源节点)转发到节点E(目的节点),中间经过节点B、C、D,其中节点B为中转节点(不处理SRH或不支持SRv6)。

1.节点A(源节点)进行网络编程,为数据包封装基本IPv6头和SRH,将SRv6路径信息[C,D,E]嵌入SRH中,数据包外层源地址为节点A的地址,目的地址为第一个SID(C)的地址。

2.节点B(中转节点)不处理SRH或不支持SRv6,只需根据IPv6报头中的目的地址(此时为C的地址)进行路由查找转发。

3.节点C(SRv6段节点)收到报文后,检查SRH中的SL(Segment Left)及Segment List,将下一个SID(此时为D的地址)更新到目的IPv6地址。

4.节点D的处理过程和节点C类似,但节点D为倒数第二段,可根据其Flavor是否配置PSP(Penultimate Segment POP,倒数第二段弹出SRH),决定是否移除SRH头,以减轻尾结点E的处理压力

5.节点E(目的节点)解封装并剥离外层IPv6,读取处理数据包的有效载荷,根据原始报文的目的地址进行报文转发。

 SRv6控制面协议  

4.1 ISIS for SRv6 

为实现SRv6,需要对已有的IGP协议(ISIS 和OSPFv3)进行扩展,而不需要再维护RSVP-TE、LDP等控制平面协议。通过扩展ISIS和OSPFv3协议携带SRv6信息,可对SRv6网络的拓扑、前缀、Locator和SID等信息进行通告,网络管理员或SDN控制器利用这些信息,即可实现AS域内的网络编程功能。

以ISIS协议为例,ISIS需要发布两类SRv6 信息:Locator信息与 SID 信息。Locator用于帮助网络中的其他节点定位到发布SID的节点,SID用于描述SID的功能,如SID绑定的Function。

ISIS针对SRv6的扩展具体如下表所示:

TLV名称

作用

携带位置

SRv6 Capabilities sub-TLV

通告SRv6能力

ISIS Router CAPABILITY TLV

Node MSD  sub-TLV

通告MSDMaximum SID Depth),即SID列表中能够包括的SID的最大数目

ISIS Router  CAPABILITY TLV

SRv6 Locator TLV

通告SRv6Locator以及该Locator相关的End SID

ISIS报文,SRv6引入的一个顶级TLV

SRv6 End SID sub-TLV

通告End SID

SRv6 Locator TLV

SRv6 End.X SID sub-TLV

在P2P网络中通告End.X SID

ISIS NBR TLV(ISIS的22、23、141、222和223等类型TLV)

SRv6 LAN End.X SID sub-TLV

LAN网络中通告End.X SID

ISIS NBR TLV(ISIS的22、23、141、222和223等类型TLV)

SRv6 SID Structure Sub-Sub-TLV

发布SRv6 SID格式

• SRv6 End SID sub-TLV

• SRv6 End.X SID sub-TLV

• SRv6 LAN End.X SID sub-TLV


4.2 BGP For SRv6

传统的IGP for SRv6技术主要在AS域内进行SID的分配和路径规划。然而,随着网络规模的扩大,跨域通信成为常态,需要一种机制来支持跨AS的SRv6路径规划。为了满足这一需求,BGP EPE(BGP Egress Peer Engineering)应运而生。它通过扩展BGP协议,使得BGP能够参与到SRv6的跨域路径规划中来,从而实现跨AS的SRv6流量工程。

BGP EPE通过为对Peer分配特定的SID,包括Peer-Node SID和Peer-Adj SID,来引导流量经过特定的出节点,发往特定的BGP对等体或对等链路。

Peer-Node SID:用于指示一个对等体节点。

Peer-Adj SID:用于指示到达对等体的一个邻接

4.3 BGP SRv6 Policy

在数据中心、广域网里,SRv6和SDN应用的结合已是重要的发展趋势,故基于SDN架构的SRv6控制器也得到了多厂商的支持和互操作。在此过程中,BGP成为主流的SDN控制器南向协议。为了通过BGP 发布SRv6 Policy,需要对SAFI(Subsequent Address Family Identifier)及其对应的NLRI和Tunnel Encaps Attribute等部分进行扩展,因扩展的TLV较多,感兴趣的可阅读draft-ietf-idr-segment-routing-te-policy.


如上图,SDN控制器与SRv6转发设备或RR节点建立BGP对等体,下发BGP SRv6-Policy路由并携带SRv6 的候选路径、优先级、段列表、权重等信息给SRv6源节点设备,以此指导设备如何根据SRv6规则转发数据包。通过结合BGP-LS、Telemetry、TWAMP等技术,使得网络运营商能够在SDN控制器的集中管理下,灵活部署和动态调整SRv6路由策略,从而实现高效、智能的网络流量调度。

上半部分的探索之旅暂告一段落,我们已经一同揭开了SRv6技术的神秘一角,领略了其作为网络创新力量的独特魅力。随着理论基础的奠定,下半部分的征程即将开启,我们将更深入地探讨Spirent  TestCenter如何测试SRv6,敬请期待。


关键词:Segment Routing,SRv6,分段路由,SRH,SID,SR-TE,ISIS,BGP,SDN,IPv6

联系我们:

思博伦官方网站: www.spirent.cn

技术中心热线:400-810-9529

支持邮箱:support@spirent.com

售后网站:support.spirent.com


版权归思博伦通信科技(北京)有限公司所有,思博伦技术中心(SpirentServices)原创发布,转载请联系授权。


长按识别二维码,关注思博伦技术中心


思博伦技术中心
思博伦技术中心由思博伦全球服务部的技术团队管理和维护。我们致力于提供完善的技术支持,并定期更新。通过我们的微信平台您将获取最新的产品发布信息,全面的产品使用技巧,实用的常见问题解决方案,以及完善的售后服务流程。
 最新文章