一,简介
SRv6(Segment Routing over IPv6)是一种基于IPv6的分段路由技术。它通过在IPv6数据包头部的扩展头字段中嵌入分段标识符,实现对数据包路径的细粒度控制。
SRv6 Policy是SRv6技术中的一种应用,它用于定义和控制数据包在网络中的路径走向。SRv6 Policy可以被视为一组规则,这些规则描述了数据包从源节点到目标节点的路径选择、转发逻辑和处理方式。
二,特点
- 灵活性:SRv6 Policy允许网络管理员根据需要自定义数据包的路径,实现灵活的流量工程和服务链配置。
- 简化路由表:SRv6 Policy使用SID代替传统的路由表条目,极大地简化了路由表的管理和维护。
- 网络可编程性:SRv6 Policy可以通过编程方式进行配置和管理,使网络更加可编程和自动化。
- 可扩展性:SRv6 Policy支持多种路径和策略的组合,可以满足不同场景下的需求,提供良好的可扩展性。
三,SRv6基本概念
1. 报文结构
SRv6 Segment是128位 IPv6地址形式,通常也可以称为SRv6 SID (Segment Identifier),它代表网络中的一个特定的路径或服务。在SRv6 Policy中,可以使用一系列的SID来定义路径,这些SID可以表示特定的网络节点、链路、服务功能等。
SRv6 SID由Locator和Function两部分组成,格式是Locator:Function,其中Locator具有定位功能,代表一个网段路由。 SID和Locator洪范,用于路由。
End SID表示Endpoint SID,用于标识网络中的某个目的节点
End.X SID表示三层交叉连接的Endpoint SID,用于标识网络中的某条链路。
SRH(Segment Routing Header)扩展头指定一个IPv6的显式路径,存储的是IPv6的Segment List信息,中间节点就可以按照SRH扩展头里包含的路径信息转发。
Segment List[0]~Segment List[n]:Segment列表,段列表从路径的最后一段开始编码。
Segments Left:剩余的Segment个数
IPv6 Destination Address:IPv6报文的目的地址,简称IPv6 DA。在普通IPv6报文里,IPv6 DA是固定不变的。在SRv6中,IPv6 DA仅标识当前报文的下一个节点,是不断变换的。
2. SRH的处理过程
- 在SRv6中,每经过一个SRv6节点,Segments Left(SL)字段减1,IPv6 DA信息变换一次。Segments Left和Segment List字段共同决定IPv6 DA信息。如果SL值是n,则IPv6 DA取值就是Segment List [n]的值。
- 如果SL值是n-1,则IPv6 DA取值就是Segment List [n-1]的值。
- ...
- 如果SL值是1,则IPv6 DA取值就是Segment List [1]的值。
- 如果SL值是0,则IPv6 DA取值就是Segment List [0]的值。
四,SRv6 Policy
1. 定义
SRv6 Policy是在SRv6技术基础上发展的一种新的隧道引流技术。SRv6 Policy路径表示为指定路径的段列表(Segment List),称为SID列表(Segment ID List)。每个SID列表是从源到目的地的端到端路径,并指示网络中的设备遵循指定的路径,而不是遵循最短路径转发。
如果数据包被导入SRv6 TE Policy中,SID列表由头端添加到数据包中,网络的其余设备执行SID列表中嵌入的指令。
SRv6 Policy包括以下三个部分:
头端(HeadEnd):SRv6 Policy生成的节点。
颜色(Color):SRv6 Policy携带的扩展团体属性,携带相同Color属性的BGP路由可以使用该SRv6 Policy。
尾端(Endpoint):SRv6 Policy的目的地址。
2. 配置模型
一个SRv6 Policy可以包含多个候选路径(Candidate Path)。候选路径携带优先级属性(Preference)。优先级最高的有效候选路径作为SRv6 Policy的主路径。
一个候选路径可以包含多个Segment List,每个Segment List携带Weight属性。每个Segment List都是一个显式SID栈,Segment List可以指示网络设备转发报文。多个Segment List之间可以形成负载分担。
2. 创建
SRv6 TE Policy可以在转发器上静态配置(CLI/Netconf),也可以由控制器上动态生成然后传递给转发器(BGP)。相对来说,动态方式更利于网络自动化部署。存在多个方式产生的相同SRv6 TE Policy时,转发器按照与SR-MPLS TE Policy相同的原则选择SRv6 TE Policy
SRv6 TE Policy支持通过Color和报文的DSCP进行引流,在引流之前,需要对路由进行着色。
3. Color 引流
1.通过控制器向头端设备A下发SRv6 Policy
2.在设备B上配置BGP路由策略为路由前缀2001:db8::/96设置扩展团体属性Color 123,路由下一跳是设备B的地址2001:db8::1。然后路由通过BGP邻居发送给设备A。
3.在头端设备A上配置隧道策略,然后当设备A接收到BGP路由2001:db8::/96后,根据路由的扩展团体属性123和下一跳2001:db8::1迭代到SRv6 TE Policy。
4.转发时,为到2001:db8::/96的报文添加一个具体的SID栈<C, E, G, B>。
4. DSCP 引流
1.通过控制器向头端设备A下发SRv6 Policy
2.设备B通过BGP邻居关系将BGP路由2001:db8::/96发送给头端设备A。
3.在头端设备A上进行隧道选择策略配置和SRv6 Mapping Policy配置,设备根据配置动态为业务生成SRv6 TE Flow Group。
4.头端设备A上根据业务路由的下一跳地址已经关联到指定的SRv6 TE Flow Group。在转发时,业务携带DSCP信息,根据SRv6 Mapping Policy配置,关联到指定的Color,进而关联到SRv6 TE Flow Group内具体的某一个SRv6 TE Policy,从而实现报文的DSCP引流。
五,SRv6 Policy发展现状