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年的从业经验。
FPGA工程师手记:FPGA系统设计黄金法则
英特尔发布从云到边缘的多项创新技术,驱动数字化转型
大厂产品经理常用的原型工具有哪些?
什么是矩阵切换器
建立FPGA深度学习加速生态圈,为人工智能赋能
理解三个网络热点名词:SDN,NFV与NV
广东东莞智能电网建设已实现了自愈功能的全覆盖
日月光:封装产能吃紧将延续到明年第2季
三星电子将在准高端机型智能手机Galaxy A系列上导入三摄像头
Facebook携手空客测试太阳能联网无人机
爱克莱特过会,募资8.4亿元加码景观照明
5-100V内置MOS低成本汽车摩托车车灯的做法
iPhone8Plus最新消息:iPhone8Plus爆裂问题大揭秘,四点设计缺陷露真相
火箭灯的制作教程
5G有望在2025年占全球移动连接的15%
中国联通为神舟十三号平安返航打造优质通信网络环境
TE Connectivity推出符合OCP标准的U.2直角插座连接器
场效应管是什么_场效应管工作原理
数据库数据恢复——MongoDB数据库介绍和数据恢复案例
iPhone8什么时候上市?iPhone8最新消息:iPhone8为什么要采用摄像头竖置排列,这里头大有文章!