SNMP 社区
SNMP 公共组根据其源 IP 地址定义授予其成员的授权级别,例如可用的 MIB 对象、对这些对象有效的操作(只读或读写)以及授权的 SNMP 客户端。
配置 SNMP 社区
在 Junos OS 中配置 SNMP 代理是一项简单的任务,需要与网络中的其他受管设备共享熟悉的设置。例如,您需要使用 SNMP 公共组字符串和陷阱目标配置 Junos OS。社区字符串是管理名称,用于将设备集合和在其上运行的代理一起分组到公共管理域中。如果经理和代理共享同一个社区,他们可以相互通信。
SNMP 公共组字符串定义 SNMP 服务器系统和客户端系统之间的关系。此字符串是用于控制客户端对服务器的访问的密码。
要创建只读 SNMP 公共组,请执行以下操作:
要创建读写 SNMP 公共组,请执行以下操作:
-
输入网络中使用的 SNMP 公共组。
[edit groups global] user@host# set snmp community name
此示例标准社区字符串
private
,用于标识授予对设备上运行的 SNMP 代理读写访问权限的社区。[edit groups global] user@host# set snmp community private
-
定义社区的授权级别。
[edit groups global snmp community name] user@host# set authorization authorization
此示例将公共社区限制为只读访问权限。属于公共社区的任何SNMP客户端(例如,SNMP管理系统)都可以读取MIB变量,但不能设置(更改)它们。
[edit groups global snmp community public] user@host# set authorization read-write
-
定义社区中有权在 Junos OS 中更改 SNMP 代理的客户端列表。
按 IP 地址和前缀列出客户端。
[edit groups global snmp community name] user@host# set clients address
例如:
[edit groups global snmp community private] user@host# set clients 192.168.1.15/24 user@host# set clients 192.168.1.18/24
-
通过指定客户端的 IP 地址,后跟
restrict
语句来定义在社区中未授权的客户端。[edit groups global snmp community name] user@host# set clients address resrict
以下语句将所有其他主机定义为受公共社区限制。
[edit groups global snmp community private] user@host# set clients 0/0 restrict
-
在配置的顶层,应用配置组。
如果您使用配置群组,则必须应用该群组才能使其生效。
[edit] user@host# set apply-groups global
-
提交配置。
user@host# commit
将一组客户端添加到 SNMP 社区
Junos OS 允许您将一组或多组客户端添加到 SNMP 社区。您可以在层次结构级别包含 client-list-name name
语句 [edit snmp community community-name]
,以将客户端列表或前缀列表的所有成员添加到 SNMP 公共组。
要定义客户端列表,请使用 set snmp client-list client-list-name
后跟客户端 IP 地址的语句。
您可以在层次结构级别配置前缀列表 [edit policy options]
。通过支持 SNMP 公共组配置中的前缀列表,您可以使用单个列表来配置 SNMP 和路由策略。有关该 prefix-list
语句的更多信息,请参阅 《路由策略》、《防火墙过滤器和流量监管器用户指南》。
要将客户端列表或前缀列表添加到 SNMP 公共组,请使用该 set snmp commmunity community-name client-list-name
语句。
客户端列表和前缀列表的名称不得相同。
下面的示例演示如何定义客户端列表:
[edit] snmp { client-list clentlist1 { 10.1.1.1/32; 10.2.2.2/32; } }
以下示例说明如何将客户端列表添加到 SNMP 公共组:
[edit] snmp { community community1 { authorization read-only; client-list-name clientlist1; } }
以下示例说明如何将前缀列表添加到 SNMP 公共组:
[edit] policy-options { prefix-list prefixlist { 10.3.3.3/32; 10.5.5.5/32; } } snmp { community community2 { client-list-name prefixlist; } }
配置 SNMP 公共组字符串
SNMP 公共组字符串定义 SNMP 服务器系统和客户端系统之间的关系。此字符串的作用类似于密码,用于控制客户端对服务器的访问。
要在 Junos OS 配置中配置社区字符串,请使用语句 set snmp community
。
如果社区名称包含空格,请用引号 (“ ”) 将其括起来。
社区的默认授权级别为 read-only
。要允许 Set
社区内的请求,您需要将该社区 authorization read-write
定义为 。对于 Set
请求,您还需要包含可使用语句通过 view
读写权限访问的特定 MIB 对象。默认视图包括可通过只读权限访问的所有受支持的 MIB 对象;任何 MIB 对象都无法使用读写权限进行访问。有关语句的详细信息 view
,请参阅 配置 MIB 视图。
语句列表中列出了 clients
允许使用此社区的客户端(社区成员)的 IP 地址。如果不存在 clients
语句,则允许所有客户端。对于 address
,必须指定 IPv4 地址,而不是主机名。包括拒绝 default restrict
访问未授予访问权限的所有 SNMP 客户端的选项。我们建议您始终包含 default restrict
限制 SNMP 客户端访问本地交换机的选项。
团体名称在每个 SNMP 系统中必须是唯一的。
另请参阅
示例:配置 SNMP 公共组字符串
向所有客户端授予只读访问权限。使用以下配置,系统将响应包含社区字符串public
的 SNMP Get
、 GetNext
和GetBulk
请求:
[edit] snmp { community public { authorization read-only; } }
授予所有客户端对 ping MIB 和 jnxPingMIB
的读写访问权限。使用以下配置,系统将响应包含社区字符串private
的 SNMP Get
、 GetNext
、 GetBulk
和Set
请求,并指定 ping MIB 或jnxPingMIB
层次结构中包含的 OID:
[edit] snmp { view ping-mib-view { oid pingMIB include; oid jnxPingMIB include; community private { authorization read-write; view ping-mib-view; } } }
以下配置允许对 IP 地址在该范围内的1.2.3.4/24
客户端进行只读访问,并拒绝对该范围内的 fe80::1:2:3:4/64
系统进行访问:
[edit] snmp { community field-service { authorization read-only; clients { default restrict; # Restrict access to all SNMP clients not explicitly # listed on the following lines. 1.2.3.4/24; # Allow access by all clients in 1.2.3.4/24 except fe80::1:2:3:4/64 restrict;# fe80::1:2:3:4/64. } } }
配置 SNMPv3 社区
SNMP 公共组定义 SNMP 服务器系统和客户端系统之间的关系。此语句是可选的。
要配置 SNMP 公共组,请在层次结构级别包含 snmp-community
语句 [edit snmp v3]
:
[edit snmp v3] snmp-community community-index;
community-index
是 SNMP 社区的索引。
要配置 SNMP 公共组属性,请在层次结构级别包含以下语句 [edit snmp v3 snmp-community community-index]
:
[edit snmp v3 snmp-community community-index] community-name community-name; context context-name; security-name security-name; tag tag-name;
以下是配置所需的 snmp v3 snmp-community
一组最小示例配置:
set snmp v3 vacm security-to-group security-model v2c security-name NOSNMPV3 group SNMPV3GROUP set snmp v3 vacm access group SNMPV3GROUP default-context-prefix security-model any security-level none read-view SNMPVIEW set snmp v3 vacm access group SNMPV3GROUP default-context-prefix security-model any security-level none write-view SNMPVIEW set snmp v3 snmp-community SNMPV3COMMUNITY community-name JTACCOMMUNITY set snmp v3 snmp-community SNMPV3COMMUNITY security-name NOSNMPV3 set snmp view SNMPVIEW oid .1 include
不支持 SNMPv3 的用户使用的社区将继续使用 SNMPv2。
有关详细信息,请参阅以下配置:
snmpget -v 2c -c JTACCOMMUNITY 10.52.170.100 sysUpTime.0
本节包括以下主题:
配置社区名称
社区名称定义 SNMP 社区。SNMP 社区授权 SNMPv1 或 SNMPv2c 客户端。与配置的安全名称关联的访问权限定义哪些 MIB 对象可用,以及允许对这些对象执行的操作(读取、写入或通知)。
要配置 SNMP 公共组名称,请在层次结构级别包含 community-name
语句 [edit snmp v3 snmp-community community-index]
。有关此语句的详细信息,请参见 community-name。
配置上下文
SNMP 上下文定义 SNMP 实体可访问的管理信息集合。通常,SNMP 实体有权访问多个情景。上下文可以是物理或逻辑系统、多个系统的集合,甚至是系统的子集。管理域中的每个上下文都有一个唯一的标识符。
要配置 SNMP 上下文,请在层次结构级别包含context context-name
[edit snmp v3 snmp-community community-index]
语句。有关此语句的详细信息,请参见 context (SNMPv3)。
要查询路由实例或逻辑系统,
配置安全名称
要将社区字符串分配给安全名称,请在层次结构级别包含security-name
[edit snmp v3 snmp-community community-index]
该语句:
[edit snmp v3 snmp-community community-index] security-name security-name;
security-name
在设置访问控制时使用。security-to-group
层次结构级别的配置[edit snmp v3 vacm]
标识组。
此安全名称必须与配置陷阱时在层次结构级别配置 [edit snmp v3 target-parameters target-parameters-name parameters]
的安全名称匹配。
配置标记
要配置标记,请在层次结构级别包含 tag
语句 [edit snmp v3 snmp-community community-index]
。有关此语句的详细信息,请参见 tag。
示例:配置 SNMPv3 社区
此示例说明如何配置 SNMPv3 社区。
要求
配置此示例之前,不需要除设备初始化之外的特殊配置。
概述
此示例演示如何创建 SNMPv3 社区。定义 SNMP 社区名称,指定用于执行访问控制的安全名称,并定义标识允许使用公共组字符串的管理器地址的标记名称。目标地址定义用于发送通知的管理应用程序的地址和参数。
当设备收到具有可识别公共组字符串的数据包,并且标记与该数据包相关联时,Junos 软件将查找具有此标记的所有目标地址,并验证此数据包的源地址是否与配置的目标地址之一匹配。
指定要将陷阱发送到的位置,并定义允许哪些 SNMPv1 和 SNMPv2c 数据包。指定标识目标地址的目标地址名称,定义目标地址、地址掩码范围、端口号、标记列表和目标参数。
配置
CLI 快速配置
要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改详细信息,以便与网络配置匹配,将命令复制并粘贴到 [edit snmp v3]
层级的 CLI 中,然后从配置模式进入 commit
。
set snmp-community index1 community-name "public" set snmp-community index1 security-name john set snmp-community index1 tag router1 set target-address ta1 address 10.1.1.1 set target-address ta1 address-mask 255.255.255.0 set target-address ta1 port 162 set target-address ta1 tag-list router1 set target-address ta1 target-parameters tp1
程序
分步过程
下面的示例要求您在各个配置层级中进行导航。有关如何执行此操作的说明,请参阅 Junos OS CLI 用户指南 中的在配置模式下使用 CLI 编辑器 。
配置 SNMP 公共组名称。
[edit snmp v3] user@host# set snmp-community index1 community-name "public"
注:SNMP 公共组名称必须是唯一的。
配置安全名称以执行访问控制。
[edit snmp v3] user@host# set snmp-community index1 security-name john
定义标记名称。标记名称标识允许使用公共组字符串的经理的地址。
[edit snmp v3] user@host# set snmp-community index1 tag router1
配置 SNMP 目标地址。
[edit snmp v3] user@host# set target-address ta1 address 10.1.1.1
为社区字符串访问控制配置地址的掩码范围。
[edit snmp v3] user@host#set target-address ta1 address-mask 255.255.255.0
配置 SNMPv3 目标端口号。
[edit snmp v3] user@host#set target-address ta1 port 162
配置 SNMPv3 标记列表以选择目标地址。
[edit snmp v3] user@host#set target-address ta1 tag-list router1
在目标参数表中配置 SNMPv3 目标参数名称。
[edit snmp v3] user@host#set target-address ta1 target-parameters tp1
结果
在配置模式下,输入 show snmp v3
命令以确认您的配置。如果输出未显示预期的配置,请重复此示例中的配置说明。
[edit] user@host# show snmp v3 target-address ta1 { address 10.1.1.1; port 162; tag-list router1; address-mask 255.255.255.0; target-parameters tp1; } snmp-community index1 { community-name "$9$JOZi.QF/AtOz3"; ## SECRET-DATA security-name john; tag router1; }