数据通信18-网络管理与运维

一 网络管理与运维基本概念

什么是网络管理?

网络管理是通过对网络中设备的管理,保证设备工作正常,使通信网络正常地运行,以提供高效、可靠和安全的通信服务,是通信网络的重要组成部分。

网络管理(Network Management)分为两类:

第一类是对网络应用程序、用户账号(例如文件的使用)和存取权限(许可)的管理。它们都是与软件有关的网络管理问题,这里不作深入解释。

第二类是对构成网络的硬件即网元的管理,包括防火墙、交换机、路由器等等。本课程主要针对此类网络管理。

一般企业网络中会有专门的部门或者人员负责网络的管理与运维。

注:

NE(Network Element,网元):即网络单元,包含硬件设备及运行其上的软件。通常一个网络单元至少具有一块主控板,负责整个网络单元的管理和监控。主机软件运行在主控板上。

通常网络运维的操作都属于网络管理的范畴,本章后续所指的网络管理指对网络进行管理和维护。

网络管理基本功能

OSI定义了网络管理的五大功能模型:

配置管理(Configuration Management):配置管理负责监控网络的配置信息,使网络管理人员可以生成、查询和修改硬件、软件的运行参数和条件,并可以进行相关业务的配置。

性能管理(Performance Management):性能管理以网络性能为准则,保证在使用较少网络资源和具有较小时延的前提下,网络能够提供可靠、连续的通信能力。

故障管理(Fault Management):故障管理的主要目标是确保网络始终可用,并在发生故障时尽快将其修复。

安全管理(Security Management):安全管理可以保护网络和系统免受未经授权的访问和安全攻击。

计费管理(Accounting Management):记录用户使用网络资源的情况并核收费用,同时也统计网络的利用率。

网络管理方式

传统网络管理

基于iMaster NCE的网络管理

传统网络管理:

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监控网络流量。

传统网络管理

通过CLI或Web进行管理

当网络规模较小时,CLI和Web方式是常见的网络管理方式。

网络管理员可以通过HTTPS、Telnet、Console等方式登录设备后,对设备逐一进行管理。

这种管理方式不需要在网络中安装任何程序或部署服务器,成本较低。

网络管理员自身需要熟练掌握网络理论知识、各设备厂商网络配置命令。

当网络规模较大,网络拓扑较为复杂时,这种方式的局限性较大。

随着网络技术的飞速发展,在网络不断普及地同时也给网络管理带来了一些问题:

网络设备数量成几何级增长,使得网络管理员对设备的管理变得越来越困难;同时,网络作为一个复杂的分布式系统,其覆盖地域不断扩大,也使得对这些设备进行实时监控和故障排查变得极为困难。

网络设备种类多种多样,不同设备厂商提供的管理接口(如命令行接口)各不相同,这使得网络管理变得愈发复杂。

基于SNMP的集中式管理

SNMP(Simple Network Management Protocol,简单网络管理协议)是广泛用于TCP/IP网络的网络管理标准协议,提供了一种通过运行网络管理软件的中心计算机,即NMS(Network Management Station,网络管理工作站)来管理网元的方法。

网络管理员可以利用NMS在网络上的任意节点完成信息查询、信息修改和故障排查等工作,提升工作效率。

屏蔽了不同产品之间的差异,实现了不同种类和厂商的网络设备之间的统一管理。

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,基于视图的访问控制模型)功能。

SNMP典型架构

在基于SNMP进行管理的网络中,NMS是整个网络的网管中心,在它之上运行管理进程。每个被管理设备需要运行代理(Agent)进程。管理进程和代理进程利用SNMP报文进行通信。

NMS是一个采用SNMP协议对网络设备进行管理/监控的系统,运行在NMS服务器上。

被管理设备是网络中接受NMS管理的设备。

代理进程运行于被管理设备上,用于维护被管理设备的信息数据并响应来自NMS的请求,把管理数据汇报给发送请求的NMS。

NMS通常是一个独立的设备,运行网络管理应用程序。网络管理应用程序至少能够提供一个人机交互界面,网络管理员通过人机交互界面完成绝大多数网络管理工作。比较常见的人机交互方式为通过Web页面进行交互,即网络管理员通过带显示器的终端,通过HTTP/HTTPS访问NMS提供的Web页面。

SNMP的信息交互

NMS和被管理设备的信息交互分为两种:

NMS通过SNMP协议给被管理设备发送修改配置信息请求或查询配置信息请求。被管理设备上运行的代理进程根据NMS的请求消息做出响应。

被管理设备可以主动向NMS上报告警信息(Trap)以便网络管理员及时发现故障。

被管理对象(Managed object):每一个设备可能包含多个被管理对象,被管理对象可以是设备中的某个硬件,也可以是在硬件、软件(如路由选择协议)上配置的参数集合。

SNMP规定通过MIB(Management Information Base,管理信息库)去描述可管理实体的一组对象。

MIB

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告警时,需要同时绑定接口索引,接口的当前配置状态等变量。

SNMP管理模型

查询/修改操作:

NMS作为管理者,向代理进程发送SNMP请求报文。

代理进程通过设备端的MIB找到所要查询或修改的信息,向NMS发送SNMP响应报文。

告警操作:

设备端的模块由于达到模块定义的告警触发条件,通过代理进程向NMS发送消息,告知设备侧出现的情况,这样便于网络管理人员及时对网络中出现的情况进行处理。

SNMPv1

SNMPv1定义了5种协议操作:

Get-Request:NMS从被管理设备的代理进程的MIB中提取一个或多个参数值。

Get-Next-Request:NMS从代理进程的MIB中按照字典式排序提取下一个参数值。

Set-Request:NMS设置代理进程MIB中的一个或多个参数值。

Response:代理进程返回一个或多个参数值。它是前三种操作的响应操作。

Trap:代理进程主动向NMS发送报文,告知设备上发生的紧急或重要事件。

SNMPv2c

SNMPv2c新增了2种协议操作:

GetBulk:相当于连续执行多次GetNext操作。在NMS上可以设置被管理设备在一次GetBulk报文交互时,执行GetNext操作的次数。

Inform:被管理设备向NMS主动发送告警。与Trap告警不同的是,被管理设备发送Inform告警后,需要NMS进行接收确认。如果被管理设备没有收到确认信息则会将告警暂时保存在Inform缓存中,并且会重复发送该告警,直到NMS确认收到了该告警或者发送次数已经达到了最大重传次数。

SNMPv3

SNMPv3与SNMPv1和SNMPv2c的工作机制基本一致但添加了报头数据和安全参数。

SNMPv3报文具有身份验证和加密处理的功能。

SNMPv3适用于各种规模的网络,安全性极高。

SNMPv3增加了身份验证和加密处理的功能。

身份验证:身份验证是指代理进程(NMS)接收到信息时首先必须确认信息是否来自有权限的NMS(代理进程)并且信息在传输过程中未被改变。

加密处理:SNMPv3报文中添加了报头数据和安全参数字段。比如当管理进程发出SNMPv3版本的Get-Request报文时可以携带用户名、密钥、加密参数等安全参数,代理进程回复Response报文时也采用加密的Response报文。这种安全加密机制特别适用于管理进程和代理进程之间需要经过公网传输数据的场景。

SNMP小结

SNMP的特点如下:

简单:SNMP采用轮询机制,提供基本的功能集,适合快速、低价格的场景使用,而且SNMP以UDP报文为承载,因而得到绝大多数设备的支持。

强大:SNMP的目标是保证管理信息在任意两点传送,便于管理员在网络上的任何节点检索信息,进行故障排查。

SNMPv1版本适用于小型网络。组网简单、安全性要求不高或网络环境比较安全且比较稳定的网络,比如校园网,小型企业网。

SNMPv2c版本适用于大中型网络。安全性要求不高或者网络环境比较安全,但业务比较繁忙,有可能发生流量拥塞的网络。

SNMPv3版本作为推荐版本,适用于各种规模的网络。尤其是对安全性要求较高,只有合法的管理员才能对网络设备进行管理的网络。

SNMP基本配置 (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

  1. 增加一个新的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组,指定认证加密方式、只读视图、读写视图、通知视图。是安全性需求较高的网管网络中的必需指令。

  1. 为一个SNMP组添加一个新用户

Huawei snmp-agent usm-user v3 user-name group group-name

  1. 配置SNMPv3用户认证密码

Huawei snmp-agent usm-user v3 user-name authentication-mode { md5 | sha | sha2-256 }

  1. 配置SNMPv3用户加密密码

Huawei snmp-agent usm-user v3 user-name privacy-mode { aes128 | des56 }

  1. 配置设备发送Trap报文的参数信息

Huawei snmp-agent target-host trap-paramsname paramsname v3 securityname securityname { authentication | noauthnopriv | privacy }

  1. 配置Trap报文的目的主机

Huawei\] snmp-agent target-host trap-hostname hostname address ipv4-address trap-paramsname paramsname \[ notify-filter-profile profile-name

  1. 打开设备的所有告警开关

Huawei snmp-agent trap enable

注意该命令只是打开设备发送Trap告警的功能,要与snmp-agent target-host协同使用,由snmp-agent target-host指定Trap告警发送给哪台设备。

  1. 配置发送告警的源接口。

Huawei snmp-agent trap source interface-type interface-number

注意Trap告警无论从那个接口发出都必须有一个发送的源地址,因此源接口必须是已经配置了IP地址的接口。

SNMP配置举例(网络设备侧)

上述路由器R1上使能SNMP功能,配置版本为v3。

配置SNMPv3组名为test,加密认证方式为privacy。

创建SNMPv3用户,名为R1同时配置认证和加密密码为HCIA-Datacom123。

创建名为param的Trap参数信息,securityname为sec

设置SNMP告警主机地址为192.168.1.10。

打开告警开关,设置发送告警的源接口为GE0/0/1。

R1配置如下:

R1snmp-agent

R1snmp-agent sys-info version v3

R1snmp-agent group v3 test privacy

R1snmp-agent usm-user v3 R1 test authentication-mode md5 HCIA@Datacom123 privacy-mode aes128 HCIA-Datacom123

R1snmp-agent target-host trap-paramsname param v3 securityname sec privacy

R1snmp-agent target-host trap-hostname nms address 192.168.1.10 trap-paramsname param

R1snmp-agent trap source GigabitEthernet 0/0/1

R1snmp-agent trap enable

Info: All switches of SNMP trap/notification will be open. Continue? Y/N:y

基于华为iMaster NCE的网络管理

网络产业的变革与挑战

伴随5G和云时代的到来,VR/AR、直播、无人驾驶等各类创新性业务大量涌现,整个ICT产业迸发出蓬勃生机。与此同时,整个网络的流量也呈现出爆炸式增长,华为GIV(Global Industry Vision,全球产业展望)预计,2025年新增的数据量将达到180 ZB。业务的动态复杂性也使得整个网络复杂度不断攀升。

整体来看,这些问题的源头都指向了现有的网络系统,只有通过构建自动化、智能化的以用户体验为中心的网络系统才能有效应对。

泽字节(Zettabyte,ZB),1 ZB=1012

华为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部署模式,具备大容量和弹性可伸缩能力,支持大规模系统容量和用户接入,让网络从数据分散、多级运维的离线模式转变为数据共享、流程打通的在线模式。

NETCONF简介

NETCONF(Network Configuration Protocol,网络配置协议),提供一套管理网络设备的机制。用户可以使用这套机制增加、修改、删除网络设备的配置,获取网络设备的配置和状态信息。

NETCONF客户端(Client):Client 利用NETCONF协议对网络设备进行系统管理。一般由网络管理系统(NMS)作为NETCONF Client。Client向Server发送请求,查询或修改一个或多个具体的参数值。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上获取的信息包括配置数据和状态数据。

NETCONF的优势

一次典型NETCONF交互

NETCONF使用SSH实现安全传输,使用RPC(Remote Procedure Call,远程过程调用)实现客户端和服务器端的通信。

YANG语言概述

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)模型无损转换。

定义内置的数据类型和允许可扩展类型。

YANG与XML

在NETCONF客户端(例如网管平台/SDN控制器)加载YANG文件。

通过YANG文件将数据转换为XML格式的NETCONF消息发送到设备。

在NETCONF服务器(例如路由器/交换机等)加载YANG文件。

通过YANG文件将接收到的XML格式的NETCONF消息转换为数据并做后续处理。

Telemetry基本概述

Telemetry也作Network Telemetry,即网络遥测技术,是一项远程地从物理设备或虚拟设备上高速采集数据的技术。

设备通过推模式(Push Mode)周期性地主动向采集器上送设备的接口流量统计、CPU或内存数据等信息,相对传统拉模式(Pull Mode)的一问一答式交互,提供了更实时更高速的数据采集功能。

业界也有一种看法,将SNMP认为是传统的Telemetry技术,把当前Telemetry叫做Streaming Telemetry或Model-Driven Telemetry。

Telemetry将上送数据打包一起发送,提升传输效率。

相关推荐
天诰1 小时前
SA-K-11 检索会消失吗与四个未解问题
java·服务器·人工智能·python·机器学习·ai编程
分布式存储与RustFS2 小时前
镜像仓库的层别堆本地盘:用 RustFS 给 Docker Registry 当 S3 后端
运维·云原生·开源·对象存储·分布式存储·s3·性能基准
陈希1233 小时前
Linux 防火墙配置实战:firewalld、iptables 与云安全组
linux·运维·服务器
女神下凡4 小时前
芯参谋(95):嵌入式文件系统_开发指南
linux·服务器·arm开发·驱动开发·设计规范
@兽血沸腾4 小时前
Windows系统安装Jenkins部署应用至远程Windows服务器操作指南
运维·服务器·jenkins
承渊政道7 小时前
Linux网络学习【Reactor反应堆模式】
linux·网络·学习·ubuntu·reactor
讯捷蓝达9 小时前
戴尔R720xd服务器卡死在 “Configuring Memory...Done“,换了内存还是卡?问题根本不在内存
运维·服务器
数字新视界12 小时前
动环监控信创适配在智能机房管理中的应用价值与未来展望
大数据·服务器·数据库·动环监控系统·动力与环境监控系统
爱和冰阔落12 小时前
【Linux网络】TCP 服务器如何并发处理多个客户端?从 fork、僵尸进程到双重 fork
linux·运维·服务器·网络
lisanmengmeng13 小时前
alertmanger 标签 rules 打上分组标签
linux·运维·服务器