点击上方“IT那活儿”公众号,关注后了解更多内容,不管IT什么活儿,干就完了!!!
随着时代的进步,网络业务种类越来越多,不同类型业务对网络的要求不尽相同,例如, 实时的语音/视频应用程序通常需要低时延、低抖动的路径而大数据应用则需要低丢包率的 高带宽通道。如果仍旧按照网络适配业务的思路,则不仅无法匹配业务的快速发展,而且会 使网络部署越来越复杂,变得难以维护。
针对上述情形的解决思路就是业务驱动网络,由业务来定义网络的架构。具体说来,就 是由应用提出需求(时延、带宽、丢包率等 ) ,网络控制器收集网络拓扑、带宽利用率、时 延等信息,根据业务需求计算显式路径。SR(Segment Routing ,段路由)正是在此背景下出现的。通过 SR 可以简易地定义一条显 式路径,网络中的节点只需要维护 SR 信息,即可应对业务的实时、快速发展。SR 是基于源路由理念而设计的一种在网络上转发数据报文的协议。SR 将网络路径分成 一个个的段,并且为这些段和网络中的转发节点分配段标识 SID(Segment ID) 。通过对段和 网络节点进行有序排列( Segment List ),就可以得到一条转发路径。SR 将段序列编码(代表转 发路径)封装在数据报头,随数据报文体输,当接收端收到数据报文后,对段序列进行解析, 如果段序列的顶部段标识是本节点,则弹出该标识,然后进行下一步处理,如果不是本节点, 则继续将数据报文转发到下一节点。1)通过对现有协议 (例如 IGP) 进行扩展,能使现有网络更好地平滑演进;2)同时支持网络控制器的集中控制模式和转发器的分布控制模式,提供集中控制和分布控 制之间的平衡;3)采用源路由技术,提供网络和上层应用快速交互的能力。未来的网络是面向 5G 和云时代的网络,网络也需要做出相应的调整。化繁为简、低 时延、SDN/ NFV 化是后续的主要发展方向。
面向 5G 和云的发展,SRv6 开启了 IPv6 应用的新时代。对于下一步 5G 网络的发展, 用户希望能够借用 IP6 的地址更简单地实现 VPN 的部署。SRv6 技术就是采用现有的 IPv6 转发技术,通过扩展 IPV6 报头,实现类似标签转发的处理。SRv6 将一些 IPv6 地址定义成 实例化的 SID ,每个 SID 有着自己显式的作用和功能,并可以通过不同的 SID 操作,实现 简化的 VPN ,以及灵活的路径规划。IPv6 报文是由 IPv6 基本报头、扩展报头(0 ··n) 和负载(Payload) 组成的(见图) 。为了基 于 IPv6 转发平面实现 SRv6 ,基于扩展报头新增了一种扩展报头类型,称作 SRH(Segment Routing Header,段路由扩展报头)。该扩展报头指定一个 IPv6 的显式路径,存储的是 IPv6 的 Segment List 信息,其作用与 IP4 SR 里的 Segment List 类似。头节点在 IPv6 报文增加一个 SRH,中间节点就可以不断地进行更新目的地址和偏移地 址栈的操作来完成逐跳转发。SRH 的抽象格式如下图所示:IPv6 Destination Address: IPv6 报文的目的地址,缩写为 IPV6 DA。在普通 IPv6 报文里,IPv6 DA 是固定不变的。在 SRv6 中,IPv6 DA 仅标识当前报文的下一个节点,是不断变换的。 <Segment List [0], Segment List [ 1], .... ,Segment List [n-1], Segment List [n]>:SRv6 报文的段 列表,类似于 SR MPLS 中的 MPLS 标签栈信息,在入节点生成。Segment List[n]是 SRv6 路径上第一个需要被处理的 Segment List,Segment List [n- 1]是第二个,Segment List [1]是 倒数第二个,Segment List[0]是倒数第一个。SRv6 Segment 是 IPv6 地址形式,通常也可以称为 SRv6 SID(Segent Identifier) 。SRv6 SID 是一个 128 bit 的值,每个 SRv6 SID 就是一条网络指令,它通常由以下 3 部分组成(如下图):1)Locator 是分配给一个网络节点的标识,用于路由和转发数据报文。在 SRv6 SID 中,Locator 是一个可变长的部分,用于适配不同规模的网络。2)Function 用来表达该指令要执行的转发动作,相当于计算机指令的操作码。在 SRv6 网 络编程中,不同的转发行为由不同的 Function 来表达。3)Args 是指令在执行的时候所需要的参数。这些参数可能包含流、服务或任何其他相关的 信息。例如,定义一个对网络报文进行报文分片的指令,就可以在 Args 中携带报文的 分片长度。SRv6 SID 有很多类型,不同类型的 SRv6 SID 代表不同的功能。End SID(Endpoi nt SID)是 SR6 SID 类型中的一种,用于标识网络中的某个目的地址前缀(Prefix), 如下图所示。End SID 通过 IGP 扩散到其他网元,全局可见,全局有效。1)数据报文在 A 节点压入 SRH 信息,其中路径信息是 <Z::, F::, D::, B::>, IPv6 DA 是 B::。2)每经过一个节点,例如 B 节点和 D 节点,都会根据 IPV6 DA 查询 Local SID 表,如果命中 Local SID 表,则执行 SID 的动作,判断是 End 类型,取下一个 SID 到 DA , 同时 SL 减 1 ,然后使用新的 DA 查询 IPV6 FIB 表,根据 FIB 表查到的出接口进行下一跳转发。3)到达 F 节点时,F 节点根据 IPV6 DA 查询 Local SID 表,判断是 End 类型,然后继续查询IPv6 FIB 表,根据 FIB 表查到的出接口进行下一跳转发。同时 SL 减为 0 ,IPv6 DA 变为 Z:: ,此时路径信息<Z:, F::, D::, B::> 已无实际价值, 因此 F 节点利用 PSP(Penultimate Segment POP of the SRH ,SRH 信息倒数第二段弹出)特性将 SRH 路径信息去除,然后把 报文转发到 Z 节点。End.X SID 表示三层交叉连接的 Endpoint SID,用于标识网络中的某条链路,如下图所示。End.X SID 通过 IGP 扩散到其他网元,全局可见,本地有效。End.DT4 SID 表示 PE 类型的 Endpoint SID ,用于标识网络中的某个 IPv4 VPN 实例,如下图所 示。End.DT4 SID 对应的转发动作是解封装报文,并且查找 IPV4 VPN 实例路由表转发。End DT4 SID 在 VPN 场中使用,等价于 IPV4 VPN 的标签。End.DT6 SID 表示 PE 类型的 Endpoint SID ,用于标识网络中的某个 IPV6 VPN 实例,如下图所示。End.DT6 SID 对应的转发动作是解封装报文,并且查找 IPV6 VPN 实例路由表转发。End.DT6 SID 在 VPNv6 场景中使用,等价于 IPV6 VPN 的标签。SRv6 最大的优点在于可以灵活定义业务的端到端转发路径,因此特别适合与 SDN 结合, 打造真正可以编程的网络。
在广域互联领域,通过 SRv6 与 SD-WAN 的融合,在网络控制 器的集中控制下,可以在源端 CPE 上指定端到端的业务转发路径,为此可以衍生出多种有 价值的场景,如端到端路径控制、Overlay 网络与 Underlay 网络联动调优等场景。