【前言】
SDN是一个对现有网络考虑了兼容性的框架,博文博主认为,如果结合具体的业务需求,将OpenFlow的规则利用起来,必能给客户带来收益,给云计算、设备商和芯片商等企业带来发展的机会和激烈的竞争。同时鉴于OpenFlow的很多问题,作者认为其可能仅是一种过渡形态的昙花一现。以下为原文:
前面说了很多传统交换机的流程以及OpenFlow交换机的内容,并结合常用的网络功能对比了二者的差异。但是需要明白的是,OpenFlow交换机就是OpenFlow交换机,如果用OpenFlow交换机不是结合SDN的方式来使用,而是用其实现传统的基于MAC的二层转发或者基于IP的三层转发,那么就没有必要折腾了,何必哪?费力费钱还没有收益。尤其是运营商,对于OpenFlow的态度,尽管他们又各种各样的设备管理和维护问题,但是如同他们不自研网络设备,再加上钱多人懒,是不会对运营商网络做出什么SDN方面的改进的,除了某些项目名称。 OpenFlow交换机就是基于流标项的转发,可以结合SDN被用于结合业务的转发,无需考虑MAC学习,无需考虑是否有路由,而是用户或者管理员根据自己的需要来配置交换机。所以利用BMC或者MVL的传统商用交换芯片来做OpenFlow的开发,会导致表项容量小、OpenFlow标准支持不完全、对交换芯片其他处理流程组件浪费的现象。
OpenFlow
像卫峰书中讲的那样,SDN和OpenFlow关系,二者是不能划等号的。例如OpenStack中,如果Neutron下的plugin用Linux bridge,那么这个就不是SDN了吗?显然答案为仍然是SDN网络。SDN我理解的是一种思想,而不是一种方案或者功能。所以网络很多做法都是和 SDN有着扯不清的关系,但是这个绝非像某些大的互联网公司扯自己的产品硬跟SDN挂钩那样,因为他们的产品开发时研发和测试人员脑袋里连SDN的概念都没有听说过,现在国内互联网公司和很多的设备商都还只是停留在观望和接触的状态,并没有什么实质的SDN产品或者方案。并且SDN并不代表完全脱离硬件,有的云计算公司对于网络虚拟化中有一些硬件参与就不认可是SDN,难道说要全世界的人都用一台服务器,里面的每人用的虚拟机都用虚拟端口通信才算是真的 SDN吗?这个逻辑充满了荒谬。SDN只是一种思想,一种站在用户角度、站在管理员角度可以参与管理和控制网络底层转发决策需求的满足和实现。底层转发的实现是否是纯软件或者有多大程度的硬件参与并不重要。如果一个人坚持这么认为,我只能说这个人不懂SDN。而OpenFlow交换机提供的基于流标项的转发方式,正是SDN用硬件作为底层转发时所需要的,因此可以说OpenFlow交换机是SDN底层用硬件实现的一种方式,而虚拟网络里采用 OpenVswitch互通虚拟机则是用OpenFlow流表实现SDN思想的一种纯软件方案。
OpenFlow作为SDN底层实现的一个理想选择,在转发层面确实有很多优势,但是个人认为也有很多需要注意的点:
如前文所述,将控制平面和转发平面进行分离,减少了控制点,增加了控制平面的负担,需要比以往有更强的CPU计算能力的设备才能堪重负;
虚拟机、iptables
OpenStack
OpenStack现在是一个非常火的开源社区,官方有大量的资料和大牛贡献代码及文档。但是从国内的分享来看,大部分是基于如何搭建出某种简单的环境,尤其是网络这块如何搭建,以保证能建立虚拟机后在虚拟机内部可以正确的访问各种网络,但是从介绍来看绝大多数的分享者对OpenStack的底层技术并不了解,甚至出现了两台云主机在两个vlan就无法ping通的实验。因为网络虚拟化在OpenStack进行商业活动中提供服务的重要性,每年的OpenStack会议都有大量的会议在讨论网络相关的技术。而此时也是SDN体现价值的一个重要案例。OpenStack的缺点已经被各种吐槽,我个人认为OpenStack为了获取最广泛的支持,采取了吸纳百家的策略,就是现在项目众多,耦合性也越来越大;最麻烦的是,对于计算、网络和存储的虚拟化,它不是采用了一种经过考虑后慎重选择一种最有前途的然后进行专注和持续积累的方式,而是选择了每种技术都支持且经过抽象封装了一层中间层,这就导致的问题是OpenStack的专注无法集中,开发者的力量被分散,代码需要经过多次的封装,自然也就效率非常低下。商业版本除了修正其固有的BUG外,还必须解决上述问题。
VXLAN/NVGRE
VXLAN 和NVGRE的两种方案都是为了解决大二层中Vlan ID个数不够的问题,除了卫峰所述的封装导致的传输效率降低和负载均衡受影响外,还会对硬件设备的要求上有进一步提高,据我所知,现在BCM或MVL几乎只有一两款芯片产品支持,这对OpenFlow的本意来说本身就是个挑战;更别说那些通过收购其他网络公司来完善自己产品布局的某些企业下这些收购后的子公司,他们的产品更是在SDN上没有什么大的进展。
从ACL中吸收了经验而改进形成的OpenFlow规则,结合现在盛行的SDN概念,已经开出了很多花朵,但是这些花朵能否最后能秋季成熟还是个未知数。但是OpenFlow确实在QOS分类、实现ACL的防火墙的安全功能、在现有网络上对新协议进行试验都是十分有效的。SDN是一个对现有网络考虑了兼容性的框架,如果结合具体的业务需求,将OpenFlow的规则利用起来,必能给客户带来收益,给云计算、设备商和芯片商等企业带来发展的机会和激烈的竞争。OpenFlow到底是会成功大放光彩,还是仅是一种过渡形态的昙花一现,可能后者的概率要大一些。
本文作者:佚名
来源:51CTO