翻开SDN的介绍不难理解,SDN是一种将网络控制层面和数据转发层面分离的技术,可以为网络带来可编程的特性。未来的网络将和计算机一样,提供一个硬件平台,在此基础上通过软件对网络进行可编程设计。 SDN概念说起来简单,但是实际应用却面临不少的困难,尤其是是当前实际应用并不多的情况下,真正了解SDN的人并不多,更多的人并不知道如何去使用SDN,怎么才能利用SDN提升网络设计和管理的效率,本文通过通俗性的语言,简单化的讲解,让大家对SDN有个感性的认识。
用过网络测试仪(比如:思博伦的TestCenter或者SmartBits)的技术人员都知道,如果需要通过测试仪模拟各种测试流,需要提前对测试仪进行预设置,设置好发送报文的特征,然后点击端口发送,就可以打出流量来,在这个过程中可以设置流量大小,抓包,反复修改报文特征。其实SDN的实现过程也和测试仪的设置过程类似,首先通过OpenFlow协议(SDN软硬件通信的唯一标准协议,网络设备支持对OpenFlow的响应)对网络设备进行设置,在配置之前,首先收集网络基本信息,包括:有多少端口,网络带宽,路由规格等等网络技术参数,这些参数并不是某一台网络设备的,而是整个网络环境具有的总体技术参数。然后根据这些参数,使用SDN的软件控制器对路由协议,二层环网等进行设计,设计到参数后,通过OpenFlow协议向所有的网络设备下发,如果网络设备无法满足设定的设计,将返回失败,需要对设计方案进行修改。调整后设计方案后再下发,这样经过反复的修改最终设计出最适合自己数据中心业务应用的网络。不难看出,SDN***的好处就是可以很快地对网络设计进行调整,通过软件模拟设计网络,有不合适的地方及时进行调整,拥有SDN将不需要使用者关心网络设备是如何完成这些上层设计的,只通过SDN告诉网络设备,路由要从哪个端口转发到哪个端口,二层环路阻塞在哪里,甚至二层环路根本不用阻塞链路也可以保证没有环路,这将数据中心的网络技术人员从烦琐的网络设备配置中解脱出来,让网络人员可以更加聚焦于自己数据中心的应用业务,而且使用SDN后为网络人员调整网络提供了极大的便利,传统调整网络的方式,比如变更流量转发端口,新增路由等都需要人到机房去布线调整,往往要花费几天的工夫。采用SDN则不需要这样,只要通过软件调整几分钟就可以搞定,技术人员根本不用关心这些网络设备在哪里,就是远在美国的数据中心,也可以在北京的管理中心里顺畅地部署业务。数据中心虚拟化技术已经实现了异地数据中心之间的业务迁移,处于北京和美国纽约的两个数据中心网络可能共同来完成SDN发出的网络设计方案,网络人员不用关心到底自己设计的业务跑在哪里,处于异地的两个数据中心完全融合为网络人员提供了一个网络硬件平台,网络人员可以随心所欲地设计网络。
SDN除了为网络设计带来了极大便利,也便于对数据中心网络进行管理,可以说SDN就是升级版的网络管理软件。通过网管软件可以对所有的网络设备进行管理,现有的数据中心网管具有网络监控,管理,业务异常告警等功能。SDN除了具备这些网管的功能之外,还可以对网络故障进行自愈。当网络发生故障时,SDN控制器获知网络异常表现,采取自动恢复机制。这些恢复机制是提前通过软件设置好的,一旦得到发送的指令,就可以通过SDN发送到相关的网络设备上,执行恢复程序,这样数据中心网络可以自行进行故障恢复,只要整个网络是全冗余的设计,通过SDN可以确保网络业务永不中断。针对不同的故障,SDN发出不同的网络修复方法,现阶段我们都是通过业务演练,故障模拟来验证备份方案是否存在隐患的。在SDN的世界里,已经都可以通过软件模拟,可以通过软件构造出各种异常情况,然后制定解决方案,所以的故障模拟演练都可以通过软件模拟,短短几分钟就可以做完各种故障模拟。因为SDN的设计完全是通过软件对网络进行定义和设计,下发硬件网络设备后,可以不费吹灰之力就可以完成反复的模拟、操作、调整,这才是SDN真正强大的地方。
从以上的描述中不难发现,SDN实际就像计算机上安装的各种编程环境,我们可以通过Visual C++编程环境设计出各种应用软件系统,在Visual C++的环境中可以调试,编译,最终完成软件系统设计。SDN也是同样,SDN控制器就像一个编程环境,网络人员通过控制器进行网络设计编程,这个过程可以调试,编译和运行,最终设计出优秀的网络,使用SDN,即使不懂TCP/IP为何物的人也可以设计出高效的网络,这正是SDN的魅力所在。翻开网络标准文档RFC,已经更新到了6000多篇,哪个人也没有精力将这么多的RFC 吃透,通过SDN可以将人们从浩瀚的网络协议中解脱出来,只有设计网络设备的人才用关心网络协议的使用,使用网络设备的人,只要通过SDN控制,就不用再关心网络底层的实现。看到这里,作为一名网络技术人员一定为此而兴奋,是的,网络可编程,这是一件多么酷的事情,未来不仅会有计算机编程专家,也会有网络设计编程专家,这些人只需要懂得怎么玩SDN,就可以在数据中心网络领域里混得游刃有余。