栏目分类
Hippocrat中文网 你的位置:JOY 中文站 > Hippocrat中文网 > 虚拟化BRAS产品技术实现
虚拟化BRAS产品技术实现
发布日期:2025-01-02 12:22 点击次数:103
H3C vBRAS在云化的总体架构下,结合VxLAN和SDN技术,能够实现弹性扩展、流量灵活调度,资源高效利用;同时通过利用一系列的性能优化技术,其转发性能而要做到了业界靠前。自从2012年ETSI 提出NFV概念以来,NFV成为通信行业发展的一个热点。NFV主要的思路是让网络功能和专用硬件解耦,在COTS硬件上实现传统网络的系列功能。解耦后,通信软件的发展和升级可以灵活进行,硬件也可以根据需要由运营商自由定制,由此提升业务上线速度,并实现成本的降低。NFV在城域网的应用主要体现在业务接入控制的BRAS领域。vBRAS产品是传统BRAS产品的虚拟化实现,它除了需要完成传统的宽带用户接入以及业务控制外,还面临其他一系列的挑战,比如云化架构的实现、电信级可靠性和运维能力、业务快速集成能力以及开放的体系结构实现。vBRAS性能提升技术传统的电信行业,为了实现大吞吐量、低延迟、高可靠的转发,大量使用专用硬件,例如NP、ASIC、TCAM等。NFV采用的是COTS硬件,使用CPU来实现报文转发。CPU转发虽然在功能上比较灵活和强大,但在性能、时延方面,和专用硬件比起来还存在一定差距。为了提升COTS硬件的转发能力,vBRAS使用业界先进的虚拟化技术,并且在转发软件层面,也进行了大量优化,实现了性能的有效提升。转发性能提升,首要需要考虑的是VMM(Virtual Machine Manager,通常也称之为Hypervisor)的性能提升。VMM是运行在HOST机上的一个应用程序,它屏蔽HOST机底层的物理特性,为用户提供一个统一、虚拟的计算环境。虚拟环境上运行的OS(Guest OS)以及相关软件称之为虚拟机。在全虚拟化情况下,VMM需要模拟出各种外围硬件设备,例如虚拟网卡、磁盘、串口等。Guest OS以及里面的程序执行是一个非常复杂的过程,特别是对于特权指令、系统调用、trap、中断等系统操作的处理。Guest OS执行特权指令时,Host OS会产生一个异常,控制权从Guest OS转移到VMM。VMM对指令进行等价转换后执行,然后控制权再返回到Guest OS中继续后面的指令。虚拟化技术最初的实现,通过软件模拟系统特权指令的执行,所以系统执行性能很低。后来出现了半虚拟化(Para-Virtualization)技术。在半虚拟化下,Guest OS要求能感知到VMM的存在,Guest OS需要做一定的修改,以简化的方式来执行系统指令(相对完全软件模拟),性能得到一定提升。2005年和2006年,Intel和AMD分别推出了硬件辅助虚拟化技术,利用CPU硬件来隔离虚拟机的执行,加速执行速度。VT-x是Intel的硬件辅助虚拟化技术,AMD类似技术叫AMD-V。VT-x通过CPU引入VMX root operation和VMX non-root operation模式,给VMM和Guest OS提供了自己单独的运行模式和环境。每个模式都有ring0-ring3这4个特权级,所以VMM和Guest OS都有自己完整的执行上下文环境。硬件辅助虚拟化下,Guest OS的特权指令可以直接运行于VM内部,不产生系统异常,不需要VMM干预,不用软件模拟,极大提升系统执行性能。目前,在Intel的新一代处理器中,除了有些Atom芯片不支持外,其余大多数都已经广泛支持VT-x技术。例如桌面应用的Intel Core I5/i7等,服务器芯片领域的Xeon E5和E7等。目前,电信领域NFV使用的COTS硬件都要求需要支持VT-x技术。支持VT-x作为部署vBRAS的首要前提,必须满足。支持VT-x需要处理器、VMM同时支持。vBRAS推荐运行在Intel Xeon E5 2600以上配置的服务器上,使用Linux KVM或者VMware ESXi作为VMM,可以支持VT-x硬件加速。芯片组虚拟化加速技术芯片组虚拟化技术是指在主板芯片上实现的虚拟化,包括IO虚拟化和网卡虚拟化。VT-d(Virtualization Technology for Direct/IO)是一种在主板北桥芯片中实现的硬件辅助虚拟化技术。通过在北桥芯片中,更新设计的IOMMU(Input/Output Memory Manager Unit)构架,通过DMA Remapping,存在多个DMA保护区,实现DMA虚拟化。VT-d(Virtualization Technology for Direct/IO)通过中断re-mapping,可以让中断直接通知到VM。利用IOMMU,VMM可直接分配IO给VM,允许虚拟机对IO的直接访问。VT-c(Virtualization Technology for Connectivity)是另外一类IO虚拟化类型,它包含2个技术:VMDq和VMDc。VMDq主要是VMM使用的技术,vBRAS运行的环境不使用,本文不进行说明。VMDc支持虚拟机直接访问网络 I/O硬件,从而显著提升虚拟机性能。如前所述,Intel VT-d 支持客户操作系统与设备I/O端口之间的直接通信。通过支持每个 I/O 端口的多条直接通信信道,VMDc可对此进行扩展。例如,通过单个英特尔万兆位服务器网卡,可为10个虚拟机分配一个受保护的、1 Gb/s的专用链路,这些直接通信链路绕过了VMM的虚拟交换机,可进一步提升I/O性能并减少服务器处理器的负载。SR-IOV(Single Root I/O Virtualization)是VMDc的规范和标准,由 PCI-SIG 进行定义和维护。SR-IOV 定义了共享物理接口的一种方法,采用硬件实现的方式,针对具备多个硬件队列的网卡(如Intel 10GE 82599)可以虚拟成多个PCI I/O设备,每个I/O设备直接分配给指定的VM使用。通过驱动程序支持,可以实现物理网卡硬件的高速直接读写,实现接近于物理设备的性能。图1 SR-IOV网卡原理示意如图1所示,由SR-IOV网卡的PF(Physical Function)可以虚拟出来多个VF(Virtual Function)。VF可以分配给虚拟机,虚拟机能通过VF直接访问网卡硬件。所有的数据不再经过VMM的虚拟交换机进行过滤/转发,极大地提高了网络I/O性能。SR-IOV需要物理网卡支持技术,同时,虚拟机内部的Guest OS也需要支持相应的驱动。vBRAS目前已经支持Intel 82599网卡的SR-IOV处理模式,性能测试数据如图2所示。图2 SR-IOV网卡和普通VirtIO网卡性能对比从图2中看出,SR-IOV的性能要比VirtIO的性能高20多倍,SR-IOV对性能的提升相当得明显。目前,业界很多网卡厂商都开始支持SR-IOV,例如Intel、Broadcom等。vBRAS在电信领域的应用,建议SR-IOV网卡作为标配。对影响要求严格的场合,SR-IOV能力要求为必备。vBRAS转发性能提升技术目前,服务器使用的的CPU基本都是多核架构。vBRAS设计了一套先进的转发模型,该模型基于多核系统设计,针对多处理器系统进行很多优化,转发效率比传统转发模式有很大提升。PMD(Poll Mode Drive)传统Linux转发,网卡收到报文以后,通过DMA把报文写到内存,然后给CPU上报中断,通知CPU进行报文转发处理。在普通的服务器上,这个方法工作得很好,性能也能满足要求。但对于网络设备来说,在高吞吐、大数据量情况下,靠中断来驱动转发,会让系统不堪重负。传统的Linux转发模型下,提升报文接收性能,需要一些硬件辅助技术,例如Intel 82575 GE以太网控制器和Intel 82598 10G以太网控制器上采用的RSS、VMDq、MSI-X技术。Intel 82575以太网控制器具有多个硬件接收队列。报文接收时,可以根据4元组计算HASH,确定报文应该送到哪个物理队列,并保证同一个流的报文能送到同一个队列里面处理。报文送到硬件物理队列后,队列通过MSI-X中断,上报给物理队列所绑定的CPU处理。而每个硬件队列的中断,可以通过系统配置,根据实际需求,绑定到指定的CPU上。VMDq是一种硬件offload技术。由网卡硬件完成了原有的VMM软件对报文分类的操作。VMDq需要VMM软件和网卡硬件协同,完成报文接收。目前,Linux使用的RSS、VMDq、MSI-X技术虽然能加速报文的接收速度,但是CPU仍然需要中断来触发报文接收。高吞吐量场景下,仍然存在大量中断,CPU负担重。虽然Linux具有中断合并调整功能(比如网卡驱动提供的IRQ coalescing特性,指定多少时间内合并多少个中断),但并不能根本解决使用中断来驱动转发的问题。vBRAS单独使用一个接收线程,对系统里面所有的接口进行poll,如果发现有报文接收进来,就根据分发算法,把报文传递到转发线程进行处理。报文传递的时候,只有指针交换,没有中断,也没有内存copy。转发线程的接收缓冲区是一个无锁的ring buffer,避免了线程之间锁抢占带来的开销。转发线程通过自己的poll操作来感知报文的接收,如果收到报文则进行转发。所以,对比传统Linux的中断驱动转发的模型,vBRAS使用的PMD技术,从根本上解决了靠中断来驱动转发的问题,实现了系统0中断。CPU亲和性绑定vBRAS的转发线程通过设定CPU亲和性,绑定转发线程到指定的CPU上运行。转发线程不会被调度到其他CPU上运行,避免了进程切换和CPU调度带来的系统开销。绑定转发线程到指定CPU上运行,解决了转发线程运行在指定的CPU上,但不能阻止其他进程和转发线竞争同一个CPU资源。如果其他线程也能调度在转发线程相同的CPU上,会抢占转发线程资源,影响转发效率。为了解决这个问题,vBRAS通过对CPU进行预先的规划,指定数据平面CPU和控制平面CPU的集合。控制平面运行的进程只能在控制平面的CPU上运行,不会调度到数据平面的CPU上运行,避免控制进程对转发CPU带来干扰。规划以后,转发CPU就专职于转发线程处理,不会运行其他线程,也不会执行其他系统事务。转发线程在数据平面的CPU上专职转发,没有任务切换,也没有其他任务抢占,实现转发性能较大化。高效率的内存管理转发流程中,常用的数据结构需要经常申请和释放。而普通的内存申请和释放,考虑到通用性,流程需要适配各种情况,逻辑完备,所以效率比较低。vBRAS转发关键路径中,没有使用普通的内存申请和释放功能,而使用了Linux内核的SLAB高速缓存机制,加速内存申请和释放。对于常用的数据结构,可以让系统预先申请一个SLAB高速缓存池。数据结构申请时,可以直接从缓存池里面快速申请,避免慢速的普通申请流程。DPDK在用户态转发,也有类似内存管理机制Memory Manager。报文缓冲区管理网卡接收报文的时候,内存操作很频繁。网卡把报文DMA到内存,如果报文缓冲区每次都要分配和释放,系统的开销会相当大。vBRAS有一个预先申请的缓冲区池,报文接收后,可以从池里面申请需要的缓存,不需要的时候释放,避免内存随报文收发进行申请和释放,极大降低内存开销。DPDK也有类似技术Buffer manager。内核态转发Linux系统上,报文接收是首先从内核态开始,网卡驱动的执行在内核态。报文接收后,后续的转发可以直接在内核态进行,比如传统的Linux、Netmap等;也可以在用户态进行,比如DPDK等。内核态转发的优势是报文不用上送用户态,避免报文上送用户态的开销,性能高。用户态转发的好处是用户态流程跟踪调试以及后期维护比较方便,与内核耦合较小,软件升级相对来说也比较方便一些,不用改动内核。但从性能上看,用户态转发没有任何优势。vBRAS选择的是内核进行转发,避免内核态和用户态切换以及报文copy的巨大开销,让性能上达到较大化。IP快转vBRAS的网卡接收报文以后,送给上层Comware平台,完成后续的IP转发功能。Comware可利用IP Cache的历史信息,基于流的五元组,进行快速转发。第一个报文进行转发时,系统会创建快转表。快转表里面会记录转发需要的入、出接口信息,链路层头信息等关键内容。系统接收到后报文时,直接查询快转表,找到出接口以及需要的链路层头信息,然后跳过普通的慢速发送流程,进行快速发送。vBRAS云化架构实现H3C vBRAS解决方案整体建立在云计算的架构之上,不仅通过虚拟化实现软硬件解耦,而且更重要的通过vBRAS资源池的云化,实现了弹性扩容,资源的高效利用。并且,vBRAS资源池结合SDN技术,可以实现资源池内的流量灵活调度,实现网络的弹性管理。图 3 vBRAS云化组网图如图3所示,VNF Manager主要完成资源池内vBRAS创建、删除等生命周期管理。vBRAS APP是H3C VCFC SDN Controller上面的一个APP,它给用户提供一个UI,发起创建vBRAS资源创建请求。vBRAS APP还能对PPPoE的PADI报文进行调度,把PPPoE流量引流到指定的vBRAS上处理,实现流量的灵活调度。这个功能通过VCFC SDN Controller给汇聚交换机下发openflow流表来实现。vBRAS APP还能通过Netconf,监控vBRAS的CPU、内存、业务负载等。H3C VNF Manager、vBRAS APP以及VCFC SDN Controller组合在形成H3C NFV MANO。H3C NFV MANO完全遵循ETSI NFV MANO标准的体系框架,它聚焦ETSI架构中的VNF和VNF Manger两个模块,通过restful API、NETCONF等开放接口,可以和其他产品组件(如H3C CAS、iMC等)实现无缝集成,形成端到端的整体解决方案。H3C VNF Manager通过restful API可以和第三方的MANO、OSS/BSS等系统实现对接,如OpenStack、HP NFV Director,实现开放互联。vBRAS云化架构最明显的特点是引入了VCFC SDN Controller,可以完成对接入网中交换机等其他网元的管理和控制,实现网络整体集约化控制。vBRAS云化架构同时考虑了城域网引入VxLAN的需求,支持汇聚交换机在VxLAN终结后,对于流量引流处理。电信级可靠性实现传统的COTS硬件只能提供99.9%的可靠性,而对于电信级设备来说,要求达到99.999%可靠性。如何在传统COTS硬件上,实现电信级的高可靠性是一个挑战。H3C利用多年在数据通信方面研发的经验,通过软件层面实现的高可用性来弥补COTS硬件在可靠性上的不足,实现系统整体达到电信级高可用要求。Comware平台高可用实现Comware V7采用模块化设计,各模块有独立的运行空间,使得单个模块的异常不会影响系统其他部分,提高了系统的可靠性。模块能够动态加载,系统只需要加载需要运行的功能,不需要的模块不用加载,提高系统性能及可靠性。模块支持独立升级,不用系统整机重启,不影响系统运行。ISSU(In-Service Software Upgrade,不中断业务升级)是一种可靠性高的升级设备启动软件的方式。vBRAS的Comware V7平台通过引入软件包的概念,将系统软件中比较稳定的基础进程和相对比较活跃的业务进程分离,便于软件的管理和维护。软件包按功能划分成Boot软件包、System软件包、Feature软件包和补丁包。在通常情况下,不需要升级基础进程,只需升级部分业务进程。而且,业务进程之间互相独立,当某业务需要版本更新时,只需升级该业务对应的软件包即可,不用升级所有模块,从而不会对设备运行甚至其它业务造成影响。IRF是H3C自主研发的系统高可用技术。它的核心思想是将多台设备连接在一起,进行必要的配置后,虚拟化成一台设备。IRF技术可以集合多台设备的硬件资源和软件处理能力,实现多台设备的协同工作、统一管理和不间断维护。使用IRF技术能够搭建一个高可靠性的网络节点。如图4所示,两台vBRAS可以通过IRF技术堆叠成一组,提供业务级的热备和高可靠性。堆叠组内vBRAS的上/下行接口分别绑定到上/下冗余口上,对外使用冗余口的MAC和IP进行通信。用于IRF堆叠有IRF Control和IRF Data两个接口。其中,IRF Control接口用于同步IRF成员设备之间的控制信息,包括主备关系、心跳保活、转发表等控制平面的内容;IRF Data接口用于同步IRF成员设备之间的业务信息,包括IPSec连接、IKE、NAT会话表、防火墙会话表等,保证成员设备之间运行状态保持一致,实现业务实时备份。图4 vBRAS IRF堆叠结构图实际部署的时候,IRF堆叠的两台vBRAS一般分布在两个不同的物理服务器上。如果由于COTS硬件服务器故障,导致其上的IRF主不可用时,系统会自动切换到另外一台服务器上的vBRAS去,由于业务级别备份,另外一台vBRAS已经实时备份了用户业务数据,业务不会中断,快速恢复运行。例如vBRAS对于常用的三大接入业务类型PPPoE、Portal、IPoE可以做到业务级实时备份,做到业务不中断切换,实现电信级设备的高可用。资源池化实现高可用vBRAS的一个资源池内,所有vBRAS相互之间是等同的,任何一个vBRAS都可以处理同一个用户的接入业务。某个vBRAS故障后,系统可以让原有vBRAS上的业务重新上线时,切换到资源池里面另外的vBRAS上,实现业务的高可用。不同于IRF方式的可靠性保护,使用资源池的vBRAS故障导致的切换,业务会有短时的中断,例如PPPoE业务会在PPP协议keepalive超时后断线,用户重新拨号后可以上线。图5是资源池内vBRAS故障后的切换流程。图5 资源池内vBRAS故障后的切换vBRAS安全实现基于ETSI NFV参考架构框架,NFV安全可分解为物理基础设施层、虚拟基础设施层、电信业务设施层三层;依据保护的业务对象不同,每个层分解为业务面、管理面两个面。图6 NFV的安全分层其中,本文重点描述一下业务面安全的VNF的安全和主机OS安全,因为这两个部分是用户能够直接感知并交互的的部分,安全风险也是较大的。VNF安全实现VNF直接处理用户的报文,用户可能通过协议层面发送各种攻击。所以,VNF上需要具备攻击防御特性。vBRAS作为VNF,能对大多数的网络攻击有防御功能。比如vBRAS可以对下面的单包攻击(也称为畸形报文攻击)进行防御,主要包括ICMP redirect、ICMP unreachable、ICMP type、Land、Smurf、Fragment、Teadrop、Ping of death等。对于范洪攻击,例如SYN flood、ACK flood、SYN-ACK flood、FIN flood、RST flood攻击等,进行有效的防御。OS层安全实现vBRAS运行在x86-64的Intel CPU上,底层支撑的OS为Comware V7。OS防攻击主要是针对系统可能出现的漏洞进行防御,比如系统上可能出现的缓冲区溢出漏洞等。vBRAS的Comware具备安全领域常用的针对系统漏洞进行攻击防御手段:NX技术(No-eXecute),含义是地址空间堆栈不可执行。NX对于Intel来说,名称叫XD(eXec Disable)。Intel最初从Pentium 4开始的IA 32+PAE构架下开始支持NX,而Intel x86-64直接支持NX技术。vBRAS基于标准的x86-64架构,一般使用的Intel Xeon E5-2600 v2(Ivy-bridge)或者E5-2600 v3(Haswell)的处理器为Intel 64架构,支持NX。另外,NX除了CPU需要支持,OS也需要支持。vBRAS运行的OS Comware V7也支持NX。如果系统里面出现漏洞,黑客常用的攻击技术是在堆栈上注入可执行代码,然后执行。但是由于NX的存在,堆栈不可执行,这种攻击技术无效。NX可以减轻大多数漏洞导致的系统攻击。ASLR技术(Address Space Layout Randomization 地址空间随机化)是Comware V7使用的另外一种防攻击技术。它主要的方法是让进程的地址空间随机化,让发起漏洞攻击的黑客无法预测注入代码的地址,而不能实施攻击。使用ASLR后,进程的lib库加载地址、堆栈地址和堆地址都可以被随机化,使得黑客完全无法预测地址分布,避免攻击实施。Comware V7使用NX和ASLR配合,可以防止由于软件漏洞导致的大多数攻击。ComwareV7网上运行多年,从未因为软件漏洞出现被攻击的案例,安全性经过了实际考验。结束语H3C vBRAS在云化的总体架构下,结合VxLAN和SDN技术,能够实现弹性扩展、流量灵活调度,资源高效利用;同时通过利用一系列的性能优化技术,其转发性能而要做到了业界靠前;使用软件可靠性技术,提升整体架构的可靠性达到电信级可靠性的SLA要求,系统安全防御措施完备,可以抵御业务层面和系统漏洞层面的攻击,满足电信级领域对于业务、性能、安全的综合要求,提升用户体验。
上一篇:没有了 下一篇:mysql存储过程多层游标循环嵌套的写法分享