ComwareV9体系结构技术白皮书Copyright2020新华三技术有限公司版权所有,保留一切权利.
非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传播.
除新华三技术有限公司的商标外,本手册中出现的其它公司的商标、产品标识及商品名称,由各自权利人拥有.
本文中的内容为通用性技术信息,某些信息可能不适用于您所购买的产品.
i目录1概述·······························································································································12ComwareV9体系结构·······································································································22.
1ComwareV9总体架构····································································································22.
2ComwareV9的模块化····································································································32.
3容器化架构···················································································································32.
3.
1Comware容器化··································································································32.
3.
2Comware支持K8S实现容器管理············································································42.
3.
3Comware对容器的网络支持····················································································52.
4云网融合架构················································································································52.
5可编程架构···················································································································72.
5.
1ComwareV9的可编程框架·····················································································72.
5.
2H3CSDK············································································································72.
6Telemetry与可视化········································································································92.
7虚拟化·······················································································································102.
7.
1DRNI(N:1)·····································································································102.
7.
2MDC(1:N)·····································································································112.
7.
3DRNI与MDC配合使用(N:M)············································································112.
8单机ISSU··················································································································123综述·····························································································································1311概述Comware是H3C自主研发的一款应用于网络设备的网络操作系统,包含了丰富的网络功能,支持从SOHO到数据中心、从企业级到运营商级的全系列网络设备.
Comware不仅打破了跨国公司和开源社区的垄断,而且带动了国家基础网络的快速发展,为保障我国国家信息安全提供了技术手段,具有广阔的应用前景和重要的战略意义.
Comware的发展主要有两个方面:功能的不断丰富:针对网络技术的发展以及设备应用场合的变化,增加新的功能,以适应不断变化的用户需求.
体系结构的不断完善:优化系统,使其更加简洁、通用及开放,以适应不同类型设备的要求以及网络设备的发展.
上一代的ComwareV7版本,采用多进程的方式实现了完全的模块化.
通过模块化使得系统在可靠性、虚拟化、多核多CPU应用、分布式计算、动态加载升级等方面都有了很大的改进.
同时,ComwareV7使用主流的Linux操作系统,使得网络操作系统从一个封闭的专用系统向更加通用、开放转变.
ComwareV7在一些细节上也进行了改进,例如使用抢先调度提高了系统的实时性.
经过不断的扩展,ComwareV7版本已经成为一个超过2千万行代码、3万条命令的超大系统.
但是,随着网络技术的不断演进,ComwareV7在系统架构上也表现出一些不足,例如:开放性差,不支持容器;主要的转发功能都是在Linux内核态实现,无法利用业界先进经验;对内核强依赖,导致内核版本升级困难.
在ComwareV7的基础上,ComwareV9针对开放性、容器化、可编程性、可视化等需求,在体系架构上进行升级和调整,以更好地适应当前网络操作系统的发展趋势.
ComwareV9具有如下优势:采用原生Linux内核,ComwareV9的功能完全在用户态实现,方便升级内核版本.
支持容器化,支持以容器的形式发布Comware,同时支持在运行ComwareV9的设备上部署容器运行第三方应用,提升Comware的开放性.
深化模块化设计思路,使得业务间相互独立,可以独立部署,或采用独立软件的形式发布Comware的某一个软件功能.
架构上充分考虑虚拟化形态产品的需求,实现轻量化的支撑架构,使得虚拟化形态产品的部署更加灵活快捷.
对于不间断业务升级(ISSU),ComwareV9增加了对于单机ISSU的支持,解决单机情况下的升级问题.
22ComwareV9体系结构2.
1ComwareV9总体架构图1ComwareV9总体架构ComwareV9的总体架构如图1所示,它由如下四个平面组成:基础设施平面在操作系统的基础上提供业务运行的软件基础,包括操作系统基础服务和业务支撑功能.
基础服务功能是与业务无关的各种软件功能,包括Linux操作系统的各种基本功能、C语言库函数、数据结构操作、标准算法等.
业务支撑系统是整个系统业务运行的基础,为Comware各业务提供软件和基础设施,后面提到的各种系统架构中涉及的基础功能均在这部分提供.
数据平面提供数据报文转发功能,包括本地报文的收发,即IPv4/IPv6协议栈、socket、基于各层转发表的数据转发功能等.
ComwareV9的数据平面,支持基于DPDK(DataPlaneDevelopmentKit,数据平面开发套件)的转发模型.
控制平面运行路由、MPLS、链路层、安全等各种路由、信令和控制协议,生成各种转发表项以控制数据平面的转发行为.
ComwareV9的控制平面主要可以分为Layer2、Layer3、DC、MPLS等几类业务.
管理平面对外提供设备的管理接口,如CLI、Telnet、SSH、SNMP、HTTP、Netconf、Restful和gRPC等.
通过管理平面,实现人机交互,对ComwareV9进行设置、监控、管理.
32.
2ComwareV9的模块化ComwareV9在模块化设计上做了增强.
ComwareV7版本虽然也实现了模块化,各个网络服务功能独立运行在各自的进程,但是对于支撑系统强依赖,无法独立发布.
ComwareV9在原有基础上,将支撑系统轻量化.
实现业务之间完全独立,并且可以独立发布.
ComwareV9的模块化具有如下特点:粒度模块化:实现独立模块的软件故障封闭和故障修复,增强系统的稳定性.
模块间解耦:通过数据库+消息机制,减少模块间强依赖,实现各模块之间松耦合.
支撑系统轻量化:通过将支撑系统轻量化,最终实现可以独立发布的轻量化的网络功能.
业务独立部署:业务间相互独立,可以通过容器实现业务独立部署.
2.
3容器化架构2.
3.
1Comware容器化图2ComwareV9容器化结构如图2所示,ComwareV9采用了容器化架构,为Comware以及第三方应用提供独立的运行环境:Comware的基本功能运行在Comwre容器中.
Comware本身支持基于容器发布,以容器镜像形式发布虚拟化产品,通过业界广泛使用的K8S等管理工具进行管理.
4可以通过独立的容器运行Comware的基本功能,并通过增加容器来运行扩展功能.
例如,交换机上插无线插卡,无线功能部分可以封装成一个容器镜像文件,运行在独立的容器中.
它运行时依附Comware基本功能,但是可以独立地升级而不影响基本功能部分.
在ComwareV9的设备上,支持通过容器部署第三方软件.
相对于ComwareV7需要将第三方软件的源代码通过ComwareV7的交叉编译环境,编译过才能运行在Comware上的集成方式,通过容器来部署第三方应用更加灵活方便,使得Comware的开放性有显著提升.
Comware容器和用户创建的容器均运行在Linux内核之上,直接使用物理设备的硬件资源,利用Linuxnamespace和cgroups等技术来实现容器间的隔离和资源分配控制.
此外,ComwareV9还支持Kubernetes技术,可作为一个节点接受KubernetesMaster的调度和管理,实现第三方应用的大规模、集群化部署.
2.
3.
2Comware支持K8S实现容器管理图3ComwareV9支持K8SComwareV9集成了K8S和Dockerdaemon,可作为一个节点接受KubernetesMaster的调度和管理,实现通过K8S对设备上运行的第三方容器进行大规模、集群化部署和集中式管理.
对于管理员来说,在ComwareV9设备部署和管理容器,和在服务器部署和管理容器使用的命令行和参数基本一致,不影响管理员的配置习惯.
52.
3.
3Comware对容器的网络支持图4ComwareV9对容器的网络支持Cowmare为第三方容器提供网络支持,运行在第三方容器中的应用程序,可以与Comware中的应用通信(东西向流量),或者通过Comware与外界通信(南北向流量).
管理员创建第三方容器时可以选择是否与Comware共享网络空间.
针对这两种场景,Comware为第三方容器提供网络功能的方式分别为:第三方容器与Comware容器共享网络空间各容器在内核共享协议栈和转发表.
Comware会在内核创建虚拟接口,对应Comware的三层接口.
同时Comware将接口地址和路由都下发给内核,让内核具有较为完整的转发表项和转发能力.
第三方应用,通过内核协议栈以及转发与Comware或外界通信.
第三方容器与Comware容器不共享网络空间对于独立网络空间的容器,逻辑上Comware就像是第三方容器的网关.
Comware在内核创建TPAbridge,来连通第三方容器和Comware容器,从而实现东西向通信和南北向通信.
2.
4云网融合架构ComwareV9通过数据库+集群的软件架构,提供基于网络功能的轻量化NFV(NetworkFunctionVirtualisation,网络功能虚拟化)软件,部署更加灵活、快捷,并可成倍提高部署效率、扩大部署规模,以满足云网融合的需求.
ComwareV9通过数据库架构,实现特性间的解耦以及高可靠性.
解耦后的特性便于组合出各种功能结合的网络软件.
Comware提供多种数据库功能(内部数据库、外部数据库、分布式数据库等).
特性可根据不同场景选择合适的数据库,从而兼顾灵活性与性能.
6图5ComwareV9的数据库架构Comware支持软件集群,将Comware软件在多个网络节点上部署,这些节点组成一个集群,以实现软件特性的横向扩展及故障恢复.
图6ComwareV9的集群架构数据库+集群的软件架构,使得ComwareV9可以动态部署网络特性,并按需提供.
ComwareV9将网络设备的软件功能解耦,独立打包成镜像文件,真正做到按需将网络功能打包为容器化的NFV组件.
这使得网络功能可以脱离交换机和路由器的硬件基础,部署在云网系统中,实现真正意义的NFV,而不是将设备软件简单运行在服务器上.
ComwareV9提供各种基于网络功能的NFV组件,包括vBGPRR、vDHCP、vAAA、vBRAS、vLAS、vSR、vIPSec、vNAT、vFW和vAC等,并利用DPDK技术大幅提升了各NFV组件的报文处理性能.
ComwareV9提供的NFV组件可以运行在不同硬件上,提供不同的网络功能,并彼此协同工作.
通过扩展软、硬件资源,可以灵活、快捷地增加网络功能及处理能力,最终实现云网融合.
图7ComwareV9云网融合示意图72.
5可编程架构现代网络规模日益庞大,管理员希望网络管理工具拥有更高效的网络部署能力、反应快速的运维和调度手段.
网络设备的可编程性可以满足上述需求.
2.
5.
1ComwareV9的可编程框架ComwareV9运行在原生的Linux系统上,使用不做任何修改的内核,为第三方软件提供标准的Linux运行环境,可以无缝运行第三方软件.
另外,ComwareV9的可编程框架提供了丰富的配置手段,可以适配各种自动化配置模型,提升网络部署效率;并提供对外发布的编程环境和接口,第三方软件可以利用编程接口开发独有功能.
1.
丰富的配置手段ComwareV9支持丰富的配置手段,包括:传统的命令行(CLI)和SNMP服务于SDN架构的NETCONF和RESTful接口广泛应用于Telemetry技术的gRPC软件框架2.
支持多种脚本工具ComwareV9支持基于bash、TCL、python、Ansible的脚本工具.
3.
支持丰富的自动化工具ComwareV9支持puppet、chef、openstack等自动化配置工具.
4.
支持VCFFabric服务支持通过Neutron插件,在H3CVCFFabric架构下进行自动组网配置.
5.
提供原生的Linux环境ComwareV9提供原生的LinuxCLI环境.
6.
第三方软件包管理ComwareV9支持在Comware中安装第三方RPM软件包.
7.
容器管理和编排支持ComwareV9集成DockerCE和K8S,支持通过K8S动态部署Comware扩展业务和第三方软件.
8.
H3CSDK可编程环境ComwareV9对外提供软件开发套件H3CSDK(SoftwareDevelopmentKit,软件开发工具包).
第三方软件可以通过H3CSDK与Comware来通信,通过编程实现功能定制.
2.
5.
2H3CSDKSDK是软件工程师为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件时的开发工具的集合.
H3CSDK为第三方软件或者配置工具提供编程接口或插件.
第三方软件通过SDK与Comware通信;配置工具通过H3C插件实现对运行ComwareV9设备的自动配置.
8图8H3CSDK组成部分如图8所示,H3CSDK包括如下组成部分:SDK核心部分,包括:CSRE:SDK运行环境,支持C、Python、RESTful等.
CSDKCores:SDK核心功能实现.
Plugins:为一些常见应用提供的官方插件.
NES和APP,包括:NES:为SDK提供网络服务,运行在设备和NFV上.
CSDKAPP:使用CSDK编程的第三方程序.
3rdAPP:使用Plugins与CSDK交互的第三方程序.
图9基于H3CSDK开发的第三方软件的两种部署模式如图9所示,H3CSDK支持如下两种第三方软件部署模式:9本地部署模式第三方软件所在的容器可以部署在Comware所在的物理设备或服务器上,通过H3CSDK与本地Comware通信,实现数据获取、配置下发等功能.
云部署模式第三方软件可以部署在云端,通过H3CSDK与远端的Comware通信.
H3CSDN屏蔽了两种部署模式的实现差异,第三方软件根据需要选择任何一种部署方式,均可以达到相同的效果.
2.
6Telemetry与可视化网络运维的过程中,需要实时收集网络设备的运行状态、流量统计、告警信息等数据,对网络进行实时监控,以便及时发现和排除网络故障.
传统的手段是用网管软件通过SNMP获取设备的信息.
这种手段无法解决目前的网络监控需要解决"看不见"的问题,如快速定位哪台网络设备的哪个端口丢包、实时监控每台网络设备buffer的使用情况、端到端延时定位到具体链路等.
NetworkTelemetry(网络遥测)技术通过在网络设备上实现主动推送数据的能力,解决了SNMP时效性差、CPU消耗高等问题.
ComwareV9支持如下几种Telemetry实现方式:基于gRPC(GoogleRemoteProcedureCall,Google远程过程调用)/GNMI(gRPCNetworkManagementInterface,gRPC网络管理接口)的Telemetry基于INT(In-bandTelemetry,带内遥测)的Telemetry基于ERSPAN(EncapsulatedRemoteSwitchPortAnalyzer,封装远程端口镜像)的TelemetryTelemetry通过gRPC、INT或ERSPAN将网络设备上的数据主动推送给网管或监控软件.
基于网络中各个设备推送的数据,整个网络对网管或监控软件"可见",实现网络的可视化,为网络维护、突发流量处理、流量调度等提供支持.
目前,应用最为广泛的是基于gRPC/gNMI的Telemetry.
它是一种模型驱动(model-based)的Telemetry技术,提供protobuf定义文件.
第三方软件可以直接使用gRPC/gNMI与Comware通信,也可以使用基于gRPC封装的H3CSDK接口与Comware通信.
gRPC支持Dial-in和Dial-out两种模式,可以实时将订阅的数据从设备主动推送给网管或监控软件.
图10基于gRPC/gNMI的Telemetry102.
7虚拟化对于系统虚拟化有两种方式:一种是将多个物理设备虚拟为一个逻辑设备,称为N:1的虚拟化;另一种是将一个物理设备虚拟为多个逻辑设备,称为1:N的虚拟化.
ComwareV9同时支持这两种虚拟化,并且支持两种虚拟化的混合使用.
2.
7.
1DRNI(N:1)DRNI(DistributedResilientNetworkInterconnect,分布式弹性网络互连)是一种跨设备链路聚合技术,将两台物理设备在聚合层面虚拟成一台设备来实现跨设备链路聚合,从而提供设备级冗余保护和流量负载分担.
如图11所示,DeviceA与DeviceB组成DR系统,通过IPP(Intra-PortalPort,内部控制链路端口)间的链路IPL(Intra-PortalLink,内部控制链路)交互协议报文、同步信息.
当其中一台设备发生故障时,流量可以快速切换到另一台设备,保证业务的正常运行.
图11DRNI网络模型示意图112.
7.
2MDC(1:N)图12MDC虚拟化MDC技术是一种1:N虚拟化技术,它将一台物理设备虚拟成多台逻辑设备.
从软件上看,它将网络操作系统的数据平面、控制平面、管理平面进行了完全的虚拟化,形成多个虚拟的逻辑设备,各逻辑设备软件完全隔离.
在内核态,各逻辑设备虽然共用一个内核,但内核中逻辑设备间数据是分离的;在用户态,每个逻辑设备独立启动运行各自的用户态进程,一个逻辑设备的进程异常,对其他逻辑设备完全不会造成影响.
在数据转发方面,各逻辑设备有独立的转发表及协议栈,每个物理端口可以被一个逻辑设备独占使用,因此各逻辑设备的数据流不会相互干扰.
IMIDC是一家香港本土运营商,商家名为彩虹数据(Rainbow Cloud),全线产品自营,自有IP网络资源等,提供的产品包括VPS主机、独立服务器、站群独立服务器等,数据中心区域包括香港、日本、台湾、美国和南非等地机房,CN2网络直连到中国大陆。目前主机商针对日本独立服务器做促销活动,而且提供/28 IPv4,国内直连带宽优惠后每月仅88美元起。JP Multiple IP Customize...
paypal贝宝可撸$10的代金券!这两天paypal出了活动,本次并没有其他的限制,只要注册国区的paypal,使用国内的手机号和62开头的银联卡,就可以获得10美元的代金券,这个代金券购买产品需要大于10.1美元,站长给大家推荐几个方式,可以白嫖一年的VPS,有需要的朋友可以看看比较简单。PayPal送10美元活动:点击直达活动sfz与绑定卡的号码可以重复用 注册的邮箱,手机号与绑的银联卡必须...
hosthatch在做美国独立日促销,可能你会说这操作是不是晚了一个月?对,为了准备资源等,他们拖延到现在才有空,这次是针对自己全球14个数据中心的VPS。提前示警:各个数据中心的网络没有一个是针对中国直连的,都会绕道而且ping值比较高,想买的考虑清楚再说!官方网站:https://hosthatch.com所有VPS都基于KVM虚拟,支持PayPal在内的多种付款方式!芝加哥(大硬盘)VPS5...