SRv6技术探讨
2020-02-27王君健中国移动通信集团河北有限公司河北石家庄050021
王君健(中国移动通信集团河北有限公司,河北石家庄 050021)
1 简单高效的IPv6-only网络
作为下一代互联网的核心协议,IPv6 针对IPv4 的不足做了改进,除了提供更大的地址空间,还拥有更快的路由机制、更好的业务性能及安全性。主流设备厂商高端路由器、SR/BRAS 设备、交换机/xPON、家庭网络HG 等已经具备IPv6 商用能力,运营商的IPv6 部署规模也逐步扩大,IPv6建设大潮将至。
IPv6 的IP 地址域为128 比特,拥有巨大的地址空间,甚至可以为地球上每粒沙子分配多个IPv6 地址。无论建设物联网还是5G网络,运营商都有足够的IPv6地址分配给固定终端和移动终端。IPv6报文头由固定长度的报头和灵活的扩展头组成,固定长度的报头更有利于网络设备的转发处理,相比报头长度可变的IPv4 协议,IPv6 协议的转发效率更高。来自Facebook和其他公司的研究报告都表明,美国运营的IPv6 终端下载的速率比IPv4 的终端快15%~40%。IPv6 协议通过扩展头实现AH 和ESP,保证自身负荷安全,安全性比IPv4协议更高。
IPv6-only 是网络演进的最终目标,双栈部署属于过渡阶段。采用IPv4/IPv6 双栈模式会使网络复杂性增加一倍,网络的维护工作量增加一倍,甚至更多。双栈网络的规模扩展性有限制,公网IPv4 协议地址数量有限,而IPv6 协议地址接近无限,双方无法同步增长。双栈模式需要终端、网络设备和数据中心都支持IPv6 和IPv4 的双栈部署,接入网、城域网和核心网的每台路由器同时运行IPv6 和IPv4 协议,这对路由器的CPU、内存以及网络的稳定性和收敛性都提出更高的要求,需要运营商投入更多的资金升级和替换网络设备。
2 IPv6-only网络与SDN/NFV
SDN 和NFV 是当今驱动网络向前发展的双轮动力,它们不会因为基础协议从IPv4 切换到IPv6 而停滞不前,相反IPv6 协议更能促进SDN 和NFV 的发展。IPv6 协议支持即插即用,可通过无状态和有状态2 种自动配置方式获得IPv6 地址及参数,IPv6 终端部署非常方便灵活,有利于SDN 和NFV 的自动化部署。面向上层的SDN 和NFV,IPv6 协议除了具有IPv4 协议提供的所有特性,如BGP-LS、Telemetry、PCEP、NETCONf、YANG 等,还能提供基于IPv6 协议的Inband-OAM、SRv6的Network Programming功能,给SDN和NFV更大的支持,如图1 所示。SDN/NFV 的部署也使用户流量从双栈模式切换到IPv6-only协议相对更容易。
图1 云、SDN/NFV和IPv6三者关系
SRv6 通 过128 bit 的SID 实 现Network Program⁃ming 功能。128 bit 分为Location、Function 和Parame⁃ters 等3 部分,其中Location 表示到达该节点的路由信息,Function 和Parameter 则分别表示在该节点执行的函数及所需参数信息,如图2 所示。Location,Func⁃tion,Parameter这3部分没有固定的长度,其中Location字段的长度只要能够表达出到该节点的路由信息,其长度可变,不一定是64 bit,可以更短。Function 和Pa⁃rameter 的长度远远超过传统IPv4 协议地址的32 bit,这给网络程序开发者带来更多的变化可能。IETF 的相关草案定义了Function 和Parameter 的比特位,包含许多常用的函数及其参数,如简单转发操作函数End、执行类似IPv4 SR 的Adj 操作的函数End.X,支持IPv6 L3VPN函数的End.DX6,部分函数如图2所示。
云服务基于网络资源池化对资源统一调度、分配和管理,云服务可以利用基于IPv6 协议的SDN 和NFV技术,为数据中心提供基于IPv6 协议的VM、vNet 和vRouter 资源,使数据中心内部IPv6 虚拟网络和外部IPv6物理网络在逻辑上达成统一网络部署。
3 基于SRv6的E2E优质服务
基于IPv6 协议的SRv6 源路由技术提供端到端(E2E)优质承载服务。SRv6 网络将IPv4 网络中分段式业务路径演进到端到端的业务路径(见图3)。在传统的IPv4网络中,业务从起点到终点经过多层NAT 转换,很难对端到端的路径进行管控,在接入层和核心层都需要部署NAT,接入层NAT 解决终端设备公网IPv4 协议地址不足的问题,核心层NAT 解决数据中心虚机私有IPv4 地址和互联网访问等方面的问题。在接入网、城域网、骨干网和数据中心都统一到IPv6-on⁃ly网络后,可以更便捷地为用户提供端到端的业务。
SRv6 使用MBGP 作为控制面,将基于IPv4 MPLS转发面的L3/L2VPN、EVPN 演进到基于IPv6 转发面的L3/L2VPN和EVPN。SRv6提供的IPv6的L3/L2VPN和EVPN,不再使用MPLS、LDP、RSVP 协议,网络中协议类型大幅减少,网络越来越简化和扁平化。IPv6-only网络释放了双栈设备中IPv4 的相关资源如CPU 和RAM,IPv6-only 简化了网络的管理和维护,提升了网络的稳定性和收敛性。
IPv6 网络可提供功能强大的In-band OAM 功能,方便IPv6 网络性能测量和SLA 实现,也方便网络运维。In-band OAM 通过在IPv6 定义专用的扩展头,实现对转发面的各种性能数据进行测量,如时延、乱序、丢包等。IPv6 的In-band OAM 和SRv6 技术可以为用户提供更优质的SLA。
图2 SRv6的Network Programming
图3 端到端的极简IPv6-only网络
4 SRv6与L3VPN/EPVN业务的兼容性
SRv6可支持IPv6网络的L3VPN业务,IPv6 L3VPN 转发面是基于IPv6 而不是MPLS,因此也不再需要MPLS 控制面的协议如LDP 和RSVP。SRv6 的L3VPN 仍然使用MBGP 作为控制面协议,对MBGP 扩展了一个支持SRv6-VPN 前缀属性TLV。IPv4 网络中RD 和RT 等概念在SRv6 的L3VPN 网络中保持不变,MBGP 在向邻居通告VPN 路由时携带一个SRv6-VPN SID,这类似MBGP MPLS L3VPN携带VPN私网的MPLS 标签。Egress 节点依据报文中携带的SRv6-VPN SID 查询对应的VRF 转发表,再根据IPv6 报文目的地址查找路由和出接口。控制面的协议工作流程如图4所示。
图4 SRv6的L3VPN的控制面原理
a)PE1和PE2节点与RR 反射器建立MBGP邻居。PE1 节点有IPv6 L3VPN 和IPv4 L3VPN,PE1 向PE2 通告这2 个VPN 的私网路由2008∶1/64 和1.1.1.0/24,除了携带RD、RT 等属性还携带了2 个SRv6-VPN SID(属性值分别为A∶6 和A∶4)。同理PE2 通告的VPN1路由2009∶1/64 除携带RD、RT 等属性外还有SRv6-VPN SID 属性值D∶6,通告VPN2 路由2.2.2.0/24 除携带RD、RT 等属性外还有SRv6-VPN SID 属性值D∶4。PE1 和PE2 分别学习对方传递过来的VPN 私网路由,生成本地的2 个L3VPN 的VRF 转发表,用于对应的VRF流量转发。
b)RR反射器分别与PE1和PE2建立MBGP邻居,其IGP 如OSPFv3 或者ISISv6 也与RR 反射器建立正常的邻居关系,建立完邻居关系后,RR 反射器收到携带SRv6 相关信息的OSPFv3 或者ISISv6 链路状态。RR反射器与控制器通过BGP-LS 建立PEER 关系,RR 反射器向控制器发送域内IPv6 路由链路状态信息(包括SRv6的信息)。
c)控制器对收集的所有链路状态库(包括SRv6的信息)进行分析计算,考虑链路的物理带宽、实际使用带宽、设备的队列转发时延、业务要求的时延,使用的算法等多种因素,计算出L3VPN 流量从Ingress节点到到Egress节点的最佳SR路由策略(SR-Policy),并发送到L3VPN 的Ingress 节点。该策略也可以在控制器上手工指定后再下发到Ingress 节点,或者在Ingress 节点上手工配置。如图4 的步骤3 所示,控制器对In⁃gress 节点下发2 条策略A∶1∶1 和A∶1∶2 分别对应IPv6的L3VPN流量和IPv4的L3VPN流量转发策略。
SRv6的L3VPN业务转发比较简单,Ingress节点根据控制器下发的SR-Policy A∶1∶6 和A∶1∶4,对IPv6 L3VPN 流量和IPv4 L3VPN 流量执行不同的处理策略。每个SR-Policy 指定业务流量需要经过中间的关键节点,以及在该节点流量如何处理,如执行负荷分担或者指定特定链路或者简单转发。在流量的Egress节点则指明对流量执行的具体操作,如解封SRv6 报文头,查特定的VRF 路由表,根据内层目的地址查找下一跳和出接口,或者在公网IPv6 的路由表中查找下一跳和出接口,具体如图5 所示。IPv6 L3VPN 流量在A 节点执行A∶1∶6 策略,封装IPv6 外层头的源地址(A∶1)和目的地址B∶1,依据策略A∶1∶6 插入SRH 头及SR-List(B∶1 和D∶6),并根据外层IPv6 的目的地址(B∶1)查IPv6 转发表获取下一跳和出接口,并把流量通过该接口送往节点B。IPv6 L3VPN 流量到达节点B 以后,执行常规的END 函数操作,替换IPv6 外层目的地址为D∶6,并偏移SRH 头的指针。B 节点根据外层IPv6 的目的地址D∶6 查找IPv6 转发表,把报文送往节点D。报文到达节点D 以后,根据目的地址中D∶6 解封外层IPv6 头,根据D∶6 寻找对应L3VPN 的私网路由表,并根据内层IPv6 报文目的地址2009∶1 查下一跳和出接口。如果能查到对应目的路由则转发报文,否则丢弃。IPv4 的L3VPN 流量转发过程类似IPv6 的L3VPN流量,这里不再重复。
图5 SRv6的L3VPN流量转发过程
5 结束语
随着5G、物联网、智慧城市、SDN/NFV、云计算以及边缘计算等新兴技术的蓬勃发展,互联网产业对IPv6 的需求也日益迫切。各国都在积极进行IPv6 网络建设,以提升自己在下一代互联时代的话语权,并促进本国技术和经济的发展。随着网络逐渐向云化演进,各类智能应用、智能技术等新型技术业务层出不穷,新产业、新业态对网络的智能弹性提出更高的要求,SRv6 技术可为SDN/NFV 提供更多支持,提供可编程性和E2E 的优质服务,同时兼容传统的L3VPN 和EVPN 等业务,实现网络的无缝演进,势必会引领下一代网络发展。