SDN:初学SDN的感受和规划

这篇思考与规划早该十月份就应写好,但是在写与没必要写之间徘徊,一直拖到了今天,既然写了,就当是自己的感想和规划吧!

初次接触SDN这个词,还是去年看到逼乎上有关网络工程问题的评价里面,随手度娘一搜,也许当时是我内心对其排斥的效应,大都看到的都是“软件定义网络”,“概念”甚至不乏“炒作”这几个词汇,也便没有放在心上。后来随着学习路由和交换的不断深入,自己也不断的反思和设想,网络工程真的适合自己一直这样走下去吗?随着数据量的暴增,未来的网络是否能满足人们的需要?国庆节后,自己慢慢查阅相关文章,得出的答案是:第一,传统的网络架构随着数据和业务的增多,不断的添加设备,管理起来也越来越不方便,增大的初期和后期的成本;第二,传统的网络设备就像一个黑盒子,虽说集成了现在所需的各种功能,但是也还有许多功能规模相对较小的企业根本使用不到,无奈他们也要购买设备。还有新型网络业务和需求的增多,传统设备已无法满足,大公司或许还可以请求设备厂商为其定制业务功能,但是小公司就没有这样的影响力。同时开源思想的不断渗入,相比于不断购买昂贵的新设备,人们更加渴望能直接通过增添删改设备功能来满足自己的需要,这是传统网络所不能满足的。这些也只是传统网络弊端的一部分。SDN是一种理念,是一种网络架构,不要把它实例为设备或者协议,只要实现数据层和控制层分离,网络设备接口可编程化,都可广义的称为SDN,对于SDN的解释和说明,前辈们解释的更为精确和合理,笔者这里只是粗略的概述!

下面想说一下SDN初学的过程和感受,同时也规划自己的学习路线,仅供参考。

记得刚开始学习,在群里给出了自己关于学习SDN的路线,先Linux和python,然后学习SDN,后来群里一位前辈看到,很痛心,说:“现在同学学习SDN,切不可忘记传统的网络知识,否则只是无源之水,无本之木!”但是幸好自己学习了一年多的路由交换,对于传统网络知识还是相对熟悉。由此可见,要想学快,学好SDN,传统网络知识是要先掌握的!后面也会提到相关原由。操作系统的话,Linux是必须要会的,因为模拟环境和控制器都是在Linux下搭建的。刚开始的我还在先学习Linux和编程语言,但是和一位SDN从业者聊过以后共同得出,Just Gan!就是干,在问题中学习,往往更有针对性,对于成长的速度也相对较快。
也许刚开始的自己有着一大堆的问题,例如控制器的选择啊,编程语言的选择啊,未来从事相关行业的前景如何啊,等等,但是看过一些书籍以后,自己就变得豁然开朗!

‌入门书籍我推荐三本,第一本《深度解析SDN》,这本书的内容相对较老,但是对于SDN.的了解入门,商业化关系发展都有涉及。第二本《重构未来网络SDN》,2017年出版,内容新,增加了许多相关配置内容。我觉得这两本是国内入门SDN的好书,易懂,可读性强,最后一本读的是《软件定义网络》,是译本,这本着重的就是mininet和相关控制器的配置问题,对于模拟实验来说,值得一读。或许有许多书籍我并未读到,但是对于入门来说,这三本是我推荐阅读的。

‌控制器选择方面,控制器有许多,但是在此只略讲三款,ODL,ONOS,Ryu。ODL和ONOS是java语言编写的,这两个规模较大,ODL是有厂商主导,在ONOS出来之前一直占据着龙头位置,ONOS是后来出现,目前与ODL形成竞争关系,是由ONF主导的,更受运营商的青睐。Ryu体积较小,是由Python语言编写,相关功能正在不断完善,社区也很活跃!我的选择是最好都能涉及和掌握,我学的是ONOS,初步规划,日后ODL与Ryu也是要会的。

‌编程语言自己曾经迷茫过,但是后来明白,这种大热的Java和Python都是要掌握的,我目前先学的是Java。

‌对于选择这一方面,各有自己的看法和见解,适合自己的才是最好的,萝卜白菜,各有所爱吧,不必在这些方面纠结过多时间,选好自己的方向,就去学吧,只有在学习过程中遇到了问题,才会想去怎么解决,也能够记住相关知识!编程语言的学习更要结合相关操作平台(ODL,ONOS,Ryu),最好多读读源码,能够对此理解的更深入!

当前商业上部署SDN的案例已经有许多的,但是基本上都是传统设备上增加了SDN功能和应用,所以前文提到的传统网络知识也是必须要掌握的技能之一。笔者相信,未来SDN会逐步发展,但是由于硬件的限制,在没有理想的硬件支持的情况下,很长一段时间都是会这种传统与SDN混合的状态存在。传统的网络工程师应当学习编程,适当增加自己的软件知识,来为未来网络的发展做好应对的准备。

当然,SDN当前存在的问题也有许多,在此不做过多阐述,具体可以自行百度,我觉得,既然选择了一条路,那就为之奋斗下去,并且能够找到适合自己的方向,希望有一天,能会为此做出贡献!

目前在读openflow1.3英文版,一方面为了更加了解openflow协议,一方面为了提高自己英文阅读能力。关于往后的学习,一个前辈给出了相关建议,原话如下:

底层网络方面,你可以看Segment Routing、VMware NSX、Netconf
网络虚拟化方面,你可以看ETSI写的NFV系列白皮书、Openstack、docker
比较新的东西,你可以看P4、SONIC、p4 runtime,不过新东西意味着不完善,宣传水分,慎入
东西很散,根据自己的需求学习,画一棵适合自己的知识树也是不错的选择。

如果有看到此文的大学生,想对SDN行业有深入的学习,抓紧时间吧,我只有一年的时间给自己学习,后悔大一,大二没有利用好时间,切记,在大学一定要给自己一个规划,然后朝着理想的目标前进,不可三天打鱼两天晒网,随便更改自己的方向,否则最终一事无成!

笔者如果学习道路上有进步和成长,一定会与大家分享。

如若发现此文有错误和不足,欢迎感谢大家指正和批评。也愿你们学习道路一帆风顺,日有所成!

再次说明,此文只是目前笔者对与学习SDN的初步感受,必定存在许多狭隘的观点和不足,日后定加完善,请见谅!


欢迎大家来交流,如若想一起学习进步,评论然后联系!

猜你喜欢

转载自blog.csdn.net/yan_star/article/details/78450459
SDN
今日推荐