## 提要
### 简介
简单网络管理协议SNMP(Simple Network Management Protocol)用于网络设备的管理。网络设备种类多种多样,不同设备厂商提供的管理接口(如命令行接口)各不相同,这使得网络管理变得愈发复杂。为解决这一问题,SNMP应运而生。SNMP作为广泛应用于TCP/IP网络的网络管理标准协议,提供了统一的接口,从而实现了不同种类和厂商的网络设备之间的统一管理。
SNMP协议分为三个版本:**SNMPv1**、**SNMPv2c**和**SNMPv3**。
- SNMPv1是SNMP协议的最初版本,提供最小限度的网络管理功能。SNMPv1基于团体名认证,安全性较差,且返回报文的错误码也较少。
- SNMPv2c也采用团体名认证。在SNMPv1版本的基础上引入了GetBulk和Inform操作,支持更多的标准错误码信息,支持更多的数据类型(Counter64、Counter32)。
- SNMPv3主要在安全性方面进行了增强,提供了基于USM(User Security Module)的认证加密和基于VACM(View-based Access Control Model)的访问控制。SNMPv3版本支持的操作和SNMPv2c版本支持的操作一样。
### 系统组成
SNMP系统由网络管理系统NMS(Network Management System)、SNMP Agent、被管对象Management object和管理信息库MIB(Management Information Base)四部分组成。NMS作为整个网络的网管中心,对设备进行管理。
每个被管理设备中都包含驻留在设备上的SNMP Agent进程、MIB和多个被管对象。NMS通过与运行在被管理设备上的SNMP Agent交互,由SNMP Agent通过对设备端的MIB进行操作,完成NMS的指令。
### 实验环境
- XC208(工控交换机)。
- Windows
## 一、XC208配置
**在连好设备的相关线路后,开始对交换机进行初始配置。**
- 1、使用西门子官方配置程序——**PRONETA**对交换机进行初始配置。
- 程序下载:[PRONETA](https://owncloud.gotarget.top/Windows/%E8%BF%90%E7%BB%B4%E5%B7%A5%E5%85%B7/SNMP/Proneta_3_3_1_0.zip)
- 打开程序 ==> 进入主界面 ==> 选择对应网络适配器 ==> 接收到交换机信号 ==>配置交换机的 **IP** 等关键信息。
![image-20220817161737617](https://picture.gotarget.top/typora/202208171638281.png)
- 此处配置IP地址为10.10.10.1/2,子网掩码255.255.255.0。**注意:子网掩码需要保持一致!**
- 2、进入交换机控制台。(也可以使用Xsehll使用ssh连接或者串口连接终端控制。)
- 管理员默认账号密码:admin/admin
- 普通用户默认账号密码:user/user
- WEB控制台(可使用PRONETA打开,也可使用http://IP打开)
![image-20220817162938800](https://picture.gotarget.top/typora/202208171638674.png)
![image-20220817163429746](https://picture.gotarget.top/typora/202208171638658.png)
- 3、配置SNMP协议相关信息。
- 启用SNMP,并启用Trap功能。
- Agent ==> SNMP Config ==> 勾选下图标注选项。
![image-20220817164958130](https://picture.gotarget.top/typora/202208171704024.png)
- 配置Trap信号接收IP(**填写管理端IP地址**)
- Agent ==> SNMP Config ==> Trap Config ==>填写管理端IP + 启用
![image-20220817165524167](https://picture.gotarget.top/typora/202208171704091.png)
- 配置SNMP用户群组,测试一般使用public作为昵称,赋予读写权限。
- Agent ==> SNMP Config ==> Groups ==>填写昵称,选择验证机制,并赋予权限。
![image-20220817170016858](https://picture.gotarget.top/typora/202208171704400.png)
- 启用交换机需要主动报告的事件。
- Agent ==> SNMP Config ==> Event Config ==>勾选相关事件(默认全勾)。
![image-20220817170343440](https://picture.gotarget.top/typora/202208171704635.png)
- 配置环网
- X208 ==> Ring
![image-20220817173634832](https://picture.gotarget.top/typora/202208171736948.png)
## 二、配置测试
- SNMP测试准备
- 工具下载:[MIBBrowse](https://owncloud.gotarget.top/Windows/%E8%BF%90%E7%BB%B4%E5%B7%A5%E5%85%B7/SNMP/MIB%20Browser.exe)
- Trap_Receive测试
- Tools ==> Trap Receive
![image-20220817171919416](https://picture.gotarget.top/typora/202208171736014.png)
![image-20220817172155432](https://picture.gotarget.top/typora/202208171736893.png)
- 查看交换机端口实际状态
![image-20220817174407723](https://picture.gotarget.top/typora/202208171744997.png)
## 参考资料
- 交换机官方配置文档:[传送门](https://owncloud.gotarget.top/Windows/%E8%BF%90%E7%BB%B4%E5%B7%A5%E5%85%B7/SNMP/%E5%8F%82%E8%80%83%E8%B5%84%E6%96%99)
- 其他第三方测试程序:[传送门](https://owncloud.gotarget.top/Windows/%E8%BF%90%E7%BB%B4%E5%B7%A5%E5%85%B7/SNMP)
- NET-SNMP接收trap信号:[传送门](https://www.yuque.com/docs/share/dc4df8bf-c05a-4ce8-a97d-abfc04867e50?#《使用net-snmp捕获trap信号。》)
- PYTHON编程开发:[PYSNMP](https://github.com/etingof/pysnmp)
- JAVA编程开发:[SNMP4J](https://agentpp.com/doc/snmp4j/overview-summary.html)
- 一个示例SNMP_TRAP_RECEIVE源码:[个人修改版(JAVA)](https://owncloud.gotarget.top/Windows/%E8%BF%90%E7%BB%B4%E5%B7%A5%E5%85%B7/SNMP/%E6%BA%90%E4%BB%A3%E7%A0%81/SNMP%20TRAP%20RECEIVER.zip)
简单网络管理协议(SNMP)