第18章_网络管理与运维
- 随着网络的规模越来越庞大,网络中的设备种类繁多,如何对越来越复杂的网络进行有效的管理,从而提供高质量的网络服务,已成为网络管理所面临的巨大挑战。
- 网络的管理和运维手段多样,本章将对几种常见的网管与运维手段展开介绍。
1.网络管理与运维基本概念
1.1网络管理
- 网络管理是通过对网络中设备的管理,保证设备工作正常,使通信网络正常地运行,以提供高效、可靠和安全的通信服务,是通信网络的重要组成部分。
- 网络管理(Network Management)分为两类:
- 第一类是对网络应用程序、用户账号(例如文件的使用)和存取权限(许可)的管理。它们都是与软件有关的网络管理问题,这里不作深入解释。
- 第二类是对构成网络的硬件即网元的管理,包括防火墙、交换机、路由器等等。本课程主要针对此类网络管理。
- 一般企业网络中会有专门的部门或者人员负责网络的管理与运维。
- 注:
- NE(Network Element,网元):即网络单元,包含硬件设备及运行其上的软件。通常一个网络单元至少具有一块主控板,负责整个网络单元的管理和监控。主机软件运行在主控板上。
- 通常网络运维的操作都属于网络管理的范畴,本章后续所指的网络管理指对网络进行管理和维护。
1.2网络管理基本功能
- OSI定义了网络管理的五大功能模型:
- 配置管理(Configuration Management):配置管理负责监控网络的配置信息,使网络管理人员可以生成、查询和修改硬件、软件的运行参数和条件,并可以进行相关业务的配置。
- 性能管理(Performance Management):性能管理以网络性能为准则,保证在使用较少网络资源和具有较小时延的前提下,网络能够提供可靠、连续的通信能力。
- 故障管理(Fault Management):故障管理的主要目标是确保网络始终可用,并在发生故障时尽快将其修复。
- 安全管理(Security Management):安全管理可以保护网络和系统免受未经授权的访问和安全攻击。
- 计费管理(Accounting Management):记录用户使用网络资源的情况并核收费用,同时也统计网络的利用率。
1.3网络管理方式
- 传统网络管理:
- Web网管方式:利用设备内置的Web服务器,为用户提供图形化的操作界面。用户需要从终端通过HTTPS(Hypertext Transfer Protocol Secure ,HTTPS 加密协定)登录到设备进行管理。
- CLI方式:用户利用设备提供的命令行,通过Console口、Telnet或SSH等方式登录到设备,对设备进行管理与维护。此方式可以实现对设备的精细化管理,但是要求用户熟悉命令行。
- 基于SNMP集中管理:SNMP(Simple Network Management Protocol,简单网络管理协议)提供了一种通过运行网络管理软件的中心计算机(即网络管理站)来管理网元(如路由器、交换机)的方法。此方式可以实现对全网设备集中式、统一化管理,大大提升了管理效率。
- 基于iMaster NCE的网络管理:
- iMaster NCE是集管理、控制、分析和AI智能功能于一体的网络自动化与智能化平台,包括四大关键能力:全生命周期自动化、基于大数据和AI的智能闭环、开放可编程使能场景化APP生态、超大容量全云化平台。
- iMaster NCE采用NETCONF(Network Configuration Protocol,网络配置协议)、RESTCONF等协议对设备下发配置,使用Telemetry监控网络流量。
2.传统网络管理
2.1通过CLI或Web进行管理
- 当网络规模较小时,CLI和Web方式是常见的网络管理方式。
- 网络管理员可以通过HTTPS、Telnet、Console等方式登录设备后,对设备逐一进行管理。
- 这种管理方式不需要在网络中安装任何程序或部署服务器,成本较低。
- 网络管理员自身需要熟练掌握网络理论知识、各设备厂商网络配置命令。
- 当网络规模较大,网络拓扑较为复杂时,这种方式的局限性较大。
- 随着网络技术的飞速发展,在网络不断普及地同时也给网络管理带来了一些问题:
- 网络设备数量成几何级增长,使得网络管理员对设备的管理变得越来越困难;同时,网络作为一个复杂的分布式系统,其覆盖地域不断扩大,也使得对这些设备进行实时监控和故障排查变得极为困难。
- 网络设备种类多种多样,不同设备厂商提供的管理接口(如命令行接口)各不相同,这使得网络管理变得愈发复杂。
2.2基于SNMP的集中式管理
- SNMP(Simple Network Management Protocol,简单网络管理协议)是广泛用于TCP/IP网络的网络管理标准协议,提供了一种通过运行网络管理软件的中心计算机,即NMS(Network Management Station,网络管理工作站)来管理网元的方法。
- SNMP共有三个版本:SNMPv1、SNMPv2c和SNMPv3。
- 1990年5月,RFC 1157定义了SNMP的第一个版本SNMPv1。RFC 1157提供了一种监控和管理计算机网络的系统方法。SNMPv1基于团体名认证,安全性较差,且返回报文的错误码也较少。
- 1996年,IETF颁布了RFC 1901,定义了SNMP的第二个版本SNMPv2c。SNMPv2c中引入了GetBulk和Inform操作,支持更多的标准错误码信息,支持更多的数据类型(Counter64、Counter32)。
- 鉴于SNMPv2c在安全性方面没有得到改善,IETF又颁布了SNMPv3的版本,提供了基于USM(User-Based Security Model,用户安全模块)的认证加密和VACM(View-based Access Control Model,基于视图的访问控制模型)功能。
2.2.1SNMP典型架构
- SNMP包括NMS,Agent和MIB等。
NMS是运行在网管主机上的网络管理软件。网络管理员通过操作NMS,向被管理设备发出请求,从而可以监控和配置网络设备。
Agent是运行在被管理设备上的代理进程。被管理设备在接收到NMS发出的请求后,由Agent作出响应操作。Agent的主要功能包括:收集设备状态信息、实现NMS对设备的远程操作、向NMS发送告警消息。
管理信息库MIB(Management Information Base)是一个虚拟的数据库,是在被管理设备端维护的设备状态信息集。Agent通过查找MIB来收集设备状态信息。
2.2.2MIB
- MIB是一个数据库,指明了被管理设备所维护的变量(即能够被代理进程查询和设置的信息)。MIB在数据库中定义了被管理设备的一系列属性:
- 对象标识符(Object IDentifier,OID)
- 对象的状态
- 对象的访问权限
- 对象的数据类型等
- MIB给出了一个数据结构,包含了网络中所有可能的被管理对象的集合。因为数据结构与树相似,MIB又被称为对象命名树。
- MIB的定义与具体的网络管理协议无关。设备制造商可以在产品(如路由器)中包含SNMP代理软件,并保证在定义新的MIB项目后该软件仍遵守标准。用户可以使用同一网络管理客户软件来管理具有不同版本MIB的多个路由器。若一台路由器上不支持此MIB,那么就无法提供相应的功能。
- MIB可以分为公有MIB和私有MIB两种。
- 公有MIB:一般由RFC定义,主要用来对各种公有协议进行结构化设计和接口标准化处理。大多数的设备制造商都需要按照RFC的定义来提供SNMP接口。
- 私有MIB:是公有MIB的必要补充,当公司自行开发私有协议或者特有功能时,可以利用私有MIB来完善SNMP接口的管理功能,同时对第三方网管软件管理存在私有协议或特有功能的设备提供支持。如华为公司企业节点为:1.3.6.1.4.1.2011。
常见MIB节点:
用于查询或修改的节点:
用于告警通知的节点:
- MIB节点的最大访问权限表明网管能够通过该MIB节点对设备进行的操作:
- not-accessible:无法进行任何操作。
- read-only:可以读取信息。
- read-write:可以读取信息和修改配置。
- read-create:可以读取信息、修改配置、新增配置和删除配置。
- 设备在生成告警时,不仅会上报当前发生的告警类型,同时会绑定一些变量。比如当发送接口linkDown告警时,需要同时绑定接口索引,接口的当前配置状态等变量。
2.2.3SNMP管理模型
- 查询/修改操作:NMS作为管理者,向代理进程发送SNMP请求报文。代理进程通过设备端的MIB找到所要查询或修改的信息,向NMS发送SNMP响应报文。
- 告警操作:设备端的模块由于达到模块定义的告警触发条件,通过代理进程向NMS发送消息,告知设备侧出现的情况,这样便于网络管理人员及时对网络中出现的情况进行处理。
2.2.4SNMP版本
SNMPv1:网管端工作站上的NMS与被管理设备上的Agent之间,通过交互SNMPv1报文,可以实现网管端对被管理设备的管理。SNMPv1基本上没有什么安全性可言。
SNMPv2c在继承SNMPv1的基础上,其性能、安全性、机密性等方面都有了大的改进。
SNMPv3是在SNMPv2基础之上增加、完善了安全和管理机制。SNMPv3体系结构体现了模块化的设计思想,使管理者可以方便灵活地实现功能的增加和修改。SNMPv3的主要特点在于适应性强,可适用于多种操作环境,它不仅可以管理最简单的网络,实现基本的管理功能,也可以提供强大的网络管理功能,满足复杂网络的管理需求。
2.2.4.1SNMPv1
- SNMPv1定义了5种协议操作:
- Get-Request:NMS从被管理设备的代理进程的MIB中提取一个或多个参数值。
- Get-Next-Request:NMS从代理进程的MIB中按照字典式排序提取下一个参数值。
- Set-Request:NMS设置代理进程MIB中的一个或多个参数值。
- Response:代理进程返回一个或多个参数值。它是前三种操作的响应操作。
- Trap:代理进程主动向NMS发送报文,告知设备上发生的紧急或重要事件。
2.2.4.2SNMPv2c
- SNMPv2c新增了2种协议操作:
- GetBulk:相当于连续执行多次GetNext操作。在NMS上可以设置被管理设备在一次GetBulk报文交互时,执行GetNext操作的次数。
- Inform:被管理设备向NMS主动发送告警。与Trap告警不同的是,被管理设备发送Inform告警后,需要NMS进行接收确认。如果被管理设备没有收到确认信息则会将告警暂时保存在Inform缓存中,并且会重复发送该告警,直到NMS确认收到了该告警或者发送次数已经达到了最大重传次数。
2.2.4.3SNMPv3
- SNMPv3与SNMPv1和SNMPv2c的工作机制基本一致但添加了报头数据和安全参数。
- SNMPv3报文具有身份验证和加密处理的功能。
- SNMPv3适用于各种规模的网络,安全性极高。
- SNMPv3增加了身份验证和加密处理的功能。
- 身份验证:身份验证是指代理进程(NMS)接收到信息时首先必须确认信息是否来自有权限的NMS(代理进程)并且信息在传输过程中未被改变。
- 加密处理:SNMPv3报文中添加了报头数据和安全参数字段。比如当管理进程发出SNMPv3版本的Get-Request报文时可以携带用户名、密钥、加密参数等安全参数,代理进程回复Response报文时也采用加密的Response报文。这种安全加密机制特别适用于管理进程和代理进程之间需要经过公网传输数据的场景。
2.2.5SNMP配置
2.2.5.1基本命令
1.使能SNMP代理功能
[Huawei] snmp-agent
2.配置SNMP的版本
[Huawei] snmp-agent sys-info version [v1 | v2c | v3]
用户可以根据自己的需求配置对应的SNMP版本,但设备侧使用的协议版本必须与网管侧一致。
3.创建或者更新MIB视图的信息
[Huawei] snmp-agent mib-view view-name { exclude | include } subtree-name [mask mask]
4.增加一个新的SNMP组,将该组用户映射到SNMP视图
[Huawei] snmp-agent group v3 group-name { authentication | noauth | privacy } [ read-view view-name | write-view view-name | notify-view view-name ]
该命令用于SNMPv3版本中创建SNMP组,指定认证加密方式、只读视图、读写视图、通知视图。是安全性需求较高的网管网络中的必需指令。
5.为一个SNMP组添加一个新用户
[Huawei] snmp-agent usm-user v3 user-name group group-name
6.配置SNMPv3用户认证密码
[Huawei] snmp-agent usm-user v3 user-name authentication-mode { md5 | sha | sha2-256 }
7.配置SNMPv3用户加密密码
[Huawei] snmp-agent usm-user v3 user-name privacy-mode { aes128 | des56 }
8.配置设备发送Trap报文的参数信息
[Huawei] snmp-agent target-host trap-paramsname paramsname v3 securityname securityname { authentication | noauthnopriv | privacy }
9.配置Trap报文的目的主机
[Huawei] snmp-agent target-host trap-hostname hostname address ipv4-address trap-paramsname paramsname [ notify-filter-profile profile-name ]
10.打开设备的所有告警开关
[Huawei] snmp-agent trap enable
注意该命令只是打开设备发送Trap告警的功能,要与snmp-agent target-host协同使用,由snmp-agent target-host指定Trap告警发送给哪台设备。
11.配置发送告警的源接口
[Huawei] snmp-agent trap source interface-type interface-number
注意Trap告警无论从那个接口发出都必须有一个发送的源地址,因此源接口必须是已经配置了IP地址的接口。
2.2.5.2SNMP配置案例
snmp-agent
命令用来使能SNMP代理。执行
snmp-agent sys-info version[[v1|v2c|v3]*|all ]
命令可以配置SNMP系统信息,其中version[[v1|v2c|v3]*|all ]
指定设备运行的SNMP版本。缺省情况下,ARG3系列路由器支持SNMPv1,SNMPv2c,SNMPv3版本。执行
snmp-agent trap enable
命令,可以激活代理向NMS发送告警消息的功能,这一功能激活后,设备将向NMS上报任何异常事件。另外,还需要指定发送告警通告的接口,本示例中指定的是与NMS相连的GigabitEthernet 0/0/1接口。
配置验证:
- 执行
display snmp-agent sys-info
命令,可以查看系统维护的相关信息,包括设备的物理位置和SNMP版本。
3.基于华为iMaster NCE的网络管理
3.1网络产业的变革与挑战
- 伴随5G和云时代的到来,VR/AR、直播、无人驾驶等各类创新性业务大量涌现,整个ICT产业迸发出蓬勃生机。与此同时,整个网络的流量也呈现出爆炸式增长,华为GIV(Global Industry Vision,全球产业展望)预计,2025年新增的数据量将达到180 ZB。业务的动态复杂性也使得整个网络复杂度不断攀升。
- 整体来看,这些问题的源头都指向了现有的网络系统,只有通过构建自动化、智能化的以用户体验为中心的网络系统才能有效应对。
3.2华为iMaster NCE
华为iMaster NCE是一款集管理、控制、分析和AI智能功能于一体的网络自动化与智能化平台。
在管理与控制方面,iMaster NCE支持:
- CLI和SNMP等传统技术实现传统设备的管理和控制。
- NETCONF(基于YANG模型)协议实现对支持SDN的网络的管理和控制。
iMaster NCE通过SNMP、Telemetry等协议采集网络数据,结合AI算法进行大数据智能分析,通过Dashboard、报表等方式多维度呈现设备及网络状态、帮助运维人员快速发现设备及网络异常情况并处理,保障设备和网络的正常运作。
- iMaster NCE包含四大关键能力:
- 全生命周期自动化:以统一的资源建模和数据共享服务为基础,提供跨多网络技术域的全生命周期的自动化能力,实现设备即插即用、网络即换即通、业务自助服务、故障自愈和风险预警。
- 基于大数据和AI的智能闭环:基于意图、自动化、分析和智能四大子引擎构建完整的智能化闭环系统。基于Telemetry采集并汇聚海量的网络数据,iMaster NCE实现实时网络态势感知,通过统一的数据建模构建基于大数据的网络全局分析和洞察,并注入基于华为30多年电信领域经验积累的AI算法,面向用户意图进行自动化闭环的分析、预测和决策,提升客户满意度,持续提升网络的智能化水平。
- 开放可编程使能场景化APP生态:iMaster NCE对外提供可编程的集成开发环境Design Studio和开发者社区,实现南向与第三方网络控制器或网络设备对接,北向与云端AI训练平台和IT应用快速集成,并支持客户灵活选购华为原生APP,客户自行开发或寻求第三方系统集成商的支持进行APP的创新与开发。
- 大容量全云化平台:基于Cloud Native的云化架构,iMaster NCE支持在私有云、公有云中运行,也支持On-premise部署模式,具备大容量和弹性可伸缩能力,支持大规模系统容量和用户接入,让网络从数据分散、多级运维的离线模式转变为数据共享、流程打通的在线模式。
3.3NETCONF简介
- NETCONF(Network Configuration Protocol,网络配置协议),提供一套管理网络设备的机制。用户可以使用这套机制增加、修改、删除网络设备的配置,获取网络设备的配置和状态信息。
- NETCONF客户端(Client):Client 利用NETCONF协议对网络设备进行系统管理。一般由网络管理系统(NMS)作为NETCONF Client。Client向Server发送<rpc>请求,查询或修改一个或多个具体的参数值。Client可以接收Server发送的告警和事件,以获取被管理设备的状态。
- NETCONF服务器端(Server):Server用于维护被管理设备的信息数据并响应Client的请求,把管理数据汇报给Client。一般由网络设备(例如交换机、路由器等)作为NETCONF Server。Server收到Client 的请求后会进行数据解析,并在CMF(Configuration Manager Frame,配置管理框架)的帮助下处理请求,然后给Client 返回响应。当设备发生故障或其他事件时,Server利用Notification机制将设备的告警和事件通知给Client,向网络管理系统报告设备的当前状态变化。
- Client与Server之间建立基于SSH(Secure Shell,安全外壳)或TLS(Transport Layer Security,传输层安全性协议)等安全传输协议的连接,然后通过Hello报文交换双方支持的能力后建立NETCONF会话,Client即可与Server之间进行交互请求,网络设备必须至少支持一个NETCONF会话。Client从运行的Server上获取的信息包括配置数据和状态数据。
3.4NETCONF的优势
3.5一次典型NETCONF交互
- NETCONF使用SSH实现安全传输,使用RPC(Remote Procedure Call,远程过程调用)实现客户端和服务器端的通信。
3.6YANG语言概述
- YANG(Yet Another Next Generation)是一种数据建模语言,实现了NETCONF数据内容的标准化。
- YANG模型定义了数据的层次化结构,可用于基于NETCONF的操作。建模对象包括配置、状态数据、远程过程调用和通知。它可以对NETCONF客户端和服务器端之间发送的所有数据进行一个完整的描述。
- YANG起源于NETCONF,但不仅用于NETCONF。虽然统一了YANG建模语言,但是YANG文件没有统一。
- YANG文件可以简单分为三类:
- 厂家私有YANG文件
- IETF标准YANG
- OpenConfig YANG
- YANG模型的最终呈现是.yang为后缀的文件。
- YANG模型的特点:
- 基于层次化的树状结构建模。
- 数据模型以模块和子模块呈现。
- 可以和基于XML的语法的YIN(YANG Indepent Notation)模型无损转换。
- 定义内置的数据类型和允许可扩展类型。
3.7YANG与XML
- 在NETCONF客户端(例如网管平台/SDN控制器)加载YANG文件。
- 通过YANG文件将数据转换为XML格式的NETCONF消息发送到设备。
- 在NETCONF服务器(例如路由器/交换机等)加载YANG文件。
- 通过YANG文件将接收到的XML格式的NETCONF消息转换为数据并做后续处理。
3.8Telemetry基本概述
- Telemetry也作Network Telemetry,即网络遥测技术,是一项远程地从物理设备或虚拟设备上高速采集数据的技术。
- 设备通过推模式(Push Mode)周期性地主动向采集器上送设备的接口流量统计、CPU或内存数据等信息,相对传统拉模式(Pull Mode)的一问一答式交互,提供了更实时更高速的数据采集功能。
- 业界也有一种看法,将SNMP认为是传统的Telemetry技术,把当前Telemetry叫做Streaming Telemetry或Model-Driven Telemetry。
- Telemetry将上送数据打包一起发送,提升传输效率。
4.本章总结
随着网络技术不断发展,网络的管理与运维手段也越来越多,常见的有:
- CLI或Web方式
- SNMP协议方式
- 通过华为iMaster NCE“管-控-析”智能化运维平台方式