香港神童平特平特1肖图图片

NEXT新运营

文章来源:本站原创作者:admin 发布时间:2021-06-19 点击数:

  H3C vBRAS在云化的总体架构下,结合VxLAN和SDN技术,能够实现弹性扩展、流量灵活调度,资源高效利用;同时通过利用一系列的性能优化技术,其转发性能而要做到了业界领先。

  自从2012年ETSI 提出NFV概念以来,NFV成为通信行业发展的一个热点。NFV主要的思路是让网络功能和专用硬件解耦,在COTS硬件上实现传统网络的系列功能。解耦后,通信软件的发展和升级可以灵活进行,硬件也可以根据需要由运营商自由定制,由此提升业务上线速度,并实现成本的降低。NFV在城域网的应用主要体现在业务接入控制的BRAS领域。vBRAS产品是传统BRAS产品的虚拟化实现,它除了需要完成传统的宽带用户接入以及业务控制外,还面临其他一系列的挑战,比如云化架构的实现、电信级可靠性和运维能力、业务快速集成能力以及开放的体系结构实现。

  传统的电信行业,为了实现大吞吐量、低延迟、高可靠的转发,大量使用专用硬件,例如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硬件加速。

  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网卡的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的性能高20多倍,SR-IOV对性能的提升相当得明显。目前,业界很多网卡厂商都开始支持SR-IOV,例如Intel、Broadcom等。vBRAS在电信领域的应用,建议SR-IOV网卡作为标配。对影响要求严格的场合,SR-IOV能力要求为必备。

  目前,服务器使用的的CPU基本都是多核架构。vBRAS设计了一套先进的转发模型,该模型基于多核系统设计,针对多处理器系统进行很多优化,转发效率比传统转发模式有很大提升。

  传统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中断。

  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的巨大开销,让性能上达到最大化。

  vBRAS的网卡接收报文以后,送给上层Comware平台,完成后续的IP转发功能。Comware可利用IP Cache的历史信息,基于流的五元组,进行快速转发。第一个报文进行转发时,系统会创建快转表。快转表里面会记录转发需要的入、出接口信息,链路层头信息等关键内容。系统接收到后报文时,直接查询快转表,香港六合特马公开验证,找到出接口以及需要的链路层头信息,然后跳过普通的慢速发送流程,进行快速发送。

  H3C vBRAS解决方案整体建立在云计算的架构之上,不仅通过虚拟化实现软硬件解耦,而且更重要的通过vBRAS资源池的云化,实现了弹性扩容,资源的高效利用。并且,vBRAS资源池结合SDN技术,可以实现资源池内的流量灵活调度,实现网络的弹性管理。

  vBRAS云化架构同时考虑了城域网引入VxLAN的需求,支持汇聚交换机在VxLAN终结后,对于流量引流处理。

  传统的COTS硬件只能提供99.9%的可靠性,而对于电信级设备来说,要求达到99.999%可靠性。如何在传统COTS硬件上,实现电信级的高可靠性是一个挑战。

  H3C利用多年在数据通信方面研发的经验,通过软件层面实现的高可用性来弥补COTS硬件在可靠性上的不足,实现系统整体达到电信级高可用要求。

  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会话表、防火墙会话表等,保证成员设备之间运行状态保持一致,实现业务实时备份。

  实际部署的时候,IRF堆叠的两台vBRAS一般分布在两个不同的物理服务器上。如果由于COTS硬件服务器故障,导致其上的IRF主不可用时,系统会自动切换到另外一台服务器上的vBRAS去,由于业务级别备份,另外一台vBRAS已经实时备份了用户业务数据,业务不会中断,快速恢复运行。例如vBRAS对于常用的三大接入业务类型PPPoE、Portal、IPoE可以做到业务级实时备份,做到业务不中断切换,实现电信级设备的高可用。

  vBRAS的一个资源池内,所有vBRAS相互之间是等同的,任何一个vBRAS都可以处理同一个用户的接入业务。某个vBRAS故障后,系统可以让原有vBRAS上的业务重新上线时,切换到资源池里面另外的vBRAS上,实现业务的高可用。不同于IRF方式的可靠性保护,使用资源池的vBRAS故障导致的切换,业务会有短时的中断,例如PPPoE业务会在PPP协议keepalive超时后断线,用户重新拨号后可以上线是资源池内vBRAS故障后的切换流程。

  基于ETSI NFV参考架构框架,NFV安全可分解为物理基础设施层、虚拟基础设施层、电信业务设施层三层;依据保护的业务对象不同,每个层分解为业务面、管理面两个面。

  其中,本文重点描述一下业务面安全的VNF的安全和主机OS安全,因为这两个部分是用户能够直接感知并交互的的部分,安全风险也是最大的。

  VNF直接处理用户的报文,用户可能通过协议层面发送各种攻击。所以,VNF上需要具备攻击防御特性。vBRAS作为VNF,能对大多数的网络攻击有防御功能。比如vBRAS可以对下面的单包攻击(也称为畸形报文攻击)进行防御,主要包括ICMP redirect、ICMP unreachable、ICMP type、Land、Smurf、Fragment、Teadrop、Ping of death等。

  vBRAS运行在x86-64的Intel CPU上,底层支撑的OS为Comware V7。OS防攻击主要是针对系统可能出现的漏洞进行防御,比如系统上可能出现的缓冲区溢出漏洞等。vBRAS的Comware具备安全领域常用的针对系统漏洞进行攻击防御手段:

  另外,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要求,系统安全防御措施完备,可以抵御业务层面和系统漏洞层面的攻击,满足电信级领域对于业务、性能、安全的综合要求,提升用户体验。