深入浅出理解SRv6
What SRv6?
SRv6(Segment Routing over IPv6,基于IPv6转发平面的段路由)简单来讲即SR(Segment Routing)+IPv6,是新一代IP承载协议。
其采用现有的IPv6转发技术,通过灵活的IPv6扩展头,实现网络可编程。
图片来自网络
SRv6就是将Segment Routing源路由技术应用到IPv6数据转发平面,它也是IP2.0的核心技术。
上图详细的说明SRv6的产生历史,SR技术出现于2013年,这个时候SR技术就已经应用到MPLS数据转发平面。
而后在2019年11月25日,IPv4的地址全部耗尽,而目前就处于IPv4向IPv6过渡的阶段。
而下一代网络的技术核心也将是SRv6。
图片来自网络
SRv6的产生背景分为四个部分:
第一个就是软件定义网络(Software Defined Network,SDN)技术已经深入人心,而SRv6的控制平面也是基于sdn;
第二个就是云计算的迅速发展,也促进了云网融合,而SRv6也是实现云网融合的关键;
第三个就是在新兴业务方面的实现可能要基于nfv(网络功能虚拟化),而在nfv中是不支持当前的sr-mpls;
最后就是国家政策要求推进IPv6的全面部署,也推进了SRv6的发展。
下图展示的是分别基于MPLS和SRv6不同的数据平面对于报文的封装。
图片来自网络
Why SRv6?
为什么要用SRv6,主要分为三点,第一点叫做智慧,SRv6的智慧主要体现在三层可编程空间。
智慧:
图片来自网络
上图表示的是SRv6在IPv6报文中的位置,也是IPv6的拓展头。
前面是正常的IPv6报文,只不过在IPv6报文的拓展头部分加入SRH的信息,这部分就是SRH的报文拓展头。
其中最重要的是SRH中的Segment list,在这里每一个Segment list是一个128位的IPv6地址,Segment list也用来指导报文的转发。
那么第一层可编程空间就体现在Segment list的顺序上,可以自定义Segment list顺序,从而实现路径的可编程。
而每一个128位的Segment list都包含三个部分,分别是Locator,Function,和Args。
Locator主要携带路由位置信息;
Function用来绑定报文转发操作指令,这个指令包括end,end X,end DX,end DT等,每一个指令表达不同的操作;
Args是一个可选的参数,这个默认为空值,通过对这些信息的修改也就是第二层可编程空间。
最后一个可编程空间体现在Optional TLV上,可以在TLV中携带应用信息,从而实现VPN,服务链,TE相关的功能。
这部分内容也是可选的。
图片来自网络
这里说的是智慧,另一个是简单,简单主要体现在SRv6是完全基于sdn架构的。
SRv6不使用LDP和MPLS的RSVP-TE,SRv6自带流量工程,也就是SR-TE和SR Policy。
并且SRv6也是基于IGP和BGP进行拓展,在Overlay层面,SRv6采用的EVPN,可以看到简化后的网络结构。
简单:
图片来自网络
纯IP化:
最后一点是纯IP化,SRv6基于Native IPv6转发,SRv6通过扩展报文头实现,没有改变IPv6封装结构。
SRv6报文依然是IPv6报文,兼容IPv6设备。
基于Native IPv6,使得其可以进入数据中心网络,甚至用户终端,促进云网融合。
