您的位置:首页 > 理论基础 > 计算机网络

读《企业须了解的网络虚拟化七大特征》有感随笔

2014-02-28 14:21 232 查看
刚看了一篇文章《企业须了解的网络虚拟化七大特征, http://network.51cto.com/art/201212/375240.htm》,有嚼头,作为一名熟悉Neutron的技术人员有些感想,如下:
文中讲“虚拟网络必须忠实复制物理网络服务模式,必须完全重建2层和3层的语义环境,包括支持广播和组播。除此之外,它还必须能够提供现有网络所提供的高级网络服务,诸如ACL、负载均衡以及WAN优化等。”

所以对于技术人员来说,我觉得掌握虚拟网络技术的核心是掌握传统网络技术(推荐书籍:大学都上的谢希仁编的教材《计算机网络》)及Linux内核(推荐书籍:《深入理解Linux网络技术内幕》及其他内核方面的书),万变不离其宗,原理的根抓住了,随便上层的名词术语如何堆砌,你总能迅速在你已有的知识体系结构中找到新名词的坐标位置的。所以学习OpenStack Neutron,不建议直接就钻到Neutron的代码里去,因为那里面有太多的网络领域知识,你直接就上是很难看懂的,或者很难迅速把握它的全貌及本质的。Neutron是什么,说白了,Neutron只是用python加了个壳对L2-L7层传统网络技术的实现而已。具体什么语言python什么的不重要,重要的是精通L2-L7层传统网络的领域知识,有了它,你就可以随意在虚拟化的网络世界中畅游。扯更远一点,如果你也想精通Python的话,我同样建议在随便找本python的书看后就直接抓根深入学习《UNIX环境高级编程》即可。

再就是性能,不管什么网,虚拟网络也好,物理网络也罢,核心要求就是线性快速转发数据包,性能直接决定着云的规模。很多思想是想用硬件来代替软件来提升性能,如MPLS,核心便是以前由三层路由的软件转发(三层路由是通过ip转发的,ip长度可变,所以按最大长度路由匹配的字符串算法是很难通过硬件来实现的)变为由二层的标签的硬件转发(标签长度固定,用硬件实现很容易)。其他一些技术像VEPA就更另辟奚径了,同一台物理机上的两台虚机的流量就是这台物理机的两个进程的通信要性能的话直接通过DMA送过去就好了,但VEPA的做法是物理机先将一台虚机出来的流量强迫送到物理交换机,然后再从物理交换机原路返回到这台物理机上的其他虚机。给出的理由是节省物理机的CPU资源(我认为网络流量倒过来再倒回去一样会引发操作系统的软件中断费CPU资源),另外就是说可以由物理交换机统一的做ACL,负载均衡这些操作(实际上虚拟交换机像openvswitch也是有这一些功能的)。

上面举得MPLS和VEPA的两个例子都是使用硬件来代替软件提升性能的思想,具体到neutron,想提升性能的话multi-host特性是必须的,所谓multi-host特性就是将l3-agent路由服务部署在每一台计算节点上,这样每一台计算节点上都具有相应tenant网络的网关来为本机上的虚机提供路由功能。另外,遂道有很多优点,但性能是个问题,可以考虑将遂道的广播禁掉提高性能,这块的代码同样出来了在社区评审。

再就是高可用,所有无状态服务(如glance-api, neutron-api等)的竞争条件的bug必须解决,只有这样才可能HA。FabricPath实际上是利用ISIS动态路由协议来建立邻居关系来在局域网内实现类似于广域网中MPLS的多路径关系,这对于超大规模的数据中心的带宽提升会有一些效果,当然这样可以通过多路径来实现HA;在广域网WAN优化方面,具有多ISP出口的网关也可以考虑。

安全隔离方面,目前tenant网络内部通过FWaaS的iptables来隔离效果还是不错的,如果具体使用openvswitch, 使用二层的流表来代替iptables应该在性能上有更好的表现,但搞法与社区大相径庭可能代码进不去。目前的FWaaS对于出虚机的,进虚机的,虚机之间的,路由器边缘的流量控制方面都还是不错的。建议在此基础上,仍然要使用出口硬件路由器的硬件防火墙功能来做双重隔离保险。同时,入侵检测可能比统一杀毒特性更加迫切,因为一是本身Linux也没什么毒,二是OpenStack云内由于FWaaS的存在处处是隔离有病毒也难以扩散。今后如果Intel的可信计算的CPU面市,内存、硬盘、IO等处处加密处处隔离,OpenStack的nova若实现了这样的插件,不希望的流量很难通过。

可编程控制方面,有这方面的特殊需求的,可用openflow,但我认为openflow目前在L2层方面还有可为,但在L3-L4层方面路还远。目前neutron具有openflow L2层方面的插件。

neutron要比nova-network支持更多的L2层插件,更多的L3-L7层网络服务,以及多个L2层网件和网络服务的同时共存使用更灵活。所以在这点上文中提到的”独立于硬件“与”更多的hypervisor兼容“上neutron是天然满足的。

原文链接:http://www.openstack.cn/p435.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: