SR是什么
SR(Segment Routing)是一种源路由协议,预先在源节点封装好路径所要经过节点分配的SID,当报文经过SR节点时,该节点根据报文的SID对报文进行转发。除源节点外,其它节点无需维护路径状态。SR支持MPLS和IPv6两种转发平面,即SR-MPLS和SRv6。
SRv6如何实现网络编程
SRv6报文结构
三层可编程空间
- Segment:对128bits SID的运用(Locator + Function + Arguments三部分)
- Segment List:可以将多个Segment组合起来,形成SRv6路径,即路径可编辑
- Optional TLV:报文在网络中传送时,需要在转发面封装一些非规则的信息,可以通过TLV的灵活组合来完成,即应用可编辑
SRv6在网络中如何工作
SRv6两种工作模式:SRv6 BE 和 SRv6 TE Policy
SRv6 BE
SRv6 BE类似于MPLS网络中的LDP,是指基于IGP最短路径算法计算得到最优SRv6路径,仅使用一个业务SID来指引报文在链路中的转发,是一种尽力而为的工作模式。其没有流量工程能力,一般用于承载普通VPN业务,用于快速开通业务。
SRv6 TE Policy
SRv6 TE Policy利用SR的源路由机制,通过在头节点封装一个有序的指令列表(路径信息)来指导报文穿越网络。SRv6 TE Policy用于实现流量工程,提升网络质量,满足业务的端到端需求。和SDN结合,更好的契合于业务驱动网络的大潮流,也是SRv6主推的工作模式。
SRv6如何计算路径
静态指定路径
静态指定路径是指通过 CLI/NETCONF 等方式人工规划,手动配置 SRv6 Policy。静态配置路径的方式无法自动响应网络拓扑的变化。
头节点算路
头节点算路和 RSVP-TE 类似。首先头节点利用 IGP 携带的 TE 信息和 IGP 链路状态信息组成 TEDB,然后基于 CSPF 算法,按照带宽、时延、SRLG(Shared Risk Link Group,共享风险链路组)和不相交路径等约束计算满足条件的路径,并安装相应的 SRv6 Policy 指导转发。
控制器算路
控制器通过 BGP-LS 等收集网络拓扑、TE 信息以及 SRv6 信息,并根据业务需求集中计算路径,然后通过 BGP/PCEP 等协议将 SRv6 Policy 下发到头节点。控制器算路支持全局调优、资源预留和端到端跨域。
参考资料: