总17期
Solution    方案
Solution    方案
SRv6技术的发展与应用
文/姚民

在传统组网中,通常需要部署各种协议来支持业务的承载,这也带来了网络实现技术复杂,缺乏灵活性,运维效率低下等问题。而随着云计算、大数据等业务的普及,传统网络的问题日益突出,新兴业务需要网络具备自动化、智能化等能力来满足业务灵活部署和运维简便的要求。在这些需求的驱动下,Segment Routing(简称SR)技术应运而生。

什么是SRv6

SR是一种源路由技术,通过头节点为业务指定路径,并将路径通过有序的Segment列表封装到报文头中,中间节点只需根据报文头中的Segment列表指定的路径进行转发,无须维护状态,因此大大简化了网络部署。

SR技术最初是以MPLS封装为主,即SR-MPLS。SR-MPLS的初衷是对传统MPLS技术的不足进行改善。传统MPLS的不足主要包括以下两点。

过于复杂的信令协议

传统MPLS技术,不管是LDP协议,还是RSVP TE的信令,技术实现复杂,RSVP TE还需要每个节点都要维护链路信息状态,部署比较困难。而SR技术通过简单的IGP扩展实现标签的分发和扩散,通过源路由技术实现TE路径的选择。因此SR技术较传统MPLS简单了许多。

传统RSVP-TE不支持ECMP(Equal-CostMultipathRouting 等价路由)

RSVP-TE只会选择一条路径进行转发,而SR-TE可以天然支持ECMP转发。另外,SR技术可以更好的和SDN技术进行配合。作为一种源路由技术,可以通过SDN控制器,在头端节点即可指定整条转发路径。

综上所述,为了解决传统MPLS技术的不足,产生了SR技术。

作为需要在头端指定路径的源路由技术,SR要求其数据平面必须具有包含路径标识的能力,除了MPLS堆栈式的标签报文头,IPv6的扩展头也符合这一要求。 SRv6是直接在IPv6报文的IP扩展头中进行新的扩展,而这部分扩展没有破坏标准的IP报文头,这一实现很好地兼容了现网IPv6设备。

SRv6和SR-MPLS对比

报文格式上,相比传统的SR-MPLS技术,SRv6更为简单。传统SR-MPLS还是分为Overlay和Underlay两个层面,VPN是Overlay业务,Underlay是SR-MPLS承载。而SRv6是Overlay和Underlay的二者合一,都统一在了IPv6的报文中。二者报文格式差异见图1。

图1 SRv6和SR-MPLS报文格式

而在其他方面二者的对比参加表1。

表1 SR-MPLS和SRv6对比

可以看到,SRv6技术大大简化了传统网络,可以和传统网络无缝对接,可编程能力又可和SDN技术完美融合,将是IPv6普及后的主流网络技术方向。

随着近年5G、物联网以及云计算技术的发展,IPv4地址数量不足的问题也越发突出。业界推动IPv6普及的力度也逐渐加大,这同样也推动了SRv6技术的进一步发展。从早期仅仅作为IPv6封装的SR源路由技术,逐步演进到可编程SRv6。相比SR-MPLS,SRv6技术将业务承载的Overlay和网络承载的Underlay技术统一在了一起;同时SRv6也能与普通IPv6网络很容易的实现混合组网对接,相比SR-MPLS有更明显的优势。当然,作为一个变革的新技术,SRv6还在不断的向前演进。

SRv6的特色及其在组网中的应用

SRv6的特色除了其源自SR技术本身的源路由、无状态、可以通过SDN控制器集中控制外。其数据平面采用IPv6,同时具备和传统网络无缝对接、可编程、部署端到端的流量工程等优势。

SRv6与传统网络的无缝对接

SRv6是通过IPv6新增加的SRH扩展头实现的,而SRH头中会包含一系列的代表Segment的IPv6地址(类似SR MPLS中的MPLS标签)。和SR-MPLS不一样,在报文的转发过程中SRv6不会弹出Segment,而是通过SRH中的Segment Left(剩余Segment)字段作为指针,指向活动Segment,类似于SR-MPLS中的顶层标签。每经过一个SRv6端节点,Segment Left减1,同时更新IPv6报头的目的地址为Segment列表中当前Segment Left对应的Segment,并按照正常的IPv6转发机制进行报文转发。

在支持SRv6和仅支持IPv6转发的设备混合组网时,支持SRv6的节点会处理SRH头,会将SRH头中的segment替换到IPv6报文的目的地址中。而只支持IPv6而不支持SRv6的节点,收到SRv6数据包时, 则不处理SRH扩展报头,只是根据数据包目的地址进行IPv6转发。因此 SRv6可以与现有的IPv6网络无缝互操作。

图2为SRv6网络中转发过程示意。CE1到CE2之间的互通转发,PE2,P4作为segment节点,P3作为普通支持IPv6中转节点,可以看到,PE2等支持SRv6的节点需要将SRH头中的路径标识替换到IPv6报文头中的目标地址(图2中示例为P4),而P3设备不支持SRv6,则可仅按目的IPv6地址(图2中示例为P4)转发即可

图2 SRv6转发流程示意

可编程SRv6

SRv6技术通过将128bit的IPv6地址分为Locator、Function和Argument三部分实现网络编程能力。其中Locator用来标识到达该节点的路由信息;Function和Argument表示在该节点需要执行的网络功能和配套参数(如图3所示)。

图3 SRv6 Segment格式

Locator、Function、Argument这三部分没有固定的长度,其中Location字段主要用来寻址,其长度只要能够表达出到该节点路由信息即可。Function和Argument的bit位长度同样可变。Function和Argument的定义给网络程序开发者带来了更多的变化可能。IETF的相关草案目前已经定义了二十多种函数及其参数来满足网络可编程的需求。

SRv6几个基础Function对应的SID如下:

Ø End : 相当于SR MPLS中的Prefix-SID。用于标识网络中的某个目的地址前缀。

Ø End.X:相当于SR MPLS中的Adj-SID。用于标识网络中的某条链路。

Ø End.DX4:相当于VPNv4 Per-CE标签。动作为去掉外层IPv6报头,将内部IPv4报文转发给指定的下一跳地址。

Ø End.DT4:相当于per-VRF VPN label标签。动作去掉外层的IPv6报头,并基于内部的IPv4数据包目标地址查路由表后转发。

Ø End.DX2:相当于L2VPN。动作为去掉外层的IPv6报头,建立二层交叉连接

其他的还包括:END.DX6、END.DT6、END.DT46、End.B6.Insert、End.BM等等,这里不再赘述。

可以看到,可编程SRv6将网络功能通过SID来代表的方式,能够根据业务需要灵活地定义任意功能和业务,统一了Overlay网络和Underlay网络,这样便于将网络能力开放给高层业务平台,更容易和SDN结合,以便实现端到端的控制。

部署端到端的流量工程能力

在SR出现之前,网络和业务一直是分离的。业务报文从终端(如服务器)发出之后,需要网络侧基于各种标识来识别业务,再采用对应的转发策略。并不能做到从应用起点(服务器)就进行相应的网络转发控制。而随着SR-MPLS、SRv6技术在Linux等更多的系统上的逐步支持,从应用起点就可以部署到终点的端到端路径并进行流量工程的控制和调度。

SRv6在组网中的应用部署

SRv6技术应用极为广泛,适用于数据中心、园区网、广域网场景,应用侧的Linux等操作系统也已经支持SRv6,可以真正实现端到端的业务承载。特别是在广域骨干网中,会逐步替代传统MPLS技术,通过BGP或EVPN作为信令,利用可编程Function SID,SRv6可以支持对L2/L3 VPN这类Overlay业务的承载。另外,在Underlay网络承载上,SRv6支持TE流量工程,对于需要调度的流量计算出显式路径,并下发Segment执行。通过与SDN控制器相结合,SRv6可以支持域内、跨域的流量调度,并支持Disjoint(主备路径隔离)等部署模式,满足骨干网的业务需求。

SRv6能否可以替代传统MPLS

虽然SRv6有着种种优势,但在现阶段,SRv6还存在一些问题需要进一步解决。一方面,其主要技术标准目前还未有定稿,需要业界尽快达成共识,制定正式标准。另一方面,IPv6本身128Bits所带来的转发问题,也对现有网络设备转发性能造成了一定影响。

对网络设备而言, 硬件芯片(ASIC/NP)收到数据包后,会读取固定长度的报头内容,然后查找芯片转发表进行转发。如果报文头太长,则可能无法在一个处理周期内完成读取,而需要使用两个处理周期进行读取,这将导致吞吐量下降一半。当然,针对这个问题,专家们也提出了相应的解决办法,例如通过定义新的Segment类型uSID(Micro Segment)等方式来解决问题,这些讨论也尚未形成定论。

尽管SRv6现在还存在种种局限,但其部署简单、可编程的强大优势不容小觑,笔者相信在未来SRv6一定会成为当前传统MPLS技术的替代者,这也是网络技术发展的变革方向。

结束语

SRv6能够提供IPv6的L3/L2VPN和EVPN,摒弃了传统MPLS的LDP、RSVP协议,大幅减少了网络中协议类型,使得网络越来越简化和扁平化。其以极简、可编程的设计理念,真正实现了应用和网络的融合,从而提供端到端的优质承载服务。随着IPv6的加速部署,以及硬件芯片等产业链的不断完善,未来可编程SRv6技术必然会成为网络部署的主流技术。

分享到
关闭