SNMPv3 通知
Junos OS 支持两种类型的通知:陷阱和通知。
使用陷阱时,接收方在收到陷阱时不会发送任何确认。因此,发送方无法确定是否已收到陷阱。由于传输过程中出现问题,陷阱可能会丢失。为了提高可靠性,通知与陷阱类似,不同之处在于通知会定期存储和重新传输,直到出现以下情况之一:
-
通知的接收方(目标)向 SNMP 代理返回确认。
-
已尝试指定数量的不成功重新传输,代理将丢弃通知消息。
如果发件人从未收到回复,则可以再次发送通知。因此,与陷阱相比,通知更有可能到达其预期目的地。通知使用与陷阱相同的通信通道(相同的套接字和端口),但具有不同的协议数据单元 (PDU) 类型。
通知比陷阱更可靠,但会消耗更多的网络、路由器和交换机资源。与陷阱不同,通知会保留在内存中,直到收到响应或达到超时。此外,陷阱仅发送一次,而通知可能会重试多次。当 SNMP 管理器接收所有通知非常重要时,请使用通知。但是,如果您更关心网络流量或路由器和交换机内存,请使用陷阱。
示例:配置通知通知类型和目标地址
在以下示例中,目标 172.17.20.184 配置为响应通知。通知超时为 30 秒,最大重传计数为 3。通知将发送到 tl1 列表中的所有目标。远程用户的安全模型为 usm,远程引擎用户名为 u10。
[edit snmp v3]
notify n1 {
type inform;
tag tl1;
}
notify-filter nf1 {
oid .1.3 include;
}
target-address ta1 {
address 172.17.20.184;
retry-count 3;
tag-list tl1;
address-mask 255.255.255.0;
target-parameters tp1;
timeout 30;
}
target-parameters tp1 {
parameters {
message-processing-model v3;
security-model usm;
security-level privacy;
security-name u10;
}
notify-filter nf1;
}
示例:配置远程引擎 ID 和远程用户
此示例说明如何配置远程引擎和远程用户,以便接收和响应 SNMP 通知通知。通知通知可经过身份验证和加密。它们也比陷阱更可靠,陷阱是 Junos OS 支持的另一种通知类型。与陷阱不同,通知通知会定期存储和重新传输,直到出现以下情况之一:
-
通知通知的目标向 SNMP 代理返回确认。
-
已尝试指定数量的不成功重新传输。
要求
此功能要求使用对 SNMPv3 有效的纯文本密码。当您在路由器或交换机上创建纯文本密码时,SNMPv3 具有以下要求:
-
密码长度必须至少为 8 个字符。
-
密码可以包含字母、数字和特殊字符,但不能包含控制字符。
最好使用引号将密码括起来,尽管这不是必需的。如果密码包含任何空格,或者某些特殊字符或标点符号,则需要引号。
概述
SNMPv3 支持通知,以提高可靠性。例如,收到通知通知的 SNMP 代理将确认收到通知。
对于通知通知,远程引擎 ID 标识用户所在远程设备上的 SNMP 代理,用户名标识远程 SNMP 引擎上接收通知通知的用户。
考虑这样一个场景:在此示例中,您具有 表 1 中的值,用于配置远程引擎 ID 和远程用户。
要向远程设备上的 SNMPv3 用户发送通知消息,必须先为用户所在的远程设备上的 SNMP 代理指定引擎标识符。远程引擎 ID 用于计算安全摘要,用于对发送给远程主机上用户的数据包进行身份验证和加密。发送通知消息时,代理使用在远程引擎(通知目标)上配置的用户的凭据。
对于通知, remote-engine engine-id 是用户所在的远程设备上 SNMP 代理的标识符。
对于通知, user username 是远程 SNMP 引擎上接收通知的用户。
生成的通知可以是 unauthenticated、 authenticated或 authenticated_and_encrypted,具体取决于在远程引擎(通知接收器)上配置的 SNMPv3 用户的安全级别。身份验证密钥用于生成消息身份验证代码 (MAC)。隐私密钥用于加密消息的通知 PDU 部分。
| 变量名称 |
value |
|---|---|
| 用户名 |
U10 |
| 远程引擎 ID |
800007E5804089071BC6D10A41 |
| 身份验证类型 |
身份验证-MD5 |
| 身份验证密码 |
qol67R%? |
| 加密类型 |
隐私-des |
| 隐私密码 |
米*72Jl9v |
配置
CLI 快速配置
要快速配置此示例,请复制以下命令并将其粘贴到文本文件中,删除所有换行符并更改详细信息,以便与网络配置匹配,将这些命令复制并粘贴到层次结构级别的 [edit snmp v3] CLI 中,然后从配置模式进入。commit
set usm remote-engine 800007E5804089071BC6D10A41 user u10 authentication-md5 authentication-password "qol67R%?" set usm remote-engine 800007E5804089071BC6D10A41 user u10 privacy-des privacy-password "m*72Jl9v"
配置远程引擎和远程用户
分步程序
下面的示例要求您导航到配置层次结构中的各个级别。有关导航CLI的信息,请参阅《Junos OS CLI 用户指南》中的在配置模式下使用CLI编辑器。
要配置远程引擎 ID 和远程用户,请执行以下操作:
-
配置远程引擎 ID、用户名以及身份验证类型和密码。
[edit snmp v3] user@host# set usm remote-engine 800007E5804089071BC6D10A41 user u10 authentication-md5 authentication-password "qol67R%?"
-
配置加密类型和隐私密码。
您只能为每个 SNMPv3 用户配置一种加密类型。
[edit snmp v3] user@host# set usm remote-engine 800007E5804089071BC6D10A41 user u10 privacy-des privacy-password "m*72Jl9v"
结果
在配置模式下,输入 show 命令以确认您的配置。如果输出未显示预期的配置,请重复此示例中的说明以更正配置。
[edit snmp v3]
user@ host# show
usm {
remote-engine 800007E5804089071BC6D10A41 {
user u10 {
authentication-md5 {
authentication-key "$9$hagSyKNdbY2acyvLN-2g69CtpBRhSvMX/CLx-V4oZUjkqfQz69CuF36Apu1Idbw2ZUiHm3/C.mF/CA1IVws4oGkqf6CtzF";## SECRET-DATA
}
privacy-des {
privacy-key "$9$GJDmf3nCtO1zFnCu0hcrevM87bs2oaUbwqmP5F3Ap0O1hrevMLxcSYgoaUDqmf5n/Ap0REyk.BIREyr4aJZUHfTz9tu5T";## SECRET-DATA
}
}
}
}
确认配置正确后,从配置模式进入。commit
验证
验证远程引擎 ID 和用户名的配置
目的
验证引擎 ID 和用户信息的状态。
行动
显示有关 SNMPv3 引擎 ID 和用户的信息。
user@host> show snmp v3
Local engine ID: 80 00 0a 4c 01 0a ff 03 e3
Engine boots: 3
Engine time: 769187 seconds
Max msg size: 65507 bytes
Engine ID: 80 00 07 e5 80 40 89 07 1b c6 d1 0a 41
User Auth/Priv Storage Status
u10 md5/des nonvolatile active
意义
输出显示以下信息:
-
本地引擎 ID 和有关引擎的详细信息
-
远程引擎 ID(标记为
Engine ID) -
用户名
-
为用户配置的身份验证类型和加密(隐私)类型
-
用户名的存储类型,非易失性(已保存配置)或易失性(未保存)
-
新用户的状态;只有状态为活动的用户才能使用 SNMPv3