前一段时间看了一本关于SDN的书籍《SDN核心技术剖析和实战指南》,读后大体理解了其的转发控制分离的理念。之后也去看了下几个网络厂商的各自的SDN产品和其自身对SDN的推广,SDN机遇与挑战并存的。借这些了解在CU论坛上参加了一个SDN的讨论,并或得了一本《SDN与Openflow解析》。

讨论个人回答见解如下:

SDN初见_第1张图片

1、SDN(软件定义网络)一种理念:控制与转发分离。

这里理念应该是随着虚拟化,云计算和人类思想的进步发展而来的,为什么这么说呢,①虚拟化可以是从一个事物虚拟出多个事物来使用,达到更高的资源利用率;也可以从另一个角度,多个事物合成虚拟成一个事物,已达到统一调度资源的目的。②,随着大数据,云计算而来的很多应用可以稍加修改的进行SDN的应用,举个例子上层应用中可以使用openstack进行各种网络资源的调度,调度些什么网络资源在第三条说。③、之所以说是人类思想的进步,现在网络中的元素太多了,各种防火墙、负载均衡器、加速器等等,人们管理起来就很麻烦,如果进行NFV,把这些东西软件化,作为控制器中的网络资源进行管理,不就方便多了。最终SDN的发展应该是这样,只需在上层应用中点点鼠标就可以调度实现各种功能。
2、研究者、使用者和厂商的矛盾与发展
Openflow也好,其他的协议也好,终归是研究者和使用者的需求得不到满足,需要琢磨发展新的东西,所以openflow等就出来了。但好东西,而且有利可图的东西厂商怎么能不去凑热闹,所以各大网络厂商、软件厂商都加入进来了。这就出现了一些矛盾,研究者和使用者终究是具有理想的一类人,思想是好的,但最终能不能实现,当今技术跟不跟的上,确实有厂商,开发者来决定。所以SDN能发展到什么程度,能不能最终的标准化,个人认为是在基本功能标准化的基础上,各厂家百花齐放。
3、国内外研究发展
现在在个人比较有限的了解的现状下,感觉这些技术国内远远赶不上国外的,没有崇洋媚外的意思。我们从几大网络厂商巨头收购的SDN产品就能看得出来,国外研究SDN的公司很多。Cisco、Juniper等等。我们国内当然也有,也有做的不错的,但多数还是高校研究吧。
4、工作者如何面对SDN
作为软件工作者没什么好说的,但作为网络工作者都会有些疑虑了,就是我们要不要去学编程;看到过一份报告说:在过一阵子人们将不再去考CCIE了,二是报班去学习java、python了,不过网络厂商老大Cisco给SDN工作者们定了一些方向,比如有SDN开发者、SDN维护者等;有点类似现在的程序开发和系统运维管理,总之多学点没错的。

5、在二层交换机上数据转发的依据是CAM表,三层设备上依据的是TCAM表,SDN交换机转发依据流表,其实前两者应该也是可以称作流表,只是SDN交换机需匹配的字段更多,更像流水线,所以叫流表更直观。对流表感兴趣的地方是:
            ①、二三层设备依靠CAM表来转发,这样字段较少,实现还容易些,但是流表中字段很多,而且将来极有可能还会扩展,这样的硬件如何实现,是单独研究出来新型的芯片还是用CAM的多级流水线方式,个人认为会有一个非常好的基于硬件的实现方式的,如何实现个人对这个了解不多,这个是SDN交换机核心,是意义所在。为什么这么说呢,接下。
            ②、我们知道现在交换机、防火墙的安全机制都是通过ACL或者策略来实现,这些机制没了的话,是不是就要通过流表的匹配来决定丢弃还是转发。
            ③、现在我们使用的负载均衡设备要么根据4层端口转发,要么根据7层应用层内容转发(比如根据域名、图片后缀格式等),如果进一步吧流表扩展到7层,能识别应用层的东西,又有个硬件转发的前提,是不是把负载均衡设备扔掉,仅用SDN交换机而达到转发效率大幅提升呢,这应该与NFV思想是一致的。
6、总之SDN个人认为即使软件的革命,同时也是硬件芯片的革命。


总结:以上内容是个人理解的一部分,由于现阶段理解有限,可能还有些欠缺;现在也在学习,等看完这本书后会进一步写一遍SDN读后感。

CU论坛链接:http://bbs.chinaunix.net/thread-4140887-1-1.html