SDN(Software Defined Network),NFV(Network Function Virtulizaiton),NV(Network Virtulization),三个网络名词是电信界与IT界的热点词汇,它们与运营商网络、云计算,虚拟化密切相关,所以频繁的在不同领域,不同场合出现,以致于很多人对它们混为一谈,在此,就自己前一段的学习与体会,谈谈所理解的SDN,NFV与NV。
漫谈SDN
SDN即软件定义网络,开放网络基金会(ONF)将软件定义网络定义为三个特征:
控制平面与转发平面分离
控制平面集中化
网络可编程
了解现有网络的人一看就明白,我们现在的网络无论运营商骨干网,城域网,接入网,数据中心网络以及企业的园区网,办公网,都是非SDN的,即硬件定义的网络,特点是:
控制部件与转发部件一体化,形态上体现为厂家专用的、封闭的、控制与转发平面紧耦合的设备;
控制平面工作方式是分布式的,每台设备独立通过二层,三层的协议学习网络拓扑,形成转发表与路由表,报文转发自主决定。
不可编程,网络的部署通过设备厂家的特有命令行,命令行各家不一,没有标准。
SDN描绘的理想网络应该是这样的:
转发平面通用化(Openflow的目标),转发设备的研发,生产,制造不再有门槛,制造商仅需要将通用芯片组装成设备即可,厂家设备差异化消失。转发设备受控于控制器,转发信息由控制器下发。
控制器即Controller,要性能强(控制相当规模的网络),可部署复杂业务(高级服务),支持高可用。Controller能形成集群组,支持更大规模网络。
公开的北向接口,应用或云平台可以通过这个接口调用控制器,实现业务所需的网络服务。
在这里啰嗦大家熟悉的SDN的定义以及SDN实现的理想网络,是因为业界对SDN有不同的解读,有种说法是SDN重在第三项特征可编程,第一,二特征没这么重要。我的看法是,如果控制不集中,在现有设备商上是可以实现一定程度的可编程,可其带来的好处是有很大局限的,局限之处在于:
无全局拓扑
配置上下文一致性没保证
无统一的网络运行状态信息
因此,SDN的三个特征是互为补充的,只有这三者之间的有机结合才能真正解决硬件定义网络的束缚,上层业务才能随心所欲调用网络,使其为之服务。
Google的B4以及Facebook最新的数据中心都证明了这一点,其核心建设思想都在强调Controller对网络的全面掌控。可见,强调满足一、二特征还是必须的。
谈SDN需提及Openflow(尽管它表面上只是一个南向接口协议),因为它们被同时提出并紧密相关,在此,说说我理解的Openflow。
从SDN提出第一天起,以斯坦福大学Nick教授为代表的学术界就一直在致力于转发平面的通用化,Openflow充分体现了这一设想。但大家都了解,Openflow的进展到目前为止并不顺利,原因有三点:一:目前的商业芯片无法有效支持Openflow定义的多字段匹配;二:商业芯片对匹配、动作多级流水线的支持也很有限;第三点倒是与Openflow没有直接关系,业界各厂家推出的controller+switch方案与现网的互通性过于简单,不满足生产要求,使得所建的网络成为孤岛,只能用于特定场合(如研究与测试),并非可以全面推广的通用方案。
尽管现状如此,但Openflow实现转发层面通用化的努力还是有非常大的意义。假设Openflow的标准固定下来,基于Openflow的商业芯片量产,对于网络界的意义不亚于x86对于服务器行业的意义。
漫谈NFV
NFV是ETSI(即欧洲电信标准化协会)旨在通过采用通用硬件及在其上流行的虚拟化技术,来取代目前由电信设备厂商给运营商提供的专用硬件设备,从而降低网络建设的昂贵成本支出。NFV背后的支持者是电信业界的各大巨头。
IT业者不大了解电信网络,以为NFV的目标是拿通用服务器代替数据中心的交换机、路由器等设备。实际上,NFV所涵盖的范围要广泛的多,电信网络中除了数据网络外还有固定网络,移动网络以及传输网络,涉及的网元类型达百十种之多(电信业内的专家都难准确说出电信网络究竟有多少种网元),都在NFV所涵盖的范围。
既然NFV的目标是通用服务器替代专用电信设备,那就需要了解它们各自的特点。专用电信设备的特点是性能强,可靠性高,有较强的可扩展能力。而通用服务器的长处是计算能力强,标准化,有成熟、开放的虚拟化技术支持。
上面讲到电信网络中的网元类型很多,功能上有侧重计算密集型的(以处理信令为主),也有侧重转发性能的。NFV应该发挥通用服务器的强项,目标先锁定那些计算密集型的网元,之后再随着CPU处理网络报文性能的提高,再逐步覆盖那些侧重转发的网元。
这里以数据通信设备为例,讲讲NFV可能的发展路径。数据通信中的常见设备有交换机,路由器,防火墙,深层监测及应用交付设备等。交换机与路由器基本工作在OSI定义的二层到三层,而深层监测与应用交付设备工作在OSI定义的四层到七层。越往上层走,芯片需要处理的报文字段就越多,计算的工作负荷就越大;越往下层,芯片需要处理的字段就越少,计算资源的需求就越小。
拿业界最有代表性的三类芯片CPU,NP(Network Processor)与ASIC(Application Specific Integrated Circuit)作性能分析:NP比CPU快一个数量级,ASCI又比NP快一个数量级。拿最新的数据参考,NFV领先的某公司刚发布了性能测试报告,采用的双路服务器实现的最大三层转发性能为80Gbps(注意:该服务器工作在裸设备模式,还没作虚拟化,虚拟化后必然有一定程度的性能降低),可是,交换机领域量产的单颗芯片的转发性能已经是1.28T。
所以,NFV如果要大行其道的话,CPU必须在性能方面大大缩短与NP及ASIC之间的差距。
漫谈NV
随着云数据中心里计算虚拟化的趋势,数据中心中业务快速部署、自动化以及自服务成了必然的需求,这在公有云,大规模私有云里体现的最为明显。对网络提出了以下几个方面新的要求:
云平台无法操纵现有网络设备,无法根据应用的要求配置网络。
多租户之间要实现隔离。
单租户的不同应用之间安全性要保障。
虚拟机迁移的要求打破了原有网络的边界,配置的网络策略需要随动迁移。
上述要求使得现有网络无所适从,所以NV应运而生。
NV的方法是在现有网络之上构建了一个叠加(Overlay)的,虚拟的网络,这个网络直接支持业务,由云平台操控。而现有网络只作为传输通道,只在特定情况下支持业务(如需要虚机与物理机之间互通)。
NV的体系架构大致如下:
服务器Hypervisor上安装转发部件,接收Controller下发的转发指令,形成转发表,转发数据报文。
Controller控制其下的Hypervisor们,准确的说是控制其上的转发部件;管理整个虚拟网络。
Controller提供API接口给云平台,云平台部署业务时只跟Controller打交道。
对于东西向流量,由Controller控制下的Hypervisor之间(以下称虚拟机集群)转发实现,而南北向流量,需要部署专门的虚拟路由器或物理网络设备作为虚拟机集群的出口。
南北向流量处理需要多提一点的是,不论专门的虚拟路由器还是物理设备,上面运行的是传统路由协议,Controller要与其互通,需要支持相同的协议。
叠加网络是这样形成的,Hypervisor之间建立隧道,通用的协议是VXLAN或NVGRE(隧道协议后续还有发展,这里不作探讨)。虚拟机之间的流量封装在Hypervisor地址内传送。物理网络设备只看到Hypervisor地址,不会看到虚拟机地址。
了解传统网络设备的就会意识到,这个架构似曾相识,虚拟机集群像一台机架式路由器或交换机,Controller就是主控,Hypervisor就是接口卡,每台虚拟机连接到接口卡上。Hypervisor之间通过VXLAN连接,VXLAN相当于机架式设备的背板或交换引擎(当然VXLAN报文不能跑在空气中,由物理网络设备转发)。这里,Controller负责控制平面,Hypervisor们组成转发平面。
在此回答NV是如何解决前面提到的计算虚拟化挑战问题的:
云平台通过Controller控制虚拟网络,满足应用部署要求。
隧道建立时,有隧道标识,VXLAN封装有VNI字段,24位,1千6百万个。每个VXLAN就是一个广播域,VXLAN之间二层隔离。为单个租户建立独有的虚拟路由器,租户VXLAN终结到自己的路由器,自然也实现了三层隔离。
Hypervisor上的转发部件可以为虚拟机配置ACL实现安全控制,也可以与第三方安全模块集成,实现更复杂的安全功能。
云平台在迁移虚拟机时同时调用Controller接口,配置的网络策略实现随动迁移。
最后谈谈SDN,NFV,NV三者之间的关系:
就之前对三者的描述,大家可以了解到,三者间绝不等同,但又互有交集。
SDN, NFV, NV之间的区别:
三者各自提出的背景不同,解决的问题也不同。SDN解决的是加快网络部署的问题,面向的是整张网。而NFV的诉求是通用服务器对专用网元的替代,针对的是单个的网元。形象的说,SDN关注的是面的问题,NFV关注的是点的问题。有电信界专家称SDN注重降低OPEX,NFV注重降低CAPEX,不无道理(当然,SDN的推动转发平面通用化成为现实,CAPEX也会大大降低)。
再讲讲SDN与NV的区别,相比SDN,NV解决的只是虚拟化数据中心的网络问题,SDN面向的网络更广泛,只要有网络灵活多变,业务部署复杂,就是SDN的目标所在。NV采用叠加网络解决虚拟化数据中心的方案只能用在数据中心,没法用到园区网,运营商城域网,骨干网等其他网络。所以,NV相比SDN,所针对的只是虚拟机网络,只适用于数据中心内,面向的网络范围要小的多。上一段将SDN与NFV比作面与点的关系,那NV针对的就是整个网络版图里的一块块小角。
总结一下,SDN,NV,NFV分别对应网络的面,角,点。
SDN, NFV, NV之间的交集:
NV是虚拟机世界的网络解决方案,我的理解是它采用了SDN的思想,NFV的方式满足数据中心云化的特定网络需求。之前的NV架构中,Controller与Hypervisor转发部件之间就是控制与转发分离,控制平面集中化的体现,Controller又有接口供云平台调用,实现可编程,不是完全符合SDN的三个特征吗?
在介绍NV时提到的处理南北向流量的虚拟路由器,与物理路由器功能上没有什么不同,只是运行在物理服务器上的一台虚拟机,实现了路由器功能,这不就是NFV的实际应用!
SDN与NFV诉求不同,前者面向面,后者面向点,但它们尽管不同,但有关联,而且关联关系会随着这两项技术的发展会越来越密切。先抛开SDN说NFV,现网中如果拿通用服务器替代专用网络设备,就是NFV的实现。而网络中实现SDN可以通过现有的专用设备,只要满足开篇提到的三特征即可。这么说,好像SDN与NFV无关。那为什么又说SDN与NFV会越来越密切?通用服务器替换专用设备,可能会更便于实现SDN定义的三特征,而且SDN与NFV都是大势所趋,未来会出现在Controller控制下用通用服务器作为网元形成的网络,既实现了SDN,又是NFV。如果发展到这一步,SDN与NFV就是完美的融合了。
关于作者:薛保平,曙光信息产业公司网络架构师,分别在曙光,爱立信,世纪互联从事网络架构,网络设计与设施等工作,在数据通信行业有超过15年的从业经验。
评论
查看更多