网络工程师考试里,有一类题目不考具体的配置命令,也不考协议报文字段,而是考你对一种技术理念的整体理解。NFV网络功能虚拟化就是典型代表。很多考生第一次见到NFV这个词,会本能地把它和SDN混为一谈,结果在考场上把"谁负责执行虚拟化的网络功能"这道题做错。这篇文章从NFV的官方定义讲起,一直拆到MANO三大组件的职责边界,再用2024年下半年的真题把命题人的挖坑套路彻底说透,保证你读完以后,凡是涉及NFV架构的题目都能一击命中。
要理解NFV,必须先弄清楚它诞生的背景。在传统网络里,每一个网络功能几乎都对应着一台专用的硬件盒子。路由器是一台设备,防火墙是一台设备,负载均衡器又是一台设备,深度包检测、入侵检测、广域网加速,每一种功能都要买一台专门的物理设备回来,插上电、连上线、配好参数,才能投入使用。这种模式运行了几十年,运营商和大型企业的机房角落里堆满了来自不同厂商的盒子,每一台都有一套自己的操作系统、自己的命令行、自己的管理界面,运维人员要记住几十套不同的配置语法。
NFV的全称是Network Functions Virtualization,中文译为网络功能虚拟化。这个概念最早由欧洲电信标准协会ETSI在2012年10月的一份白皮书中正式提出,当时参与推动的主要是十几家电信运营商。ETSI给NFV下的定义可以概括为一句话:利用标准化的IT虚拟化技术,将原来运行在专用硬件设备上的网络功能,改造成运行在通用服务器上的软件实例,从而实现网络功能的软硬件解耦。这里的关键词是"解耦",也就是把网络功能和承载它的物理硬件彻底分开,让网络功能不再被某一台特定设备绑架。
软考的教材和考试大纲在涉及NFV时,基本沿用了ETSI的这套表述。考生需要记住的核心要义有三点。第一,NFV的载体是通用的COTS服务器,也就是市面上能直接买到的商用现货服务器,而不是专为某个网络功能定制的硬件。第二,NFV的实现手段是虚拟化技术,包括虚拟机、容器等,通过这些技术把一台物理服务器抽象成多个彼此隔离的逻辑环境。第三,NFV的目标是取代专有硬件,用软件的方式灵活部署、灵活伸缩网络功能。
软硬件解耦听起来抽象,实际带来的变化却是实实在在的。过去运营商要上线一个新的网络功能,比如新增一台应用层防火墙,采购流程走下来少则几周,多则几个月,设备到货以后还要上架、布线、调试。而在NFV架构下,同样的功能只需要在资源池里划出一部分计算资源,启动一个虚拟防火墙的软件镜像,几分钟就能完成上线。当流量高峰到来需要扩容时,传统模式只能再买新设备,NFV模式则可以直接给虚拟机加CPU、加内存,甚至横向复制出多个实例。
这种变化直接改写了网络建设和运营的成本结构。专有硬件的研发成本、制造成本、维护成本都很高,因为每种设备的市场规模有限,无法像通用服务器那样享受摩尔定律带来的持续降价。NFV把这些成本统一摊薄到了通用硬件和开源软件上,让网络功能的迭代速度第一次追上了软件的迭代速度。
很多人把NFV和SDN当作一回事,这是理解上的第一个岔路口。二者虽然经常被并列提起,甚至经常协同部署,但它们解决的是两个完全不同维度的问题。SDN,即软件定义网络,解决的是"网络怎么控制"的问题,核心思想是把控制平面和转发平面分离开来,让网络的转发行为可以通过软件集中编程。NFV解决的是"网络功能跑在哪里"的问题,核心思想是把网元功能从专用硬件搬到通用服务器上。
一个贴切的定位是:SDN管的是连接,NFV管的是网元。SDN让网络流量的转发路径变得可编程,NFV让网络功能本身变得可软件化。在实际项目中,二者往往互为支撑,NFV部署出来的虚拟网元之间需要灵活的网络连接,正好可以借助SDN来提供;而SDN控制器本身作为一个软件系统,也完全可以跑在NFV的通用服务器资源池里。理解了这层关系,考生就不会再被"NFV和SDN谁包含谁"这类干扰项带偏。
如果用一个更生活化的框架去辅助记忆,可以把整个网络比喻成一条高速公路。SDN解决的是"车辆走哪条路"的问题,相当于一套智能交通调度系统,能够动态地指挥车流改道、分流;NFV解决的是"收费站、检查站用什么建"的问题,相当于把这些原本要盖成实体建筑的设施,改造成了可以随时搭建、随时拆除的移动式设施。二者一个管路线的控制,一个管设施的形态,方向完全不同,却能在同一条高速公路上默契配合。这个框架虽然朴素,但能帮助考生在第一时间把两个概念拉开距离,避免考场上因为紧张而把二者的特征张冠李戴。
NFV之所以能够成立,是因为虚拟化技术已经足够成熟,可以把一台物理服务器安全、高效地切分成多个相互隔离的逻辑运行环境。ETSI为NFV定义了一套标准化的参考架构,把整个体系拆解成了几个职责清晰的模块。理解这套架构,是拿下NFV相关考题的关键。
在NFV参考架构的最底层,是NFVI,也就是网络功能虚拟化基础设施。NFVI由两部分构成:一部分是物理资源,包括通用服务器提供的计算能力、存储设备提供的存储能力、交换机提供的网络连接能力;另一部分是虚拟化层,通常由Hypervisor这类软件来充当。Hypervisor运行在物理硬件之上,负责把物理的计算、存储、网络资源抽象成一个个虚拟资源,再分配给上层的虚拟机使用。
需要强调的一点是,虚拟化层这个环节的存在,恰恰是NFV区别于传统网络的根本标志。传统的专用网络设备之所以被称为"盒子",就是因为它的硬件和功能是焊死在一起的,买来一台防火墙,它就只能当防火墙用,无法拆开重新组合。而NFV通过虚拟化层这一道抽象,把硬件的能力变成了一池可以随时调用、随时释放的资源,功能软件则变成了这池资源之上可以任意装卸的组件。这一层抽象虽然不直接处理网络流量,却是整个NFV体系能够灵活运转的根基所在。
这里有一个考生容易忽视的细节:NFVI并不只是那堆物理服务器,它必须包含虚拟化层这一环。因为只有经过虚拟化层的抽象,物理资源才能变成可以被动态调度、灵活组合的虚拟资源池。题目如果问"NFVI由哪两部分构成",答案就是物理资源和虚拟化层;如果题目把NFVI简单等同于"一堆通用服务器",那就落入了命题人设下的陷阱。
跑在NFVI之上的软件实例,统称为VNF,也就是虚拟化网络功能。VNF本质上是实现具体网络功能的软件,一个虚拟路由器、一个虚拟防火墙、一个虚拟负载均衡器,都可以是一个VNF。它是NFV体系里真正干活的那一个,网络流量最终要流经这些软件化的网元,由它们完成路由转发、安全过滤、负载分担等具体动作。理解了这一点,也就理解了为什么在ETSI的参考架构图里,VNF总是被画在NFVI的上方、MANO的侧方,因为它是功能执行的核心,是上层业务与底层资源之间的真正桥梁。
既然VNF是软件,它就有生命周期,需要有人来管理它从诞生到消亡的全过程。这个管理者就是VNFM,即VNF管理器。VNFM的职责包括:根据模板实例化出一个新的VNF、在负载升高时对VNF进行扩容、在负载降低时进行缩容、在软件版本更新时对VNF进行升级、在不需要时终止并回收VNF占用的资源。可以把VNFM理解成一个专门伺候VNF的管家,它对每一个VNF实例的健康状态负责。
在VNFM之上,还有一个更高层的角色,叫做NFVO,也就是NFV编排器。如果VNFM管的是单个VNF的生命周期,那么NFVO管的就是由多个VNF组成的整个网络服务。一个完整的业务往往不是单个VNF就能支撑的,比如一段企业专线业务,可能需要虚拟路由器、虚拟防火墙、虚拟负载均衡器等多个VNF串联起来协同工作。NFVO负责把这几个VNF按照业务逻辑编排成一个完整的网络服务,并且跨多个NFVI进行资源的统一调度。
在NFVI这一侧,同样需要一个管理者来对接虚拟化层,这个角色叫做VIM,即虚拟化基础设施管理器。VIM负责管理NFVI内部的虚拟资源,比如创建虚拟机、分配存储、配置虚拟网络。开源的OpenStack就是最典型的VIM实现。NFVO、VNFM、VIM这三者合在一起,构成了NFV的MANO,也就是管理与编排模块。MANO是NFV的指挥中枢,它让整个虚拟化体系能够自动地、闭环地运转起来,而不是靠人工一台一台地手工配置。
把NFV参考架构的各个模块理清之后,还需要进一步掌握VNF的具体类型,以及NFV在真实网络中的典型落地形态。这一部分既是考试的重点,也是理解NFV价值的落点。
为了把几个容易混淆的角色彻底钉死,这里再做一次集中对照。NFVI提供资源,是虚拟化功能的物理和虚拟底座;VNF是跑在资源之上的功能软件,负责执行具体的网络功能;VNFM管理单个VNF的生命周期;VIM管理NFVI的资源;NFVO编排整个网络服务。用一个递进的关系来记忆:NFVI是地基,VNF是盖在地基上的房子,VIM管地基,VNFM管房子,NFVO管整个小区的规划。这道对应关系一旦建立,任何
本篇完!