为 SNMP v3 配置 SNMP 代理时,代理会支持发送陷阱。SNMP v3 还提供比 v1 或 v2c 更高的安全性,包括密钥身份验证和加密。

不支持 SNMP v3 通知。vCenter Server仅支持通知,如具有所有安全级别的 v1/v2c 陷阱和 v3 陷阱。

配置 SNMP 引擎 ID

每个 SNMP v3 代理都具有一个引擎 ID 作为其唯一标识符。引擎 ID 与哈希功能配合使用可生成用于对 SNMP v3 消息进行身份验证和加密的本地化密钥。

如果在启用 SNMP 代理之前未指定引擎 ID,则启用独立 SNMP 代理时系统会生成一个引擎 ID。

过程

  1. 访问设备 shell 并以具有管理员或超级管理员角色的用户身份登录。
    具有超级管理员角色的默认用户是 root。
  2. 运行 snmp.set --engineid 命令以配置目标。
    例如,运行以下命令:
    snmp.set --engineid 80001adc040102030405060708091011
    其中,值可以分为十六进制数字,
    80:00:1a:dc:04:24:17:e2:02:b8:61:3f:54:00:00:00:00

    并解码为:

    80:-- 应用 RFC 3411 编码,因为高位“10000000”0x80 和较低的 7 位 0 是企业 ID 的一部分。

    00:1a:dc -- 企业 ID 的其余部分,VMware 解析的值为十六进制 1a:dc(十进制为 6876)。

    04: -- 根据第 42 页的 RFC 3411,它属于 engineid 类型。此处使用“4”表示其余八进制数可以转换为文本。

    0102030405060708091011 -- 以十六进制字符编码的运算人员指定的文本。

配置 SNMP 身份验证和隐私协议

SNMP v3 选择性地支持身份验证和隐私协议。

身份验证用于确保用户的身份。隐私允许对 SNMP v3 消息进行加密以确保数据的保密性。隐私协议提供比 SNMP v1 和 v2c(使用社区字符串确保安全性)更高的安全性级别。

身份验证和隐私都是可选项。但是,如果您计划启用隐私,则必须启用身份验证。

SNMP v3 身份验证和隐私协议是许可的 vSphere 功能,在某些 vSphere 版本中可能不可用。

过程

  1. 访问设备 shell 并以具有管理员或超级管理员角色的用户身份登录。
    具有超级管理员角色的默认用户是 root。
  2. (可选) 运行 snmp.set --authentication 命令以配置身份验证。
    例如,运行以下命令:
    snmp.set --authentication protocol
    此处, protocol 必须为 none(不进行身份验证)、 SHA1MD5
  3. (可选) 运行 snmp.set --privacy 命令以配置隐私协议。
    例如,运行以下命令:
    snmp.set --privacy protocol
    此处, protocol 必须为 none(无隐私)或 AES128

配置 SNMP 用户

您最多可配置五个有权访问 SNMP v3 信息的用户。用户名长度不得超过 32 个字符。

在配置用户时,可以根据用户的身份验证和隐私密码以及 SNMP 代理的引擎 ID 生成身份验证和隐私哈希值。如果在配置用户后更改引擎 ID、身份验证协议或隐私协议,则用户将不再有效,并且您必须重新配置这些用户。

前提条件

  • 在配置用户之前,验证是否已配置身份验证和隐私协议。
  • 确认您知道计划配置的每个用户的身份验证和隐私密码。密码必须至少为 8 个字符。将这些密码存储在主机系统上的文件中。

过程

  1. 访问设备 shell 并以具有管理员或超级管理员角色的用户身份登录。
    具有超级管理员角色的默认用户是 root。
  2. 如果您正在使用身份验证或隐私,请通过运行 snmp.hash --auth_hash --priv_hash 命令为用户获取身份验证和隐私哈希值。
    例如,运行以下命令:
    snmp.hash  --auth_hash secret1 --priv_hash secret2
    此处, secret1 是包含用户身份验证密码的文件的路径, secret2 是包含用户隐私密码的文件的路径。或者,您也可以指定标记 --raw_secret 并将布尔参数设置为 true
    系统会显示身份验证和隐私哈希值。
  3. 通过运行 snmp.set --user 配置用户。
    例如,运行以下命令:
    snmp.set --user userid/authhash/privhash/security
    此命令中的参数如下。
    参数 描述
    userid 替换为用户名。
    authhash 替换为身份验证哈希值。
    privhash 替换为隐私哈希值。
    security 替换成为该用户启用的安全级别,其可以为 auth(代表仅身份验证)、priv(代表身份验证和隐私)或 none(代表无身份验证和隐私)。

配置 SNMP v3 目标

配置 SNMP v3 目标以允许 SNMP 代理发送 SNMP v3 陷阱。

您最多可以分别配置三个 SNMP v3 目标以及三个 SNMP v1/v2c 目标。

要配置一个目标,您必须指定接收陷阱的系统的主机名或 IP 地址、用户名、安全级别以及是否发送陷阱。安全级别可以为 none(代表无安全)、auth(代表仅身份验证)或 priv(代表身份验证和隐私)。

过程

  1. 访问设备 shell 并以具有管理员或超级管理员角色的用户身份登录。
    具有超级管理员角色的默认用户是 root。
  2. 运行 snmp.set --v3targets 命令以设置 SNMP v3 目标。
    例如,运行以下命令:
    snmp.set --v3targets hostname@port/userid/secLevel/trap
    此命令中的参数如下。
    参数 描述
    hostname 替换为接收陷阱的管理系统的主机名或 IP 地址。
    port 替换为接收陷阱的管理系统的端口。如未指定端口,则使用默认端口 161。
    userid 替换为用户名。
    secLevel 替换为 noneauthpriv 以指明您已配置的身份验证和隐私的级别。如果您仅配置了身份验证,请使用 auth,如果配置了身份验证和隐私,请使用 priv,如果两者均未配置,请使用 none
  3. (可选) 如果 SNMP 代理未启用,可以通过运行 snmp.enable 命令启用。
  4. (可选) 要发送测试陷阱以验证是否正确配置了代理,请运行 snmp.test 命令。
    代理将 warmStart 陷阱发送到已配置的目标。