SNMP笔记
1、什么是SNMP?
snmp可以用于管理网元(通常用于监控告警),当前涵盖三个版本分别是SNMPv1、SNMPv2c和SNMPv3,其中v1几乎看不到了。从安全性上讲v1<v2<v3。对于刚使用的人映像最深的就是v2 只有一个密码,而v3是有两个密码,且还要选择两套加密算法(相当的安全)。不过在我眼里设备管理口都在纯内网,而且如果配置成只读,能获取到的也就是一些监控数据,用V3纯粹是折腾自己,因为很多人不大熟悉,配置的时候那边加密算法写错对不齐或者配置好以后搞不清哪个是用的哪个加密算法的密码或者压根不大会配置,还有很多设备上加密算法都是简写的,具体是哪个加密算法版本只能靠猜,而且监控工具的所带的加密算法版本还不一定匹配,都是需要一起调测。
从方向性上讲snmp可以使用trap主动发送告警数据(默认对端接收端口为UDP162);还有一种是被动等待对端过来获取(默认本端监听端口是UDP161),可以使用snmpwalk获取数据。
2、SNMP有哪些参数配置,具体是什么?
v2v3相同参数:
1、get和set的权限(读写权限);
2、监听UDP的端口号;
v2v3参数区别:
1、SNMPv2
- 比较简单唯一的参数只有一个团体名(community),甚至没有用户名;
2、SNMPv3
- User Name:v3中会使用用户名进行认证。
- Authentication Password:认证密码,使用(MD5和SHA)验证协议对密码加密。
- Privacy Password: 隐私密码,使用(DES 或 AES)隐私协议对数据加密。
补充:
snmp是一种协议,v1-v3 都是协议的版本;另外还有Net-SNMP lib 是snmp代码库,我工作至今接触已有不下5千台设备,有90%以上设备的snmp代码库版本都是<=5.7的。最新5.8及以上版本(此版本官方连版本修订报告都还没有)是可以选择更多的加密协议(比如AES-192,AES-256,SHA256等等)。5.7以下则不支持,默认使用的加密协议是SHA1和AES128。
3、网元设备中配置SNMP监控要注意哪些?
在说注意点之前,先说下snmp常用工具,有snmpset、snmpget、snmpwalk、snmptrap。
snmpset: snmpset -v 2c -c public 192.168.201.97 1.3.6.1.2.1.1.6.0 s "Server Room" #oid为‘1.3.6.1.2.1.1.6.0’对应的是主机名,这里代表将主机名改成"Server Room"
snmpwalk: snmpwalk -v 2c -c huawei@public 192.168.201.97 #获取所有的数据
snmptrap: snmptrap -v 1 -c public 192.168.1.100 '.1.3.6.1.4.1.9.0.1' '0.0.0.0' 6 33 '55' .1.3.6.1.4.1.9.0.1 s "LOGIN" #发送LOGIN消息到网管192.168.1.100中,网管的snmptrapd收到数据后发送到snmptt匹配模板并格式化输出至文件中,zabbix-server读取该文件,发现有新数据则被监控项捕获,并更具触发器进行触发告警。
snmpget: 总的来说和snmpwalk用处类似,区别在于snmpget只能通过oid获取,无法获取全量。而snmpwalk可以获取全量的,也能通过单个oid获取数据。
上述案例中snmptrap使用的团体名public是网管中配置的团体名。团体名参数已 -c 表示。
- walk、get、set操作: 网管发出请求--->网元161端口,命令中的团体名或者账户密码 已网元配置为准。
- trap操作: 网元发出告警--->网管162端口 ,命令中的团体名或者账户密码 已网管配置为准。
由上可知snmpset是具备修改功能的,所以当做监控,网元snmp配置时候,需要注意以下两点:
- 需要配置只读权限。
- 在保证都配置只读权限时,以及均在内网环境下,ACL可以不做配置。但在不满足前两者情况,则需要考虑加上ACL来保证安全。
4、一起来配置一下吧
华为路由器NE40E SNMPv2配置:
# 开启snmp161端口服务,设置v2团体名
<HUAWEI>system-view
Enter system view, return user view with return command.
[~HUAWEI]snmp-agent
[*HUAWEI]snmp-agent udp-port 161
Info: The port is already bound to SNMP agent.
[*HUAWEI]snmp-agent sys-info version v2c
Warning: SNMPv1/SNMPv2c is not secure, and it is recommended to use SNMPv3(authentication-mode and privacy-mode).
[*HUAWEI]snmp-agent community read cipher huawei@public #添加团体名,cipher为本地保存加密
[*HUAWEI]commit
[~HUAWEI]quit
<HUAWEI>save
Warning: The current configuration will be written to the device.
Are you sure to continue? [Y/N]:y
Now saving the current configuration to the slot 17
Info: Save the configuration successfully.
# 配置trap,推送告警到网管(zabbix或其他)
<HUAWEI>system-view
[~HUAWEI]snmp-agent
[*HUAWEI]snmp-agent trap enable
[*HUAWEI]snmp-agent target-host trap address udp-domain 192.168.5.6 params securityname huawei@public1 v2c
[*HUAWEI]commit
[~HUAWEI]quit
<HUAWEI>save
# 查看信息
[~HUAWEI]display info-center # 查看SNMP Agent输出信息所使用的通道。
[~HUAWEI]display channel 7 #查看SNMP Agent所用通道输出的信息。
[~HUAWEI]display snmp-agent target-host #查看SNMP Agent输出网管的信息。
详细解释参考华为官网
华为路由器NE40E SNMPv3配置:
[~HUAWEI]undo snmp-agent #删除snmp配置
# 开启snmp161端口服务,设置v3账户
[~HUAWEI]snmp-agent usm-user v3 snmpdemo group snmpg
Warning: Adding the user to a privacy group is recommended, because the bound group has insecure properties (with authentication or noauthentication configured).
[*HUAWEI]snmp-agent mib-view included TEST 1.3.6.1.2.1 #视图中设置单独的OID,这个视图和下面视图选其一配置即可
[*HUAWEI]snmp-agent mib-view included monitorview iso #视图中设置所有OID,iso表示所有OID
[*HUAWEI]snmp-agent group v3 snmpg privacy read-view TEST write-view TEST
[*HUAWEI]snmp-agent group v3 snmpg privacy read-view monitorview
[*HUAWEI]snmp-agent usm-user v3 snmpdemo authentication-mode sha #添加认证密码
Please configure the authentication password (8-255)
Enter Password:
Confirm Password:
[*HUAWEI]snmp-agent usm-user v3 snmpdemo privacy-mode aes128 #添加隐私密码
Please configure the privacy password (8-255)
Enter Password:
Confirm Password:
Warning: The privacy and authentication passwords are the same, which is insecure. It is recommended that the privacy and authentication passwords be different.
:::: column
::: column-left
:::
::: column-right
:::
::::
客官,欢迎光临本站!路途遥远,常进来看看!
本文由mdnice多平台发布
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。