习吾学

徐武的技术博客

今天学习了什么?第n+1天

81 0

学习SNMP

之前学习zabbix时稍微了解过snmp协议,不过后来基本没用过,基本忘光了。如今工作需要,只好重新拾起。

SNMP全称:Simple Network Management Protocol(简单网络管理协议),属于TCP/IP协议栈中应用层协议。顾名思义,它是用来进行网络管理的。不同厂家生产的网络设备(如服务器、工作站、路由器、交换机等)种类、型号众多,缺乏一个统一的接口和协议,无疑给这些网络设备的管理工作带来巨大挑战。于是,SNMP应运而生。目前,绝大多数网络设备均支持SNMP协议。

使用SNMP,管理员不需要过多关心底层网络设备的厂家、型号。好比,使用虚拟文件系统,不需要关心底层数据究竟使用何种文件系统。计算机世界就是如此,一旦发现无法顺利衔接,就增加一个中间层,提供一个统一视图。

SNMP角色主要包括如下几种:

  • 被管理设备
  • SNMP代理
  • 网络管理系统(NMS)。

‌被管理设备,又称为网络单元或网络节点,可以是支持SNMP协议的路由器、交换机、服务器或者主机等。

SNMP代理,即一个agent,运行在各网络节点(被管理设备)之上,负责统计相关信息,然后与‌网络管理系统交互。

‌网络管理系统(NMS),又称为‌管理站,是一个中心节点,负责相关命令的发出、数据存储及数据分析。那么如何成为‌管理站呢?需要运行可以执行网络管理任务的软件。

那么,管理站代理之间是如何通信的呢?

通过UDP协议实现。管理站通过UDP协议(161端口)向代理发送‌相关命令‌代理通过UDP协议(161端口)接收‌管理站发送的‌命令,返回‌管理站所需要的信息。当‌代理检测到异常时,也会主动向‌管理站发送消息,报告当前异常状况。这就是所谓的Trap命令‌管理站会在UDP协议的162端口接受Trap消息

那么‌管理站‌代理发送的‌相关命令有哪些呢?

SNMP协议是一个‌请求-响应式协议,其基本操作可分为三类:

  • 检索数据
  • 修改变量
  • 接收主动上报消息

检索数据的相关命令主要有三个:GET、GETNEXT及GETBULK。暂时不详谈。

修改变量:SET。

接收主动上报消息:Trap。

‌管理站需要获取设备数据,向代理发送请求以获取数据,这就是所谓的Get命令‌管理站需要直接操控设备,如设置设备名称,关闭设备端口等,这就是所谓的Set命令,另外一个就是上文提到的Trap命令,不同的是该命令并非‌管理站发出,而是由‌代理在检测到异常状况时主动发给‌管理站的。

‌代理端设备厂家、型号千差万别,‌管理站又是如何识别这些设备上的相应属性呢?

开头提到,SNMP协议的作用就是提供统一接口,那么这个统一接口是谁实现的呢?

‌管理站‌代理使用MIB统一接口,所谓的MIB,即‌管理信息库。任何一个被管理的资源都是一个对象,称为被管理的对象,MIB是被管理对象的集合。

另外还学习了Python装饰器,明天继续整理......

参考文章

其他

看了篇英文文章,很有感触。文中作者提到自己无法单纯因为喜欢、感兴趣而去做一件事,一旦有了一个想法或好点子,便开始自问,这些想法是否能够给自己带来金钱,是否值得花时间去做,这些念头让作者备受煎熬。

不禁追问自己,还有多少不为钱财不为利益的爱好。

今天学习了什么?第n+2天
Comments
Write a Comment