如何:在各种 Cisco 平台上设置 SNMP & 您能否使用 SNMP 恢复或配置交换机?

网络工程 思科 转变 路由器 snmp
2021-07-30 02:33:34

如何在不同的 Cisco 交换机或路由器上设置 SNMP?

是否可以限制可以通过访问列表访问 SNMP 社区的 IP 地址/子网?

如何使用 SNMP 恢复或配置交换机?例如,您不小心更改了配置并将其保存在您失去 CLI 访问权限后不久。但该设备仍可通过 SNMP 获取。

您可以做什么来恢复 CLI 访问权限?

2个回答

介绍

以下配置已经过测试,为了让管理系统轮询交换机,您需要具备设置基础知识,例如管理接口/IP 地址,在某些情况下,还需要 VRF 管理 - 取决于您的网络设计等。

在 2/3 层交换机上进行测试,例如:2960S/X 系列、3560 系列、3650 系列、3850 系列、9200 系列、9300 系列和 9500 系列等。

SNMPv2c

如果可能,我强烈建议使用 SNMPv3。SNMPv2c 不提供加密或授权。如果您了解读/写社区,则可以控制设备。

基于社区的简单网络管理协议第 2 版 (SNMPv2c) 是 RFC 1901、RFC 1905 和 RFC 1906 中定义的实验性 Internet 协议。SNMPv2c 是 SNMPv2 的基于社区字符串的管理框架。团体串是密码的一种,以明文形式传输。SNMPv2c 是对基于方的简单网络管理协议版本 2 (SNMPv2p) 的协议操作和数据类型的更新,并使用 SNMPv1 的基于社区的安全模型。

SNMPv2c 中的安全功能

基于社区的简单网络管理协议版本 2 (SNMPv2c) 使用基于社区的安全形式。能够访问代理 MIB 的 SNMP 管理器社区由 IP 地址访问控制列表 (ACL) 和密码定义。

SNMPv2c 提供的改进的错误处理支持包括区分不同类型错误的扩展错误代码;所有类型的错误都通过 SNMPv1 中的单个错误代码报告。还报告了以下三种异常:无此类对象、无此类实例、MIB 视图结束。以下是SNMv2c安全模型的详细信息:

  • 安全级别:noAuthNoPriv
  • 认证方式:团体字符串
  • 加密的可用性:否

根据您的版本,不支持基于方的 SNMP 版本 2 (SNMPv2p),它是 SNMPv2 的另一个变体。SNMPv2c 用基于社区的管理框架取代了 SNMPv2p 的基于政党的管理和安全框架。SNMPv2c 保留了 SNMPv2p 的批量检索和错误处理功能。

配置

首先,我们设置一个访问列表,它将列出我们允许通过 SNMP 访问交换机的网络或特定主机:

ip access-list standard snmp_acl
 permit <network> 0.0.0.255 
 permit <host> 0.0.0.0
 deny any log ! log any other attempt to access the switch via SNMP

现在我们创建 SNMP 配置:

SNMPv2c 查看社区(访问设备的完整 SNMP 树)

snmp-server view community_read iso included
snmp-server view community_read_write iso included

SNMPv2c 社区

snmp-server community thEb0EjiRO view community_read RO snmp_acl
snmp-server community wROb7ChiRW view community_read_write RW snmp_acl (also used for IPSLA)

请始终像社区一样使用密码来创建一种安全形式。

而已。您现在可以通过您选择的管理或 SVI 界面在您的交换机上运行 SNMPwalk。

SNMPv3

SNMP 版本 3 功能通过对网络上的数据包进行身份验证和加密来提供对设备的安全访问。简单网络管理协议版本 3 (SNMPv3) 是一种可互操作的、基于标准的协议,在 RFC 3413 到 3415 中定义。

SNMPv3 提供的安全特性如下:

  • 消息完整性——确保数据包在传输过程中未被篡改。
  • 身份验证 - 确定消息来自有效来源。
  • 加密 — 对数据包的内容进行加扰,以防止未经授权的来源了解它。

SNMPv3 是一种安全模型,其中为用户和用户所在的组设置了身份验证策略。安全级别是安全模型中允许的安全级别。安全模型和安全级别的组合决定了在处理 SNMP 数据包时使用哪种安全机制。

配置

首先,我们设置一个访问列表,它将列出我们允许通过 SNMP 访问交换机的网络或特定主机:

ip access-list standard snmp_acl
 permit <network> 0.0.0.255 
 permit <host> 0.0.0.0
 deny any log ! log any other attempt to access the switch via SNMP

现在我们创建 SNMP 配置:

SNMPv3 组

snmp-server group your_group_name v3 auth read community_read write community_read_write access snmp_acl

SNMPv3 查看社区(访问设备的完整 SNMP 树)

snmp-server view community_read iso included
snmp-server view community_read_write iso included

SNMPv3 用户

snmp-server user your_user your_group_name v3 auth md5 md5_password priv aes 128 aes_password access snmp_acl

而已。您现在可以通过您选择的管理或 SVI 界面在您的交换机上运行 SNMPwalk。

如何通过 SNMP 上传新配置

在下一节中,我将展示如何使用 SNMP 配置或上传配置。重要的是要知道,您必须事先设置一个 FTP 服务器,并在服务器上的文本文件中准备好 CLI 配置。

在以下示例中,我使用的是 Ubuntu,但 SNMP OID 可以由您喜欢的任何 SNMP 设置软件使用。

我假设设备使用的是 SNMP 版本 3,如上所述,这是设置它的推荐方式。我将在示例中使用上述密码。

  • 假设网络设备IP地址为: 10.0.0.1
  • 假设FTP服务器IP地址是: 10.0.0.2

由于此示例集中在 Cisco 设备上,以下链接将提供所有 Cisco MIB/OID 的完整概览:

https://mibs.cloudapps.cisco.com/ITDIT/MIBS/servlet/index

SNMPwalk:

这是一个 SNMP 应用程序,它使用 SNMP GETNEXT 请求来查询网络实体的信息树。可以在命令行上给出对象标识符 (OID)。此 OID 指定将使用 GETNEXT 请求搜索对象标识符空间的哪一部分。查询给定 OID 下子树中的所有变量,并将它们的值呈现给用户。

snmpwalk -v 3 -a MD5 -A md5_password -l authPriv -u your_user -x AES -X aes_password [IP] [Optional: OID]

使用上述IP地址的具体例子:

snmpwalk -v 3 -a MD5 -A md5_password -l authPriv -u your_user -x AES -X aes_password 10.0.0.1

SNMP 集:

这是一个 SNMP 应用程序,它使用 SNMP SET 请求来设置有关网络实体的信息。一个或多个对象标识符 (OID) 必须作为命令行上的参数给出。要设置的类型和值必须伴随每个对象标识符。

TYPE 是单个字符,其中之一:

  • 我 = 整数
  • u = 未签名
  • s = 字符串
  • x = 十六进制字符串
  • d = 十进制字符串
  • n = NULLOBJ
  • o = 对象 ID
  • t = 时间表
  • a = IP 地址
  • b = 位

例子:

snmpset -v 3 -a MD5 -A md5_password -l authPriv -u your_user -x AES -X aes_password [IP] [OID] [TYPE]

如何使用 SNMP 上传的示例

首先是OID,我们设置我们要使用的服务类型(来源)。

  1. 文件传输协议
  2. FTP
  3. 接收器
  4. SCP
  5. sftp

我们要使用FTP,例如:

snmpset -v 3 -a MD5 -A md5_password -l authPriv -u your_user -x AES -X aes_password 10.0.0.1 1.3.6.1.4.1.9.9.96.1.1.1.1.2.336 i 2

现在我们设置源文件类型。

  1. 网络文件
  2. ios文件
  3. 启动配置
  4. 运行配置
  5. 终端
  6. 结构启动配置

我们想使用network file, 示例:

snmpset -v 3 -a MD5 -A md5_password -l authPriv -u your_user -x AES -X aes_password 10.0.0.1 1.3.6.1.4.1.9.9.96.1.1.1.1.3.336 i 1

我们设置了目的地,这是我们想要复制到的地方。

  1. 网络文件
  2. ios文件
  3. 启动配置
  4. 运行配置
  5. 终端
  6. 结构启动配置

我们想要复制到runningConfig, 示例:

snmpset -v 3 -a MD5 -A md5_password -l authPriv -u your_user -x AES -X aes_password 10.0.0.1 1.3.6.1.4.1.9.9.96.1.1.1.1.4.336 i 4

现在我们设置FTP服务器。

FTP服务器地址:

snmpset -v 3 -a MD5 -A md5_password -l authPriv -u your_user -x AES -X aes_password 10.0.0.1 1.3.6.1.4.1.9.9.96.1.1.1.1.5.336 a 10.0.0.2

要复制到网络设备的源文件名:

snmpset -v 3 -a MD5 -A md5_password -l authPriv -u your_user -x AES -X aes_password 10.0.0.1 1.3.6.1.4.1.9.9.96.1.1.1.1.6.336 s config.txt

用户名:

snmpset -v 3 -a MD5 -A md5_password -l authPriv -u your_user -x AES -X aes_password 10.0.0.1 1.3.6.1.4.1.9.9.96.1.1.1.1.7.336 s admin

密码:

snmpset -v 3 -a MD5 -A md5_password -l authPriv -u your_user -x AES -X aes_password 10.0.0.1 1.3.6.1.4.1.9.9.96.1.1.1.1.8.336 s Password

您现在要做的就是激活转移:

snmpset -v 3 -a MD5 -A md5_password -l authPriv -u your_user -x AES -X aes_password 10.0.0.1 1.3.6.1.4.1.9.9.96.1.1.1.1.14.336 i 1

请记住使用以下命令销毁会话并断开连接:

snmpset -v 3 -a MD5 -A md5_password -l authPriv -u your_user -x AES -X aes_password 10.0.0.1 1.3.6.1.4.1.9.9.96.1.1.1.1.14.336 i 6

就是这样,您现在应该已经上传config.txt到您的网络设备running-config