SDN

未来的数据中心网络包括三大件:SDN、Overlay无状态网络、vDC虚拟私有数据中心。

1 SDN最早为人们所熟知,即软件定义网络。核心理念是将网络功能和业务处理功能与网络设备硬件解耦,变成抽象化的功能,再通过外置的控制器来控制这 些抽象化对象。通过把传统网络的紧耦合架构拆分为应用、控制、转发三层分离的架构,网络将不再成为制约业务上线和云效率的瓶颈,而是在完成数据传输任务的 同时,也能变得和虚拟化后的计算、存储资源一样,成为一种可灵活调配的资源。

SDN包含控制器和openflow两大部分,控制器是一个软件,可以对整个网络设备进行管理和控制,管理包括下发转发表项,控制包括对所有网络设 备运行状态进行监控。Openflow是控制器与网络设备之间互通的语言,控制器通过Openflow对所有网络设备进行转发表项下发,设备管理。

2 Overlay无状态网络技术也是未来数据中心的重要组成部分。Overlay是叠加的意思,即通过在现有网络上叠加一个软件定义的逻辑网络,原有 网络尽量不做改造,通过定义其上的逻辑网络,实现业务逻辑,从而解决原有数据中心的网络问题,极大的节省传统用户投资。Overlay是一种将(业务的) 二层网络构架在(传统网络的)三层/四层报文中进行传递的网络技术。这样的技术实际上就是一种隧道封装技术。其实在网络技术里已经有了不少的封装技术,比 如MPLS、VPLS、GRE等等,那么为什么还需要这样一种新的封装技术呢。
Overlay最为关键的是要实现无状态网络,即在多个数据中心之间互访,虚拟机迁移都可以无感知地进行。对于上层应用业务无告知,也许一种业务是 多个数据中心同时多个虚拟机提供的,这个在Overlay网络里再正常不过了。Overlay目前包含有三大标准技术,其中当属VXlan技术最受关 注,VXlan是思科和VMware共同提出来的,自从被提出来就广受关注。从封装的结构上来看,VXlan提供了将二层网络overlay在三层网络上 的能力,VXlan Header中的VNI有24个bit,数量远远大于4096,并且UDP的封装可以穿越三层网络,比VLAN有更好的扩展性。在数据中心 里,Overlay提供了一种解决数据平面转发和多租户隔离的技术手段,而之前说到的SDN,是定义了一种控制和管理的网络架构。两者在未来数据中心里作 用并不冲突,而且VXlan技术还是SDN部署的必要条件,只有部署了VXlan才能上SDN,两者可以有机地结合,共同发挥作用。

3 未来的数据中心有了SDN和Overlay,是不是就够了?当然不够。还有一个重要的组成部分,那就是vDC虚拟私有数据中心。vDC虚拟私有数据 中心其实包含很多内容,安全的虚拟化,服务器的虚拟化以及网络的虚拟化,对数据中心全面做虚拟化。vDC虚拟私有数据中心网络部分的典型技术目前是 VMware的Neutron网络技术。Neutron目的是为 OpenStack 云更灵活地划分物理网络,在多租户环境下提供给每个租户独立的网络环境。另外,Neutron 提供 API 来实现这种目标。Neutron 中用户可以创建自己的网络对象,如果要和物理环境下的概念映射的话,这个网络对象相当于一个巨大的交换机,可以拥有无限多个动态可创建和销毁的虚拟端口。 Neutron是一个站在SDN之上的,提供接近应用层的网络虚拟,偏应用层的技术,是SDN的有效补充。SDN实现的是三层以下的虚拟化,而vDC网络 关注的是四到七层的虚拟化。

SDN的本质定义就是软件定义网络,也就是说希望应用软件可以参与对网络的控制管理,满足上层业务需求,通过自动化业务部署简化网络运维。

1 SDN标准:ONF

网站:https://www.opennetworking.org/


参考:http://www.cnblogs.com/qq952693358/p/5835640.html

SDN的核心:可编程性

SDN的思想:SOA面向服务

面向服务的体系结构(service-oriented architecture SOA)

使网络连接的大量计算机易于合作,以 服务 而不是人工交互来交流信息。
使得更可用的,更灵活又可拓展的应用和服务得以构建,测试,部署和管理。

软件定义网络

网络是IT行业的基石。
网络如果以正确的方法来架构和运用,就能成为目前最大的业务推动者:把网络,服务器和存储紧密联系在一起,使SOA原则应用于网络层。
SDN 和 API 更加方便地实现 对网络和服务的 编程意图 和 状态接收。
将SOA原则应用于网络层,网络变的更加容易,它提供的服务更加可以通过编程来实现,更加灵活。使得企业可以以更快的速度转换IT技术。

究竟什么是软件定义网络?

SDN是一种简化网络的方法 和 体系架构,使得 网络对其工作负载和服务的要求更具有反应性,从中也可以窥探出未来网络的发展趋向:走向智能化。
SDN提供一种功能:使得网络能够被运营商以编程的方式来访问,这样的目的是 1)实现网络自动化管理 以及服务编排。 2)能够跨路由器,跨交换机进行网络配置。3)对执行操作的应用程序 和 网络设备的操作系统 进行解耦合;即将应用程序和操作系统之间的关系理顺。

注:耦合就是程序中的一部分跟其他部分之间的关系。解耦合就是把必要的耦合理顺,同时尽量减少不必要的耦合(这一句其实就是高内聚低耦合的通俗解释)。

SDN为什么会出现?

从历史上看,网络配置的特征 是静态的,不变的,通常是不允许触碰的。需要在设备上面人工手动,基于命令行来进行配置。

静态的网络配置导致了什么问题?
1)可管理性差 2)核心的可拓展性差

需要对付一个比较大的网络(有许多的交换机,路由器以及服务器)的时候,比如需要一个操作来应用到在整个操作系统的所有设备的时候,人工管理很明显力不从心:根本不够灵活和敏捷;并且不能支持动态配置和瞬时数据(即配置并不是持久地保持在配置文件中)。

于是乎,SDN出现了。

SDN体系的一个主要功能是:在一个平台上编写应用程序,利用从不同来源获得的信息,根据这个网络的拓扑结构和情况 专门定制对这个网络的操作。

SDN体系 三种理解

理解一:集中式的管理下 分布式1)控制2)管理3)数据平面。

这句话,从前半句话和后半句话进行理解。首先 集中式的管理,代表着SDN体系和传统体系的不同:由我们计划的策略决定的一些规则 集中地进行管理(比如策略的安全性,质量以及监控)。其次 分布式的平面,代表着我们决定的策略以及一些规则 是具体应用在网络中的每一台网络设备上的。

策略针对特定的网络 集中地进行一些修改和增删。而策略所需要执行的操作,则是具体到这个特定网络中的每一台网络设备中。

这样做的好处:灵活,可拓展性强,比起之前的旧的网络体系来说,控制能力大大增强。

理解二:SDN并不是取代现有的路由器和交换机的控制平面,而是进行补充。

怎么补充?SDN提供整个网络的拓扑结构,原有的控制平面只能看到小部分,而现在SDN提供了整个网络的拓扑结构和状态,这使得我们的决策更加具有准确,更加具有弹性:比如某一台网络设备出现了故障,我们能够迅速的根据相关的网络拓扑以及周围网络设备所提供的信息解决故障,提供了最大的保护。

理解三:SOA 和 SDN

开篇介绍了SOA的概念:使网络连接的大量计算机易于合作,以 服务 而不是人工交互来交流信息。

从上文来看,SDN是如何贯彻SOA的?
SDN提供一种功能:使得网络能够被运营商以编程的方式来访问
与SOA联系:使得服务的构建和测试,部署与管理,通过编程的方法来实现,更加灵活,具有可拓展性。

也就是说,SDN是一种面向服务的体系结构(SOA),这是它通过 可编程性 来实现的。

可编程性,体现了SOA的理念,是SDN的核心。

小结一:

从上文来看,SDN可以从两个方面入手:
1)它是如何解决传统网络的问题(可拓展性差,不灵活等等)的?-利用 集中式的管理下的 分布式控制平面,管理平面,数据平面;提供全局的网络拓扑图。
2)它所贯彻的思想?SOA面向服务,利用服务来进行网络设备之间的交流。如何实现?SDN的可编程性
3)SOA和SDN的可编程性 带来了什么?提升了SDN网络的可拓展性和灵活程度,这一点和解决传统网络的问题联系了起来;使用户能够更加便捷的管理网络,运维人员和管理员能够迅速响应需求;使得应用程序更加贴近网络。

我没有什么雄心壮志,我只想给自己和关心自己的家人和朋友一个交代,仅此而已。


SDN前瞻 网络的前世今生


目前网络层面流行的技术概念:虚拟中心;公有云私有云;数据中心等等。

SDN主要的模拟器:Mininet OpenDaylight(Cisco) ONOS(AT&T等运营商主流的SDN工具)

重要技术:SDN控制器。

标准的定义:ONF:是由 Microsoft Google 等互联网公司定义SDN标准。而不是传统的ISO,RFC。

传统网络

PC-PC:网线连接

网卡 + 网线 + 协议栈 组成最小单元网络
1)网线提供物理介质,承载比特流/电信号(数字信号)。
2)网卡进行数据处理,将比特流转换为数据,将磁盘上的数据/字节 转换为 网线上的比特/电流。
3)协议栈作为沟通语言,实现通信过程中的数据解析,地址寻址,数据流控制。

缺陷:无法实现远距离的通信。

网线不够长?物理限制 -> 中继器

信号中继,整形滤波,中继和放大信号。

缺陷:中继器只有两个接口,无法实现多主机的直接通信。

解决中继器的缺陷 -> 集线器 Hub

集线器,即多口中继器,是OSI七层模型的物理层模型。

缺陷:带宽利用率低,处在同一个冲突域中,会往所有接口洪泛信息。

解决集线器的缺陷 -> 网桥 Bridge

网桥是链路层产品,能够阅读和记录MAC信息,生成MAC通信表。代表着快速以太网来临
它能够进行冲突域隔离。

缺陷:接口默认两个,对网络的冲突隔离有限。速度慢。

解决网桥的缺陷 -> 交换机 Switch

交换机是当代计算机网络中比较重要的产品和技术,每一台连接到Switch的主机都处于一个独立的冲突域内。同时利用MAC通信表进行转发数据流。

交换机是在网桥的基础上进行改进的,相比网桥有以下优点:
1)接口数量更加密集,每一台主机在独立的冲突域,带宽利用率大大增强。
2)利用ASIC硬件芯片进行高速的转发。
3)能够进行VLAN虚拟局域网的隔离:不仅仅能够隔离冲突域,还能通过VLAN隔离广播域。

它是一种局域网产品,目前处于主流地位的仍然是以太网技术。

缺陷:一般用于本地网络通信,无法实现广域网通信。

在后面的SDN学习过程中,它是主要的转发数据的工具。

实现远程网络的通信 -> 路由器

路由器是网络层产品,基于IP寻址,采用路由表来进行数据转发。
路由器实现了不同局域网之间的通信连接,可以是不同的介质,比如以太网和令牌环网可以互通,实现广播域隔离,实现远程通信(WAN广域网连接)
路由器的诞生,是互联网络大爆炸的主要原因,跨不同介质,跨不同网络的联系得以实现。
IP寻址机制,利用了路由器之间的路由选择协议等,保证了数据的准确传输:只要连接两端的两台主机有配置合理的逻辑IP地址,就可以进行通信。

布线,路由器配置 麻烦 -> 无线AC/AP

无线AC/AP Access point 可以看成带有无线功能的交换机/路由器。随着移动办公的趋势,网络中无线产品越来越多。

根据部署方法分类:
1)胖AP:无线AP具有独立的操作系统,可以独立调试网络热点中的所有配置。eg. TP-LINK
2)瘦AP:无线AP只具备无线信号发射的功能,所有的命令调试全部集中在后台的AC/无线控制器上面。
小型无线网络,比如家庭网络,使用胖AP即可解决;大型无线网络,比如无线城市,则需要使用瘦AP方案解决。

这种后台控制器的思想 和 SDN有一些渊源。

解决安全问题 -> 防火墙

防火墙Firewall 是一种网络安全产品,对网络进行安全访问限制,一般在互联网边缘使用,防止外部黑客的攻击。
防火墙可以看成是带有安全功能的路由器,很多防火墙的内容可以在路由器上看到,比如路由协议,访问控制列表,地址翻转技术。

是否有了防火墙就可以不用路由器了呢?路由器一般和防火墙同时存在,防火墙负责安全隔离,路由器负责路由选路。

根据防火墙的技术特征,可以分为包过滤,应用代理,状态监测防火墙;根据产品形态,可以分为软件和硬件防火墙。

解决网络拥塞 -> 流量控制

网络拥塞一直是传统网络中的永恒问题,从TCP的流量控制机制:滑动窗口,防止小包,慢启动拥塞避免等等;到中间路由器提高转发效率的做法:比如OSPF取代传统的RIP,避免了大量的RIP更新,更高效地转发数据同时也避免了大量的路由交换信息;再到流控产品。
这些措施,策略,产品的出现是必然的:网络如今以一种极快的速度在发展,每时每刻都有大量的数据需要进行处理,倘若没有合理的流量控制,网络拥塞会使得整个网络的效率非常之低。

由以上这些产品所构成的各式各样的网络

家庭SOHO网络,小型创业公司网络,园区网,政务网,数据中心网,电信/互联网······

那么网络到底要多大才能满足以上种种?

要满足 端到端的主机通信,远程网络的主机通信,不同局域网络之间的通信,处理泛洪问题,解决安全问题,解决流量控制问题 等等一系列十分复杂 实现困难的问题,可想而知,配置网络是一件多么庞大,多么困难的事情了。
在网络速度迅猛发展的今天,网络流量越来越多,网络拥塞也日益见长。在解决以上问题的同时,解决 网络安全控制,网络拥塞控制,保证网络效率,解决网络配置难,管理网络难,更新服务难 等一系列困扰以久的问题也迫在眉睫。传统网络越来越为人诟病,原有架构在解决这些问题的路径上举步维艰,难以维系。

因此,我认为,SDN的出现是必然的,在网络领域是一种伟大的历史革命。

总结:需求 驱动 技术

传统网络行业的发展,是一种按需发展的思路:出现什么问题就解决什么问题催生出什么产品。”这句话是根据传统网络的发展历程得出的结论:从刚刚开始的中继器 到 现在如此庞杂的互联网络,每一次革命性的网络设备的发明,都是源于需求。

但是,这样的发展速度是十分缓慢的:大部分网络产品是硬件产品,更新迭代远不如软件快。
最致命的一点:“底层是对用户封闭的,客户的意见只能反映到厂商,由厂商来解决他们的需求,周期长,效率低。

因此,我们的思考,就从这些问题入手:我们能不能做出一个架构,让网络像软件一样,更新快,用户体验好,可管理性强,用户如果有需求可以直接对它进行相关操作。

于是乎,有了这么强烈的需求,技术就出现了:SDN。



SDN前瞻 传统网络架构的危机:危机“四”起

在网络发展速度如此之快的今天,传统网络的架构充满了危机,主要有这四个问题(3+1)。

1)传统网络的部署和管理 非常困难
2)分布式网络架构凸显瓶颈
3)流量控制十分棘手

4)可编程性

本文从以上三个角度出发,结合视频内容和自己的理解进行一个阐述。

为什么要介绍传统网络架构的危机?只有在了解了传统网络架构的不足与缺陷之后,才能更好的理解SDN新型网络 “新”在哪里,优在哪里。

网络产商的分类

1)综合厂商/全栈厂商:提供交换机,路由器,防火墙,无线等技术产品 和 整体的解决方案。比如Cisco,Huawei,H3C等等。
2)安全厂商:对外提供防火墙,入侵检测,入侵防御,安全网关,防止病毒等等技术产品。比如Checkpoint。
3)流控厂商:提供流量控制产品。比如F5,Randware。

如何对网络设备进行操作?

不同的厂商所生产的网络设备,需要不同的方式进行调试和配置。
一般通过命令行和Web界面。

我们的网络,大部分是混合型网络,各大厂商的网络设备鱼龙混杂。
这就使得,对一个网络中不同的厂商生产的网络设备进行 统一 的调试和配置,是一件困难又复杂的事情。

但是好在底层有 路由选择协议等等用于路由器交换信息的协议,使得 不同厂家生产的路由器互相交流 是没有问题的。因此客户采购网络设备的时候,可以根据自身的需要 选择合适的方案。

关键点:网络厂商的不同,造成了网络设备的不同,给网络的管理和配置带来了非常大的困难。

目前,我们是如何管理这么多的网络设备呢?

如何统一来管理这么多的 不同品牌的网络设备呢?是通过 在服务器上搭建的网管软件。

比如学校利用的就是网管软件,架设在服务器中;网管软件生成网络的拓扑图,知道哪一台PC在哪里,出现故障能够进行报警。

关键:网管服务器 是目前主流的网络设备管理方案,网络设备(路由器,交换机,防火墙等等)和 网管系统(H3C iMC等等) 部署SNMP协议:这是一种 侧重监控网络 的协议。
通过网管系统能够对全网进行 可视化拓扑发现,配置管理,链路质量检测等等。

网管系统一般部署于安全管理区域。

SNMP协议:简单网络管理协议,侧重监控,而不是配置和部署。
当某一台网络设备发生故障的时候,SNMP协议监控到了这一异常,发出警告;用户通过网管软件的警告,来获知相关错误信息,通过远程登录或者是下机房 进行命令行配置和调试。

注意:网管软件起到的只是一个监视器的作用,真正去修改配置解决问题 还是需要我们自己手动。

引出我们的第一个问题:传统网络的部署和管理 非常困难!

网络产商杂乱;网络设备种类多,数量也多;配置和管理的 命令不一致。 -> 配置难,管理烦


不同的网络设备是如何协同工作的?

网络设备之间,大部分都是采用 路由交换协议等 网络协议 来进行信息的交互。比如 OSPF/BGP/MPLS 等。
这些协议大部分的逻辑基础,都是【邻居建立 -> 信息共享 -> 选择路径】这样的工作流程。

这句话很重要:大部分网络采用的是 典型的分布式网络架构:设备和设备之间相互交流路由信息,然后根据这些信息建立拓扑信息库,按照一些选路的算法计算路径。

举个例子:OSPF,建立邻居关系之后,交换第一类LSA,建立拓扑数据库,然后把数据库的内容作为SPF/Dijkstra算法的输入,确定最短路径,然后添加到路由表项中。

每一个设备都会进行独立的计算,相当于都具有一个独立的大脑与一个独立的转发硬件。

协议是 网络设备的语言,相当于人类沟通的语言。

关键:不同的网络设备之间 通过协议进行交流,大部分协议都是通过 建立关系->信息共享->选择路径 这三个步骤来实现的。
分布式网络架构,实现的是 网络设备与网络设备互相交流本地的信息。比较典型的代表是 OSPF的分区域。

与现在的SDN最大的区别就是:传统的网络,每一个底层设备(路由器,交换机等等)都有一个独立的大脑;而SDN除了控制器有大脑,转发层的 交换机 就是个傻逼。

如果网络发生动荡,设备怎么进行交互?

网络设备以 接力棒 的形式不断告诉下一跳邻居设备,然后将故障的链路删除。
但是可能会有多余的重复的信息。

当流量 暴增 时,网络拓扑 膨胀 时···

现在的云计算,大数据等互联技术的发展,导致网络中的流量越来越多,几乎以指数增长的形式上升,这使得底层网络设备的数量不断增加,压力越来越大,路由收敛的时间越来越长,效率越来越低。

在所有的网络类型中,数据中心网络(互联网公司),电信网络(运营商) 网络压力最大,改革的意愿最强。
因此,SDN新型网络的主要引导者及其标准的指定者,是 运营商 和 互联网公司(主要)。

关键:网络数据膨胀,路径就会出现故障,有可能出现环路,这导致了路由收敛的时间(所有路由器更新路由表项的时间)非常之漫长。

如今,上千上万台交换机在传统网络的底层工作,硬件方面的变革(就像我上一篇随笔提到的那样)无法继续满足人类的需求。因此,网络的整体设计,需要从底层,甚至从设计思想上面做出变革。

引出第二个问题:分布式网络-接力棒模式 凸显瓶颈!路由表更新太慢了!网络设备需要分配的资源太多了!这个理念需要革新了!

分布式 可以理解为是 传递接力棒 的模式:你传递给它,它再传递给另外的网络设备。
网络设备独立计算,网络设备和网络设备之间 接力棒式 的交换路由信息,以及它的分布式架构 -> 凸显瓶颈:独立计算导致计算量庞大,每一台网络设备需要分配的资源多;分布式导致路由汇聚缓慢,路由器更新路由表项慢 等等

这也就说明了,原有的 分布式设计网络的理念 需要进行革新。


传统的网络带宽是如何分配的呢?关键词:负载均衡

数据的负载均衡 在传统的网络中并没有很好的解决:前往同一个目的地的带宽相同的路径A和B,有可能 A 95%的带宽都用于承担数据了,压力非常大,而 路径B 的带宽则只有20%利用率。
这在数据中心里是非常容易发生的一件事情,当非常多的数据进来的时候,并没有完全的实现路径的负载均衡,这就很可能出现这种很危险的情况:某一个设备,在某一个瞬间压力过大崩溃了。

因此,当今网络最大的一个问题之一,就是 流量的可视化。现在的 流量控制网络设备,并不能做到对全网,全链路进行流量控制,进行合理的负载均衡。

有人可能会问,为什么不使得所有的 交换机和流量控制网络设备,实时监控和共享链路状态信息:是否拥塞,这样的话就能构建成一幅实时的流量图,根据这个流量图来进行流量控制?
虽然这个想法很不错,但是很遗憾,目前并没有一项技术能够支持构造实时的流量图:大部分流量控制设备都是独立进行控制的。

关键:负载均衡 和 流量的可视化,是传统网络难以解决的问题。
如果实现了流量的可视化,实现了负载均衡,那么就可以节省 为了负载均衡 而购买的网线/接口的钱,网络更加稳定,设备压力没有那么大,网络程序员的生活也就越来越美好了呢。

流量全局可视化难!

1)常规的网管软件,只能对故障进行监视,无法实现全网全局的链路状态检测。
2)常规的流量控制软件,只能实现区域化的流量控制,以及区域化的流量可视化。

理想的,也就是SDN所实现的,是通过软件上的按键,或者编写一段代码,把 带宽利用高的链路 的一部分信息,转移到 带宽利用率低的,相对来说网络拥塞不是那么严重的链路上面去。
It‘s perfect!

引出第三个问题:流量控制 是 棘手难题!带宽静态分配,流量可视化难!


第四个问题 -> 转向新的内容 是传统网络不曾涉及的 可编程性

能否自定义网络设备的转发策略

  • 传统的网络设备,工作方式是固定的:不修改目的IP地址和源IP地址,交换机根据MAC地址表进行转发,路由器根据路由表转发(不修改目的IP地址,不修改源IP地址,只修改MAC地址)。

  • SDN,根据业务需求,也就是客户需求,对转发设备的策略进行 自定义,这和传统固定的转发策略大为不同:传统是厂商决定,用户很难对固定的策略做出改变;而SDN允许用户通过编程的方式,来实现自定义转发策略,达到一些特定的目的。

能否将这个软件应用到网络设备上面?

目前市面上买来的网络设备,大多不支持;就算允许的话,也需要配置与该软件配套的操作系统。

老规矩:无法按需,不可编程!

第四个问题:无法按需!不可编程!吃硬不吃软!


小结:

本部视频导论 介绍了 传统网络的局限性,主要从四个方面对它的不足进行了描述:这四个方面,每一个方面都相互联系,难以解决。

  • (1)统一管理配置 不同厂商生产的 不同网络设备 难!
  • (2)“接力棒模式” -分布式的网络设计理念 过时了!路由器更新速度 太慢了!资源分配 太多了!
  • (3)流量控制,负载均衡,网络拥塞,流量可视化 这些迫在眉睫的问题 怎么解决?网络时时刻刻都在发送拥塞,数据传输效率低下,网络设备容易崩溃!压力太大了!
  • (4)要是能让程序员以他喜欢的方式:编程 自定义一个转发策略,或者 产品狗今天提出了一个网络需求,程序员能够通过软件的形式,以代码或者是图形界面的按钮 来控制网络设备,那该多好啊!传统网络定的规矩太死板了!

总而言之,传统网络的设计理念(分布式,不可按需,流量控制,不可统一配置)与目前的需求 格格不入!
我们需要更换我们固定的思维,来重新思考如何设计网络架构,以满足当代人们的需求。

这就进入了SDN的内容。


SDN前瞻 该来的来了!SDN 软件定义网络

SDDC:Software Defined Data Center 软件定义数据中心,全数据中心软件化。
在我们接触SDN概念之前,服务器虚拟化,软件虚拟化技术已经是非常成熟了。如果网络能够被虚拟化,那么整个数据中心的虚拟化运维就完全不是问题了。

那么,SDN是什么?

So Diao Network?

Still Don't Know Network?

对于学术界来说,SDN是什么?又是斯坦福!

SDN的主导,是ONF开放网络基金会。

发展简介:(详情咨询百度)

  • 2007年,斯坦福大学的学生Martin Casado 领导了一个关于网络安全与管理的项目Ethane,该项目试图通过一个集中式的控制器,让网络管理员可以方便地定义基于网络流的安全控制策略,并将这些安全策略应用到各种网络设备中,从而实现对整个网络通讯的安全控制。
  • 2008年,基于Ethane 及其前续项目Sane的启发, Nick McKeown 教授等人提出了OpenFlow 的概念,并于当年在ACM SIGCOMM 发表了题为《OpenFlow: Enabling Innovation in Campus Networks》的论文,首次详细地介绍了OpenFlow 的概念。该篇论文除了阐述OpenFlow 的工作原理外,还列举了OpenFlow 几大应用场景。
  • 基于OpenFlow 为网络带来的可编程的特性,Nick McKeown教授和他的团队进一步提出了SDN(Software Defined Network,软件定义网络)的概念。2009年,SDN 概念入围Technology Review年度十大前沿技术,自此获得了学术界和工业界的广泛认可和大力支持。
    ···

注:全球第一台路由器 是由斯坦福大学的 莱昂纳德·波萨克 夫妇创造的,用于斯坦福校内网络,全球网络行业的领头羊思科Cisco就是这对夫妇创建的;无独有偶,20年后,仍然是斯坦福大学,开创了SDN/Openflow的基础:实现跨世纪的接力棒,为互联网络注入未来!

SDN三层模型:应用层,控制层,转发层

在上图中,交换机没有“大脑”,即区别传统网络的交换机/路由器需查找MAC表/路由表,仅具备转发功能;所有的路径计算,安全策略等等全部在 控制器 上面计算;然后通过 Openflow 协议下放给交换机;交换机 根据流表(Flow Table) 进行转发。

Ethane 与传统网络最大的不同是 控制平面 和 转发平面 分离;控制层实施集中式控制,可编程化,可视化,自动化等策略,转发层通过流表和硬件进行快速转发。

对于商业界来说,SDN是什么?一马当先的Google B4网络 考虑链路带宽的利用率

Google是第一个实现SDN商业化的网络厂商;每天用Google搜索的量是非常大的,Google有非常多的数据中心,每个数据中心之间通过租用的线路和BGP外部网关协议进行信息交互;由于流量十分巨大,而且负载均衡不到位,带宽资源有的管道接近崩溃,有的闲的没事情干:这造成了非常巨大的开销。

Google采用控制器来控制底层的交换机,这些控制器是采用OpenFlow协议的,能够实时监控每一个交换机的每一个接口上跑的流量,这对他们是一个非常大的好消息。
每一个数据中心,用一个控制器来管理,然后这些控制器连接到一个集中的服务器:Gateway/Te server。这样的话,当运维人员坐在电脑前,就能够清楚的知道各个数据中心的分布以及流量。

SDN有多强?在使用传统网络的时候,Google架设的管道带宽利用率是20%-30%,架设了SDN网络架构之后,直接提升到99%!这反应了SDN 控制与转发平面分离的分布式架构 强大的控制流量能力。

对于运营商来说,SDN是什么?NFV/ETSI 考虑运营成本

NFV:Network Function Virtualization 网络功能虚拟化。
运营商也在不断的寻求解决方案来提高利用率,降低运营成本;在遇到SDN之前,他们的解决方案是,将所有的网络设备,集中于一个大盒子里面,这样的话,就很容易达到 虚拟化,省成本,易迁移,易拓展,易部署的目标。
于是乎,运营商提出了NFV,刚好这个思路和SDN很类似,因为在SDN中,也希望将这些流量控制的网络设备,网络安全的设备虚拟化;应用了SDN同时也就应用了NFV。

NFV和SDN虽然是不同的组织来引导和研发,但是基本诉求是一致的:将 传统网络架构 虚拟化/软件化,统一部署,节省大量成本。

因此,SDN并不是突然出现的,而是学术界,网络运营商,互联网公司一起摸索,逐渐形成的一个概念。

SDN到底是什么?Software Defined Network

SDN vs 传统网络

控制转发分离 <-----> 控制转发隅合
集中式控制 <-----> 分布式控制
可编程 <-----> 不可编程
开放接口 <-----> 不开放
虚拟化 <-----> 硬件化

SDN概念图

图解:
SDN Software Defined Network 软件定义网络,是一种网络设计理念

或者是一种推倒重来的理念:网络设备可以集中式软件管理,可编程化,控制转发层面分开。

所以说,SDN并不是一项网络技术,也不是一个协议,而是一种思想,一种框架。

举个例子:你在PC上写了一个python的脚本,通过北向接口API在控制器上面执行该脚本;控制器执行OpenFlow协议,通过南向接口应用到转发层的交换机上面;交换机傻傻的通过 流表 来进行转发。

狭义上的SDN:软件定义网络。广义上的SDN:软件定义安全,软件定义存储,软件定义数据中心等等。可以说SDN是一个浪潮,席卷了整个的IT行业。

其他
  • 对网络的操作,从不同的命令行操作转移到了编写脚本语言,可编程化。
  • 哪些组织在推动SDN:ONF,ODL,ONOS ···

SDN原理 控制层 Controller控制器

本文参照SDN原理视频而成:SDN原理

Controller 概念

从上面这个图片,我们能够知道,Controller 是一个非常重要的东西:承上启下,左右拓展。

从整个SDN的架构来看,控制器 处在整个架构最核心的部分:控制层。上面承接应用,下面承接网络硬件设备。

在SDN的商业战争中,谁掌握了控制器,谁制定了控制器的标准,谁在产业链就最有发言权。华为,思科等传统大厂商仍然在主导核心的控制器。

比如你开发了一个控制器,也就是提供了一个平台,所有的开发者都基于你这个控制器来进行开发,你就处在一个主导的地位。Windows 的开发平台在之前没有取得成功,其中的一个原因就是开发者没有过多的参与进来。

所以,抓住控制器,也就抓住了SDN的核心:向下需要控制一定数量的网络设备,易于管理和配置;向上的应用和客户需要有一定的开放程度,能够执行应用的请求;东西接口的话,这使得Controller 能够采用一种分布式的策略部署,通过跑选举协议,做匹配的切换。

Controller 功能

南向功能支持 OpenFlow

通过OpenFlow等南向接口技术,对网络设备进行监控:比如拓扑监视,流表下发,策略定制等等。

需要注意的是,SDN中并不是所有的交换机都需要采用OpenFlow。这里引一段文字,来源于《SDN:网络创新的利器》文:张卫峰

SDN != OpenFlow

尽管SDN是基于OpenFlow提炼并发展起来的, 但两者并不等同。SDN是一个网络架构级的概念,强调软件定义网络,强调软硬件的分离。而 OpenFlow 则是一项具体的技术,它强调转发面的 标准化。

SDN的转发面和南向接口可以通过OpenFlow来实 现,也可以通过别的技术,比如转发面可以不遵循OpenFlow标准,而是通过传统表项的组合来实现。只是OpenFlow是目前看起来最可能标准化的技术,也是跟SDN关系最深的技术。现在一个新的组织 OpenDayLight 正在制定从上到下全套的新标准,也许到时候不会使用OpenFlow也说不定。

北向功能支持 仍然处在讨论阶段

目前SDN除了南向接口的OpenFlow有了标准化的文案和规范之外,北向接口技术仍然没有一个标准。
但是,就算是这样,Controller也需要对北向接口技术提供支持:比如 REST API(主),SOAP,OSGI等等。这样才能被上层应用所调用。

东西向功能支持

分布式的控制器架构 仍然是业界的共识,在后续的SDN版本中,应该会慢慢加大支持力度。
东西向技术指的是 多控制器之间 如何进行选举(类比OSPF根据RID选举DR/BDR),协同(交互),主控制器和备用控制器的切换等等。
Google B4 就是采用 分布式的控制器架构 的实例。

如果我们只使用一个控制器,那么如果黑客破解了这个控制器,就控制了整个网络;因此为了安全性,需要多个控制器,并利用东西向接口技术来交互。

控制器列表:开源SDN控制器和商用SDN控制器一览



  • 35
    点赞
  • 158
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值