zoukankan      html  css  js  c++  java
  • 网络设备SDN软件网络如何实现颠覆

    在本篇文章中,我们主要介绍网络设备的内容,自我觉感有个不错的建议和大家分享下

        网络技巧和软件技巧的鸿沟曾越来越深,如今它们于终要走到一起了,软件是胜出者!

        

    1.网络技巧直一把握在巨子手中

        教科书上,我们可以道知很多关于TCP/IP的识知,以及议协处置的细节,然而除了可以借助Linux这类源开的系统自带的议协栈实现以外,你很难深窥网络技巧的内情,直一以来,网络技巧被Cisco这样的企业断垄着,而且它们的技巧是和它们某个型号产品深度联关的,离开了那款产品,也就离开了那门技巧,于是乎,网络技巧的培训也就成了厂商产品的培训,知周所众的CCNA/NP,HCSE等证认如果你取得了,并不能明说你是网络技巧的达人,因为很多的议协括包特有实现技巧都是厂商私有的,比如Cisco HSRP,Cisco CEF...精晓网络道理的人和精晓设备操纵的人很大度程上成了两个体群,而且还互相排挤。网络技巧很大度程上成了一中独门匠艺,把握了它的人于是也就扬气高趾,世一可不,直到让他道知你比他更扬气高趾和世一可不。

            总之,如今的网络大没有达到标准化的阶段,所标准化的,只是网络议协。如今弄网络的,正和中世纪的铁匠一样。

        

    2.软件技巧经已开放了很多年

        教科书上,我们学到了C++,Java,计设模式,Web等识知,等到我们毕业了,工作中我们进一步的将学到的这些货色强化。30年前,懂编程的人被认为是高科技极客,并不多,那时他们把握的是一种独门匠艺,可是如今不一样了,任何一个人都可以在App Store面里献贡一个收费或者收费的软件,任何一个人,只要你肯花半天的间时来解了相干流程,都可为以Linux源代码写一行释注,如今你想写一个口串程序,你对面的货色经已不再是口串的电气特性,而是一整套的API或者库,就像组装家具一样,螺母套螺丝,照参组装明说文当,板材摆在准确的置位,就成了。

            总之,软件技巧标准经已充足开放,API的计设有一套成型的大家都公认的标准,只要照参标准行事,你就是软件达人,如今的软件技巧职员(开辟,测试...),正如初当的社会化流水线上的工人一样。

        

    3.网络技巧和软件技巧

        网络技巧和软件技巧都是IT技巧,可它们之间确切存在很大的鸿沟,网络技巧很大度程是厂商动驱的,而软件却纯粹是求需动驱的,当然上述说法这可能有些极端,然而话语不极端化,很难说清问题之地点。

            你有一个点子,你可以速快写出代码实现它,仅仅代码而已,没什么止阻你,如果你只懂一种言语,你可以用一种言语来实现。可是在网络上,你却要受制于很多货色,你是一个精晓Linux网络的人,对面的是却一台Cisco的设备,你发出了数据包,却只能用traceroute来很不完整得跟踪它...把握网络技巧的价代实在是太大了,纵使再好的特性,只要厂商不跟进,你自己很难去模拟,去实现,你能做的,估计只能是用Linux来合凑了。

        

    4.虚拟化和云对网络提出的新要求

        虚拟化技巧为网络提出了新的求需,可是老牌厂商们还是遵守老路,采取基于网络层级的装封技巧来决解,于是现出了很多新词,比如VN-TAG,VPLS,OTV,VXLAN,甚至标准化协会也提出了诸如LISP等新技巧,虽然这些新技巧很大度程上决解了大多数的问题,并且其后背的论理也充足妙精,但是我们都道知,不论是老牌厂商还是标准化协会,它们都是既得利益者,谁也不想覆颠既有的标准,这,可以解理!

            可是,装封技巧治标不治本啊,为何现出了如此多的装封技巧,且不多说面上那些新词,仅拿VPN说事就够了。之所以现出了这么多的重装封技巧,并不是说逻辑义意上的递归层次分别会使网络结构更清晰,而是明说这个来本就不静安的世界上确切现出了很多很多的新求需,试问,30多年前的技巧对于这些新的求需能hold住么?

        

    5.传统网络模型的不给力

        上述毕,今当的网络经已法无足满越来越多的新颖求需,很多方面表现出力吃。

        

    5.1.单点制控,没有全局视图

        如今的网络技巧几乎都是会合在网络设备这类硬件实体上,在管理上,第一,现出问题要排错,不得不连牵几十号人,一个一个点的录登排查,第二,要更新配置,不得不一个一个点的录登配置,没有一个一统下发的机制,我不想再夸OpenVPN了...在议协处置上,姑且不谈RIP这类量矢议协,是即OSPF也须要把链路状态洪泛到部全路由器才能使大家失掉致一的视图;在QoS上问题更重严,QoS来本就须要在全局来制控,MTU发明是一种似类QoS的技巧,可传统的网络除了诸如RSVP这类似类MTU发明这类生更力自的议协以外,没有一种在配置层面的机制可以实现全程的QoS监控和管理,况且,就算有这类生更力自的议协,终究的结果也是动被的,如果一个路由器配置了只能给你1M的带宽,你甚至都不能说你只须要0.5M就够了这句话!

        

    5.2.收敛问题多多

        STP,RSTP,RIP,OSPF,...一旦产生抖动,或者新入加一台新设备,大家都要折腾一番,某个环节现出了问题,你甚至都很难速快定位究竟是哪里出了问题。

        

    5.3.扩展性太低

        如果须要一台路由器供给对游下双机热备设备的余冗,我们须要菱形的交叉连线,我们要做的是查阅该路由器的型号以肯定是不是可以持支新的接口模块,如果不持支那么就须要改换路由器,如果持支,我们须要供给个整配置表列用来更新路由器的配置,比如配置Teaming等;如果一个网络新入加了一台设备,可能须要对个整网络行进配置变革(近期我们的产品在实行,我可是深知其害,因此此文不是吹出来的),反之,撤掉一台设备也样同!

        5.4.门坎太高

        每日一道理
    心是一棵树,爱与希望的根须扎在土里,智慧与情感的枝叶招展在蓝天下。无论是岁月的风雨扑面而来,还是滚滚尘埃遮蔽了翠叶青枝,它总是静默地矗立在那里等待,并接受一切来临,既不倨傲,也不卑微。
      心是一棵树,一个个故事被年轮携载;一回回驿动与飞鸟相约;一次次碰撞使它绵密柔韧;一幕幕经历造就了它博广的胸怀。心是一棵树,独木不成林。因此,树与树既独立又相联,心与心既相异又相亲。

        前文所述,如今的网络技巧职员的技巧水平几乎都是和特定厂商绑定的,因此一般的企业不敢随便变革设备,这意味着个整持支队团的变革或者再培训,而这些都是须要本钱的。

        

    6.发转和制控的分离

        在讲三层交换机课程的时候,我们都听说过ASIC芯片,它是实其一种很傻的芯片,只会按照牢固的程式来行进牢固的动作,虽然有可编程的ASIC现出,然而它并没有续持编程能力,Cisco高端机型上,都存在一板子的ASIC芯片用来速快发转数据;和ASIC芯片处在另一个立对面的是CPU(别说GPU啊,它偶然还更像ASIC),CPU核心芯片麋集杂复,重复板块并不多,它须要你为它续持注入代码来为你速快算计出结果,比如路由算计和路由表hash查询或者数据意任法算加解密平日都是它来实现的,高端的Cisco机型除了有具ASIC芯片以外,还要有具一板子的高端CPU来供给速快算计能力,于是乎,高端机型的价代自然而然就上去了,把握了操纵它的人自然而然也就得瑟了,正如一个刚拿到驾照的小破孩开着一辆兰博基尼会笑嘲一个二十年驾龄的老师傅一样,那个小破孩可能不是富二代,可能只是一个卖车的,然而他要的是一种操控感,我想玩过Cisco 7400ASR的小破孩应当也有这类觉感吧。

            CPU和ASIC同居一处的弊病是很多的,把它们拆开就成了SDN的核心,即CPU专门于用软件的处置,而ASIC专门于用硬件的发转,它们之间通过传统的网络通道来信通,CPU算计出来的发转策略通过网络注入到ASIC芯片,于是,它们中的任何一个都是可以换替的,本钱当即节省了,操控职员的职责当即分离了,门坎也降低了!爱好叫真的同学们意注了,我只是用ASIC芯片来举例,真正的SDN并不一定非要用ASIC。

        

    7.用代码写出网络

        可编程芯片最好的选择是什么?是CPU!我们每个IT人士都会对CPU编程,无论你写一个编译器,还是写一个BASH本脚,都是对CPU的编程,且看如下:

        if [ $inport == 'E2' ] && [ $ip_src == '1.2.3.4' ]; then
        set_outport E3;
    fi

        这是一个很简略的本脚片断,常人都看得懂,是不是是比以下这个更清晰呢:

        ip rule add form 1.2.3.4 in E2 tab e3
    ip route add 0.0.0.0/0 dev E3 onlink;

        以上是一个Linux版本的Policy routing的配置,如果你不懂Linux的iproute2,你就要花量大的间时来学习,另外还有Cisco,H3C等不同的配置式方。哪种更简略呢?我们希望的是将上述的BASH本脚注入到ASIC芯片中,上述的BASH本脚可以在一台一般的PC器机上编写和运行,然后通过网络将其结果入写到远端的一台定制的交换机或者路由器上,我们可以在一台PC机上写出数无的这样的代码,然后注入到不同的交换机和路由器,这个进程当然可以批量行进,这样真正实现了制控和发转的分离,用代码定义出了一个杂复的网络,而你本根就须要录登那些路由器和交换机,甚至也不要道知它们是什么牌子的,就像一个程序员那样,你只须要在那一台PC机上编程可即!

        

    8.Cache思惟-速快路经和慢速路径

        Cache思惟无处不在,SDN中,似类LISP,也采取了Cache思惟,如果持支SDN的交换机查到了远端CPU注入的则规,那么就按照则规指示的行为继承,这个进程是很快的,如果没有找到注入的则规,那么就将数据包发送给远端CPU,由CPU来处置这个数据包,处置完了以后,CPU会将处置结果以及数据包的匹配项会送给持支SDN的交换机,这个进程不必多说了吧。

        

    9.层分模型不再是厂商实现设备的根据

        行文至此,我们须要插补一些关于网络议协层分模型的货色,一句话,议协层分简化了厂商为设备功能的定位,层分模型的核心是设备计设的简化,初当互联网络处于襁褓中之时,简化实现要素是重要求需,比如三层设备用来发转IP数据报,二层设备用来发转帧,这些层分的设备署部在不同逻辑层次的物理边界,比如公司出口要署部一台路由器实现公司外内的段网断绝,门部之间要通过三层交换机这个怪胎来断绝不同的VLAN(三层交换机是破打层分模式设备的首例!)。可是随着求需的胀膨和技巧的展发,这类计设越来越多的被破打,现出了N层交换机,现出了XXXoYY等装封技巧,分别如此则规的层次还有义意吗?

            如果能用软件写出网络,SDN酿成事实,那么我认为层分模型真的就不想之前那么重要了,他留下来的一唯用作就是用来剖析数据包用来匹配流表项终究肯定如何来发转。既然它能实现数据包的匹配,那么更好的式方也能实现,现在Openflow是基于10元组通配来定义一个流的,既然网络持支虚拟化了,你可以用任何的元组来定义一个流,只是TCP/IP经已行流多年,况且IPv6决解了物联网(不是互联网)地址的问题,因此TCP/IP被证明还是一个功成的议协栈,因此SDN自然而然也就合迎了它,但是住记,SDN的现出,许允你自定义自己的网络议协(此处没有栈这个字,默许它不是层分的)。

    文章结束给大家分享下程序员的一些笑话语录: 打赌
    飞机上,一位工程师和一位程序员坐在一起。程序员问工程师是否乐意和他一起玩一种有趣的游戏。工程师想睡觉,于是他很有礼貌地拒绝了,转身要睡觉。程序员坚持要玩并解释说这是一个非常有趣的游戏:"我问你一个问题,如果你不知道答案,我付你5美元。然后你问我一个问题,如果我答不上来,我付你5美元。"然而,工程师又很有礼貌地拒绝了,又要去睡觉。  程序员这时有些着急了,他说:"好吧,如果你不知道答案,你付5美元;如果我不知道答案,我付50美元。"果然,这的确起了作用,工程师答应了。程序员就问:"从地球到月球有多远?"工程师一句话也没有说,给了程序员5美元。  现在轮到工程师了,他问程序员:"什么上山时有三条腿,下山却有四条腿?"程序员很吃惊地看着工程师,拿出他的便携式电脑,查找里面的资料,过了半个小时,他叫醒工程师并给了工程师50美元。工程师很礼貌地接过钱又要去睡觉。程序员有些恼怒,问:"那么答案是什么呢?"工程师什么也没有说,掏出钱包,拿出5美元给程序员,转身就去睡觉了。

  • 相关阅读:
    Python之datetime模块
    PEP8规范 Python
    redis操作命令
    Django之Cookie、Session和自定义分页
    登录之验证码相关实现
    装饰器进阶
    js中的cookie使用和vue-cookie的使用
    vue-cli的安装使用
    Django之进阶相关操作
    PyMySQL模块的使用
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3033566.html
Copyright © 2011-2022 走看看