239

SR-MPLS Vs. SRv6:是什么导致了SRv6的滞后?

 5 years ago
source link: https://www.sdnlab.com/23012.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

目前风靡一时的Segment Routing(SR)技术是由Cisco提出的一种源路由机制,旨在为IP和MPLS网络引入可控的标签分配,为网络提供高级流量引导能力。SR有两种方法,一种是基于MPLS的Segment Routing(SR-MPLS),另一种是基于IPv6的Segment Routing(SRv6),下面仔细研究一下这两种方法。

SRv6-Cisco-668x400.jpg

SR-MPLS Vs. SRv6

这两种SR技术都是对数据包中的路径信息进行编码,但两者的编码方式不同。

  • SR-MPLS使用标签栈来描述通过网络所需的路径。标签交换路由器(LSR)观察标签,弹出并转发。
  • SRv6使用嵌入在IPv6数据包中的SRH(Segment Routing Header),支持SRH的节点读取报头、更新指针、交换目标地址并转发。

这两种SR方法几乎不需要路由基础设施本身。在核心网络中不维持SR状态,因为每个包中都嵌入了转发指令。

相反,边缘路由器,或者控制器,在数据包被发送到核心之前,会创建路径并对数据包中的标签栈或SRH进行编码。

SRv6采用面临的挑战

SR-MPLS目前已经得到了一定的采用,特别是在服务提供商中。然而,SRv6的采用却一直处于滞后的状态。为什么?简而言之,硬件。

当涉及到转发时,SR-MPLS没有任何特殊的ASIC要求。尽管需要特定于SR-MPLS的控制平面软件,但这并不影响ASIC转发数据包的能力。因此,SR-MPLS的采用成本相对较低。

相比之下,SRv6对ASIC提出了一些特殊的要求。SRH是一个新的IPv6报头,仍是IETF的草案。 SRv6节点必须沿SR路径执行多个操作,包括读取SRH,将IPv6目标字段重写到路径中的下一个节点,更新指针以及执行特定于节点的操作。

这些要求并不是不可克服的,但是,为什么要将没有人会用的功能加入到硅片中呢?

要想改善这种情况,不支持SRv6的路由器须正常转发数据包,忽略SRH,不是每个网络节点都必须处理SRH。

SRv6的软硬件支持

到目前为止,Cisco的NCS5500和Nexus 9300GX以及Barefoot的可编程Tofino芯片都支持SRv6。此外,有传言称Juniper可能会在其Penta芯片中支持SRv6,因为Penta也是可编程的。

在一次技术领域日演讲中,思科的Jakub Horn表示,“我们现在的第一个硬件实现是在两个平台上。一个是定制硅片,第二个是商用硅片。两者现在都在IOS-XR 6.1版本中发布。显然,在能力方面,它们略有不同,定制硅片要稍微好一些。”

在软件中,Linux内核通过SREXT内核模块支持内核版本4.10的SRv6。开源FD.io项目也支持SRv6。

什么驱动了SRv6?

思科似乎是SRv6背后的推动力。思科进行了芯片投资,同时也在IETF中做了很多与SRv6相关的工作,并且似乎与FD.io SRv6实现相关联。

为什么?在思科的SRv6演示中,主题是网络简化。也就是说,运营商可以使用更简单的IPv6结构提供与MPLS堆栈相同的应用和服务。思科拥有驱动完整SRv6解决方案的所有硬件和软件产品。

简化是一个有趣的观点,但不确定MPLS对于运营商来说是否是一个复杂的问题。此外,SP网络的任何重大变化都将是一个缓慢的过程。

“简化”会推动SRv6的采用吗?目前,还没有答案。

原文链接:https://packetpushers.net/a-glimpse-at-two-approaches-to-segment-routing/


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK