65、网络管理技术全解析

网络管理技术全解析

1. 管理信息库(MIB)基础

1.1 MIB 表索引机制

在网络管理中,MIB 表是重要的数据组织形式。通过两个索引,可以选择表中的某一行,并了解特定接口上的特定地址。例如,使用主索引和“get next”操作,能读取给定接口上正在使用的每个地址。

1.2 管理对象的表示

管理信息结构(SMI)在RFC 2578中进行了规定。它描述了抽象语法标记一号(ASN.1)的一个子集,可用于定义MIB模块,并在管理请求中从一个节点传递到另一个节点时对MIB对象进行编码。ASN.1由开放标准组织(OSI)设计,提供了一种基于文本的宏语言,能以人类可读和机器可读的形式定义数据结构。同时,它还提供了基本编码规则(BER),用于在网络节点之间传输数据时对数据进行编码。不过,ASN.1处理复杂和嵌套数据结构的灵活性,使得BER规则对于MIB模块来说略显复杂。

1.3 SMI 定义的数据类型

SMI规定了11种基本数据类型,具体如下表所示:
| 数据类型 | 含义 |
| ---- | ---- |
| INTEGER | 有符号32位整数 |
| OCTET STRING | 一系列字节,每个字节大于等于0且小于等于255 |
| OBJECT IDENTIFIER | 可以用点分表示法显示的OID |
| Integer32 | 与INTEGER相同,但保证在二进制补码表示中永远不需要超过32位 |
| Unsigned32 | 无符号32位整数 |
| Counter32 | 32位整数,用于计数事件(如接收的数据包数量),值达到4,294,967,295时会回绕到0 |
| Gauge32 | 计数器,可以上下计数以记录某个对象的实例数量,与Counter32不同,它不能超过4,294,967,295,也不会回绕到零,同样不会低于零 |
| Counter64 | Counter32的64位版本,在计数非常快速的事物(如高容量链路上的字节数)时特别有用,SMI规定任何可能每小时回绕多次的计数器都必须使用Counter64 |
| TimeTicks | 无符号32位整数,以百分之一秒为单位计数,达到最大值后回绕到0 |
| Opaque | 任何任意ASN.1构造的OCTET STRING包装器 |
| IpAddress | 包含IPv4地址的4字节序列,此数据类型已弃用,新的MIB模块使用Unsigned32实现相同目的 |

这些基本数据类型构成了MIB模块中更复杂数据类型或文本约定的基础。例如,MPLS文本约定MIB模块将MplsBitRate定义为以千位每秒为单位的整数,并为零赋予了特殊含义:

MplsBitRate:: = TEXTUAL-CONVENTION 
DISPLAY-HINT “d” 
STATUS current 
DESCRIPTION 
“If the value of this object is greater than zero, 
then this represents the bandwidth of this MPLS 
interface (or Label Switched Path) in units of 
‘1000 bits per second.’ 
The value, when greater than zero, represents the 
bandwidth of this MPLS interface (rounded to the 
nearest 1000) in units of 1000 bits per second. 
If the bandwidth of the MPLS interface is between 
((n * 1000) – 500) and ((n * 1000)+ 499), the value 
of this object is n, such that n > 0. 
If the value of this object is 0 (zero), this 
means that the traffic over this MPLS interface is 
considered to be best effort.” 
SYNTAX— Unsigned32 (0|1..4294967295)

其他MIB模块可以导入这个文本约定,避免重新定义,同时受益于一致的比特率定义。此外,SMI还定义了一些重要的宏,用于嵌入有用信息(如对象的状态、描述和显示提示),并定义MIB对象和模块等常见概念。

2. 简单网络管理协议(SNMP)

2.1 SNMP 概述

当管理站和被管理设备对管理数据(即MIB对象)有了共同的认识后,就需要一种机制让管理站能够创建、写入、读取和删除这些对象,简单网络管理协议(SNMP)应运而生。SNMP是一种应用层协议,可以使用任何传输机制,但在实践中,最常使用UDP端口161,因为这是符合SNMP标准的强制要求。有时也会使用其他传输协议来尝试解决一些安全问题,当管理应用程序无法处理丢失的消息时,偶尔会选择TCP。

2.2 请求、响应和通知

SNMP是一种客户端 - 服务器协议。管理代理连接到被管理设备并发出请求,被管理设备返回响应。基本请求包括GET和SET,用于读取和写入由其OID标识的单个MIB对象,如果对象在表中,则还需要相应的索引值。索引对象具有读写保护,在GET请求中总是会提供索引,并在GET响应中返回,以提供读取请求的上下文,显然动态更改行的索引是不可取的。一些MIB模块还将其部分对象设置为只读,以便设备可以报告信息(如统计数据),而不会被外部组件修改。

除了这些限制,GET和SET操作相对简单。不过,逐个对象管理远程设备的配置效率极低,因此SNMP允许在单个请求中读取或写入单个MIB行中的多个对象,即单个GET或SET命令可以对单个行中的多个对象进行操作。此外,GET - BULK命令允许管理站从表中读取多行,提高了读取整个表时的检索时间。GET - NEXT请求允许管理代理“遍历”OID树,查找MIB行中的下一个对象,或者更常见的是逐行导航MIB表(表可能稀疏填充)。

行的创建和删除是特殊功能,使用SET命令处理,而不是通过单独的特殊消息。MIB行包含一个特殊的可写对象,即行状态,用于控制行的创建和删除。管理站首次创建行时,会将值“create”写入行状态对象,如果行已经存在,被管理设备将使操作失败。如果行创建成功,管理站会继续写入其他对象,当行准备好使用时,将行状态设置为活动状态。此时,配置信息可用,设备或组件可以激活。管理站可以随时将行状态写为“not ready”,使行回到创建时的状态。要删除行,将行状态设置为“deleted”,被管理设备必须停止相应的进程或设备,并删除相应的信息。

最后,被管理设备可以发出TRAP(有时称为通知)消息,以报告特定事件(如阈值跨越)。

2.3 SNMP 版本和安全

MIB数据使用国际标准ISO 8825中ASN.1规范的基本编码规则(BER)进行编码,这是一种在网络上表示数据和数据类型的紧凑方式。为了保持一致性,BER也用于编码SNMP消息,并且可以使用ASN.1文本表示法指定消息。

SNMP消息由SNMP报头和SNMP协议数据单元(PDU)组成。报头较短,包含协议版本号,PDU包含请求和任何数据。SNMP有三个版本:
- SNMPv1 :于20世纪80年代末推出,在很多方面过于简单,请求功能不够强大,使用有限的SMIv1构建PDU。
- SNMPv2 :IETF在多次尝试后推出,在RFC 1901中作为实验性协议记录。同时开始开发SMIv2,最终记录在RFC 2578中,SNMPv2消息只能携带使用SMIv2构建的PDU。
- SNMPv3 :SNMPv1和SNMPv2存在严重的安全问题,即使在通过IPsec等方式保护数据交换的网络中,也无法控制谁可以执行SNMP操作并访问MIB模块中的对象。SNMPv3引入了应用层加密认证,允许对单个用户进行认证。它与SNMPv2的区别仅在于消息报头,PDU相同,都使用SMIv2。

IETF强烈建议避免部署SNMPv1和SNMPv2,而使用SNMPv3,并实施和启用加密认证,以便网络运营商管理对每个设备上管理信息的合法访问。

2.4 选择 SNMP 版本

虽然IETF推荐使用SNMPv3,但实际上,除了少数较旧的设备外,SNMPv1已基本弃用,而SNMPv2得到了广泛部署,仍有新设备仅支持SNMPv2。因此,在可预见的未来,管理站需要同时支持SNMPv2和SNMPv3。不过,所有新设备都应支持SNMPv3,并且可以合理假设管理软件将支持SNMPv3,届时设备可能不再需要支持SNMPv2。

下面是一个简单的mermaid流程图,展示了SNMP操作的基本流程:

graph LR
    A[管理站] -->|请求| B[被管理设备]
    B -->|响应| A
    subgraph 请求类型
        C[GET]
        D[SET]
        E[GET - BULK]
        F[GET - NEXT]
    end
    subgraph 特殊操作
        G[行创建]
        H[行删除]
    end
    I[TRAP] --> A

3. 可扩展标记语言(XML)

3.1 XML 概述

可扩展标记语言(XML)是国际标准ISO 8879中规定的标准通用标记语言(SGML)的子集。XML定义了称为XML文档的数据对象,以及应用程序访问这些对象的规则。XML文档看起来很像超文本标记语言(HTML)文档(如网页),但XML文档规范对对象每个字段的数据类型有严格定义,这使得XML文档适用于数据库格式,而HTML文档更适合文本管理。SGML中的呈现指令(如“将文本居中并以Arial 12点字体打印”)与XML无关,但在HTML中非常重要。

实际上,XML为用于传输和更新数据对象的命令提供了编码规则。这些命令的语法可以精确指定,并可以由基于文本的简单应用程序自动解析。与HTML一样,XML使用文本标签来分隔数据,但与HTML不同的是,标签的语义不是全局的,而是特定于给定的XML文档。数据本身以字节字符串的形式呈现,每个字符串由一对标签括起来,称为单个XML元素。ISO 8879定义了标签如何包围XML元素以及标签的含义(即标签如何使接收应用程序对XML元素中的数据进行操作)。

XML文档中的标签集合称为标记数据,它不仅提供了对单个数据元素的解释说明,还定义了元素之间的关联,并描述了整个文档的目的和适用性。XML由万维网联盟(W3C)基于SGML开发,SGML在20世纪80年代中期标准化,XML的工作始于1996年,于1998年达到第一个标准(或建议)。因此,XML既不是通信协议,也不限于在互联网中使用,但它作为互联网设备的配置和管理工具的适用性和日益普及,值得进一步研究。

3.2 可扩展性和适用领域

XML的核心特性是其可扩展性。可以根据特定文档的需求定义XML元素。网络管理是XML的应用领域之一,还可以为某种类型的网络元素(如路由器)甚至特定型号的网络元素定义子领域。

需要注意的是,定义新的XML元素与在XML中定义新的标签或语法不同。标签和语法是标准化的,这意味着任何正确实现的XML引擎都可以成功解析所有XML文档,无论文档适用于哪个领域。然而,XML元素的语义可能仅在其适用领域内被理解。

特定领域使用的文档将使用一组已知的XML元素、标签和标记数据。了解这些信息对实现者很有用,因为它决定了他们构建和解析XML以及解释XML元素所需编写的代码量。特定领域的XML文档在文档类型定义(DTD)中描述,反之,文档通过指明DTD来标识其所属领域。需要注意的是,DTD可以嵌套为其他DTD的子集,因此符合子DTD的文档也将符合父DTD。

3.3 XML 远程过程调用

XML是一种数据编码技术,可用于表示在单个节点上的组件之间或跨网络传输的数据和数据请求。它不定义应传输什么数据(这是应用程序开发人员的责任,任何数据,包括ASN.1编码的SNMP数据,都可以封装在XML中),也不定义如何交换XML文档。

XML文档可以使用任何数据或文件传输过程进行传输,包括UDP、TCP、FTP和HTTP等。早期使用XML时,采用了基于HTTP的远程过程调用(RPC)机制,这是合理的,因为XML与HTML密切相关,而HTTP就是为传输HTML而设计的,并且HTTP包含基本的get和put操作。

XML - RPC仍然在使用并取得了成功,但一些人认为它的开销太大。因此,人们希望采用更面向对象的方法,于是设计了简单对象访问协议(SOAP)。

3.4 简单对象访问协议(SOAP)

SOAP是一种轻量级协议,用于在底层传输协议上交换XML文档。它通过定义如何在参与网络元素之间发送的消息中表示远程过程调用和响应,支持基于Web环境中分布式对象的事务处理。

SOAP消息使用XML编码,人类可读性较好。整个消息包含在一个信封中,包括一个可选的头部和一个必需的主体。头部包含有关消息的控制信息(如优先级和目的地),在大多数情况下,默认行为可以应用,假定目的地是消息的接收者,因此头部并非总是必需的。不过,SOAP允许消息中继,即从节点A到节点C的SOAP消息可以通过从节点A到节点B的传输连接发送,并由节点B上的SOAP组件中继,然后通过连接发送到节点C,这要求头部包含消息的目标节点。SOAP主体包含正在传输的XML操作和数据,例如:

<env:Envelope xmlns:env= “http://www.w3.org/2003/05/soap-envelope”> 
<env:Header> 
<t:transaction xmlns:n = “http://elsevier.com/exmaple-msg” 
env:mustUnderstand = “true”> 
<n:priority>Low</n:priority> 
<n:expires>2005–10–15T23:59:59–05:00</n:expires> 
display 
</t:transaction> 
</env:Header> 
<env:Body> 
<dsp:text>This message is displayed.</dsp:text> 
</env:Body> 
</env:Envelope>

SOAP信封也可以包含SOAP错误构造,用于报告错误,包含错误代码、描述错误的文本字符串和报告节点的标识符等必需组件,例如:

<env:Envelope xmlns:env = “http://www.w3.org/2003/05/soap-envelope” 
xmlns:m=“http://www.example.org/timeouts” 
xmlns:xml= “http://www.w3.org/XML/1998/namespace”> 
<env:Body> 
<env:Fault> 
<env:Code> 
<env:Value>env:Sender</env:Value> 
<env:Subcode> 
<env:Value>m:MessageTimeout</env:Value> 
</env:Subcode> 
</env:Code> 
<env:Reason> 
<env:Text xml:lang = “en”>Sender Timeout</env:Text> 
</env:Reason> 
<env:Detail> 
<m:MaxTime>P5M</m:MaxTime> 
</env:Detail> 
</env:Fault> 
</env:Body> 
</env:Envelope>

综上所述,网络管理涉及MIB、SNMP、XML等多种技术,每种技术都有其独特的特点和应用场景。在实际应用中,需要根据具体需求选择合适的技术,以实现高效、安全的网络管理。

4. 技术对比与综合应用

4.1 各技术特点总结

为了更清晰地理解MIB、SNMP和XML在网络管理中的作用,下面通过表格对它们的特点进行总结:
| 技术名称 | 主要功能 | 优点 | 缺点 |
| ---- | ---- | ---- | ---- |
| MIB | 定义管理对象,为网络管理提供数据模型 | 标准化的数据表示,便于不同设备间的数据交互 | 数据结构相对固定,扩展灵活性有限 |
| SNMP | 实现管理站与被管理设备间的数据读写和配置管理 | 简单易用,支持多种操作,可批量处理对象 | 早期版本存在安全隐患,管理大规模网络时效率可能受影响 |
| XML | 用于数据编码和传输,支持不同应用间的数据交换 | 可扩展性强,数据类型定义严格,适合数据库格式 | 解析和处理相对复杂,传输开销可能较大 |

4.2 综合应用场景分析

在实际的网络管理中,这些技术通常会结合使用。以下是一个常见的网络管理场景分析:
1. 设备监控与数据采集 :使用SNMP的GET请求从被管理设备的MIB中读取相关数据,如设备的接口状态、流量统计等信息。管理站可以定期发送GET - BULK请求,一次性获取多个对象的数据,提高数据采集效率。
2. 设备配置管理 :通过SNMP的SET命令,管理站可以修改被管理设备的MIB对象值,实现设备的配置更改。例如,调整设备的接口参数、启用或禁用某些功能等。
3. 数据存储与共享 :采集到的MIB数据可以使用XML进行编码和封装,便于存储到数据库中,也可以在不同的管理系统之间进行共享和交换。例如,将设备的性能数据以XML格式存储,方便后续的数据分析和报表生成。
4. 远程过程调用 :XML - RPC或SOAP可以用于实现管理站与被管理设备之间的远程过程调用,进一步扩展网络管理的功能。例如,通过SOAP消息调用设备的特定操作,如重启设备、执行诊断程序等。

4.3 操作步骤示例

以下是一个简单的网络管理操作示例,展示了如何结合使用SNMP和XML进行设备数据采集和存储:
1. 使用SNMP采集数据
- 管理站通过SNMP的GET请求,指定要获取的MIB对象的OID和索引值,向被管理设备发送请求。
- 被管理设备接收到请求后,根据OID和索引值查找对应的MIB对象,并将其值返回给管理站。
- 管理站接收响应,提取所需的数据。
2. 使用XML封装数据
- 管理站将采集到的数据按照XML的格式进行封装,创建一个XML文档。
- 为XML文档添加必要的标签和属性,以描述数据的含义和来源。
3. 存储XML数据
- 将生成的XML文档存储到数据库中,可以使用SQL语句将XML数据插入到相应的表中。
- 也可以将XML文档发送到其他管理系统进行共享和处理。

下面是一个简单的mermaid流程图,展示了上述操作的流程:

graph LR
    A[管理站] -->|SNMP GET请求| B[被管理设备]
    B -->|SNMP响应| A
    A -->|封装为XML| C[XML文档]
    C -->|存储到数据库| D[数据库]
    C -->|共享给其他系统| E[其他管理系统]

5. 技术发展趋势

5.1 安全性能提升

随着网络安全问题日益突出,网络管理技术对安全性能的要求也越来越高。SNMPv3引入的加密认证机制将得到更广泛的应用,同时,可能会有更多的安全技术被集成到网络管理协议中,以确保管理数据的保密性、完整性和可用性。

5.2 智能化管理

未来的网络管理将朝着智能化方向发展。借助人工智能和机器学习技术,管理系统可以自动分析和处理大量的网络数据,预测网络故障和性能问题,并提供相应的解决方案。例如,通过对设备的历史数据进行学习,预测设备的故障时间,提前进行维护和更换。

5.3 与云计算和物联网融合

随着云计算和物联网的快速发展,网络管理技术需要与这些新兴技术进行融合。在云计算环境中,需要对虚拟资源进行有效的管理和监控;在物联网场景下,需要管理大量的物联网设备,确保它们的正常运行。XML和SOAP等技术将在数据交换和远程管理方面发挥重要作用。

5.4 标准化和互操作性增强

为了实现不同厂商设备和管理系统之间的互操作性,网络管理技术的标准化将进一步加强。更多的国际标准和规范将被制定和推广,使得不同系统之间能够更加方便地进行数据交换和协同工作。

6. 总结

网络管理是一个复杂而重要的领域,涉及到MIB、SNMP、XML等多种技术。这些技术各自具有独特的特点和优势,在实际应用中相互配合,共同实现了网络设备的监控、配置和管理。

在选择和应用这些技术时,需要根据具体的网络环境和管理需求进行综合考虑。同时,随着网络技术的不断发展,网络管理技术也在不断演进和创新,我们需要密切关注技术的发展趋势,及时采用新的技术和方法,以提高网络管理的效率和质量。

通过对这些技术的深入理解和应用,我们可以更好地管理和维护网络,确保网络的稳定运行,为企业和用户提供更加可靠的网络服务。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值