作为一项新技术,Segment Routing(SR)最近几年非常火爆,它和另一个概念SDN有效结合,成就了一些非常有意思的东西,比如说SR-TE。

但其实,SR理解起来其实是SDN/SDWAN发展到一定阶段自然而然的思路。

SDWAN中非常重要的一啪就是 “如何自定义一条任意节点到任意节点的路径。”

自定义路径可以在传统的基于链路度量值的IGP选路之外更加灵活地进行最短路径度量和选择,为繁复业务提供体验更好的传输服务。

实现自定义路径不外乎下面的方式:

  • 隧道方式。
  • 松散源路由方式(loose source route)。
  • 严格源路由方式(strict source route)。
  • 级联正向代理的方式。
  • 传统NAT的方式。

日光之下,并无新事。对于overlay方式的SDWAN,其自定义路径实际上就是一种松散源路由。

但本文以隧道方式为例开始扯。

想想看,在传统的IP网络中,如何构建一条隧道:

很简单的操作,只需要在隧道两端的设备上 进行一些配置 即可,这也是当年很多网工们的日常工作。至于说隧道承载的数据包实际如何到达对端,那就交给IGP吧。

IGP是内部路由协议的统称,比如OSPF,IS-IS都是,它是分布式协议,所有路由器通过交换信息一起来计算最优路径。

现在,进入到SDWAN隧道场景,我需要在传统IP网络上overlay一个由隧道组成的网络,这意味着多条隧道要首尾相接,形成一个互联结构:
如果仍然按照传统的方式去配置隧道,网工和运维们是不是要跪了。传统IP网络的隧道的目的不是为了构建这种 大范围互联互通的overlay网络 的。

我在若干年前还真的这么构建过一个互联互通的overlay隧道网络,马上就要上集中控制器的时候,我离职了…当时的SDN理念是自发形成的,所以这不是什么高大上的东西,只要你身临其境并饱受了运维之苦,你也能想得到。

既然不想人肉部署,那么交给机器来做就是显而易见的事了,这就是SDN的思想。

新拉出一台机器,作为控制器,收集全网拓扑信息,只需要在这一台控制器上进行配置编排,随后将这些配置自动下发到各个节点路由器即可:

从体力活儿中解脱了,但还是很乱。

IGP的最优路径计算往往基于一些基础性的指标,比如物理距离,裸RTT,线路配置带宽等,但是overlay网络的最短路径计算就灵活多了,这就意味着它会相对频繁地重收敛。

如果路径频繁重收敛,上图中的机制就会产生更多的控制流量,即南向流量,隧道频繁拆建,会极大影响网络的同步。

换一个思路, 让数据包自带路径信息即可。 这样,仅仅需要底层标准的IP路由就能完成数据包在overlay网络上的运输。这就是SR的思路:

控制器只把路径信息下发到边缘设备,这些途径的路径类似一个松散源路由,以stack形式堆积起来,然后按照标准的IP路由逐跳转发就可以了,简单点说:

  1. pkt到达A,匹配到stream1,堆上标签栈B-C,A按照IGP查询到达B的下一跳,结果为A_n,发送给 A_n。
  2. pkt到达A_n,A_n看到标签顶部的B,查询IGP,直连B,pop掉B标签,发送给B。
  3. pkt到达B,B看到标签顶部的C,查询IGP找到达C的下一跳,结果为B_n,发送给 B_n。

你会看到,这一切完全只需要IGP查找即可,就和标准IP路由一样,但是显然就像源路由一样限定了数据包的经由路径。

也许你会说,这也不简单啊,至少需要对设备进行改造以支持标签转发吧。

具体到实现,确实是五花八门,但都是一劳永逸的事情,此外,不改造设备,我用标准的NAT配合源路由技术也实现了这些逻辑:
嗯,这其实也是源路由的一种实现方式。

但不要用源路由选项实现自定义路径,因为很多运营商路由器会严防这种行为,故而丢弃带有源路由选项的数据包!

对运营商而言,这是合理,你要无条件走它帮你规划好的路径。

事实上,运营商可能已经想到一些互联网公司护或者民间手艺人的过境流量里会藏着各种奇技淫巧以构建一些灰色的东西,所以禁止一些非必要的选项也是可以理解的。

至此为止,我没有提到MPLS,其实我是故意的。SR的思路是可以自发产生的,所以不必强行把SR和MPLS关联起来,当然,SR可以直接借用MPLS的实现。

在我看来,MPLS是一个陈旧的技术,在很多年以前,不得不设计一些复杂的技术去粘合IP,ATM等多种多样的网络传输协议,而如今,基本上就是IP协议,依托IP协议玩各种overlay,简单为王!

如果把SR和overlay网络结合起来,SR的节点都是overlay网络的节点,那么总体来讲:

  • SR不规定数据包的underlay逐跳路径。
  • SR规定了数据包的一条overlay的逐跳路径。
  • SR允许在underlay做ECMP。


如果单看SR技术本身,它确实没啥新奇的,但是和SDN技术结合,就可以实现非常简洁明了的自定义选路,这就成了SDWAN。

方便部署,快速迭代是SDWAN的特点,所以它注定不能使用传统WAN中的那种复杂的分布式协议,比如MPLS-LDP,IS-IS等,那些复杂的技术非常不适合S(oftware/elf)D(efine),充其量可以归到WAN优化的范畴。

传统的Underlay WAN依然由传统的运营商和传统设备商把持着,毕竟他们人多,有钱,可以充分地互动拉通。然而对于新生的SDWAN,则可以让更多的民间手艺人多分一杯羹。

无论是在既有的传统运营商WAN上做overlay,还是自建机房白牌自研设备互联,均属于SDWAN,无非是SDWAN的两大阵营,但它们均面临几乎相同的问题:

  • 民间手艺人阵营:没有足够的资金购买设备和带宽资源,没有足够的人力研发和运营。
  • 大型互联网公司阵营:业务为中心,没有足够的动机将资金和人力铺在底层基础设施上。

因此,SDWAN必须是简单的,易于部署,易于运维的,SR技术符合这样的特征:

当然了,SDWAN并非只有SR一种技术可用,SDWAN不是SR,SR也不是SDWAN。本文既然是闲谈SR,那必然要多些笔墨了。


浙江温州皮鞋湿,下雨进水不会胖。

理解Segment Routing和SDWAN相关推荐

  1. 2.3、Segment Routing基础之IGP Segment 类型详解

    本文将重点介绍IGP Segment 分发场景下常见的几种Segment类型,同时为各位介绍了这些Segment类型在在Segment Routing转发过程中的转发动作以及转发特性.本文将对各位理解 ...

  2. Segment Routing

    这几年,在云计算和SDN技术的推动下,很多网络新技术,新名词涌现出来,让人眼花缭乱,有些是包装概念,有些是技术创新.其中,Segment Routing可以堪称是在核心路由领域的黑科技. 在这篇文章里 ...

  3. Segment Routing MPLS学习笔记

    定义:段路由SR(Segment Routing)是基于源路由理念而设计的在网络上转发数据包的一种协议.Segment Routing MPLS是指基于MPLS转发平面的Segment Routing ...

  4. SR(Segment Routing)不是MPLS的优化和升级

    From the engineer's point of view, technology itself is not suitable to be discussed at a metaphysic ...

  5. RFC8402 Segment Routing Architecture 翻译

     黑色为原文 紫色为翻译 红色为校注 Internet Engineering Task Force (IETF)                                            ...

  6. 1.1、SR(Segment Routing Over MPLS) 介绍

    目录 SR-MPLS 介绍 Segment Routing定义与背景 业内对Segment Routing技术的评价 Segment Routing目的 传统思路网络架构设计 新思路:业务定义网络架构 ...

  7. Segment Routing IGP Control Plane

    本文是在读C. Filsfils et al.所著的Segment Routing第一卷第5章后所做的总结. 因为知识和能力有限,本章很多内容还没有理解,因此这里呈现的是极简版的. 通过扩展IGP协议 ...

  8. Segment Routing — SR-MPLS

    目录 文章目录 目录 SR-MPLS v.s. MPLS SR-MPLS SR-MPLS 的转发原理 SR-MPLS 的控制面 IGP Prefix/Node Segment IGP Adjacenc ...

  9. Segment Routing — Overview

    目录 文章目录 目录 Segment Routing 的发展历程 IP 网络 ATM 网络 MPLS 网络 Segment Routing 网络 Segment Routing 的发展历程 IP 网络 ...

最新文章

  1. mysql错误代码1045的解决方案_mysql错误代码1045的解决方案
  2. Python-opencv实现视频与图片的相互转换
  3. Spring 的@Bean 的用法
  4. Android 使用Listview的优化
  5. 历害了!教你自己搭建一个私人网盘..
  6. android strm,Android 关于so文件的随记
  7. 云计算市场多元并立,唯有合作才能共赢
  8. mysql weblogic_weblogic连mysql的问题
  9. SpringBoot2.1.5(13)--- SpringBoot 特性下
  10. 微信小范围上线“分付”功能;罗永浩宣布独家签约抖音;Github pages 可能遭遇中间人攻击 | 极客头条...
  11. 如何使用命令强制DC的复制
  12. MySQL中的锁机制-全局锁/表锁/行锁
  13. Spring Mvc:用MultiPartFile上传单个文件,多个文件
  14. 平板电脑黑苹果EFI_保姆级别教你安装黑苹果,提供大量EFI与工具驱动!
  15. maya中英转换插件1.3 更新发布及教程
  16. 跟着Vam一起学习Typescript(第一期)(更新中)
  17. 用Python解矩阵方程——Sympy模块
  18. 深入了解iPad上的MouseEvent
  19. JAVA(一)依赖注入的简单理解
  20. 2021年后一个算法工程师的门槛有多高?

热门文章

  1. 史玉洁:给伙伴股份 给员工舞台
  2. 300+零售CIO大咖齐聚杭州 他们聊了什么?
  3. 【算力网络】算力网络的发展趋势
  4. 工业智能网关BL110应用之61:如何实现智能楼宇控制BACnet 接入华为云平台
  5. 斜率优化dp 的简单入门
  6. 深度学习(9) 计算机专业方面的期刊介绍
  7. 从社会网络角度再现 老干妈和腾讯事件(0712,咯咯咯)
  8. Linux mkdir 命令使用介绍
  9. numpy提取某行(列)或某几行(列)
  10. MySQL事务的4种隔离级别