SRv6

SRv6技术在网络通信圈近几年是一直比较火的技术(个人认为不成熟),也是因为很多人感觉不出来有什么样的变化,但同时作为通信企业正在演进的一个方向。小编带着大家一起学习了解一下什么是SRv6,首先既然是v6,那一定离不开IPv6技术的指示了,不过放心只需要了解IPv6头部报文的组成就好了,小编毕竟也不是研究院出身的,所以本文会更偏重于对技术的应用了解。

IPv6报头

早在1998年RFC2460定义了IPv6的规范,也就是《Internet Protocol, Version 6 (IPv6) Specification》就定义了IPv6的框架协议,但是该标准被2017年的RFC8200所取代。但并不影响此处介绍IPv6的头部,为了能让大家了解小编也是粗略的又看了一遍RFC8200的标准,比国内网上写的更加标准理解起来更加全面,有时间的小伙伴可以阅读一下原文(通过翻译软件)。

https://www.rfc-editor.org/rfc/rfc8200.txt

此处仅需要了解的是SRv6是在IPv6的这个“ Next Header ”上做文章的即可。

SRv6报文

头部报文

SRv6的报文在IPv6的“ Next Header ”的值是43,小编找了很多文献,很少写为什么是43,最后还是通过查阅标准定义找到了(有误欢迎纠正):

因为SRv6使用的是一种新的IPv6扩展头(Extension Header),称为“分段路由头(Routing Header,简称RH)”。根据RFC 8200中对IPv6扩展头的规定,每个扩展头都需要有一个对应的Next Header 类型值。其中:

0-42: 已经分配给现有的各种扩展头了,如HOP-by-HOP选项头、路由头等。

43: 尚未分配,以备将来新型路由头的使用。

44-255: 可用于未来新型的扩展头。

因此,IETF SRv6的设计者们选择将新的“分段路由头”的Next Header类型值设为43。这可以避免与现有扩展头的冲突,也预留了空间用于未来的新功能。

综上,SRv6的报头被定义为一种新的IPv6 “分段路由”扩展头,其Next Header的值为43,占用了RFC 8200中“预留给新型路由头”的数值。这使得SRv6可以无缝集成到IPv6协议栈中,实现基于IPv6网络的分段路由服务。

SR报文

SRv6利用IPv6扩展报头来携带路由信息。具体来说,它使用新的“分段路由”类型(Routing Type 4)的扩展报头,即SR头部(SRH)。

SR头部包含以下关键字段:

段列表(Segment List):包含一系列128位的SRv6段标识符(SID)。这些SID表示了数据流需要经过的路径段。

剩余段数(Segments Left):表示尚未处理的SID数量。

第一段(First Segment):指明段列表中的第一个SID。

在发送端,会按照路径段的顺序,从尾到头写入SID到段列表,并设置好First Segment和Segments Left的值。

在转发过程中,路由器检查到SRH时,会将目的IP更新为段列表中的当前活动段,即Segments Left所指的那一个SID,然后递减Segments Left。

当Segments Left减到0时,meaning该数据流已经经过完整的SR路径。最后一个节点将移除SR头部,并对内包进行常规的IPv6处理。

通过这种头部编程的方法,SRv6可以灵活地指导数据流经过指定的路径和网络功能,实现服务功能链的构建。相比基于MPLS的隧道,SRv6直接利用了IPv6原生的特性,简化了数据平面。

IPv6 头部
 +——————————————————+ 
 |  Next Header = 43  |
 +——————————————————+
       SR 头部
 +——————————————————+
 | Next Header | Hdr Ext Len |
 |  Routing Type=4  | Segments Left | 
 | First Segment |
 |  Segment List[0]   | 
 |         ...          |
 |  Segment List[n-1] |
 +——————————————————+

SRv6技术应用

还是讲了那么多报文的东西,甭说读者看困了,小编我都快困了,细节东西还是交给研究院吧,转发原理之类的实际上网络上也有很多文章,包括“SRv6 Segment ”的内容不多赘述了,有兴趣的小伙伴可以在网上找一下相关内容(建议参考华为、思科)白皮书内容。

回过头来继续说应用方面,SRv6(Segment Routing over IPv6)基于了IPv6的新型分段路由技术,通过在数据包头部添加路由信息实现端到端的服务功能链路构建。SRv6能够为5G、云计算、SDN和NFV等新技术带来巨大价值。

5G

在5G用户平面,SRv6可实现用户级别的服务功能链路构建。运营商可以通过编程不同的SID(段标识符)为每个用户提供定制化的UPF链路,实现用户/应用区分处理。如对需要低延迟的游戏用户,可直连到边缘UPF;需要DPI检测的用户可通过DPI UPF;普通用户可通过区域UPF。这种基于SRv6的UPF链路编排无需控制平面参与,大大降低了运维复杂度。

在5G控制平面,SRv6为基于SBA架构的5GC提供了编程灵活性。例如AMF节点可 injections SRv6 SID到UPF,指导其构建特定UPF链路;SMF节点可下发SR策略到UPF实现动态QoS管理。这种编程模型降低了网络设备的复杂度,通过软件即可实现功能升级和定制化。总体上,SRv6使5G网络向无状态、自动化的方向演进。

多接入边缘计算 (MEC)

MEC是将计算\存储\网络资源向网络边缘扩展的技术,需对大量虚拟化应用实现自动化部署和联网。因此SRv6为MEC架构带来了确定性和灵活性,首先SRv6可为MEC平台上的每个应用实例分配一个唯一的SID,并通过编排这些SID构建服务功能链,实现应用的零接触联网。

例如将防火墙、负载均衡等服务插入应用实例之间的流量路径,同时SRv6 SID可携带元数据,提供给每个网络功能更丰富的上下文信息。并且SRv6可完全基于IPv6 protocol实现服务链路控制,避免将网络功能虚拟化成隧道端点,降低了实现复杂度。

运营商网络

在运营商网络环境中,SRv6可用于实现灵活的VPN(EVPN后边小编会单独出文章介绍)服务和最佳出口选择。

针对VPN(EVPN),SRv6将MPLS VPN的标签替换为SID。PE设备可插入用户特定的SIDs实现区分服务质量。相比MPLS,SRv6 VPN解决了可扩展性问题,也便于与IPV6网络集成。

针对出口选择,SRv6可实现基于应用绑定的负载均衡和任 Cast路由。网络节点可根据应用类型为流量分配不同的SID,将其导向不同的出口节点。这种细粒度的流量工程可以提升网络的利用率和应用性能。为运营商提供了构建自动化和可编程广域网的手段,可支持服务创新和收入增长。

部署与发展

SR技术为当前网络新型技术,基于MPLS的SR-MPLS已经在业界得到了运营商和互联网客户的大规模应用和部署,但SRv6处于滞后的状态, 结合目前运营商都在部署的新型城域网、云网融合、云专线、5G切片等新型网络和业务试点,日后SRv6会普及应用。 截止2023年中SRv6依旧处在尝试阶段,大规模部署还未成熟。

总结

本文大面积篇幅主要是介绍SRv6技术的应用,在通信行业内来看,可以预见,未来经过发展,SRv6技术将逐步成熟并被产业应用。它的确定性、可编程性与IPv6天然的可扩展性结合,必将为新一代网络的构建提供关键支持。SRv6在云网络、5G、IoT等方面的应用前景广阔,值得进一步关注。标准化方面,IETF已经发布了一系列SRv6网络编程和数据平面等方面的标准草案,覆盖了SRv6技术的关键组件,为产业界提供了明确的技术规范。主要厂商如Cisco、Huawei、Juniper等都积极参与和推动相关标准的制定。

滚动至顶部