转载自:https://www.douban.com/group/topic/153189397/

铁打的数据,流水的技术。

这也许会是多年从事ICT行业老兵对IP技术最深的感受,长江后浪推前浪,技术的波浪那是一波一波的,稍有不慎,前浪已躺在沙滩上。

今天我们就来聊一聊承载传输网络中IP数据传输技术从MPLS到SR技术,再到SRv6,到底都发生了什么。

MPLS

MPLS全称是Multi-Protocol Label Switching,直译过来就是多协议标签交换,它是操作在OSI的2层(数据链路层)和3层(网络层)之间的数据转发技术。

那么MPLS能风靡至今,靠的是什么?简单来说,它靠的是两把主要的刷子。

第一把刷子:LDP标签分发协议,解决传统路由技术剥洋葱式的繁琐;

通过LDP协议,MPLS把路由信息映射到标签信息上,而数据被封装在了盒子里,上面贴了标签,每个经手的人只需要读标签就知道盒子该送到哪。而传统的路由网络里面,每个经手的人都需要打开盒子,看看里面的内容,再决定送往哪。如同我们生活中的快递包裹标签,LDP自身不维护状态,转发是无连接的,跟着IGP走到哪算哪。

第二把刷子:RSVP-TE基于流量工程扩展的资源预留协议,灵活选择转发路径;

相比于传统的路由协议基于目的IP的简单转发,RSVP-TE最大的优势在于收集了整网拓扑和链路状态信息,可以根据业务的需要灵活地选择流量的转发路径。RSVP如同我们开车用的导航软件,它在计算行驶路线前需要收集道路信息并知晓当前路况,然后基于你的要求,上不上高速,是否避开拥堵,为选择一条合适的转发路径。

看上去MPLS很完美,但是现实很骨感!

MPLS的两把刷子虽然解决了很多问题,但MPLS对技术是做了加法,MPLS是通过在原有IGP协议基础上增加LDP协议来实现标签的分发,又因为LDP不具有流量工程,增加RSVP-TE。然而RSVP信令非常复杂,同时还得维护庞大的链路信息,因此信息交互效率低下,扩展也非常困难。

也正是在这样的背景下,SR(Segment Routing)技术应运而生。

SR

伟大的达芬奇老师曾经这样教导我们:"Simplicity is the ultimate sophistication."即,"大道至简"。

人类天生的惰性总是希望事情简单化,Segment Routing(简称SR),就是带着这样一种使命,对MPLS做了革命性的颠覆和创新。

那么SR到底做了什么?简单总结就是“一减一集中”,有点一花一世界的感觉。

减:既然LDP不维护状态信息,只对IGP中的目的IP和MPLS标签做了一层映射,本质上是依靠IGP协议制定标签转发,SR技术干脆直接使用对IGP协议扩展SR属性,不再部署LDP协议,由IGP来分发标签(这怎么感觉就像快递员小哥也要被淘汰一样)。

集中:既然每个节点都要通过RSVP进行大量的交互以维护全网的状态信息,干脆把RSVP功能集中起来,不用每个节点都计算交互。这也正谙合了SDN的思想,集中控制管理,可以说SR天然的支持SDN。

我们引用一个视频来说明SR,相信更容易理解:

(视频传不了,请移驾公众号吧)

在这个例子中我们不难理解SR的几个特点:

• 源路由:在始发机场西雅图贴上标签路径。

• 无状态:中间机场不需要知道行李从哪来,最终去往哪里,而只需要根据标签转发。

• 集中控制:机场代码由航空运输系统集中分配和维护(当然在SR世界里,表达的路径标签也是集中计算和下发的)。

但在这需要强调的是,上面的SR在数据平面仍然是基于MPLS的,无论控制面分发标签是基于IPv4还是IPv6,从本质上来说还是MPLS下的Segment Routing,也就是SR-MPLS。

当网络全面由IPv4向IPv6演进时,我们能不能摆脱MPLS ?

答案是肯定的,这也就是我们最后要聊的SRv6,也就是IPv6下的Segment Routing(SRv6)。

SRv6

我们先看一看SRv6与SR-MPLS在帧结构上作了哪些改变。

可以看得出,SRv6在IPv6报文中新增了SRH扩展,来替代传统的MPLS下的标签转发功能,并使用128位的IPv6地址作为网线节点标识SID。

当传输数据时,SRv6在首节点传输路径上和各节点的SID集合起来以Segment List的形式放在SRH中,并通过SL(Segment Left)来表示中间节点的数量,以此修改SL值来实现下一跳。

与SR-MPLS相比,传统的SR-MPLS是在MPLS的基础上运用了减法和集中的思想,减去LDP集中RSVP,而SRv6则是在传统SR-MPLS基础上,给我们带来了大一统和编程的思想。

为什么要说SRv6有大一统的思想:
从上面的帧结构对比中我们可以看得出,与传统SR-MPLS的3层类型标签(VPN/BGP/SR)相比,SRv6在标签分层上更为简单,只有一种IPv6头,以此实现统一的转发。

另外,由于SRv6帧头的标准性,使得它更能兼容现网的IPv6设备,当中间节点不支持SRv6功能时,也可以根据IPv6路由方式来转发报文。

给我们感觉就是,全网都可以采用统一的数据转发技术,这也是为什么说SRv6具有大一统的思想。

那为什么又说SRv6具有编程的思想?
这主要是SRH扩展中128位SID特殊的帧结构中定义的Function字段。

Function字段支持编程自定义,可以根据业务需要灵活地定义任意功能和业务。比如说,可以定义Function为END,表示此SID标识的是一个节点,当定义为END.X时,表示此SID标识的是一段路径信息。

这就使得SRv6融合了编程的思想,可以提供更加灵活多样化的服务,这是传统的SR-MPLS所不具备的。

最后总结一下,从MPLS到SR(SR-MPLS),通过IGP扩展SR属性省略了LDP协议,并实现基于源地址标签转发的集中控制。从SR到SRv6,通过在IPv6中增加SRH字段,实现基于IPv6的标签转发,替代传统的MPLS下的标签转发功能。

至少在目前来说,SRv6提供了可预见的网络业务变革的最终形态。

本期就聊到这儿了,感觉您的阅读,谢谢!

部分图片来源于网络,若侵权,请联系,将及时替换!

转载:从MPLS到SR,再到SRv6,到底发生了什么?相关推荐

  1. 广域网技术PPP、PPPoE、MPLS、SR(分段路由技术)(HCIA)

    一.广域网技术产生背景 1.广域网技术产生背景: 2.广域网设备角色: 二.了解PPP原理pap和chap认证.以及建立过程 1.PPP原理 2.PPP链路建立流程: 3.LCP报文格式 4.PPP认 ...

  2. 【转载】浅的不能再浅的浅谈百利金单双胡及全字尖

    入笔坛粗略算起来已经快六年了吧,从最开始的 lamy2k 到一心想收全五大,到最后变成了只玩百利金400大小的系列笔. 期间认识了很多好玩的人,吃过很多饭,扯过很多淡(要不是爷们居多,估计可以早都炮火 ...

  3. 【转载】程序员毕业后的第二年发生了哪些变化?

    https://blog.csdn.net/csdnsevenn 作者 拭心 原标题 <毕业两年总结> 如需转载,请联系原作者授权. 去年七月写了<毕业一年总结>,一转眼就又是 ...

  4. [转载] 弄懂JDK、JRE和JVM到底是什么

    参考链接: JDK JRE和JVM之间的区别 首先是JDK JDK(Java Development Kit) 是 Java 语言的软件开发工具包(SDK). 在JDK的安装目录下有一个jre目录,里 ...

  5. 3%!微软只录用最顶尖的人才!

    在公司组织和管理方面,微软始终遵循着这样一项策略,即坚持发掘既懂专业技术又深谙经营之道的精明人士.我们可以把这项策略归结为4项原则:   聘请一位深刻了解技术和商业经营的CEO(首席执行官)   ...

  6. SRv6技术课堂:SRv6概述

    作者简介:李振斌 华为首席协议专家/IETF互联网架构委员会(IAB)委员.负责华为的IP协议研究和标准推动工作.自2009年起积极参与IETF标准创新工作,主导和参与了大量IETF RFC/草案.在 ...

  7. 广域网技术——SRv6隧道类型及数据转发

    目录 SRv6节点 节点角色 节点行为 SRv6数据转发隧道建立方式 SRv6 BE L3VPNv4 over SRv6 BE EVPN L3VPNv6 over SRv6 BE SRv6 TE Po ...

  8. SRv6网络编程:开启IP网络新时代 | 一文读懂SRv6 Policy

    SRv6 Policy利用Segment Routing的源路由机制,通过在头节点封 装一个有序的指令列表来指导报文穿越网络.SRv6利用IPv6 128 bit地 址的可编程能力,丰富了SRv6指令 ...

  9. Ajax 完整教程(转载)

    第 1 页 Ajax 简介 Ajax 由 HTML.JavaScript™ 技术.DHTML 和 DOM 组成,这一杰出的方法可以将笨拙的 Web 界面转化成交互性的 Ajax 应用程序.本文的作者是 ...

最新文章

  1. NeurIPS 2020论文评审结果出炉,提前拒稿、作者审稿惹争议,网友:改投别家吧...
  2. SAP Link Between Material Document and Accounting Document Table
  3. 2.View绘制分析笔记之onMeasure
  4. 如何解读「量子计算应对大数据挑战:中国科大首次实现量子机器学习算法」?——是KNN算法吗?...
  5. Nginx 负载均衡 - linux下nginx加载配置文件异常处理,提示invalid PID number in “/run/nginx.pid“问题解决
  6. 【工具】24K纯吊丝超低成本低功耗电流测试方案,esp32实测功耗
  7. python转成exe_将python程序转换成exe程序
  8. Android 实现Activity后台运行
  9. 解决Mac下安装新版本IDEA无法启动
  10. MySQL的变量分类总结
  11. 生产环境中CentOS5.6下配置LVS(续)
  12. maven安装Ojdbc6
  13. 手机通讯录html模板,手机通讯录导模板
  14. ubuntu系统计算机_显卡-性能测试软件
  15. 搭建一个独立英文网站费用多少?
  16. 支付宝个人支付接口,无需营业执照
  17. 副族元素从上到下原子半径_原子的大小以原子半径来表示
  18. PT100温度传感器的工作原理
  19. 【bypass】403绕过
  20. asp.net毕业设计家电维修保养信息系统

热门文章

  1. I/O 虚拟化技术 — VFIO
  2. 因果推断、强化学习与理性人工智能奇点
  3. JStree 绘制文件树(1)—— JsTree使用Demo以及自定义图标更换
  4. 程序创业:小型软件公司如何做大(转)
  5. JAVA基础--java 常用编辑器介绍及比较
  6. 现代信号处理技术(一)信号的分类和正交分解
  7. 【Python+百度API】实现人脸识别和颜值检测系统(包括人脸数量、年龄、颜值评分、性别、种族、表情检测)(超详细 附源码)
  8. css基础选择器有哪些
  9. 熊猫终于过去了....
  10. 【编辑中】python 常用模块