手册下载
vBRAS-CP架构技术白皮书-6W101-整本手册.pdf (799.87 KB)
vBRAS-CP架构技术白皮书
Copyright © 20222023 新华三技术有限公司 版权所有,保留一切权利。
非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传播。
除新华三技术有限公司的商标外,本手册中出现的其它公司的商标、产品标识及商品名称,由各自权利人拥有。
本文中的内容为通用性技术信息,某些信息可能不适用于您所购买的产品。
传统BRAS作为运营商网络的核心设备,充当着宽带接入网和骨干网之间的桥梁,为用户提供宽带接入服务。随着互联网的快速发展,在新业务、新需求的冲击下,传统BRAS面临很大的挑战,其弊端也开始显露,主要表现在以下几个方面:
· 资源利用率低:传统BRAS设备的控制平面与转发平面紧密耦合,导致在性能处理上相互影响,无法充分发挥控制平面与转发平面的性能极限。
· 管理维护复杂:由于传统BRAS设备数量众多,引入一种新业务时,需要逐一配置每台BRAS设备,工作繁琐且容易出错。
· 业务开通缓慢:由于控制平面与转发平面紧密耦合,网络架构复杂,可扩展性差,新特性开发和部署周期长,业务升级速度慢。
· 可靠性成本高:由于控制平面与转发平面紧密耦合,任何备份技术都需要多台BRAS设备的控制平面相互配合,复杂度高,而且部署困难,只能实现1+1/1:1的温备,难以实现N:1的备份。
为了应对以上挑战,业界提出基于转发平面与控制平面分离的vBRAS新架构。
vBRAS新架构引入了SDN和NFV技术,它由控制平面网元vBRAS-CP和转发平面网元vBRAS-UP两类网络实体共同提供BRAS服务。在该架构中,vBRAS-CP统一部署,负责用户的接入控制及策略;vBRAS-UP分散部署,负责用户业务流量的转发。
vBRAS新架构具有如下技术优点:
· 大幅提升资源利用率
BRAS业务的控制平面功能集中后,转发平面的用户规格不再受传统物理设备上主控板的计算和存储能力限制,在单台vBRAS-UP设备硬件条件保持不变的情况下整体用户规格可提升数倍。
· IP地址共享、高效利用
传统BRAS设备的IP地址池需要提前规划好,由于预测的偏差和用户数的动态变化,可能存在部分设备IP地址资源的不足导致新用户无法上线,而另一部分设备IP地址资源虽有剩余,但无法共享给其它设备使用的情况。vBRAS-CP可以对IP地址资源进行集中统一管理、按需分配,从而提高IP地址的使用效率。
· 简化运维
¡ 节省配置工作量:传统BRAS架构下,每台BRAS设备上均需要配置BRAS相关业务,比如AAA、DHCP和QoS策略等。新架构下,这些业务仅需要在vBRAS-CP上进行一次配置即可,大幅节省了维护人员的配置工作量。
¡ 简化业务系统对接:传统BRAS设备与外部的业务系统是网状的逻辑连接,业务系统的升级割接比较繁琐。新架构下,只需vBRAS-CP与业务系统进行单一的连接即可,而且网络升级割接时的业务调整仅需少量维护人员,这在很大程度上降低了业务系统对接的复杂度。
¡ 提升用户上线效率:随着云计算能力的不断提升,BRAS设备对用户上线报文以及控制报文的处理速度均会大幅提升,继而提升用户的上线体验。
· 缩短新业务上线周期
很多BRAS业务需求都是针对控制平面的修改,比如对用户授权属性、QoS策略的修改。传统BRAS架构下,控制平面与转发平面紧密耦合,新业务上线时需要对每台BRAS设备单独升级,对于拥有超过上百台设备的运营商网络,这会导致升级时间需要持续数月甚至一年。在新架构下,新业务部署后仅需要升级vBRAS-CP即可,显著提升业务部署效率、缩短新业务上线周期。
· 网络能力开放与vBRAS-UP通用化
新架构下,vBRAS-CP通过标准化北向接口,实现与第三方APP对接,推动网络能力开放;通过标准化南向接口与vBRAS-UP对接,推动vBRAS-UP的通用化。对于现存的BRAS设备,可以通过软件升级的方式向转发与控制分离架构过渡,可最大程度的保护现有投资,避免因为功能的限制而重新购置设备资产。
综上所述,基于转发与控制分离的vBRAS新架构,充分借鉴了SDN技术的集中管控思想和NFV的设备虚拟化的思路,在保留BRAS设备高转发性能的同时,将计算密集型的BRAS用户管理功能云化和集中化。同时,在满足当前现网的功能、性能、可维护性、新业务快速上线等需求的情况下,能够支持网络向云化网络结构演进。
如下图所示,基于转发与控制分离的vBRAS系统架构包括vBRAS-CP(简称CP)和vBRAS-UP(简称UP)两种角色,由二者共同实现BRAS功能。
· CP(Control Plane,控制平面):负责完成用户身份认证、地址分配与管理等控制平面功能。
· UP(User Plane,用户平面):负责完成用户业务流量转发和流量控制等转发平面功能。根据设备物理形态不同,vBRAS-UP分为以下两种类型:
¡ vBRAS-pUP:简称pUP,由物理设备担任UP角色。pUP具有转发性能强的特点,可以用来处理如宽带上网、IPTV等大流量需求的业务。
¡ vBRAS-vUP:简称vUP,由虚拟化设备担任UP角色。vUP具有计算能力强的特点,可以用来处理如ITMS、VoIP等大session小流量需求的业务。有关vUP架构的详细介绍,请参见《分布式vUP架构技术白皮书》。
如下图所示,vBRAS转发与控制分离架构主要包括含vBRAS-CP、vBRAS-UP、CP-UP通道、业务系统、网元管理系统和MANO等六大功能组件。
图2-2 vBRAS转发与控制分离系统架构
以上架构中,各功能组件基本功能如下:
· vBRAS-CP(Control Plane,控制平面):负责完成用户身份认证、地址分配与管理等控制平面功能。其中,vBRAS-CP采用资源池化部署模式,充分发挥vBRAS-CP资源池计算能力强的优势。
¡ VNF(Virtualized Network Function,虚拟化的网络功能):虚拟化后的软件实体,它通过借助NFVI虚拟化后的虚拟资源来实现各种网络功能。在vBRAS转发与控制分离系统架构中使用H3C vBRAS-CP(包括CTRL-VM、BRAS-VM、FWD-VM和DB-VM)担任VNF角色。
¡ NFVI(Network Function Virtualization Infrastructure,网络功能虚拟化基础设施):主要负责将计算、存储以及网络的硬件资源全面虚拟化,并映射成虚拟资源。在vBRAS转发与控制分离系统架构中使用H3C CAS担任NFVI角色。
¡ x86:使用标准的x86服务器提供底层物理硬件资源。
· vBRAS-UP(User Plane,用户平面):负责完成用户数据流量转发和流量控制等转发平面功能。其中,vBRAS-UP可由路由器或vBRAS担任。
· CP-UP通道:控制平面与转发平面之间存在如下三种类型的通信通道。
¡ 管理通道:使用NETCONF连接作为CP和UP之间的管理通道,实现CP向UP查询数据、下发配置等功能。例如,创建子接口、下发BRAS业务配置等。
¡ 控制通道:使用CUSP(Control-/User-plane Separation Protocol,控制与转发分离协议)通道作为CP和UP之间的控制通道,实现业务表项下发、查询以及接口资源信息上报等功能。
¡ 协议通道:使用GPE(Generic Protocol Extension,通用协议扩展)类型的VXLAN隧道作为CP和UP之间的协议通道,实现DHCP、ARP、PPPoE等协议报文交互。VXLAN GPE隧道是一种扩展的VXLAN隧道,在VXLAN头中可以携带更丰富的信息,如端口类型、端口编号以及VLAN等信息,以便CP根据这些信息完成对用户的合法性验证和IP地址分配等工作。
· 业务系统:由AAA服务器、DHCP服务器和Portal服务器等各种不同业务类型的服务器组成,为用户提供认证、授权、计费、地址分配等业务功能。
· 网元管理系统(Element Management System):负责远程管理网络中的各个网元设备,以及网络维护。
· MANO(Managementand Orchestration,管理和编排系统):负责NFVI的软硬件资源的生命周期管理和编排,以及对VNF的生命周期管理和编排。MANO包括如下几种类型的组件:
¡ VIM(Virtualized Infrastructure Manager,虚拟化基础设施管理器):负责对物理硬件虚拟化资源进行统一管理、监控和优化。在vBRAS转发与控制分离系统架构中使用H3C CloudOS担任VIM角色。
¡ VNFM(Virtualized Network Function Manager,虚拟网络功能管理器):负责VNF的生命周期管理。在vBRAS转发与控制分离系统架构中使用H3C VNF-Manager担任VNFM角色。
¡ NFVO(Network Function Virtualization Orchestrator,网络功能虚拟化编排器):负责基础资源和上层软件资源的编排和管理,实现网络服务。在vBRAS转发与控制分离系统架构中使用H3C VNFM-vBRAS担任NFVO角色。
如下图所示,从功能上来看,在新架构中vBRAS功能主要包括控制平面(vBRAS-CP)和转发平面(vBRAS-UP)两个部分。
图2-3 vBRAS功能划分
控制平面(vBRAS-CP)主要功能包括:
· 用户接入控制:用于处理vBRAS-UP上送的用户PPPoE或IPoE等接入协议报文,完成用户接入控制。
· 用户连接管理:包含用户表项管理功能和用户策略管理功能。
¡ 用户表项管理是指vBRAS-CP生成用户session表项并下发给vBRAS-UP,vBRAS-UP基于session表项指导用户侧流量转发。
¡ 用户策略管理是指对用户的认证、计费、授权、地址分配、QoS等相关策略的管理。
· 认证授权计费:由vBRAS-CP和AAA服务器配合,共同完成对接入用户的认证、授权和计费。
· 统一配置管理:由vBRAS-CP统一完成BRAS业务的相关配置,并自动下发给其管理的所有vBRAS-UP。
· 地址管理:由vBRAS-CP对其拥有的IP地址资源进行统一的管理。
· UP管理:包括对vBRAS-UP扩缩容的管理以及vBRAS-CP和vBRAS-UP间通信通道的管理。
转发平面(vBRAS-UP)主要功能包括流量转发、QoS、流量统计等。
如下图所示,vBRAS-CP由CTRL-VM、BRAS-VM、FWD-VM和DB-VM四种类型的VM组成。
图2-4 vBRAS-CP软件架构
以上架构中,各VM的功能介绍请见下表。
表2-1 VM功能描述表
VM类型 |
功能概述 |
单台vBRAS-CP支持VM个数 |
CTRL-VM |
负责vBRAS-CP管理、配置管理、地址管理、License管理、CP灾备、弹性扩缩容和UP管理等功能 |
一个vBRAS-CP中最多支持两个CTRL-VM,这两个CTRL-VM组成一个CTRL-VM组 在CTRL-VM组中,一个为主CTRL-VM,一个为备CTRL-VM。正常情况下,只有主CTRL-VM工作,备CTRL-VM处于备份状态 |
BRAS-VM |
接受CTRL-VM的管理,负责远端接口管理、用户管理、接入控制、认证授权计费和UP备份等功能 |
一个vBRAS-CP中支持多个BRAS-VM,每两个BRAS-VM组成一个BRAS-VM组 每个BRAS-VM组中,一个为主BRAS-VM,一个为备BRAS-VM。正常情况下,只有主BRAS-VM工作,备BRAS-VM处于备份状态 |
FWD-VM |
接受CTRL-VM的管理,负责BRAS-VM和UP的通信、报文分发,以及处理BRAS-VM和RADIUS服务器、Web服务器等外部系统的报文收发等功能 |
目前,一个vBRAS-CP中最多支持两个FWD-VM,FWD-VM之间不组成FWD-VM组 |
DB-VM |
负责存储CTRL-VM和BRAS-VM备份的数据信息 |
DB-VM初始部署数量不能小于4台,多台DB-VM组成Codis集群 |
vBRAS-CP内的各个VM分别部署于不同的服务器上,并依靠内部的二层网络进行互连。内部网络划分为控制通道(InnerCTRL)、数据通道(InnerDATA)、外部通道(External)、维护通道(OM)等,各通道使用不同的VLAN通信。
· 控制通道:用于CTRL-VM管理BRAS-VM、FWD-VM的内部控制报文的传输通道(包括下发数据给FWD-VM/BRAS-VM,以及FWD-VM/BRAS-VM上报信息给CTRL-VM),以及CTRL-VM/BRAS-VM与DB-VM之间的数据传输。
· 数据通道:用于VM间的内部数据报文的传输通道,包括BRAS-VM/CTRL-VM、外部报文在CP内部的传输等。
· 外部通道:FWD-VM与外部系统交互的传输通道,包括与vBRAS-UP、EMS、DHCP server、AAA server等外部系统的交互。
· 维护通道:CTRL-VM与MANO交互的传输通道。
其中控制通道、数据通道互为备份,要求对应这两个通道的服务器网卡允许所有VLAN通过,并且中间交换机上放行的VLAN要和InnerCTRL/InnerDATA VLAN持一致并允许通过,由VM根据通道状态自动选择用哪个通道进行数据传输。
图2-5 vBRAS-CP部署及内部通道示意图
在vBRAS转发与控制分离组网中,用户业务基本流程如下:
(1) CTRL-VM为UP分配BRAS-VM,并向FWD-VM下发UP负载均衡策略
a. 管理员在CTRL-VM上新增一个UP。
b. CTRL-VM为UP分配一个负责管理该UP的BRAS-VM,并将该UP的相关配置下发到该BRAS-VM上。
c. CTRL-VM下发UP负载均衡策略给FWD-VM,以便通过UP上送的报文均能转发到对应的BRAS-VM上。
(2) CP与UP之间建立CP-UP通道
a. BRAS-VM与UP建立NETCONF管理通道。
b. BRAS-VM下发CUSP(Control-/User-plane Separation Protocol,控制与转发分离协议)配置给UP,UP与BRAS-VM建立CUSP控制通道。
c. BRAS-VM下发VXLAN配置给UP,UP与BRAS-VM建立VXLAN协议通道。
d. BRAS-VM下发远端接口配置给UP。
(3) 用户上线
a. 用户上线报文通过VXLAN协议通道与BRAS-VM进行交互。
b. BRAS-VM处理用户上线报文。
c. BRAS-VM从CTRL-VM为UP申请子网网段。
d. BRAS-VM从申请到的子网网段中为用户分配IP地址。
e. BRAS-VM通过RADIUS协议向AAA发起认证、计费请求。
f. 认证通过后,BRAS-VM通过CUSP通道向UP下发用户表项。
g. 用户上线成功,开始访问Internet。
h. UP通过CUSP控制通道定时向BRAS-VM上报用户流量信息。
(4) 用户下线
a. 用户下线报文通过VXLAN协议通道发送给BRAS-VM。
b. BRAS-VM处理用户的下线报文。
c. BRAS-VM通过CUSP协议通道通知UP删除用户表项。
d. BRAS-VM过RADIUS协议向AAA发起计费停止请求。
vBRAS-CP为上层业务系统提供标准的北向接口,并为UP提供标准的南向接口。
北向接口包括:
· 配置接口:运维人员对系统进行业务配置的接口,可以是命令行或者其它网络配置工具(例如控制器)。
· 网管接口:网元管理系统进行告警、业务信息采集的接口。
· AAA接口:认证、授权、计费业务的处理接口。
· DHCP接口:远端DHCP server为用户分配IP地址的接口。
· Portal接口:WEB认证业务的处理接口。
· MANO接口:VM生命周期的通信接口。
南向接口包括:
· 管理接口:UP与CP之间管理通道使用的接口。
· 控制接口:UP与CP之间控制通道使用的接口。
· 协议接口:UP与CP之间协议通道使用的接口。
FWD-VM作为整个vBRAS-CP资源池与外部通信的出\入口具有流量特征识别的能力,负责vBRAS-CP与vBRAS-UP之间通信报文的分发,以及vBRAS-CP与外部系统(比如RADIUS server等)之间通信报文的收发。vBRAS-CP具有智能的业务流量引导机制,使得进入vBRAS-CP的各类流量可以由FWD-VM统一按照报文的特征进行分发。
vBRAS-CP内部进行流量负载分担的基本原则为:
· 到BRAS-VM的流量根据UP特性进行负载分担。
CTRL-VM上的UP管理模块会为每个UP分配一个唯一的BRAS-VM,由该BRAS-VM负责通过该UP上线用户的业务处理。FWD-VM根据上线用户的UP信息,将上线用户的业务引流到该UP对应的BRAS-VM上处理。另外,当因BRAS-VM扩缩容或UP迁移等原因导致某UP和BRAS-VM之间的对应关系发生变化时,内部流量负载分担可以自动进行调整,将该UP上的业务引流到和该UP对应的新BRAS-VM上,该过程不需要用户额外干预。
· 到CTRL-VM的流量根据CTRL-VM上生成的业务白名单和流量的目的地址进行引流。
CTRL-VM上的业务模块会根据自身需要自动生成相应白名单,保证对应流量高优先级处理,FWD-VM根据CTRL-VM生成的白名单信息,将白名单中对应的流量引流到CTRL-VM。
对于尚未建立白名单的流量,FWD-VM根据流量的目的地址,将目的地址为vBRAS-CP全局地址的流量进行限速后引流到CTRL-VM。
· 到BRAS-VM的引流规则优先级高于到CTRL-VM的引流规则,即一旦匹配到到BRAS-VM的引流规则立即引流,不再进行后续引流规则的匹配。
在CP内部,CTRL-VM与其它VM之间建立NETCONF通道、Syslog通道、SNMP Trap通道。CTRL-VM通过标准的NETCONF通道向BRAS-VM/FWD-VM下发配置,以及获取BRAS-VM的运行数据。同时,CTRL-VM也会通过Syslog通道、SNMP Trap通道监听BRAS-VM产生的Syslog和SNMP Trap信息,并发送给外部的网管服务器。
在vBRAS转发与控制分离组网中,配置下发基本流程如下:
(1) 管理员/控制器通过CLI、NETCONF或SNMP向CTRL-VM下发配置。
(2) CTRL-VM上的统一配置管理模块在接收到下发的配置后,根据该配置所对应的UP,将配置转换成BRAS-VM可以识别的NETCONF请求。
(3) CTRL-VM通过内部的NETCONF通道,将转换后的NETCONF请求发送给对应的BRAS-VM去执行。
(4) BRAS-VM向CTRL-VM返回NETCONF请求的执行结果。
(5) CTRL-VM收集BRAS-VM返回的执行结果,并将结果统一汇总后上报给管理员/控制器。
图2-7 统一配置管理流程
当BRAS-VM上有事件发生时,会通过NETCONF Event/Syslog/SNMP Trap上报给CTRL-VM,CTRL-VM记录这些事件并将事件消息的格式转换后上报给管理员/控制器。
图2-8 事件上报流程
vBRAS-CP内部使用了VM节点备份、接口/链路备份等备份手段,以提升vBRAS-CP整体的可靠性。
vBRAS-CP中相同类型的VM节点分别部署在不同物理节点上,以保证当其中一个物理节点故障时,另一个物理节点可继续对外提供服务,保证用户业务不受影响。各类VM的备份方式有所不同,具体如下:
· CTRL-VM节点使用主备冗余进行1:1备份,由一个主节点和一个备节点组成一个CTRL-VM组,业务数据在主备节点间进行实时备份,当主CTRL-VM故障后备CTRL-VM接替主身份继续工作。
· BRAS-VM节点使用主备冗余进行1:1备份,每个BRAS-VM组由一个主节点和一个备节点组成,最大支持32组,业务数据在每组BRAS-VM的主备节点间进行实时备份,当主BRAS-VM故障后备BRAS-VM接替主身份继续工作。
· FWD-VM节点为独立网元,不成组,采用双节点进行1+1备份,使用ECMP路径进行负载分担,当其中一个节点故障后依靠路由切换进行流量切换。
· DB-VM节点使用两节点1+1备份,两个互为主备的DB-VM组成一个DB-VM组。当系统中某台DB-VM或DB-VM上某Redis-server分组中的主Redis-server节点故障时,Redis-sentinel会在该DB-VM组内为发生主Redis-server节点故障的所有Redis-server分组分别选出新的主Redis-server节点,该节点会继续提供数据备份和恢复的功能。有关DB-VM的详细介绍,请查阅《RMDB远程数据库技术白皮书》文档。
vBRAS-CP内部网络分为维护通道(OM)、控制通道(InnerCTRL)、数据通道(InnerDATA)和外部通道(External),它们对应的内部接口分别为OM接口、InnerCTRL接口、InnerDATA接口和External接口四类:
· OM接口:CTRL-VM用来连接维护通道(OM)的接口。
OM接口通常使用双物理接口在宿主机服务器上做bond(即把多个物理网卡绑定成一个逻辑上的网卡,使用同一个IP工作,在增加带宽的同时也可以提高冗余性),物理接口故障时依赖bond切换保证OM接口的可靠性。
· InnerCTRL接口和InnerDATA接口:CTRL-VM、BRAS-VM和FWD-VM分别用来连接控制通道(InnerCTRL)和数据通道(InnerDATA)的接口。
InnerCTRL接口和InnerDATA接口各使用一个物理接口,作为vBRAS-CP的各VM间内部通信使用。当物理接口处于正常可用状态时,控制通道和数据通道分别使用InnerCTRL接口和InnerDATA接口进行交互,互不影响。当其中一个物理接口发生故障时,vBRAS-CP自动进行接口借用,利用另一物理接口进行报文收发,保证高可靠性;当物理接口故障恢复后,会进行接口回切,保证数据通道和控制通道互不影响。
· External接口:FWD-VM用来连接外部通道(External)的接口。
¡ 对于单个FWD-VM,其External接口的可靠性主要靠用户配置保证,比如配置ECMP或聚合接口等。
¡ 对于两个FWD-VM,使用ECMP路径进行负载分担,当其中一个节点故障后依靠路由切换进行流量切换。
VM内部通信链路OAM(Operation, Administration, and Maintenance,操作、管理和维护)的主要功能包括:
· VM启动阶段,为控制通道(InnerCTRL)、数据通道(InnerDATA)选择内部通信的初始物理接口;
· VM运行过程中,探测内部通信链路的质量,并根据内部通信的物理接口状态和链路的质量来切换物理接口。
因此,VM内部通信链路OAM功能能够有效提高vBRAS-CP系统内部通信的管理和维护能力,保障系统的稳定运行。
如图2-9所示,VM启动阶段,vBRAS-CP的所有VM均分别建立控制通道、数据通道与内部物理接口的映射关系,具体流程如下。
(1) vBRAS-CP从VNFM-vBRAS上部署的初始化XML配置文件中读取控制通道和数据通道的使用的MAC地址列表、VLAN及网段等信息。
(2) vBRAS-CP系统存在2个互为备份的内部物理接口,每个内部物理接口均存在多个逻辑接口用于不同VM间控制通道或数据通道的通信,每个逻辑接口都有一个MAC地址,因此,这两个内部物理接口拥有的多个MAC地址即MAC地址列表。vBRAS-CP将MAC地址列表中的内部物理接口1的MAC地址分配给各个VM,作为VM上控制通道使用的接口MAC,并将MAC地址列表中内部物理接口2的MAC地址分配给各个VM,作为VM上数据通道使用的接口MAC,根据MAC地址关联关系,所有VM上控制通道和数据通道都将与这两个内部物理接口建立映射关系。
(3) vBRAS-CP将配置文件中的ControlVLAN下发给控制通道使用的物理接口,DataVLAN下发给数据通道使用的物理接口,ControlVLAN和DataVLAN用于隔离内部通信的控制报文和数据报文。数据通道和控制通道VLAN不可相同。
开启VM间内部通信链路探测功能后,内部物理口周期性地广播发送探测报文对链路质量分别进行探测。系统通过统计探测报文的丢包率和错包率,对链路质量进行评估,并采用链路亚健康值来评估链路质量的等级:链路亚健康值=(丢包率+5×错包率)×100。
表2-2 链路质量的等级
链路质量的等级 |
链路亚健康值(缺省情况) |
Normal(链路质量ok) |
0≤链路亚健康值<50 |
Minor(链路质量存在异常) |
50≤链路亚健康值<100 |
Major(链路质量差) |
100≤链路亚健康值 |
链路质量的等级可以用来作为控制通道和数据通道切换内部物理接口的依据。
当内部物理接口发生故障或者链路质量的等级发生变化时,系统会将该接口对应的数据通道或控制通道切换到正常的内部物理接口上,避免接口故障影响VM间的内部通信。
控制通道和数据通道切换接口的原则相同,具体过程如下:
· 若一个物理口状态为up,另一个物理口状态为down,则选择状态为up的物理口。
· 若两个物理口状态均为down,则控制通道和数据通道选择VM启动阶段分配的初始的物理口。
· 若两个物理口状态均为up,则比较两个物理口上链路的链路质量的等级:
¡ 若一个物理口上链路质量的等级为Normal,另一个物理口上链路质量的等级为非Normal,则选择链路质量的等级为Normal的物理口。
¡ 若两个物理口上链路质量的等级均Normal,则使用初始选择的物理接口。
¡ 若两个物理口上链路质量的等级均非Normal,则选择链路质量的等级更好的物理口,链路质量的等级相同则使用初始选择的物理接口。
根据上述通道选择接口的原则,判断内部通信链路是否切换:
· 若当前通道使用的物理口是接口选择模块选中的物理口,则不进行物理口切换。
· 若当前通道使用的物理口不是接口选择模块选中的物理口,则进行物理口切换。
CTRL-VM、BRAS-VM和FWD-VM在vBRAS-CP内部通过二层链路形成了一个以控制通道(InnerCTRL)和数据通道(InnerDATA)为主体的内部二层网络,各VM之间依靠内部的二层网络进行通信。但由于各VM之间通信会经过内部交换机和网卡,如果从一个VM发到另一个VM的报文长度大于二层链路中内部交换机接口或对端服务器网卡的MTU,那么报文会被丢弃。为了避免出现这种情况,需要通过一种方法提前知道VM之间正常通信时二层链路的最大MTU,这样从VM中发出的报文只要不大于此MTU就不会被丢弃。
vBRAS-CP提供了VM内部通信链路Path MTU探测功能,该功能可以探测出各VM之间正常通信时的二层链路的最大MTU,并将探测的结果上报到二层转发模块,二层转发模块根据该MTU组织报文长度,以保证各VM之间交互的报文不会被丢弃。
VM内部通信链路Path MTU探测有两种触发机制:事件触发探测和定时探测。
· 事件触发探测:
¡ 当执行立即探测命令时,会触发指定VM之间的Path MTU探测。
¡ 当VM内部通信链路Path MTU探测功能由关闭转为开启时,会触发所有VM之间的Path MTU探测。
¡ 当某内部通信链路的亚健康状态由Minor或Major转为Normal,或者由Normal转为Minor或Major时,会触发内部链路两端指定VM之间的Path MTU探测。有关VM内部通信链路状态的详细介绍,请参见相关产品的“转发与控分离业务”中的“VM内部通信链路OAM配置指导”。
¡ 当新增一条内部通道,即链路的亚健康状态为Unknown时,会触发内部链路两端指定VM之间的Path MTU探测。
· 定时探测:
开启VM内部通信链路Path MTU定时探测功能后,vBRAS-CP内的所有VM均会定时对内部通信链路Path MTU进行探测。
vBRAS-CP内部各VM通过内部通信链路探测功能,可以获知所有对端VM的信息,开启VM内部通信链路Path MTU探测功能后,各VM均会以点对点方式向对端VM发送Path MTU探测报文,并监听对端VM的应答情况,VM若在Path MTU探测报文发出后的3秒内未收到某对端VM的应答报文,则表示Path MTU值发生变化。
首次探测时,VM会以内部通信链路Path MTU的缺省值组织探测报文的长度,来判断Path MTU是否为缺省值,若是,则停止探测;若不是,VM继续使用二分法方式每次取Path MTU探测报文范围内中间值来发送探测报文,不断缩小Path MTU探测报文取值范围,直到获取到可以通过二层链路的最大的MTU值,Path MTU探测报文的长度范围缺省为512~3000。不同VM之间的Path MTU探测结果可能相同,也可能不同。下面以CTRL-VM为例,介绍VM内部通信链路Path MTU的探测过程,其它VM到探测过程与之类似,不再赘述。
(1) CTRL-VM以Path MTU的缺省值3000来发送Path MTU探测报文。若在3秒内CTRL-VM收到了所有对端VM的应答,则表明Path MTU为缺省值,CTRL-VM停止探测。
(2) 若CTRL-VM未收到应答或仅收到部分VM的应答,则表明Path MTU不再是缺省值3000,CTRL-VM会取Path MTU探测报文长度范围内的中间值1756组织探测报文,之后,CTRL-VM继续结合应答情况进行探测,过程如下:
¡ 若CTRL-VM收到当前所有对端VM的应答,CTRL-VM会将Path MTU探测报文的长度范围缩小为1756~3000,并以此长度范围内的中间值2378组织探测报文,过程如图2-10所示。
图2-10 CTRL-VM内部通信链路Path MTU探测过程-1
¡ 若CTRL-VM未收到应答或仅收到部分对端VM的应答,CTRL-VM会将Path MTU探测报文的长度范围缩小为512~1756,并以此长度范围内的中间值1134组织探测报文,过程如图2-11所示。
图2-11 CTRL-VM内部通信链路Path MTU探测过程-2
(3) CTRL-VM通过这种二分法方式在多次探测后,最终会获取到二层链路允许通过的最大报文长度,即内部通信链路的Path MTU。
VM内部通信链路Path MTU值支持动态探测和静态配置两种,选取规则如下:
· 如果仅存在动态探测或者静态配置的Path MTU,则以当前的探测值或静态配置的Path MTU为准。
· 如果同时存在动态探测的Path MTU和静态配置的Path MTU,VM会以静态配置的值为准,但若配置的值大于探测值,VM将会打印Syslog告警日志,提醒运维人员修改静态配置的Path MTU。
vBRAS-CP由CTRL-VM、BRAS-VM、FWD-VM和DB-VM四种类型的VM组成,每个VM通过Slot编号来标识,VM之间内部通信报文中会携带Slot编号。主用CTRL-VM会广播协议报文来管理vBRAS-CP中的所有VM,所以,vBRAS-CP要求一个广播域内每个VM的Slot编号必须唯一。
如果一个广播域中存在多个使用相同Slot编号的VM,那么vBRAS-CP系统将无法区分这些VM,导致vBRAS-CP无法将报文分发给正确的VM处理,从而影响报文的正常处理和转发。这种现象称为VM冲突。通常情况下,vBRAS-CP的Slot编号分配机制能保证广播域内Slot编号的唯一性。异常情况下,可能出现VM冲突。
VM冲突检测功能用于检测同一vBRAS-CP内部是否发生了VM冲突。如果检测到VM冲突,则采取一定的措施,让其中一个VM正常工作,其它VM进入静默状态。处于静默状态的VM只能接收VM内部通信链路OAM(Operation, Administration, and Maintenance,操作、管理和维护)报文,不能处理业务报文。
为了适应不同的组网环境,vBRAS-CP支持以下两种方式来进行VM冲突检测:
· 通过“Slot编号+UUID(Universally Unique Identifier,通用唯一识别码)”检测VM冲突:该方式用于vBRAS-CP和VNFM连接正常的情况下进行VM冲突检测。
· 通过“Slot编号+MAC地址”检测VM冲突:该方式用于vBRAS-CP未连接VNFM时,例如vBRAS-CP处于启动阶段或者vBRAS-CP和VNFM连接故障时,进行VM冲突检测。
当vBRAS-CP和VNFM连接正常时,vBRAS-CP会同时通过“Slot编号+UUID”和“Slot编号+MAC地址”检测VM冲突,检测结果以通过“Slot编号+UUID”检测的结果为准。
网络中的VM众多,而且需要弹性扩缩容(即根据业务需要自动创建或删除VM)。通常情况下,网络管理员会通过VNFM来管理VM的生命周期。需要扩容时,vBRAS-CP会根据Slot编号分配机制将需要创建的VM的Slot编号发送给VNFM。VNFM创建VM时,会给VM分配UUID,并记录Slot编号和UUID的对应关系。
正常情况下,VNFM上记录的VM信息和网络中存在的VM是一致的。当出现异常情况时,网络中可能存在Slot编号相同的VM,出现VM冲突。例如VNFM销毁了一个VM,并重建了一个相同Slot编号的VM来接替原来的VM,但实际上销毁指令没有到达vBRAS-CP,原VM并未被销毁,但新的VM已经被创建。为了避免这种情况的发生,vBRAS-CP支持通过“Slot编号+UUID”检测VM冲突。当VM检测到自己和其它VM冲突时,被VNFM纳管的VM(即VNFM上注册的VM)处于工作状态,未被VNFM纳管的VM进入静默状态。
如图2-12所示,通过“Slot编号+UUID”进行VM冲突检测的过程如下:
(1) 主CTRL-VM向VNFM发送UUID查询报文,查询Slot编号和UUID的关系。主CTRL-VM在以下情况会向VNFM发送UUID查询报文:
¡ vBRAS-CP启动后,主CTRL-VM按周期向VNFM发送UUID查询报文。查询周期(缺省值为5分钟)可以通过命令行配置。
¡ 当vBRAS-CP感知到VM扩容、缩容、重建事件时,主CTRL-VM实时向VNFM发送UUID查询报文。
(2) VNFM发送UUID查询回应报文,报文中包含VNFM纳管的所有VM的Slot编号和UUID的对应关系。
(3) 主CTRL-VM将UUID查询回应报文解析后,将UUID查询回应报文中携带的Slot编号和UUID封装入冲突检测报文广播发送给其它所有VM。
(4) vBRAS-CP内其它VM在收到冲突检测报文后,以冲突检测报文中的Slot编号和UUID的关系为准,确定是否存在VM冲突。
¡ 如果冲突检测报文中未包含本VM的Slot编号,且本VM为BRAS-VM,则本VM认为自己为管理员手工创建的VM,继续正常运行;如果冲突检测报文中未包含本VM的Slot编号,且本VM不是BRAS-VM,则本VM会被认为非法,该VM将自己置为静默状态。
¡ 如果冲突检测报文中包含本VM的Slot编号,且冲突检测报文中对应的UUID和本VM的UUID均相同,则认为未检测到VM冲突,本VM正常运行。
¡ 如果冲突检测报文中包含本VM的Slot编号,但冲突检测报文中对应的UUID和本VM的UUID不同,则认为检测到VM冲突,该VM将自己置为静默状态。
¡ 如果被静默的VM后续收到冲突检测报文,且冲突检测报文中的Slot编号/UUID和本VM的Slot编号/UUID均相同,则自动解除静默,恢复到正常工作状态。
vBRAS-CP和VNFM建立连接后,通过“Slot编号+UUID”检测VM冲突功能就开始运行。通常情况下,通过“Slot编号+UUID”检测VM冲突功能无需配置,用户也可根据需要,通过命令行修改vBRAS-CP向VNFM发送VM冲突检测查询报文的周期。
图2-12 通过“Slot编号+UUID”检测VM冲突示意图
当vBRAS-CP正在启动且尚未连接VNFM,或者vBRAS-CP已经和VNFM断开连接时,vBRAS-CP无法通过VNFM进行VM冲突检测,这种情况下,vBRAS-CP支持使用“Slot编号+MAC地址”来检测VM冲突。
在物理服务器上创建VM的时候,vBRAS-CP会给VM分配一个唯一的MAC地址作为该VM的身份标识,VM使用该MAC地址和其它设备通信,vBRAS-CP会记录VM的Slot编号和MAC地址的对应关系。如果广播域中某两个VM的Slot编号相同,但MAC地址不同,则认为出现了VM冲突。vBRAS-CP支持通过“Slot编号+MAC地址”检测VM冲突。当检测到冲突时,在vBRAS-CP注册过的VM处于工作状态,未注册的VM进入静默状态。
通过“Slot编号+MAC地址”进行VM冲突检测的过程如下:
(1) 所有VM启动时均处于静默状态,只能接收VM冲突检测报文。vBRAS-CP会为每个VM创建时长相同的静默定时器并开始计时。
(2) 先启动的VM,其静默定时器先超时,该VM进入正常运行状态,并自动对外广播发送VM冲突检测报文,报文中包含该VM的“Slot编号+MAC地址”信息。
(3) 其它VM收到VM冲突检测报文后,用本VM的“Slot编号+MAC地址”和检测报文中的“Slot编号+MAC地址”比较:
¡ 如果“Slot编号+MAC地址”均相同,则认为收到的是VM自己发送的VM冲突检测报文,不存在VM冲突,本VM继续运行。
¡ 如果Slot编号和相同,但MAC地址不同,则认为检测到VM冲突。如果本VM未完成启动,则终止本VM的启动进程;如果本VM已经完成启动且处于静默状态,则本VM进入永久静默状态。
¡ 如果Slot编号不同,则认为未检测到VM冲突,本VM继续运行。
vBRAS-CP启动后,通过“Slot编号+MAC地址”检测VM冲突功能就开始运行,无需也不支持通过命令行配置。
防脑裂功能又称为vBRAS-CP冲突检测功能,用于检测并处理当通信链路故障,一个vBRAS-CP系统分裂成两个vBRAS-CP系统的情况。
在vBRAS-CP系统中,为了提升系统的可靠性,vBRAS-CP将CTRL-VM和BRAS-VM分组,每个CTRL-VM组内包含两个CTRL-VM,每个BRAS-VM组内包含两个BRAS-VM。VM组均内采用VM 1:1冗余备份方案。一个vBRAS-CP系统支持一个CTRL-VM组,可支持多个BRAS-VM组。所以,vBRAS-CP的防脑裂功能包括两部分:CTRL-VM防脑裂和BRAS-VM防脑裂。
(1) CTRL-VM防脑裂
正常情况下,CTRL-VM组中的两个CTRL-VM。一个作为主用CTRL-VM,另一个作为备用CTRL-VM。
当两个CTRL-VM之间的通信链路断开时,两个CTRL-VM均认为自己是主CTRL-VM,导致一个vBRAS-CP系统分裂成两个vBRAS-CP系统,这种现象称为CTRL-VM脑裂。这两个vBRAS-CP系统拥有相同的IP地址等三层配置,会引起IP地址等配置冲突,导致网络业务互相干扰甚至部分业务无法使用。
CTRL-VM防脑裂功能用于让分裂的两个vBRAS-CP系统中的一个vBRAS-CP系统继续工作,另一个vBRAS-CP系统进入业务不可用状态,不处理业务报文。此时,请尽快修复故障链路,故障链路修复后,两个分裂的vBRAS-CP系统会自动合并为一个vBRAS-CP系统正常运行。
(2) BRAS-VM防脑裂
正常情况下,BRAS-VM组中的两个BRAS-VM。一个作为主用BRAS-VM,另一个作为备用BRAS-VM。
当同一个BRAS-VM组中的两个BRAS-VM之间的通信链路断开时,两个BRAS-VM均认为自己是主BRAS-VM,导致网络中有两个相同配置的BRAS-VM。这两个BRAS-VM拥有相同的用户接入等配置和数据,会引起用户管理、接入控制等配置冲突,导致网络业务互相干扰甚至部分业务无法使用。
BRAS-VM防脑裂功能用于让分裂的两个BRAS-VM中的一个BRAS-VM继续工作,另一个BRAS-VM进入业务不可用状态,不处理业务报文。此时,请尽快修复故障链路,故障链路修复后,两个分裂的BRAS-VM会自动合并为一个BRAS-VM组正常运行。
如图2-13所示,vBRAS-CP包含两个CTRL-VM、两个BRAS-VM、两个FWD-VM,两个CTRL-VM组成CTRL-VM组,两个BRAS-VM组成BRAS-VM组,两个FWD-VM各自独立运行。这些VM分别部署在两台服务器上。当两台服务器之间的链路故障,一个vBRAS-CP系统就会分裂成两个vBRAS-CP系统。此时,防脑裂功能会通过投票来选举一个vBRAS-CP系统继续工作,另一个vBRAS-CP系统进入业务不可用状态,不处理业务报文。
图2-13 vBRAS-CP防脑裂功能示意图
CTRL-VM防脑裂工作流程包括两个阶段:投票者选择和投票选举。
(1) 投票者选择
发生以下情况时,主用CTRL-VM会选择投票者:
¡ 开启防脑裂功能时,主用CTRL-VM会选择投票者,并将投票者信息同步到备用CTRL-VM,以便脑裂发生时,能尽快完成投票选举。
¡ 为确保投票者有效,开启防脑裂功能后,只要有FWD-VM、BRAS-VM上线或者下线,主用CTRL-VM会重新选择投票者,并将投票者信息同步到备用CTRL-VM。
主用CTRL-VM根据vBRAS-CP系统中FWD-VM、BRAS-VM的数量自动选择3个VM(2个FWD-VM+1个BRAS-VM)作为投票者。
(2) 投票选举
脑裂发生时,所有CTRL-VM变成候选者。候选者向投票者VM请求投票,收到2票的CTRL-VM获胜,当选为主用CTRL-VM,另外一个CTRL-VM为备用CTRL-VM。
如图2-14所示,CTRL-VM投票选举流程如下:
a. 主用CTRL-VM和备用CTRL-VM之间的链路故障导致CTRL-VM间的心跳报文超时,一个vBRAS-CP系统分裂成两个vBRAS-CP系统,原主用CTRL-VM和原备用CTRL-VM变成候选者。
b. 原主用CTRL-VM立即广播发送投票请求报文,原备用CTRL-VM延时5秒后广播发送投票选择报文,以便保证同一时刻同一个投票者VM只能收到一个候选者CTRL-VM的投票请求报文。由于原主用CTRL-VM能先发送投票请求报文,能先收到投票响应,从而继续当选为主用CTRL-VM的可能性更大。
c. 投票者VM收到投票请求报文后记录当前候选者CTRL-VM的信息,并向记录的候选者CTRL-VM发送投票应答报文。投票者VM记录候选者CTRL-VM信息后,10秒内即便收到其它候选者CTRL-VM的投票请求报文,也不会应答,更不会更新本地记录的候选者信息。10秒后收到候选者CTRL-VM的投票请求报文才会继续处理。
d. 候选者CTRL-VM每收到一个投票应答报文,则获得1票。若收到同一投票者VM的投票应答报文,则不重复记录选票。
e. 候选者CTRL-VM根据选票确定选举结果。
候选者CTRL-VM每秒检测票数:
- 如果符合选举成功的规则,则选举成功,将自己变为主用CTRL-VM;
- 如果未符合选举成功的规则,则重新广播发送投票请求报文。
如果从候选者CTRL-VM开始广播发送投票请求报文起,3秒之后,候选者CTRL-VM仍未成当选为主用CTRL-VM,则视为选举失败,CTRL-VM将自己设置为主CTRL-VM,并进入业务不可用状态,不处理业务报文。
CTRL-VM组防脑裂的选举结果会对BRAS-VM组的选举结果产生影响,BRAS-VM选出的主BRAS-VM一定要和主CTRL-VM位于同一子网内。所以,BRAS-VM会在主CTRL-VM选举完毕并进入稳定状态后,才进行主用BRAS-VM选举。
BRAS-VM防脑裂工作流程为:
(1) 同一个BRAS-VM组的主用BRAS-VM和备用BRAS-VM之间的链路故障,导致BRAS-VM间的心跳报文超时,一个BRAS-VM组会分裂成两个BRAS-VM组,原主用BRAS-VM和原备用BRAS-VM均变成候选者,进入选举状态。
(2) 主CTRL-VM选举完毕并进入稳定状态后,周期广播发送Master通知报文。
(3) 处于选举状态的BRAS-VM收到Master通知报文,并记录收到Master通知报文的时间戳。如果最近收到的3个Master通知报文的时间总间隔小于5秒,BRAS-VM则认为自己和主CTRL-VM身处同一子网,选举成功,将自己设置为主BRAS-VM,正常处理报文;否则,选举失败,将自己设置为主BRAS-VM,并进入业务不可用状态,不处理业务报文。
如图2-15所示,假设vBRAS-CP已经部署完毕,在CTRL-VM组中,CTRL-VM1为主CTRL-VM;在BRAS-VM组中,BRAS-VM97为主BRAS-VM。
对于CTRL-VM,防脑裂工作流程如下:
(1) 主CTRL-VM根据上文所述规则选择3个VM(FWD-VM5、FWD-VM6和BRAS-VM97)作为投票者,并把投票者的信息同步给备CTRL-VM2。
(2) 当Switch1和Switch2之间的链路故障,一个vBRAS-CP分裂成两个vBRAS-CP。
(3) 两个CTRL-VM之间的心跳报文超时,两个CTRL-VM均变成候选者,主CTRL-VM1先广播发送投票请求报文。
(4) CTRL-VM1所在的子网内,FWD-VM5和BRAS-VM97均为投票者,FWD-VM5和BRAS-VM97给CTRL-VM1回复投票响应报文。
(5) CTRL-VM1收到2票,超过投票者总数3的一半。CTRL-VM1认为选举成功,当选为主CTRL-VM,继续正常工作。
(6) CTRL-VM2从感知到心跳报文超时,再延时5秒后广播发送投票请求报文。
(7) CTRL-VM2所在的子网内,只有FWD-VM6为投票者,FWD-VM6给CTRL-VM2回复投票响应报文;BRAS-VM98不是投票者,不响应投票请求报文。
(8) CTRL-VM2收到1票,小于投票者总数3的一半。CTRL-VM2认为选举失败,当选为主CTRL-VM,进入业务不可用状态,不处理业务报文。
对于BRAS-VM,防脑裂工作流程如下:
(1) 当Switch1和Switch2之间的链路故障,一个vBRAS-CP分裂成两个vBRAS-CP。
(2) 两个BRAS-VM之间的心跳报文超时,两个BRAS-VM均变成候选者,进入选举状态。
(3) CTRL-VM1当选为主CTRL-VM,对外周期广播发送Master通知报文。
(4) BRAS-VM97连续收到3个Master通知报文,且3个Master通知报文的总时间间隔小于5秒,则认为自己选举成功,当选为主BRAS-VM,继续正常工作。
(5) CTRL-VM2当选为主CTRL-VM,进入业务不可用状态,不处理业务报文,不会周期广播发送Master通知报文。
(6) BRAS-VM98没有收到Master通知报文,待选举定时器超时后,BRAS-VM98认为自己选举失败,当选为主BRAS-VM,进入业务不可用状态,不处理业务报文。
这样,CTRL-VM1所在的vBRAS-CP处于正常工作状态,CTRL-VM2所在的vBRAS-CP处于不可用状态,防脑裂处理完毕。
图2-15 vBRAS-CP防脑裂功能示意图
SAFD(System Anomaly and Failure Detection,系统异常检测功能)通过在vBRAS-CP的VM上运行多种故障监测测试例来检查VM的健康状态,如果发现系统异常,则报告故障检测消息,以便管理员能及时发现系统故障。系统异常检测功能可配合虚机自愈功能实现虚机系统的故障自我修复。
系统异常检测功能将VM分为两类:
· 功能单元(Function Unit):由同类型的VM组成的逻辑功能组,功能单元中的VM以主备或者负载分担方式协同工作。例如两个BRAS-VM组成一个功能单元,其中主BRAS-VM工作,备BRAS-VM处于备份状态。
· 中控单元(Control Center Unit):中控单元是一类特殊功能单元,它可以控制所有VM上部署的故障检测内容,记录系统中所有VM的故障检测状态,收集处理检测消息。中控单元中的VM只能工作在主备模式。例如两个CTRL-VM组成一个功能单元,其中主CTRL-VM正常工作,备CTRL-VM处于备份状态。
图2-16 vBRAS-CP上SAFD模型示意图
如图2-16所示,SAFD功能可以部署在所有VM上。对于CTRL-VM,两个CTRL-VM组成中控单元,并工作在主备工作模式。主CTRL-VM可以检测本身故障事件,并通过备CTRL-VM上报的故障消息感知中控单元内VM的故障情况。BRAS-VM和FWD-VM可以将本功能单元内VM的故障情况上报给中控单元。因此,CTRL-VM可以收集vBRAS-CP内部所有VM的故障信息。
如图2-17所示,SAFD功能工作原理:
(1) 管理员通过CLI将系统异常检测的命令下发给SAFD功能的故障监控进程
(2) 故障监控进程接收到命令后,由中控单元根据配置命令控制指定的VM开启特定故障监测测试例。
(3) VM上开启的故障监测测试例调用系统中VM管理功能(VMMGR)、VM内部链路通信OAM等功能来获取VM的故障状态。
(4) 中控单元通过NETCONF获取所有功能单元VM上报的异常和故障信息,记录故障检测状态。
图2-17 SAFD工作原理示意图
故障监测测试例包括:
· CPU占用率监测测试例:用于检测CPU负载。如果CPU负载到达门限值且持续时间超过容忍时间,将向故障监测进程上报故障消息。CPU负载的门限值支持客户定制。
· 控制通道监测测试例和数据通道监测测试例:用于检测控制通道和数据通道的链路亚健康状态。如果控制通道或数据通道的链路亚健康状态为非Nomal且持续时间超过容忍时间,则向故障监测进程上报故障消息。
· 功能单元监测测试例:用于检测功能单元中是否所有VM均处于离线状态。当某个功能单元中所有VM全部离线且离线时间超出容忍时间,中控单元感知故障并生成故障消息。
· 内存监测测试例:用于监控内存使用率。VM的内存占用率达到命令配置的告警门限值且持续时间超过容忍时间,将向故障监测进程上报故障消息。
· VM离线监测测试例:用于检测vBRAS-CP上的VM在线情况。当某个VM离线时间超过容忍时间,中控单元可以感知故障并生成故障消息。
VM上开启SAFD功能时可以指定多个故障监测测试例,故障监测测试例的容忍时间可以配置修改。
VMSH(Virtual Machine Self Healing,虚机自愈)是vBRAS-CP系统出现内部网络链路故障或VM故障后的自我修复功能。该功能可以在故障发生后,通过设定的策略,对VM进行一系列的故障恢复操作,使VM能够从异常中恢复,从而保证了vBRAS-CP业务的可靠性。VMSH功能由运行在中控单元上的VMSH进程和VMSH进程发布的自愈指令实现。VMSH功能需要SAFD功能配合工作。
如图2-18所示VMSH功能只能部署在中控单元中的主CTRL-VM上。VMSH功能通过自愈指令控制指定VM执行自愈策略。
图2-18 vBRAS-CP上部署VMSH示意图
如图2-18所示,VMSH功能的工作原理如下:
(1) SAFD功能检测到故障后,将故障消息通告给VMSH功能,作为VMSH功能执行的触发条件。
(2) 中控单元上的VMSH功能将根据CLI下发的自愈策略控制故障VM执行自愈指令。
(3) VMSH功能的自愈指令包括最多4个自愈动作和一个自愈失败策略。其中,自愈动作按优先级分为一级自愈动作、二级自愈动作、三级自愈动作和四级自愈动作,优先级从一级到四级依次降低。VM执行自愈指令时,将按优先级从高到低的顺序,依次执行下发给它的所有自愈动作,当所有自愈动作执行完成后但VM故障仍未修复时,将执行自愈失败策略。
图2-19 VMSH功能示意图
如图2-19所示,中控单元上的VMSH功能执行VMSH策略的具体流程如下:
(1) VMSH进程在下发自愈指令前需要判断是否满足自愈执行条件,即当前时刻vBRAS-CP中不存在其他正在执行自愈动作的VM且中控单元中主VM和备VM必须正常在线。如果不满足自愈执行条件则返回自愈开始状态等待下一个故障消息触发自愈执行。如果满足自愈执行条件则进入下一步。
(2) 开始执行第一级自愈动作(优先级最高的自愈动作),在执行完自愈动作之后,需要等待一段时间。在自愈等待时间内CTRL-VM如果收到故障恢复消息则直接表示自愈成功,故障恢复则VM结束自愈流程;CTRL-VM如果未收到故障恢复消息则开始执行下一步。
(3) VM执行自愈动作故障未恢复则记录当前一级自愈动作执行次数为1次,并返回上一步重新开始执行本级自愈动作,每次执行失败后重复上述过程,并累加当前记录的执行次数,直到执行次数等于最大执行次数,才进入下一级自愈动作。如果在重复过程中故障恢复则结束自愈。
(4) 如果配置了下一级自愈动作,则继续执行下一级自愈动作,重复步骤(3)中的过程,直到最后一级自愈动作。如果最后一级自愈动作执行了最大次数后故障仍未恢复,VM将执行自愈失败策略(当前可可配置为关闭VM或无动作)。
(5) 最后结束自愈过程。
图2-20 VMSH执行流程图
图2-20中自愈等待时间和自愈动作的最大执行次数可以配置。
vBRAS-CP具有三种类型的接口,用于内部通信的接口,用于外部通信的接口和用于管理的OM口vBRAS-CP内外部交互的协议报文,通过这三种接口进行转发。然而,当内部交互的协议报文较多时,由于流量过大,协议报文抢占转发资源,容易出现报文因无法及时转发而被丢弃的情况,如果丢弃的是比较重要的协议报文,就会导致业务处理失败或者中断。vBRAS-CP内部协议报文流量控制是通过报文优先级和报文限速来控制协议报文抢占转发队列的能力,减少重要报文的丢包率。
报文优先级控制通过为不同的协议报文赋予不同的优先级,来控制协议报文抢占转发队列的能力。当协议报文开始进入转发时,接口的转发队列不断被占用,随着转发队列资源不断减少,较低优先级的报文会被限制进入转发队列,而较高优先级的报文则不受限制。为重要协议报文赋予较高的优先级,可以保证重要协议报文被优先转发。
vBRAS-CP内部协议报文优先级取值为0~3,数值越大优先级越高,每个优先级对应一个转发队列长度阈值,如下表所示。
表2-3 报文优先级与队列长度阈值对应表
报文优先级 |
队列长度阈值 |
0 |
640 |
1 |
256 |
2 |
128 |
3 |
0 |
队列长度阈值表示转发队列剩余的可接收数据包个数,当接口转发队列的剩余长度大于或等于某级别的优先级对应的阈值时,转发队列才会接收该优先级的报文。不同类型的接口支持的报文优先级级别不同,用于内部通信的接口支持的优先级为0~3,用于外部通信的接口和用于管理的OM口支持的优先级为0~2。
图2-21 报文优先级控制
协议报文抢占转发队列的能力不仅取决于报文进入转发队列的优先顺序,还取决于报文进入转发队列的传输速率。例如,当协议报文开始进入转发时,如果某一类的协议报文数量很多,且进入转发队列的速率达到了接口的最大带宽,那么其他协议报文将会无法及时地进入转发。
针对上述问题,vBRAS-CP支持报文限速控制功能。报文限速控制是指通过为不同的协议报文设置不同的速率,来控制协议报文抢占转发队列的能力,其实质就是通过限制协议报文进入转发队列的速率,让更多的报文可以及时进入转发队列。当有大量的协议报文需要转发时,将协议报文进入转发队列的速率限制在低于接口最大带宽的一定范围内,这样其他的协议报文就可以利用剩余的接口带宽进入转发队列,避免因等待时间较长而被丢弃的情况。
图2-22 报文限速控制
外部业务流量到达vBRAS-CP之后,将由FWD-VM按如下原则进行分流:
· 根据各业务模块的配置,CTRL-VM会自动生成流量重定向策略下发到FWD-VM上,CP入方向流量在FWD-VM上根据流量重定向策略进行转发,将报文分流到其他FWD-VM、BRAS-VM或CTRL-VM上。
· CP出方向流量经由FWD-VM发出。
流量重定向策略由CTRL-VM的INNERLB模块生成并下发到FWD-VM上,同时FWD-VM在分流流量时,还将限制流量的转发速率,超出限速的流量将被丢弃,以避免非法协议报文的攻击。当存在大量攻击协议报文攻击时,某些正常的用户协议报文流量也会因为限速而被丢弃。
如图2-23所示,可以在CTRL-VM上开启INNERLB模块的ACL白名单功能,将ACL白名单下发到FWD-VM上,保证FWD-VM转发符合ACL白名单的流量时不进行限速。
图2-23 FWD-VM的分流示意图
INNERLB模块的ACL白名单下发功能分为动态下发和强制下发两种模式。
· ACL白名单动态下发模式:当FWD-VM上送CTRL-VM的流量速率速大于白名单功能开启阈值时,CTRL-VM自动开启ACL白名单下发功能;当所有FWD-VM上送CTRL-VM的流量速率均小于白名单功能关闭阈值时,CTRL-VM自动关闭ACL白名单下发功能。动态下发模式将ACL白名单的下发与流量进行关联,避免了没有攻击流量或者重定向到CTRL-VM的ACL白名单流量较小时,CTRL-VM一直下发ACL白名单对FWD-VM转发性能造成影响。
· ACL白名单强制下发模式:CTRL-VM上的ACL白名单会实时下发到FWD-VM上。强制下发模式保证了白名单流量的传输,但会影响FWD-VM转发性能。
通常情况下,vBRAS-CP上负责转发用户报文的CPU用一定的频率轮询处理FWD-VM与UP互联的接口上的用户报文。当vBRAS-CP上某个FWD-VM与UP互联的接口收到大量攻击报文时,负责转发用户报文的CPU会长时间用来处理被攻击的接口下的无效攻击报文,导致CPU硬件资源被空耗,使得正常用户报文无法得到及时处理。因此,需要在设备的硬件驱动层面上限制受攻击接口的报文分发处理能力,以降低CPU对受攻击接口和攻击报文的轮询处理的频率。
上述硬件驱动层面的功能称为基于驱动的攻击防范。
在vBRAS-CP上开启了对特定协议报文的攻击防范功能后,如果FWD-VM与UP互联的接口收到大量攻击报文,则会由业务模块生成对应的防攻击表项,由驱动根据防攻击表项匹配到攻击流量,再丢弃接口上的攻击报文。
一般情况下,在vBRAS-UP设备上开启基于驱动的攻击防范功能就可以有效防止攻击报文上送至vBRAS-CP,从而避免在vBRAS-CP上FWD-VM与UP互联的接口执行攻击防范的动作。
vBRAS-CP支持在业务软件层面和硬件驱动层面对PPPoE、DHCP、TCP和UDP协议报文实现攻击防范功能,这两个层面的攻击防范机制遵照以下先后顺序依次实施:
(1) 业务层面攻击防范:
a. 开启设备对特定协议报文的攻击防范功能后,设备处于攻击检测状态。例如开启设备的DHCP Flood攻击防范功能、TCP SYN Flood攻击防范功能、UDP Flood攻击防范功能和PPPoE用户静默功能;
b. 如果在一个检测周期内设备收到对应的协议报文的个数达到或超过攻击防范的触发阈值,则认为存在攻击;
c. 业务模块生成对应的防攻击表项来标识攻击者的特征,并把攻击特征下发到UP,例如攻击者的源MAC地址、VLAN ID、UP到CP侧的协议通道VXLAN ID等,同时vBRAS-CP或UP设备丢弃对应的攻击报文。
关于业务软件层面的攻击防范的详细介绍,请参见相应的配置指导。
(2) 硬件驱动层面攻击防范:
a. 业务模块生成特定协议的防攻击表项后,将标识攻击者信息的防攻击表项通知给驱动。
b. 驱动根据防攻击表项匹配到攻击流量,丢弃攻击报文;
c. 驱动模块对所有FWD-VM与UP互联的接口收到的这类协议报文和攻击报文进行流量统计,得到所有FWD-VM与UP互联的接口每秒接收的这类协议报文的速率X bps以及指定的被攻击的业务接口丢弃的攻击报文包速率Y pps。
d. 当X和Y同时达到或超过管理员配置的阈值时,驱动模块将每隔2秒逐步降低受攻击接口的报文处理能力。
图2-24 驱动的攻击防范工作机制示意图(以DHCP Flood攻击为例)
转发平面与控制平面完全分离,解除转发平面与控制平面的紧耦合,有利于分别灵活扩容,互不约束。其中:
· 对控制平面进行集中化和云化,更易于集中管控,有助于弹性扩缩容,简化运维。
· 对转发平面进行本地化,由于转发平面流量大,本地化可以实现大流量本地卸载。
· 控制平面采用软件实现,由于控制平面属于计算密集型,软件化可以充分发挥其计算能力强的优势。
· 转发平面主要采用硬件实现,由于转发平面属于流量密集型,借助高性能硬件可以实现大流量转发。对于一些大session小流量业务可采用虚拟化通用设备作为补充。
· 控制平面与转发平面之间采用标准接口,推动高性能转发平面的标准化和通用化。
· 控制平面融合ICT的可靠性技术,通过跨服务器和多VM部署、故障检测和自愈、业务流量自动负载均衡等方案,确保系统提供电信级高可靠性。
· 提供统一的南、北向接口。
如下图所示:
· vBRAS-CP采用NFV技术部署在省中心的边缘云内部。
· vBRAS-UP有物理设备形态和虚拟化形态两种:
¡ 物理设备形态的pUP部署于城域边缘,主要用来处理如宽带上网、IPTV等大流量业务。
¡ 虚拟化的vUP部署在省中心的边缘云内(一般和vBRAS-CP部署在同一个边缘云中),主要用来处理如ITMS、VoIP等大session小流量业务,以降低物理pUP上的session压力。
图3-1 典型组网
· 《中国移动基于转发和控制分离架构的vBRAS系统设备规范》
· 《中国移动基于转发和控制分离架构的vBRAS系统技术实现流程》
· 《中国移动基于转发和控制分离的vBRAS系统控制接口规范》