Cisco IOS Cookbook 中文精简版 1723 SNMP.docx
《Cisco IOS Cookbook 中文精简版 1723 SNMP.docx》由会员分享,可在线阅读,更多相关《Cisco IOS Cookbook 中文精简版 1723 SNMP.docx(16页珍藏版)》请在冰豆网上搜索。
![Cisco IOS Cookbook 中文精简版 1723 SNMP.docx](https://file1.bdocx.com/fileroot1/2023-5/27/5553852a-ca39-4417-a9c4-3cfb16949f34/5553852a-ca39-4417-a9c4-3cfb16949f341.gif)
CiscoIOSCookbook中文精简版1723SNMP
CiscoIOSCookbook中文精简版17-23SNMP
17.1. 配置SNMP
提问FONT-FAMILY:
宋体">在路由器上启用基本的SNMP服务
回答
Router#configureterminal
Enterconfigurationcommands,oneperline. EndwithCNTL/Z.
Router(config)#snmp-servercommunityORAROro
Router(config)#snmp-servercommunityORARWrw
Router(config)#end
Router#
从12.0以后启用了另一种配置方式
Router#configureterminal
Enterconfigurationcommands,oneperline. EndwithCNTL/Z.
Router(config)#snmp-servergroupCOOKROv1
Router(config)#snmp-serveruserTESTRO1COOKROv1
Router(config)#snmp-servergroupBOOKROv2c
Router(config)#snmp-serveruserTESTRO2BOOKROv2c
Router(config)#end
注释注意的是这里启用的仅仅是简单SNMP服务,只会响应SNMP的GET和SET请求,不会发送SNMPtrapsinforms.由于SNMPV1和V2c都是明文传输community值所以需要后续的一些安全限制。
showsnmpgroup可以用来验证
17.2. 通过SNMP工具获得路由器信息
注释可以使用snmpget,snmpwalk,snmpset命令直接对MIB进行查询,建议使用Solarwinds等图形化工具,暂略。
思科MIBs信息:
17.3. 为SNMP访问配置一些路由器重要信息
提问为SNMP访问提供类似路由器位置,序列号等重要信息
回答
Router#configureterminal
Enterconfigurationcommands,oneperline. EndwithCNTL/Z.
Router(config)#snmp-servercontactIanBrown416-555-2943
Router(config)#snmp-serverlocation999QueenSt.W.,Toronto,Ont.
Router(config)#snmp-serverchassis-idJAX123456789
Router(config)#end
Router#
注释无
17.4. 使用SNMP获得批量路由设备信息
注释使用perl脚本来进行批量化操作,暂略
17.5. 使用控制列表来限制SNMP访问
提问使用控制列表的方式来提高SNMP访问的安全性
回答
Router#configureterminal
Enterconfigurationcommands,oneperline. EndwithCNTL/Z.
Router(config)#access-list99permit172.25.1.00.0.0.255
Router(config)#access-list99permithost10.1.1.1
Router(config)#access-list99denyany
Router(config)#snmp-servercommunityORAROro99
Router(config)#access-list98permit172.25.1.00.0.0.255
Router(config)#snmp-servercommunityORARWrw98
Router(config)#end
Router#
SNMPGroup的方法
Router#configureterminal
Enterconfigurationcommands,oneperline. EndwithCNTL/Z.
Router(config)#access-list99permit172.25.1.00.0.0.255
Router(config)#access-list99permithost10.1.1.1
Router(config)#access-list99denyany
Router(config)#snmp-servergroupCOOKROv1access99
Router(config)#snmp-serveruserTESTRO1COOKROv1
Router(config)#end
Router#
从12.3
(2)T以后支持命名控制列表
Router2#configureterminal
Enterconfigurationcommands,oneperline. EndwithCNTL/Z.
Router2(config)#ipaccess-liststandardSNMPACL
Router2(config-std-nacl)#permit172.25.1.00.0.0.255
Router2(config-std-nacl)#permithost10.1.1.1
Router2(config-std-nacl)#denyany
Router2(config-std-nacl)#snmp-servercommunityORARO1roSNMPACL
Router2(config)#end
Router2#
注释无
17.6. 记录非授权的SNMP尝试
提问对非授权的SNMP尝试进行日志记录
回答
Router#configureterminal
Enterconfigurationcommands,oneperline. EndwithCNTL/Z.
Router(config)#access-list99permit172.25.1.00.0.0.255
Router(config)#access-list99permithost10.1.1.1
Router(config)#access-list99denyanylog
Router(config)#snmp-servercommunityORAROro99
Router(config)#snmp-servercommunityORARWrw99
Router(config)#end
Router#
注释
Router#showaccess-list99
StandardIPaccesslist99
permit10.1.1.1 (1293matches)
permit172.25.1.0,wildcardbits0.0.0.255(630matches)
deny anylog(17matches)
Router#showlogging
Sysloglogging:
enabled(0messagesdropped,0flushes,0overruns)
Consolelogging:
disabled
Monitorlogging:
leveldebugging,26messageslogged
Loggingto:
vty2(0)
Bufferlogging:
leveldebugging,49messageslogged
Traplogging:
levelinformational,53messagelineslogged
Loggingto172.25.1.1,53messagelineslogged
Loggingto172.25.1.3,53messagelineslogged
LogBuffer(4096bytes):
Apr1522:
33:
21:
%SEC-6-IPACCESSLOGS:
list99denied192.168.22.131packet
Apr1522:
39:
18:
%SEC-6-IPACCESSLOGS:
list99denied10.121.212.113packets
Router#
17.7. 限制MIB访问
提问限制特定的MIB可以被SNMP来访问
回答
Router#configureterminal
Enterconfigurationcommands,oneperline. EndwithCNTL/Z.
Router(config)#access-list99permit172.25.1.00.0.0.255
Router(config)#access-list99denyanylog
Router(config)#snmp-serverviewORAVIEWmib-2included
Router(config)#snmp-serverviewORAVIEWatexcluded
Router(config)#snmp-serverviewORAVIEWciscoincluded
Router(config)#snmp-servercommunityORAROviewORAVIEWro99
Router(config)#snmp-serverviewRESTRICTEDlsystem.55included
Router(config)#snmp-servercommunityORARWviewRESTRICTEDrw99
Router(config)#end
Router#
SNMPGroup方式
Router#configureterminal
Enterconfigurationcommands,oneperline. EndwithCNTL/Z.
Router(config)#snmp-serverviewORAVIEWmib-2included
Router(config)#snmp-serverviewORAVIEWatexcluded
Router(config)#snmp-serverviewORAVIEWciscoincluded
Router(config)#snmp-servergroupTESTv1readORAVIEW
Router(config)#snmp-serveruserORAROTESTv1
Router(config)#snmp-serverviewRESTRICTEDlsystem.55included
Router(config)#snmp-servergroupTEST2v1writeRESTRICTED
Router(config)#snmp-serveruserORARWTEST2v1
Router(config)#end
Router#
注释
Router#showsnmpview
ORAVIEWmib-2-includednonvolatileactive
ORAVIEWat-excludednonvolatileactive
ORAVIEWcisco-includednonvolatileactive
v1defaultinternet-includedvolatileactive
v1defaultinternet.6.3.15-excludedvolatileactive
v1defaultinternet.6.3.16-excludedvolatileactive
v1defaultinternet.6.3.18-excludedvolatileactive
RESTRICTEDcisco-includednonvolatileactive
RESTRICTEDlsystem.55-includednonvolatileactive
Router#
17.8. 使用SNMP来修改路由器当前配置
提问使用SNMP来下载或者上传路由器配置文件
回答
以安装了NETSNMP的Freebsd为例
首先路由器启用SNMP
Router#configureterminal
Enterconfigurationcommands,oneperline. EndwithCNTL/Z.
Router(config)#snmp-servercommunityORARWrw
Router(config)#end
下载配置
Freebsd%touch/tftpboot/router.cfg
Freebsd%chmod666/tftpboot/router.cfg
Freebsd%snmpsetv1-cORARWRouter.1.3.6.1.4.1.9.2.1.55.172.25.1.1srouter.cfg
enterprises.9.2.1.55.172.25.1.1="router.cfg"
Freebsd%
修改配置后上传保存
Freebsd%echo"noipsource-route">/tftpboot/new.cfg
Freebsd%echo"end">>/tftpboot/new.cfg
Freebsd%chmod666/tftpboot/new.cfg
Freebsd%snmpsetv1-cORARWRouter.1.3.6.1.4.1.9.2.1.53.172.25.1.1snew.cfg
enterprises.9.2.1.53.172.25.1.1="new.cfg"
Freebsd%snmpsetv1-cORARWRouter.1.3.6.1.4.1.9.2.1.54.0i1
enterprises.9.2.1.54.0=1
Freebsd%
注释.1.3.6.1.4.1.9.2.1.55是思科MIB中发送当前配置文件的OID值,172.25.1.1是TFTP服务器地址。
在修改配置文件时候注意最后要加上end命令,注意这时的OID是.1.3.6.1.4.1.9.2.1.53。
最后一个snmpset命令是对上传配置进行保存。
当然上述操作都可以使用Solarwinds软件实现
17.9. 使用SNMP来升级IOS
提问通过SNMP来远端升级路由器IOS
回答
首先路由器配置
Router#configureterminal
Enterconfigurationcommands,oneperline. EndwithCNTL/Z.
Router(config)#snmp-servercommunityORARWrw
Router(config)#end
下载当前的IOS
Freebsd%touch/tftpboot/c2600-jk9o3s-mz.122-7a.bin
Freebsd%chmod666/tftpboot/c2600-jk9o3s-mz.122-7a.bin
Freebsd%snmpsetv1-cORARWRouter.1.3.6.1.4.1.9.2.10.9.172.25.1.1sc2600-jk9o3s-mz.122-7a.bin
enterprises.9.2.10.9.172.25.1.1="c2600-jk9o3s-mz.122-7a.bin"
Freebsd%
升级IOS
Freebsd%chmod666/tftpboot/c2600-jk9o3s-mz.122-7a.bin
Freebsd%snmpsetv1-cORARWRouter.1.3.6.1.4.1.9.2.10.6.0i1
enterprises.9.2.10.6.0=1
Freebsd%snmpsetv1-cORARWRouter.1.3.6.1.4.1.9.2.10.12.172.25.1.1sc2600-jk9o3s-mz.122-7a.bin
enterprises.9.2.10.12.172.25.1.1="c2600-jk9o3s-mz.122-7a.bin"
Freebsd%
注释例子中的Router是路由器的机器名也可以使用IP地址,.1.3.6.1.4.1.9.2.10.9.是相应的OID。
在对IOS升级的时候第一步做的是清除Flash,第二步才是上传IOS。
这种可以使用脚本来实现IOS的集中管理。
17.10. 使用SNMP来进行批量的配置修改
注释使用perl脚本来进行批量化操作,暂略
17.11. 避免非授权的配置修改
提问只允许特定的设备来通过SNMP和TFTP来发送和接收配置信息
回答
Router#configureterminal
Enterconfigurationcommands,oneperline. EndwithCNTL/Z.
Router(config)#access-list92permit172.25.1.1
Router(config)#access-list92denyanylog
Router(config)#snmp-servertftp-server-list92
Router(config)#snmp-servercommunityORARWrw
Router(config)#end
Router#
从12.3
(2)T开始支持命名控制列表
Router2#configureterminal
Enterconfigurationcommands,oneperline. EndwithCNTL/Z.
Router2(config)#ipaccess-liststandardTFTPACL
Router2(config-std-nacl)#permit172.25.1.1
Router2(config-std-nacl)#denyanylog
Router2(config-std-nacl)#exit
Router2(config)#snmp-servertftp-server-listTFTPACL
Router2(config)#snmp-servercommunityORARWrw
Router2(config)#end
Router2#
注释要注意的是这里限制的仅仅是通过SNMP发起的TFTP会话,对其他的文件传输不受影响。
另外这里的控制列表是全局性的,不能针对特定的community值
17.12. 保持接口表名的永久性
提问即使重启也能保证SNMP使用相同的接口名
回答
Router#configureterminal
Enterconfigurationcommands,oneperline. EndwithCNTL/Z.
Router(config)#snmp-serverifindexpersist
Router(config)#end
Router#
也可以对单独接口:
Router#configureterminal
Enterconfigurationcommands,oneperline. EndwithCNTL/Z.
Router(config)#interfaceSerial0/0
Router(config-if)#snmpifindexpersist
Router(config-if)#exit
Router(config)#end
Router#
注释很多工程师不知道内部SNMP接口号是会变的,这样在进行查询的时候会出错,比如下面的例子,FastEthernet1/0的ifindex是5
Freebsd%snmpwalkv1-cORARORouterifDescr
interfaces.ifTable.ifEntry.ifDescr.1="BRI0/0"
interfaces.ifTable.ifEntry.ifDescr.2="Ethernet0/0"
interfaces.ifTable.ifEntry.ifDescr.3="BRI0/0:
1"
interfaces.ifTable.ifEntry.ifDescr.4="BRI0/0:
2"
interfaces.ifTable.ifEntry.ifDescr.5="FastEthernet1/0"
interfaces.ifTable.ifEntry.ifDescr.6="Null0"
interfaces.ifTable.ifEntry.ifDescr.7="Loopback0"
重启以后再查询就变成2了
Freebsd%snmpwalkv1-cORARORouterifDescr
interfaces.ifTable.ifEntry.ifDescr.1="Ethernet0/0"
interfaces.ifTable.ifEntry.ifDescr.2="FastEthernet1/0"
interfaces.ifTable.ifEntry.ifDescr.3="Null0"
interfaces.ifTable.ifEntry.ifDescr.4="Loopback0"
这样就会给网管造成困难
17.13. 启用SNMPTraps和Informs
提问配置路由器针对特定事件产生Traps或者Informs
回答
Router#configureterminal
Enterconfigurationcommands,oneperline. EndwithCNTL/Z.
Router(config)#snmp-serverenabletraps
Router(config)#snmp-server