本文基于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的内容。

2016/9/3

SDN前瞻 传统网络架构的危机:危机“四”起的更多相关文章

  1. SDN前瞻 传统网络的缺陷

    引言 在网络发展速度如此之快的今天,传统网络的架构充满了危机,主要有这四个问题: 传统网络部署管理困难. 分布式架构瓶颈出现. 流量控制难真正实现. 设备不可编程. 现在的网络厂商 种类繁多的网络厂商 ...

  2. SDN前瞻 软件定义网络的一些概念

    SDN的核心:可编程性 SDN的思想:SOA面向服务 面向服务的体系结构(service-oriented architecture SOA) 使网络连接的大量计算机易于合作,以 服务 而不是人工交互 ...

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

    SDDC:Software Defined Data Center 软件定义数据中心,全数据中心软件化. 在我们接触SDN概念之前,服务器虚拟化,软件虚拟化技术已经是非常成熟了.如果网络能够被虚拟化, ...

  4. [转]漫谈数据中心CLOS网络架构

    http://djt.qq.com/article/view/238 1.数据中心网络架构挑战 随着技术的发展,数据中心的规模越来越大,一个数据中心的服务器容量从几年前的几千台服务器发展到今天的几万甚 ...

  5. SDN理解:云数据中心底层网络架构

    目录 - 目录 - 云数据中心流量类型 - NSX整体网络结构 - 管理网络(API网络) - 租户网络 - 外联网络 - 存储网络 - openstack整体网络结构 - 管理网络:(上图中蓝线) ...

  6. SDN前瞻 网络的前世今生

    本文基于SDN导论的视频而成:SDN导论 目前网络层面流行的技术概念:虚拟中心:公有云私有云:数据中心等等. SDN主要的模拟器:Mininet OpenDaylight(Cisco) ONOS(AT ...

  7. 华为SDN:解决传统网络3大问题

    转:http://mp.ofweek.com/tele/a145613326756 科技潮人 2013-08-05 14:20 传统网络之困 互联网爆炸式增长,除了规模和发展速度远超之前所有曾出现的数 ...

  8. 数据中心网络架构的问题与演进 — SDN

    目录 文章目录 目录 前文列表 OpenFlow 源起 从 OpenFlow 衍生 SDN 前文列表 <数据中心网络架构的问题与演进 - 传统路由交换技术与三层网络架构> <数据中心 ...

  9. SDN:软件定义网络

    近期高级网络课的小组任务是在老师给定的范围内自选方向主题研究并做展示报告.我们组选了sdn.原以为这东西会是工业界无人问津的概念化产品,Google了一下却发现事实上sdn挺火的,因为它可能带来的可扩 ...

随机推荐

  1. 图论之最短路径(2)——Bellman-Ford算法

    继续最短路径!说说Bellman—Ford算法 思路:假设起点为s,图中有n个顶点和m个边,那么它到任一点(比如i)的最短路径 最多可以有n-1条(没有回路就是n-1条):因为最短路径中不可能包含回路 ...

  2. kubernetes 创建tomcat 容器

    方案一: 使用k8s dashboard 创建rc 1.  界面操作 提示:暂时 忽略 查看: 2.测试 由于是外部服务 直接用  节点的ip访问: 同样也是   第二个端口可以访问.感觉 跟之前的提 ...

  3. koan重装system

    author:headsen chen date: 2018-08-02   16:29:51 koan是kickstart-over-a-network的缩写,它是cobbler的客户端帮助程序,k ...

  4. python webdriver中对不同下拉框通过文本值的选择

    在自动化中python对下拉框的处理网上相对实例比较少,其它前辈写的教程中对下拉也仅仅是相对与教程来说的,比如下面: m=driver.find_element_by_id("Shippin ...

  5. 熵 互信息 Gini指数 和 不纯度

    在学习决策树类的算法时,总是绕不开 信息熵.Gini指数和它们相关联的概念,概念不清楚,就很难理解决策树的构造过程,现在把这些概念捋一捋. 信息熵 信息熵,简称熵,用来衡量随机变量的不确定性大小,熵越 ...

  6. POI各Jar包的作用(转)

    目前POI的最新发布版本是3.10_FINAL.该版本保护的jar包有: Maven artifactId Prerequisites JAR poi commons-logging, commons ...

  7. postgresql----继承表INHERITS PARENT TABLE

    使用INHERITS创建的新表会继承一个或多个父表,子表只会继承父表的表结构和NOT NULL,DEFAULT,CHECK三种约束,主键,外键和唯一键以及索引不会被继承,所以修改父表的结构(增删字段) ...

  8. Servlet------>jsp EL表达式

    取值: ${data}------>pageContext.findAttribute("data"); ${data.name}------>data.getName ...

  9. Java面试题全集(上)

    2013年年底的时候,我看到了网上流传的一个叫做<Java面试题大全>的东西,认真的阅读了以后发现里面的很多题目是重复且没有价值的题目,还有不少的参考答案也是错误的,于是我花了半个月时间对 ...

  10. docker基本操作命令

    1. 构建镜像 docker build -t centos/tomcat:7.0 2. 创建一个容器 docker run --name test-tomcat centos/tomcat:7.0 ...