我在一家中型电信公司工作,负责网络监控解决方案。我们有一个自定义监控系统,主要使用 SNMP 与设备通信。问题是,每隔一段时间,我们就需要添加额外的轮询服务器,并且每次我们都必须在每个启用 SNMP 的设备上更新 10k+ ACL 以添加新的 IP 地址。这些地址无法提前预测,因为服务器位于不同的数据中心,具有不同的 L3 连接。
这对我们的运营来说是艰苦的工作,他们对此并不满意。
我的问题:是否有任何 SNMP 或 UDP 代理,我们可以在一台主机上安装,并通过它将每个 SNMP 请求转发到设备?
答案1
我认为您不太需要 SNMP 代理,而是需要 SNMP NAT 网关。
代理需要解析每个查询的结果,这本质上比仅仅对查询执行 NAT 要慢。据我所知,您只关心减少路由器/交换机/防火墙上 snmp ACL 更新的源地址数量。
简单的解决方案:部署一个特殊的 Cisco 路由器或 Linux 服务器作为 SNMP 查询的 NAT 网关。您应该限制要进行 NAT 的源地址以及协议 (161/udp)。通过此设备路由 SNMP 查询的最佳选择是建立一条 GRE 隧道,并确保所有 SNMP 查询都从 SNMP 轮询器通过隧道路由到 NAT 网关。
请记住,无论你选择哪种方式,通过 NAT 网关或代理集中 snmp 查询将要get
由于每个 SNMP /操作的往返时间逐渐变长,因此会稍微减慢轮询器的速度get-next
。
答案2
将所有轮询器放在一个专用子网或几个专用子网中。确保您有足够的增长空间。更新您的 ACL 以允许从这些子网中的任何主机进行轮询。如果您留出足够的空间,这将是您需要的最后一次 ACL 更新。
答案3
我见过的大型商店通常都倾向于建立单一的通用轮询基础设施。一组专用轮询器会提取数据,然后将其提供给各种消费者应用程序。这可以更好地扩展,最终导致流量减少,并减少受监控设备上的控制平面使用量。这听起来就像你想要的。
实际上,Net-SNMP 中内置了一个 SNMP 代理 MIB。您可以用这种方式设置几台机器,尽管可能需要进行一些自定义。还有一些商业软件包,例如这这可能在协议转换、支持等方面提供额外的价值。