- A+
共计 4992 个字符,预计需要花费 13 分钟才能阅读完成。
前言:
随着网络技术的飞速发展,在网络不断普及的同时也给网络管理带来了一些问题,试想当网络到达一定规模的时候,对于运维人员来说,要想维护好网络,纯靠着命令行的方式,去连接网络设备,去检查和查看设备当前的状态,查看自己需要的信息,这些将变得繁琐而难以实现。
在这种背景下,SNMP(Simple Network Management Protocol)应运而生,通过“利用网络管理网络”的方式,SNMP 实现了对网络设备的高效和批量的管理;同时,SNMP 协议也屏蔽了不同产品之间的差异,实现了不同种类和厂商的网络设备之间的统一管理。
SNMP 结构:
SNMP 系统由网络管理系统(NMS)、代理进程(Agent)、管理信息库(MIB)等组成。NMS 作为整个网络的管理中心,负责对设备进行管理。在每个被管理设备中,包含着驻留在设备上的 Agent 进程、MIB 以及多个被管理对象。NMS 通过与运行在被管理设备上的 Agent 进行交互,Agent 通过对设备端的 MIB 进行操作,执行 NMS 的指令。这种交互使得网络管理员能够远程监控和管理设备的各种属性和状态。
NMS:
- NMS 在网络中扮演管理者角色,是一个采用 SNMP 协议对网络设备进行管理 / 监视的系统或是软件。
- NMS 可以向设备上的 Agent 发出请求,查询或修改一个或多个具体的参数值。
- NMS 可以接收设备上的 Agent 主动发送的 Trap 信息,以获知被管理设备当前的状态。
Agent:
- Agent 是被管理设备中的一个代理进程,用于维护被管理设备的信息数据并响应来自 NMS 的请求,把管理数据汇报给发送请求的 NMS。
- Agent 接收到 NMS 的请求信息后,通过 MIB 表完成相应指令后,并把操作结果响应给 NMS。
- 当设备发生故障或者其它事件时,设备会通过 Agent 主动发送信息给 NMS,向 NMS 报告设备当前的状态变化。
Managed object:
- Managed object 指被管理对象。每一个设备可能包含多个被管理对象,被管理对象可以是设备中的某个硬件,也可以是在硬件、软件(如路由选择协议)上配置的参数集合。
MIB:
- MIB 是一个数据库,指明了被管理设备所维护的变量(即能够被 Agent 查询和设置的信息)。MIB 在数据库中定义了被管理设备的一系列属性:对象的名称、对象的状态、对象的访问权限和对象的数据类型等。
- 通过 MIB,可以完成以下功能:
- Agent 通过查询 MIB,可以获知设备当前的状态信息。
- Agent 通过修改 MIB,可以设置设备的状态参数。
SNMP 版本:
SNMP 有三种版本:SNMPv1,SNMPv2c 和 SNMPv3。
- SNMPv1:SNMP 的第一个版本,它提供了最基本的网络设备监控和管理功能,包括获取设备的状态信息、配置设备参数和远程重启等。然而,SNMPv1 的安全性较差,因为它基于简单的团体名认证,,且返回报文的错误码也较少。
- SNMPv2c: 第二个版本 SNMPv2c 也采用了团体名认证并引入了 GetBulk 和 Inform 操作,在兼容 SNMPv1 的同时又扩充了 SNMPv1 的功能,支持更多的标准错误码信息,支持更多的数据类型。
- SNMPv3: 鉴于 SNMPv2c 在安全性方面没有得到改善,IETF 颁布了 SNMPv3 版本,它在继承了 SNMPv2c 的基础上,提供了更好的安全性和扩展性。支持加密和认证等功能,大大增强了网络管理的安全性,是迄今为止最安全的版本。
团体名的作用类似于密码,用来限制 NMS 对 Agent 的访问。如果 SNMP 报文携带的团体名没有得到 NMS/Agent 的认可,该报文将被丢弃。
SNMP 配置常用命令:
1. 启动 SNMP 代理
[Huawei] snmp-agent
// 通过执行这个命令,启动设备上的 SNMP 代理,允许网络管理系统通过 SNMP 协议进行设备监控和配置。
2. 配置 SNMP 团体名读写权限
[Huawei] snmp-agent community {read|write} [团体名]
//"snmp-agent community read nuouo" 配置了一个名为 "nuouo" 的 SNMP 团体名,该团体名具有只读权限。
3. 配置 SNMP 代理版本
[Huawei] snmp-agent sys-info version [版本]
//"snmp-agent sys-info version v2c" 配置 SNMP 版本为 v2c
4. 启用 SNMP trap 功能的
[Huawei] snmp-agent trap enable
// 用于启动 SNMP trap 消息功能
5. 配置 SNMP trap 消息发送位置
[Huawei] snmp-agent trap source [GigabitEthernet]
//"snmp-agent trap source g0/0/0" 配置设备的 SNMP trap 消息从 GigabitEthernet0/0/0 口发送
场景应用:
拓扑结构:
实验所需软件 – eNSP 1.3.00.100、SnmpB 0.8、VMware Workstation 17 Pro 17.0.0
实验需求:
- AR1 配置 SNMP 并采用 SNMP 版本 V2C
- 将读写的 Community(团体名)配置为“nuouorw”
- 将只读的 Community 配置为“nuouor”
- 启用 Trap 消息功能,使 Trap 消息被发送到主机的端口 G0/0/0
因为实验环境是用 eNSP 模拟搭建的,需要使用 Cloud 来连接真实设备端和 eNSP 仿真端, 这样 SnmpB 才能通过 SNMP 找到 AR1 设备。
- 一、对 Cloud 进行设置
为了使 Cloud 能成功让 AR1 和真实设备成功互通,需要对 Cloud1 进行简单的设置。
- 右击 Cloud1 选择设置来到 Cloud1 的设置窗口。
- 在端口创建目录下的绑定信息 选择 UDP 并点击增加,新增的 UDP 是用来连接 AR1 的。
- 再添加一个端口来连接真实设备(站长的系统是 Windows11),同样在绑定信息选项 选择 VMware Network….8(VMware 自动生成的虚拟网卡,需要提前安装好 VMware 才会有这个虚拟网卡)并增加,这个端口用来连接 Windows11。
- 在端口创建目录下的表格中选择 No.2 端口,继续在端口映射设置下的“出端口编号”选择 2 并勾选“双向通道”,点击增加使得可以双方可以交互数据。
- 用自动连接线把 Cloud1 和 AR1 连接起来,启用 AR1。
- 二、AR1 接口配置
- 配置 GigabitEthernet 0/0/0 端口 IP。
[AR1]dhcp enable
// 开启 DHCP 功能
[AR1]int GigabitEthernet 0/0/0
// 进入 G0/0/0 端口
[AR1-GigabitEthernet0/0/0] ip address dhcp-alloc
// 开启端口通过 DHCP 自动获取 IP 地址
[AR1-GigabitEthernet0/0/0] quit
因为 VMware 有 DHCP IP 地址下发功能,所以 G0/0/ 0 接口开启 DHCP 自动获取 IP 地址就可以自己获取到 IP 地址,不需要自己配置。
- 开启自动获取地址后,等待一会查询接口 IP 地址,确认成功获取 IP。
[AR1]display ip int brief
// 查询接口 IP 地址
Interface IP Address/Mask Physical Protocol
GigabitEthernet0/0/0 192.168.133.136/24 up up
GigabitEthernet0/0/1 unassigned down down
GigabitEthernet0/0/2 unassigned down down
NULL0 unassigned up up(s)
//GigabitEthernet0/0/ 0 接口已经获取到 IP 地址 192.168.133.136/24
- 测试可以连通 VMware 8 网卡
[AR1]ping 192.168.133.1
PING 192.168.133.1: 56 data bytes, press CTRL_C to break
Reply from 192.168.133.1: bytes=56 Sequence=1 ttl=128 time=10 ms
Reply from 192.168.133.1: bytes=56 Sequence=2 ttl=128 time=10 ms
Reply from 192.168.133.1: bytes=56 Sequence=3 ttl=128 time=20 ms
Reply from 192.168.133.1: bytes=56 Sequence=4 ttl=128 time=10 ms
Reply from 192.168.133.1: bytes=56 Sequence=5 ttl=128 time=10 ms
--- 192.168.133.1 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 10/12/20 ms
// 成功 ping 通 VMware 8 网卡
VMware 8 网卡的 IP 地址在 Cloud1 设置中查看,在端口创建的表格中有显示
- 三、SNMP 的配置
- 配置 SNMP 团体名和版本
[AR1]snmp-agent
// 开启 SNMP 代理
[AR1]snmp-agent sys-info version v2c
// 设置 SNMP 系统版本为 v2c
[AR1]snmp-agent community write nuouorw
// 设置团体名 nuouorw 权限为“读写”
[AR1]snmp-agent community read nuouor
// 设置团体名 nuouor 权限为“只读”
- 配置 trap 消息功能
[AR1]snmp-agent trap enable
// 启用 SNMP trap 功能
Info: All switches of SNMP trap/notification will be open. Continue? [Y/N]:y
// 确认是否要开启所有 SNMP trap 通知 回复 y 确认
[AR1]snmp-agent trap source GigabitEthernet 0/0/0
// 指定 trap 消息发送到 GigabitEthernet 0/0/0 接口
- 四、SnmpB 成功连接 AR1
- 打开 SnmpB 在 Remote SNMP Agent 选项卡中点击小扳手图标,创建新的代理。
- 在弹出的窗口中填入配置信息并选择 SNMP 版本,配置团体名。
- 在 MIB tree 项中右击选择 Expand 展开所有项,找到 system 项并右击 选择 Get Bulk 获取多个连续的数据项,在右边查询结果就能看到 AR1 的一些基本信息。
-----SNMP query started-----
1: sysDescr.0 Huawei AR2220 Huawei Versatile Routing Platform Software VRP (R) software,Version 5.130 (AR2220 V200R003C00) Copyright (C) 2011-2012 Huawei Technologies Co., Ltd
// 系统描述
2: sysObjectID.0 enterprises.2011.2.224.5
// 系统对象标识
3: sysUpTime.0 1:10:47.55
// 运行时间
4: sysContact.0 R&D Shenzhen, Huawei Technologies Co., Ltd.
// 联名信息
5: sysName.0 AR1
// 系统名称
6: sysLocation.0 Shenzhen China
7: sysServices.0 78
8: ifNumber.0 5
// 接口数量
9: ifIndex.1 1
10: ifIndex.2 2
-----SNMP query finished-----
Total # of Requests = 1
Total # of Objects = 10
- 在查询结果的第 5 项中可以看到系统名称是 AR1 结果无误,尝试更改为 newAR1。在 system 项的子项选择 sysName,右击 sysName 选择 set 操作,在弹出窗口 Value 输入框输入 newAR1 并确认。
- 来到 AR1 的命令行配置界面输入回车 发现名称成功更改为 newAR1。
<AR1> [ 回车 ]
<newAR1>
如果您在阅读本文时有任何问题或需要进一步的解释,请在评论区留言。我将很高兴为您提供帮助,并尽力解答您关于 SNMP 相关的疑问。您的意见和反馈对我来说非常重要,也能帮助其他读者更好地理解这个主题。期待与您互动并分享更多关于网络技术的知识。
- 我的微信
- 这是我的微信扫一扫
- 我的微信公众号
- 我的微信公众号扫一扫