0

我创建了一个 snmp 消息 (SNMP4J),我需要设置 Read Community Public 和 Write Community Private。

以社区为例:

// Specify receiver
Address targetaddress = new UdpAddress("10.10.10.10/162");
CommunityTarget target = new CommunityTarget();
target.setCommunity(new OctetString("public"));
target.setVersion(SnmpConstants.version2c);
target.setAddress(targetaddress);

但这并没有指定它是写社区还是读社区。有没有办法单独定义它们?

4

2 回答 2

1

不,社区字符串就像密码,只读社区字符串和读/写社区字符串为您提供不同的设备访问权限。如果你只想从设备中获取值,你使用只读社区,如果你既想获取值又想改变值,你必须使用读/写社区。SNMP4j 不知道你想要什么样的访问,所以它留给你选择,你不能同时设置它们。

于 2012-12-07T07:41:16.603 回答
0

您只是设置用于与 SNMP 代理通信的社区字符串。这不是在盒子上创建新社区字符串的设置请求(在 SNMP 代理配置文件中)。我想您的盒子已经定义了 RW 私有和 RO 公共社区(大多数情况下为默认值)。要添加新的社区字符串,您必须使用企业特定的 OID 发送一个设置请求,该 OID 添加新的社区字符串(如果完全支持此功能)。由于安全问题,没有标准的基于 RFC 的 MIB 允许这样做 - 任何人都可以添加她/他的 RW 社区字符串并将其用于进一步的配置更改。但是,每个人都可以嗅探 SNMPv1 流量(它没有加密!):-) 但是如果有人可能执行中间人攻击,那么比只使用未加密的 SNMPv1 存在更大的问题 ;-)。就是这样。

于 2012-12-06T18:05:53.867 回答