SDN初体验·理论篇(零):SDN与传统网络不得不说的那些事

本人是一名热爱网络工程的菜鸡,是一只兴趣使然的菜鸡,我目前发的blog只是作为我学习阶段的一个总结,分享给大家,希望大家一起交流,一起探讨,文章中有不正确的知识或言论请大家指出,同时我觉得对网络感兴趣的大家们也可以私信我咱们创个网络学习交流群开心的时候分享自己所知,也是一件很好的事情

个人于寒假稍微系统地学习了一遍有关SDN的知识,有一定的知识体系,因此想与大家分享并交流一下,希望大家方便时可以和我讨论讨论交流交流哈,一个人学习真的很痛苦。

首先,众所周知,网络的趋势是软件定义网络(SDN),大家听到这个名词的时候,可能非常懵,甚至还伴随着网络可编程化啊数控分离啊乱七八糟的让人费解的词语,引得头疼撞墙两眼昏花被水淹没不知所措,本文我从学生的角度来表达一下SDN给我的感觉,也就是SDN它是个啥玩楞

温故而知新,传统网络结构与缺点

  1. 传统网络结构与架构
    大家在初学网络的时候,一定听说过关于三层网络结构分布式的相关名词,那么复习一下

    首先来说三层网络结构,大家对三层网络结构应该并不陌生,现有的网络离不开这个结构,话再好不如图直接,所以咱们直接上个图(如下)
    SDN初体验·理论篇(零):SDN与传统网络不得不说的那些事_第1张图片
    图片来源见水印,复习一下这三层的概念(摘自百度百科)

    核心层:核心层是网络的高速交换主干,对整个网络的连通起到至关重要的作用。核心层应该具有如下几个特性:可靠性、高效性、冗余性、容错性、可管理性、适应性、低延时性等。在核心层中,应该采用高带宽的千兆以上交换机。因为核心层是网络的枢纽中心,重要性突出。核心层设备采用双机冗余热备份是非常必要的,也可以使用负载均衡功能,来改善网络性能。

    汇聚层:汇聚层是网络接入层和核心层的“中介”,就是在工作站接入核心层前先做汇聚,以减轻核心层设备的负荷。汇聚层具有实施策略、安全、工作组接入、虚拟局域网(VLAN)之间的路由、源地址或目的地址过滤等多种功能。在汇聚层中,应该选用支持三层交换技术和VLAN的交换机,以达到网络隔离和分段的目的。

    接入层:接入层向本地网段提供工作站接入。在接入层中,减少同一网段的工作站数量,能够向工作组提供高速带宽。接入层可以选择不支持VLAN和三层交换技术的普通交换机。

    对于此图自底向上看,首先我们暂时把接入层与汇聚层的设备当成二层交换机处理,那么,接入层负责划分vlan并连接本地HOST主机,同时连接汇聚层
    汇聚层连接下方接入层,汇聚好四个主机五个vlan,设备之间冗余,通过配置VRRP与MSTP做负载均衡或冗余,同时连接核心层设备与接入层设备(类似中介)。
    核心层设备负责的事情就可非常重要了,汇聚层和接入层上可能没有处理三层(IP)上的通信(如上文所说,暂定接入与汇聚为二层交换机),核心层连接汇聚层(核心层的交换机为三层交换机)在核心层的交换机上首先要给vlan划分IP地址等,且核心层上连接至出口路由器与Internet连上,通过OSPF搭建路由,同时也要连接FW(防火墙)做安全上的策略等等。由此可见,核心层功能重大。

    通过上述例子我只是想让大家来再次感受一下三层网络结构的含义,那么接下来说一下分布式

    何为分布式?暂且不说定义,相信大家或多或少定体会过分布式的案例,比如,社团工作中,某一个部门分为部长与干事,部长收到老师命令要求部门扫大街,于是部长给所有干事下发命令,集体扫大街,但每个干事都有自己需要清扫的地方,然后每个干事都很听话去执行了,各扫各的大街,一会就扫完了,这里面,这种扫大街的模式就叫分布式,如果25个人集中某地一起清理的话显然不是分布式

    言归正传,贴出分布式的具体含义,分布式的案例生活中各种各样,没有特别官方的释义,这里贴一下分布式计算的含义分布式计算是计算机科学中一个研究方向,它研究如何把一个需要非常巨大的计算能力才能解决的问题分成许多小的部分,然后把这些部分分配给多个计算机进行处理,最后把这些计算结果综合起来得到最终的结果。

    传统网络典型架构就是分布式 传统网络典型架构就是分布式 传统网络典型架构就是分布式

  2. 传统网络缺点

    传统网络是有优点的,但随着时代发展,缺点弊端非常需要解决,这里贴一下我之前总结的缺点

    1. 流量路径的灵活调整能力不足不能解决实时流量动态调整的问题
    2. 传统网络协议复杂,运行维护复杂,庞大的协议体系,不同厂商提供设备的差异,厂商设备命令差异大,网络部署与维护复杂,提高了网络维护人员的技能要求,增加网络运行维护成本。
    3. 网络不可编程,导致“供不应求”即我无法实现DIY。

    针对上述,我给大家贴一个拓扑图大家能直观感受到缺点所在,前方低能
    SDN初体验·理论篇(零):SDN与传统网络不得不说的那些事_第2张图片相信大家如果是学生,第一反应一定是这是啥,然后说难道都要进行配置么等等疑问,其实这只是一个很低级的网络拓扑,只不过需要时间来进行分析,该图可略微直观的表示出部署与维护不是一件十分容易的事,那么大家思考一下,分布式网络如果网络出现动荡会如何?这里细致提一下分布式网络,每个设备都有独立的CPU,独立运算。它们之间相互交流路由信息,然后根据这些信息建立拓扑信息库,而这些路由信息是按照不同或相同的路由协议来进行选路。交互信息的过程想接力一样,你告诉我,我告诉你,那么网络动荡了怎么办?。(等我找个图,我手动画一个吧)
    SDN初体验·理论篇(零):SDN与传统网络不得不说的那些事_第3张图片首先我给这个图片起名字叫复杂网络拓扑,EMMMM咱们不做杠精啊首先,如果真有类似的拓扑结构让我去优化,我可能直接战术去世哈哈哈失礼了,就这个图,如果产生网络动荡,或继续新增设备,那都是个难题吧哈哈哈,而且这个部署也是个困扰

    那么,温故而知新的段落就此结束了

新的网络(风暴)已经出现—SDN是什么,与传统网络区别

此部分可理解为奇怪的知识增加了
个人觉得呢,不太负责人的讲,SDN是一思想和架构,其核心技术是可编程,解决传统网络缺点
同时SDN也是依托于虚拟化技术而存在的一种思想
好,SDN解释完毕
咳咳,正题,正题,首先在引入SDN概念之前,大家是否知道网络的数据平面也称转发平面控制平面
网络的控制平面和数据平面(数据平面也称转发平面),控制平面:实时性,可靠性要求高,即网络控制,控制网络(数据信息)的行为,网络状态发生变化时,对网络进行实时的反馈、调整网络的各种数据和行为,使网络保持在正常工作和提供承诺服务的状态。传输信令信息的功能载体叫做控制平面,控制平面上承载的是用户和网络的交互控制信息。例如,我们在上网的时候,建立、维护、释放与网络间的链路时,都是通过控制平面来完成的。通俗的来说,控制平面负责执行路由选择协议,管理路由选择处理必备的数据库信息并生成FIB表(Forward Information Base,转发信息库)数据平面(转发平面):即用户平面,用户业务的转发和处理,这个没什么好说的,主要是转发和处理各种数据包。

咱们实现控制平面与转发平面的需求,就是俗称的“拉网线”咱们去做了相应的配置。但实际上,路由器里为实现转发平面与控制平面,是有相关硬件去支持的,咱们所做的命令,都被路由器去执行,而且路由器相当于一个特殊的主机,有内存和CPU。它们就是平面的载体,此段为个人理解,有问题请大家指出。

那么问题来了,我说这些有啥子用,那是因为SDN的灵魂之一就是数控分离

这里,我先不系统的解释数控分离与集中控制,咱们先聊聊虚拟化与SDN的关系
我觉得虚拟化在网络上应用的是解耦如果不知道耦合是啥这天咱们没法聊了耦合是什么呢

根据现代汉语词典第七版,耦合含义为物理学上指两个或两个以上的体系或两种运动形式之间通过各种相互作用而彼此影响以至联合起来的现象

所以,具体点是,电脑之所以是电脑是它CPU内存硬盘风扇主板电源网卡显卡等硬件设备通过各种代码各种电路组了电脑,如果是windows系统,再因为它闭源无法DIY,他就只是咱们玩游戏看电影办公或炫富的工具,它是PC不是交换机,这就是耦合所致  而虚拟化解耦呢,它可以把硬件与软件进行一定操作,让硬件就是硬件,软件就是软件,不必然相关了,操作不再受硬件所束缚了资源也相当于被池化,CPU池,内存池,你需要什么我从池子里给你什么,因此,解耦后,你的PC也可成为一个你想要的路由器或交换机,只不过你需要一定的编程把这部分实现,例如,你想一个电脑上兼容多个操作系统,通过用特定的程序操作硬件设备,进行一些指令,即可做到运行windows和linux同时运行,(如Vmware)虚拟化个人仅解释到此。

那么我提虚拟化是为了什么呢?答案是SDN的网络抽象,也可称集中控制,也是灵魂之一

相信到这里大家还是很迷惑,但是不要急,咱们再来探讨一个问题,作为网络工程的大家,一定学过C语言或者JAVA等编程语言,大家费解,网工和程序员怎么能学到相同的编程语言呢?其实不止是你在写脚本或者做网站是用得到编程语言,未来的网络是可编程化的,意思是,交换机可编程,路由器可编程,结合前文的虚拟化,未来没有固定的交换机和路由器,全是一种白盒设备,你需要什么功能,自己编写,网络可编程也是SDN灵魂之一

因此,做出总结与详解

  1. 数控分离(转控分离)
    话不多说,上图。
    SDN初体验·理论篇(零):SDN与传统网络不得不说的那些事_第4张图片
    此图圆圈代表路由器,红色矩形代表控制模块,黑色矩形代表数据模块,左侧为传统网络,右侧为SDN网络(右侧带有红色矩形的路由器即为控制器),对此,系统地解释下SDN的数控分离概念:SDN网络架构的核心引入SDN控制器,实现数控分离和集中控制,把原来的分布式控制平面集中到一个SDN控制器上控制平面集中到SDN控制器,不再需要大量的分布式控制协议,集中在控制器的算法软件替代了传统的各种域内的路由协议,减少网络中各种协议的部署,简化网络架构,易于维护通过修改或替换控制器控制程序或增加新的软件程序实现新业务。解决了分布式网络网络部署难,维护网络难,计算路径难(上文复杂网络拓扑)等问题因为呢,控制器告诉每台设备怎么处理数据

  2. 集中控制(抽象)
    集中控制不是简单的你理解的控制路由器做什么,控制器还可通过抽象,把软与硬有机结合一起,上图
    SDN初体验·理论篇(零):SDN与传统网络不得不说的那些事_第5张图片
    控制器把大矩形部分的网络结构(基础网络设施)进行抽象,并让应用程序部分看到他想让他看到的
    菱形部分为应用程序控制的设备等,中间的竖着的矩形与横着的矩形分别为防火墙与交换机,这是控制器想让这个应用程序看到的部分
    也可以理解成控制器会把网络基础设备抽象层一种服务,程序需要什么,控制器提供什么

  3. 网络可编程化
    话不多说,上图
    SDN初体验·理论篇(零):SDN与传统网络不得不说的那些事_第6张图片
    这里再上一个进阶版图,用高级画图工具画的图emmmm
    SDN初体验·理论篇(零):SDN与传统网络不得不说的那些事_第7张图片
    忽略我的直男配色,.processon关注这个画图网站!(硬核广告)这其实可以看似为SDN三层架构自顶向下是 应用层–控制层–基础层,通过接口相连,其中控制器部分,也就是控制平面部分,就是可编程的,可以通过RYU,ODL等控制器平台来编写“协议”控制“路由表”(流表)等。

SDN区别于传统网络技术的关键是“通过可编程性,将应用与网络设备之间的交互更紧密结合”。而这种紧密结合性,需要上述三种思路:“控制转发分离”、 “物理网络抽象"、 “可编程接口”

可编程性是SDN的核心。将控制和管理平面从交换机、路由器中移到设备外的软件中,并通过SDN协议来连接网络设备。这些设备外的软件平台有自己的API、 处理逻辑,以及向网络提要求、接受事件、处理SDN通信协议的能力,这些软件平台就是“控制器/Controller" .

应用开发人员只使用控制器提供的AP|来实现网络自动化、网络编排和操作网络。

控制器被认为代表了支持SDN的应用程序的基础架构,体现了SDN的可编程性

本文小总结与升华——未来统领网络的是我SDN哒

这里是要说再见的时候了,因为SDN还可以细致的说很多很多很多,目前到此为止,刚好是传统网络与SDN的区别,本次SDN初体验暂时说到这里,并无其他干货,这篇文章我水了那么多字,最终的干货其实也就是

  1. SDN是一种架构,是一种思想,让应用参与到网络控制中
  2. SDN可实现转发与控制分离
  3. SDN可实现控制集中,网络被抽象
  4. SDN的重中之重是网络可编程化,编程的接口等
  5. 随着时间的推移,未来的网络一定是SDN*,传统网络缺点在未来太致命了

下一篇SDN初体验系列文章将细致的阐述SDN的部分应用,让带家更明白SDN究竟是什么,也将系统阐述,为何未来为SDN地天下,敬请期待

本人是学生,本文仅为自己的个人知识体系的总结,不妥不正确的地方请及时指出,感谢观看,谢谢大家

你可能感兴趣的:(SDN)