目前的网路是由协议定义的,如果一个网络协议有“缺陷”或者不适用了,那就再开发一个协议出来,协议的开发也显得“时不我待”。当我们要部署一个新业务时,就必须先去商讨这些标准,商讨完后,再进行开发,验证,最后,由于网络中每台设备都需要了解这些标准,所以我们需要在每台设备上都进行更新,这么一套下来,没有个3、 5年还真是难以完成。对于网络工程师来说,现在的协议,不管是私有协议还是通用协议也是越来越多。如此多的协议,你别说是各个精通,就算是都学一遍都是要花很长得时间。
但是随着互联网的飞速发展,传统网络越来越难以满足新业务的需求。矛盾越来越难以调和,人们不得不出来通过添加新协议、新设备等手段来缓解问题,但是却成效甚微。于是人们滋生了革命的想法,现有的网络架构既然无法继续演进发展,为何不推倒重来,重新定义网络呢?于是,越来越多人的加入“革命者”行列,意欲将网络打造成一个开放的,可重定义的环境。在一群人的努力之下,2006年就提出了SDN的概念。
SDN,即(Software Defines Network),软件定义网络,和传统的协议定义网络成了一个相对的概念。
SDN实现了转控分离,而传统网络的设备都是集成了控制层面和转发层面,是转控一体的
就拿部署一个运行OSPF协议的网络举例,要使这个网络的所有路由运行OSPF协议。各个设备通过建立邻居,通告路由并学习,从而形成路由表,这个就是路由的控制层面,再根据路由器的FIB记录的网段信息和下一跳进行数据转发,这就是路由的数据层面,所以传统网络的控制和转发都是由设备自身完成,是转控一体的。
传统网络中的设备就像没有指挥官的军队,缺乏统一的调度和管理。在网络中,不能分辨出是哪条链路拥塞,哪条链路空闲。在计算路由的时候,只会选择最优路由,这样会导致链路带宽的浪费。当想要改变数据转发路径时,需要在设备上手动修改开销等参数,不是很灵活。
在SDN网络中,路由器、交换机这样的网络设备只负责数据转发,而规划路由表内的目标网络、下一跳地址这些控制转发的内容都由控制器进行。另一方面由于路由器、交换机等设备不再进行路由控制,成本也会有所降低。调度网络,也就是在SDN控制器上改几行代码,省时又省力。
SDN网络架构分为协同应用层、控制器层和设备层。
协同应用层:主要完成用户意图的各种上层应用,典型的协同层应用包括OSS、OpenStack等
控制层:控制器层的实体就是SDN控制器,是SDN网络架构下最核心的部分。控制层是SDN系统的大脑,其核心功能是实现网络业务编排。
设备层:网络设备接收控制器指令,执行设备转发。
NBI北向接口:北向接口为控制器对接协同应用层的接口,主要为RESTful。
SBI南向接口:南向接口为控制器与设备交互的协议,包括NETCONF、SNMP、OpenFlow、OVSDB等
OpenFlow协议:控制器下发流表到设备上(重点)
netconf协议:下发配置命令
SDN架构的提出,不代表能够大规模的应用。
一是没有成体系的解决方案
二是安全性的不到保证
三是触犯了运营商和设备厂商大佬们的利益。因为新的网络架构让网络彻底软件化,自己辛辛苦苦建立起来的基础设施彻底失去控制权,而沦为转发管道。彻底丢失对网络的控制权,让自己研制的网络协议成为废纸,这是所有大佬都无法容忍的,但是思科、华为等大佬厂商毕竟纵横网络世界几十年,自然不可能坐以待毙。这些大佬在网络协议方面的技术还是有明显优势,数据转发也是他们的老本行。你SDN再牛,硬件上也无法离开思科、华为、H3C这些设备。就算大规模部署SDN,对用户来说,也更青睐大厂商的SDN解决方案。
网络厂商还提出了SDN的另外一种方案,那就是Overlay。
Underlay网络和Overlay网络这两个概念,就是底层网络(Underlay)仍然采用传统的架构,仍然跑着各种路由协议;但是上层网络(Overlay)则是在底层网络之上,构建出来的一个逻辑的网络,这个架构大概是这个样子:
对于网络中的各个终端来说,物理网络到底是什么样子它们不需要知道。只需要知道的是这个物理网络是基于IP转发的,所以报文要到哪里去,提供目标IP地址就可以了。
1.在大二层网络环境下,数据报文是通过查询MAC地址表进行二层转发,而MAC地址表的容量限制了虚拟机的数量。
2.网络隔离能力限制。
• 当前主流的网络隔离技术是VLAN或VPN(Virtual Private Network),在大规模的虚拟化网络中部署存在如下限制: 由于IEEE 802.1Q中定义的VLAN Tag域只有12比特,仅能表示4096个VLAN,无法满足大二层网络中标识大量用户群的需求。
• 传统二层网络中的VLAN/VPN无法满足网络动态调整的需求。
为什么传统网络大不起来
因为以太网交换机的工作原理是learn/flooding,这样的机制下如果二层域太大,一个broadcast就有可能影响到所有节点。并且STP是树形结构,单路径转发(冗余路径被阻塞),现代数据中心互联40G/100G情况下,会存在严重的资源浪费。
这个时候MAC Routing技术(Trill/Fabric-Path)应运而生,控制层面采用成熟的IS-IS协议,同时引入AF(assert-forwarder)来破环,这样就可以基于TriLL/Fabirc-Path来构建二层全连接网络。
但是很不幸的是,Trill弥补了STP技术的缺陷,实现了full-mesh的Layer 2 连接,扩大了二层范围,但是由于机制过于复杂、trill域内所有设备必须支持trill、多租户能力不足等缺陷。导致该技术只是昙花一现,并没有做到大范围的部署。
大二层网络架构发展趋势和比较
TRILL技术解决了STP环路组网和规模问题,通过成熟的链路状态路由算法,扩展IS-IS协议,构建无环网络,实现多路径负载分担。
VXLAN技术具有更好的可用性和扩展性,更易运维,已经成为IT&CT厂商力推的技术。
各Overlay技术比较: