随着SRv6(Segment Routing over IPv6)项目自2017年启动以来,其生态系统持续增长。SRv6已在包括软银、Iliad、中国电信、LINE公司、中国联通、CERNET2、中国银行和乌干达MTN在内的八个公共、大规模商业网络中得到部署。此外,25种硬件实现支持SRv6在满速运行。这些实现涵盖了定制硅(思科系统和华为)和通用硅(博通、Barefoot、Arccus、英特尔、Marvell和Mellanox)。开源社区也大力支持SRv6,有11个开源平台/应用程序。SRv6不仅支持自2017年以来的原生Linux内核和FD.io VPP,还支持P4、Wireshark、tcpdump、iptables、nftables、snort、ExaBGP和Contiv-VPP。最重要的是,它已成为IETF建议标准(RFC 8402,RFC 8754)。在这个系列文章中,我将讨论该技术的细节以及它如何通过消除如MPLS(多协议标签交换)、VxLAN(虚拟可扩展局域网)和NSH(网络服务头)等协议来简化网络。SRv6仅依靠原生IPv6头和头部扩展,提供与SR-MPLS相同的服务和灵活性,直接在IPv6数据平面之上。那么,什么是SRv6?
SRv6技术定义
SRv6技术将网络中的数据包处理定义为一种程序。这种网络程序以一系列指令的形式表达,这些指令以128位的段表示,通常称为段标识符(SID)。它们的形式类似于IPv6地址。网络程序的第一条指令放置在数据包的目标地址(DA)中。如果网络程序需要多个指令,则剩余的指令列表放置在段路由扩展头(SRH)中。例如,一个包含三个指令的SRv6网络程序,第一条指令放置在数据包的DA中,其余两条指令放置在SRH中。图1展示了包含三个指令的SRv6网络程序。网络程序可能只用一条指令表达。在这种情况下,第一条也是唯一的指令将放置在DA中,不需要SRH。
SRv6指令
SRv6指令可以表示任何拓扑或基于服务的指令。例如,与流量工程(TE)和快速重路由(FRR)相关的指令——“End”和“End.X”,以及虚拟专用网络(VPN)指令——“End.DX”和“End.DT”——都是IETF定义的SRv6指令的例子。End指令表示到达给定节点的最短路径。End.X指令表示到达给定节点的最短路径,随后通过特定链路进行转发相邻。这两个指令可以通过SDN控制器结合使用。
SRv6的实际意义
SRv6通过简化网络架构,消除了对MPLS、VxLAN和NSH等传统协议的依赖,为运维和网络工程师提供了极大的便利。它允许工程师直接在数据包头部编程,指定流量应发送到何处以及如何处理。这不仅提高了网络的可编程性和灵活性,还简化了网络配置和管理。随着SRv6技术的不断成熟和广泛应用,网络工程师将能够更有效地设计和维护复杂的网络环境。
原文: APNIC Blog(2020-05-01)|编译自 APNIC Blog,事实以原文为准。
来源:APNIC Blog