SNMP

网络管理有五大功能域:故障管理,配置管理,计费管理,性能管理和安全管理。(助记:安配能计障)

网络管理协议的五大标准:

  • ISO定制:CMIS/CMIP公共管理信息服务规范。
  • 基于TCP/IP:简单网络管理协议,SNMPv1,SNMPv2c,SNMPv3。
  • 基于局域网:远程监控网络RMON-1和RMON-2。
  • IEEE定制:基于物理层和数据链路层,CMOL。
  • ITU-T:电信网络管理标准TMN。

三个版本

SNMPv1:1990年

  • ①SNMP协议的最初版本,容易实现且成本低。
  • ②缺少大量读取数据的能力,没有足够的安全机制。
  • ③适合规模较小,设备较少,安全性要求不高或本身就比较安全的网络,如校园网、小型企业网等。

SNMPv2c:1996年

  • ①扩充SNMPv 1的功能,增加GetBulk 和 inform操作。
  • ②没有足够的安全机制。
  • ③适合规模较大,设备较多,安全性要求不高或本身就比较安全,但业务比较繁忙,有可能发生流量拥塞的网络。

SNMPv3:1998年

  • ①增加了身份验证和加密处理。
  • ②新的SNMP体系结构,适应性强,方便管理,扩展性好。
  • ③适合各种规模,尤其是对安全性要求较高,只有合法的管理员才能对设备进行管理的网络。

NMS和Agent

客户端(Manager/NMS):网络管理系统,主动发起请求(如查询设备状态),监听162端口接收Trap消息。

服务端(Agent):部署在网络设备(如路由器、服务器)上的代理程序,监听161端口接收请求,并管理本地MIB库。

UDP 161端口发送请求报文

  • NMS → Agent:NMS通过161端口向Agent发送Get、GetNext、GetBulk、Set等管理请求。
  • Agent → NMS:Agent通过161端口返回请求的响应(如设备状态、配置信息)。
  • 特点:
  • 支持用户配置,但需确保NMS和Agent的161端口一致。
  • 适用于所有SNMP版本(v1/v2c/v3)。

UDP 162端口(单向通信)

  • Agent → NMS:Agent通过162端口主动发送Trap或Inform告警(如设备故障、链路中断)。
  • 特点:
  • Trap是单向通知,无需NMS确认;Inform需NMS回复确认(通过随机端口)。
  • 支持用户配置,但需确保NMS监听端口与Agent发送端口一致。
  • 仅Trap/Inform使用此端口,与SNMP版本无关。

SNMPv3基本操作

  • 查询:
    • Get,从agent中提取一个或多个参数值
    • GetNext,从agent中按照字典顺序提取下一个参数值
    • GetBulk,从agent进行信息群查询
  • 设置:
    • set通过agent设置一个或多个参数
  • 告警:
    • trap,agent主动向NMS发出信息,告知被管理设备出现的情况。
    • inform,作用与trap相同,但需要NMS进行接收确认,NMS需回复Agent,会占用较多资源。
  • 响应:
    • Response ,Agent 对 Get/set操作的响应消息,NMS 对 Inform的响应消息。

交互流程与报文类型

NMS通过SNMPv3向被管理设备下发查询和设置操作指令,并接收响应信息,同时监听被管理设备发送的告警信息。

基础流程初始化:服务端启动时绑定UDP端口(默认161),客户端配置目标设备的IP和SNMP版本。

请求-响应:客户端构造SNMP请求(如 get 获取CPU利用率),通过UDP发送至服务端。

服务端解析请求:查询MIB库中的OID对应数据,返回响应报文。

主动通知:服务端检测到异常时,主动发送Trap到客户端的162端口(如接口宕机)

数据存储与安全机制

MIB库与OID

  • 服务端通过MIB(管理信息库)定义设备可管理的数据结构
  • 客户端通过OID(对象标识符)访问具体指标(如 1.3.6.1.2.1.1.5.0 表示设备名称)。
  • 示例:客户端请求OID对应的接口流量,服务端返回 OCTETSTRING 或 INTEGER 类型数据。

安全性控制

  • SNMPv1/v2c:基于社区名(Community,如 public )验证,明文传输,安全性低。
  • SNMPv3:
    • 支持用户认证(如SHA/MD5)和数据加密(如AES),提升通信安全性。
    • 用户组(Group),拥有特定安全级别属性的用户集合。
    • 安全级别:
      • 1级:privacy鉴权且加密
      • 2级:authentication只鉴权
      • 3级:noauthentication不鉴权也不加密。
    • 使用TLS/DTLS加密时,默认端口可能调整为10161(请求)和10162(Trap)(如RFC 3114定义)。

交互特点与工具

协议特性

  • 基于UDP:低延迟、无连接,但可能丢包(重要操作建议使用Inform报文)。
  • 跨平台支持:可通过C、Java、Python等语言实现客户端和服务端(如C#示例,Java的snmp4j库)。

常用工具

  • 服务端工具:Net-SNMP(Linux)、iReasoning MIB Browser(Windows)。
  • 客户端调试:Wireshark抓包分析、Nmap扫描SNMP端口

典型应用场景

  • 设备监控:实时采集路由器的CPU、内存、接口流量数据。
  • 告警管理:接收服务器的硬盘故障Trap并触发告警通知。
  • 远程配置:通过SET操作修改交换机的VLAN配置。
  • 通过以上机制,SNMP实现了高效的网络设备管理,但其安全性需结合版本选择和访问控制策略(如防火墙限制SNMP端口访问)来保障。

SNMP 基本配置

  1. 使能 SNMP Agent 功能:
    • [Huawei]snmp-agent
  2. 配置 SNMP协议版本:
    • [Huawei]snmp-agent sys-info version v1/v2c/v3 //版本必须和NMS的版本一致
  3. 创建或更新 MIB 视图的信息
    • [Huawei]snmp-agent mib-view view-name(exclude I include}subtree-name[mask mask]
  4. 创建一个新的SNMP组,将该组用户映射到SNMP 视图
    • [Huawei]snmp-agent group v3 {authentication noauth privacy}[head-view view-name Wriet-view view-name notify-view view-namel //该命令用于SNMPv3版本中创建 SNMP组,指定认证加密
  5. 为一个SNMP组织加一个新用户
    • snmp-agent usmiuser v了user-name group group-name
  6. 配置SNMPV3用户认证密码
    • snmp-agent usm-user v3 user-name authentication-mode{md5 sha shaz-256)
  7. 配置SNMPV3用户加密密码
    • snmp-agent usmouser v3 user-name privacy-mode{aes25/des56}
  8. 配置设备发送Trap报文的参数
    • snmp-agent target-host trap-paramsname paramsname is securityname securityname{authentication I no authnopriv privacy}
  9. 配置Trap报文的目标主机
    • snmp-agent target-host trap-hostname hostname address ipu4-address tarp-paramsname paramsname
No Comments

Send Comment Edit Comment


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
Previous
Next