第三届未来网络发展大会

网络全球 决胜未来

当前位置:嘉宾致词> > 分论坛四

SRv6:标准,架构及应用

编辑: 共浏览:1037次

谢谢主持人,非常荣幸再次来到这个台上。两年前,我其实也讲过SR这个题目,当时讲的是Segment Routing作为网络及交换矩阵这个题目。两年过去,其实整个SR是得到了整个业界的认可,我看到今天我们很多的嘉宾也提到了。去年的十二月份其实我做了一个研究,关于SRv6了,题目叫SR的思想,现在我讲SRv6非常像我两年前讲SR的状态,大概是这样的。所以今天我可能会给各位汇报一下SRv6的标准,还有架构和主要应用。

我在讲SRv6之前先看IPv6,整个来说,其实全球的IPv6还是在快速发展的,但是中国在IPv6其实是起了一个大早,但是赶了一个晚集。这个图是从整个IPv6的部署来说,它其实是在增长的,现在在全球来说是大概五万条。这个实验是挺有意思的,我自己做了一个实验。在用北京联通的安卓手机的话,你现在是可以访问IPv6,苹果不行,这说明了什么问题呢?就是说明我们现在具备了使用IPv6的条件。那么IPv6在全国是处于一个什么地位呢?这个是我看很多的网站,现在整个IPv6是在加速的发展,为什么IPv6大家都很重视呢?我觉得原因很多,但是对我们做网络来说,有一点非常重要,就是它提供了端到端的连接佛事,这个是很重要的,因为原来在互联网开始之处,大家发现地址是可达的,但是后来发现不够了就做了NET,其实它是很烦的。

SRv6的最大作用是什么呢?我们认为是完全释放IPv6的潜力,就是因为大家都会想一个问题,就是我们做IPv6改造当然不仅是为了满足工信部对我们的要求,更重要的是我们希望基于这个SRv的浪潮去实现里面的增值,那么SRv6为什么得到这么多人的认可呢?因为他可以干很多事情,在流量工程,快速的保护VPN,NFV,还有我们谈的服务链等等,这是通过SRv6我们真正的把IPv6的能力释放出来,非常重要。

那么现在到底这个SRv的标准化程度怎么样呢?我先介绍一下SR的标准化。这个右边是我们可以看到,最近两年欧洲先进网络实验室的厂商很多,在SR方面做了很多的互通设施,进展也是蛮快的,所以无论从整个SR的标准、架构,还有从长商的互通测试来说,是有比较大的进展的。那么SRv6怎么样呢?我个人其实是从第一版的WG开始做SRv6的,但是你看第一版的这个,用了三年半的时间还没有变成F4,其实在整个IETF的标准化来说其实是非常的不寻常的,这是为什么呢?因为在这个SRv6里面,因为它非常的有革命性的,所以现在在IETF里面有很大的作用。那么它必然就会出动其他的利益,比如说你做了SRv6了为什么还要做NSH呢?所以在这里,你们会看到整个这个进展会很慢,并不是说我们不努力,确实是整个进展我觉得还要两年的时间。其实不单只是这两个点,包括很多协议的扩展也是很基本的,所以整体来说这个还需要一些时间。

那么其他的进展怎么样呢?除了SRv6,其实你们会看到整个在2019年,基本上IETF基本上完成绝大部分的SRv6的标准化。你们会看到基本说在整个指标体系里面,在2019年会冻结带,但是SRv6还是需要一些时间的。那么对于SRv6,其实XR是我们SDN的传统系统,除了这个之外我们还有NX等等,除了思科自己做以外,我们还有SRv6的生态系统。我想说的就是Linux,它其实也已经有了很多的迭代,它也是SRv6的。其实我们看到了其实除了这些软件之外,现在还有很多商业芯片,包括刚刚发布的L2,包括我们很多熟悉的英特尔和制造网卡的厂商也是用SRv6。所以你会看到其实软件和硬件的生态系统已经建立起来了。但是必须要说明的是在这个里面比较慢的是网络设备,因为网络设备要解决非常快速的转发,在这么大的数据下面快速的转发,这是一个很大的挑战。

那么讲了这么多,我们建议的策略是什么呢?其实我觉得从整个目前根据整个硬件芯片和标准化的程度来说,这是我们要做的,如果现在做SR的话,我们加以还是要维持SR MPLS,因为在骨干网层面它还是稳定性第一的。如果你想切入到SRv6世界的话,我建议你们从汇聚或者是准入开始。到2021年或者是2020年的下半年,当标准冻结之后,你可以做下面的架构,这是我们在全球看到很多客户都是采用这样的方式来过度。

前面我介绍了一下SRv6的标准,下面我会讲一讲这个架构,架构因为时间的关系,可能会比较简单的来讲,其实我经常会用这一张图来解释SRv6的理解。虽然我们今天非常熟悉X86的体系,在上面写一个程序,但是这个程序无论怎么样写,他最后还是调用X86就是英特尔的指令来操纵,无论是读取数据包或者是做各种操作,最后最后都是落到CPU的指令。然后我们把这个架构类比到我们的网络里面来,比如说我们的网络类比上面的程序,SRv就是网络指令,后面我们会看的更清楚为什么它是指令,而且是可扩展的指令。就是说你自己可以定义自己的SRv指令,但是你不能定义CPU指令,因为CPU指令是英特尔给你的。所以现在很多人在定义自己的SRv6 Segment,这个就是SRv6的特征,他是用编程的方式来操控的。另外一个方式就是大家都谈到的极简,它整个从控制面和转化面都达到了极简,所以这个整个是一个比较大的点。其实我觉得这个不应该把它当成一个技术的演进,而应该是一个思想点,就是基于思考和设计和运用网络的方式而发生的改变,在SRv6里面。

SRv6的原理我很简单的讲一讲,就是其实大家会讲,SRv6他是在Segment Routing里面的,但是在SRv6里面它是没有标签的,那么怎么去表示这个Segment呢?在这个SRv6里面,就是它看起来是一个128位的IP,看起来是,但其实不是,一般来说你可以分成两部分,一个是用来寻址,还有一个就是执行各种指令,所以在SRv6里面,你可以简单的类比为一个SRv6的Segment对应一个标签,但是需要强调的是在这个SRv6里面,这个Segment看起来是一个V6地址,但是它其实是有语意的,它寻址之后它会有操作的。这个是目前定义的一些指令,但是不是完全的。这一部分是什么东西呢?这些就是属于我们的操作,缩写所有的指令看起来就是一个V6地址,这个V6地址就是嵌入在整个SR里面,就是这一长串对应的就是后面一页每一个的操作,就是这样一个比较简单的逻辑。但是问题是好处是我刚才说过了,就是在这整个操作里面你是可以自己定义自己不同的操作,现在已经有很多定义了自己的操作,比如说把SR应用于5G,比如说用于安全,应用于统计,都可以。那你说我定义了一个End操作,谁需要识别它呢?当然是你自己就可以了,你完全可以不把它标准化就可以用了,只要你认识这个End就可以了。当然了,我们鼓励你把你的指令放在整个里面来讨论,但是确实有很多是私人的End操作。所以它的架构我就很快的讲讲。

所以在整个SRv6里面,我必须要说SR从设计的第一天开始他们就是在一起设计的,什么意思呢?就是如果我们大家看回来最开始的Segment Routing里面,第一个点就是定义了SRv6,所以不要认为SRv6是后出现的,不是,一开始就想到了。所以这个也是我们思科研发的策略,就是我们在做这个SR之后,我们把它做了很多功能模块,我们看到很多功能是SRv6和SR都支持,比如说很多路径计算的算法,还有跨越流量工程,这些都是同时适用于SR和SRv6的,所以不要把他们看成两个对立的,他本身是在同一个架构里面的不同的变形。

下面我就聚焦讲讲几个案例,首先第一个是公开的商用的案例,是日本的软银,这个是运营商的案例,这个软银原来是做3G、4G的,在5G的时候他全部变成了SRv6,但是必须要指出,这个网络其实并不是说承载5G的,他也会承载它其他的一些家庭宽带、政企,他是一个融合的网络。而且软银的野心还是挺大的,他要把整个它的SRv6推到骨干网,当然这是他下一步要做的事情。

另外一个案例是ODT的案例,就是他们想去做不同的数据中心的负载均衡,前面讲了这个例子,这个橙色的这条线是正常的流量流向,从A到出口,这是最短路径,但是有一些流量可能我不想这么走,因为可能费用和质量的关系,我想先到这里再到这个出口,这个当然用这个SRPSL,因为刚才说了SRv6他们是有共享能力的,所以做这个是没有任何问题的。但是主要的问题是说为什么要在数据中心里面引用SRv6,或者为什么你们会想在数据中心里面用SRv6呢?因为现在很少在数据中心里面做SRPLS的话,因为如果做SRPLS的话你首先要解决一个很头疼的问题,就是解决LSP这个问题,因为你做LSP的话是不能有远端陆游的。这个是SR PLS的。但是到SRBL来说这个就不是问题了,因为只要IP可达就可以做流量控制。这个是我们刚才说的,为什么说SR能释放V6的潜力,就是因为它有充分的可达性。这个有一部分客户在做。

另外这个是我们小组在做的事情,现在还有一种OTC的案例,就是它现在有多的OTC,现在可能有一个OVERLAY网关,正戳的方式就是把这个弄通就结束了,也没有问题。但是有一些时候你可能户觉得OVERLAY网关可能先要去C2这个位置,再到C3这个位置,用VXLAN就比较难弄,对吧?但是我们不是还有SRTE吗?我们就把这个走到这里就结束了,但是你们要注意一个细节,就是OVERLAY和UNDERLAY方式是不一样的,因为UNDERLAY是需要提供Per-flow的支持。那么你可以把UNDERLAY的SR路径拉出来,这个结果你可以自己编写,在这里我们是永远的是VPP,主要是因为它开源并且有非常高的性能。这种做法的好处是什么呢?就是把整个问题的又交还给了应用上,但是我们的UNDERLAY层面,我们是可以提供一个SLA信息给你,本身我们不做OVERLAY或者是UNDERLAY的交接,交接放在哪里呢?放在这里。其实这个里面做的事情还有很多,我们也可以通过这种方式把这个信息交给我们主机去做,所以SRv6的好处是什么呢?就是打破了OVERLAY和UNDERLAY的界限,这个功能是非常大的。

下面我再讲一下服务链,服务链其实是老大难的问题,原来我们做的方式是通过路由的方式来做,因为这个最简单,也有人用这种方式来做,但是这个还是比较少的。那么对于SRv6来说,应该说对SR来说,尤其是对SRv6来说,做这个Solution还是比较简单的,如果你这个设备支持SRv6的话当然没有问题,但是毕竟大多数设备不支持SRv6怎么办?我们可以有一个叫SR代理来实现这个的支持。这个里面同样的在我们的小组也是做了这样的一个相应的文章和测试。首先这个例子就是Linux的主机,这个上面发起的是不支持的,所以前面这个设备就像一个代理,代理工作很简单,就是收到了SRv6之后进行处理发给不支持SRv6的设备,然后处理回来发回头。最右边这个设备本身是支持SRv6的,所以是两个版本的,一个是不支持的SRv6,一个是支持SRv6的,通过这样的案例就可以把流量工程和服务链完全的整合起来。所以在SRv6里面,今天来说,其实更多的创新目前阶段,应该还是在主机侧,网络设备其实是需要一两年的时间才会跟得上。

网络设备当然也不是说就是停止不动的,其实我们网络设备这边还有很多的创新,叫Flex-Algo,这里如果是传统的SRv6你会怎么做呢?你可能需要一个或者是两个或者是三个才能去表示或者是编码这个路径,传统方式是这样的,但是如果用了Flex-Algo之后只需要一个。为什么Flex-Algo只需要一个就够了呢?什么叫Flex-Algo呢?其实很简单,Flex-Algo的原理其实就是对于同一个设备和同一个地址分配多个点,每一个代表一个算码,那么我现在定义另外一个点,16803,我定义他是最小化的,我仍然运行最短的路径算法,那么我就生活一条最短的路径,没有规定说我最小化必须是它,对不对?其实就像在三这个上面我预测两个TOP数据库,分别进行最短路径的计算,但是最优化的方式是不一样的。通过这种方式我16803代表了什么?从一到三就是路径,这对于SRv6来说是非常非常重要的。那么Flex-Algo现在是什么状态呢?我们希望业界都做这个,对于SRv6来说是非常重要的。

好的,讲到最后,我再讲一点,因为我刚才讲过了,在2021年之前,我们认为正常来说,或者是一般来说你的骨干网还是传统方式的,那么你的接入设备是SRv6的,你把这个数据发到我们骨干网的PE之后,他不认识这个没有关系,他可以把它看成普通的IPv6数据,所以对于骨干网来说他看到的只是一个普通的带颜色的IPv6包,这个也可以一样传过去。它的好处是什么呢?我们可以利用骨干网多SRV和SRTE的能力,两端还可以做SRv6。另外一种就是我骨干网的设备,就是PE我是认识SRv6的,这个四这个设备就是相当于我上边那个图的骨干网,他是认识SRv6的,所以他要做一个啊操作是什么呢?他说最外层是B4End,这个就是对应于给它加上封装,他就可以穿过MPLS的网络,把这个SR定义的一个操作,这个操作就是只要送到这个目的地,就是这个地址的IPv6点,给它加上一个MPLS的包,这个就是互操作方式,当然这个设备要求就很高。就是说收到这个IPv6地址之后,然后给他加上一个MPLS的标签,要穿过整个SRH之后,到了远端的PE,把这个标签剥掉,再回到原来的标签。当然你在这个建设过程中,肯定会遇到各种各样的互操作问题,事后我们都会帮你解决。

最后总结一下我讲的东西,我觉得就是说SRv6是极简和可编程,基本上已经被业界广泛接受,但是客观的来说,它的标准化还需要一到两年的时间。如果今天你要做SR的话,MPLS目前已经成熟了,到2019年基本上大部分都会冻结掉,整SRv6的规模部署会在2021年。所以这就意味着什么呢?你在网络实施的时候要特别注意这个MPLS和SRv6的互操作。另外一点我觉得我自己的体会就是这个,就是说SRv6它不仅仅是一个技术的变化,就是说从MPLS演进到SRv6,它其实是一个整个思想的改变,不能说革命,可能是思想的改变,整个运维和开发体系是在转型的。它可以是主机也可以是网络设备,甚至可能是制作网卡的,谁都可以做,这个里面要看到底谁去做更合适,这个里面肯定有很多妥协和协商。

最后一页做一个广告,就是说如果你想知道所有这些东西的信息,就可以到这个网站上看,这个里面会有,当然是英文的。然后中文的内容就是在思科网站和SDNLAB里面会有,如果你想系统的看的话可以看这本书,这本书2017年4月份已经出版了,也是卖的不错。第二卷主要是关于SRT是在今年7月份要出的,也是由我的团队翻译的。SRv6现在还没有写完,所以可能它的出版可能要到2020年之后了。但是我觉得在这个书没有出来之前,可以先关注刚才我们说的这几个网站,获取最新的信息。

今天就到这里,谢谢各位。