当服务器有两个 IP 地址时,通过 NAT 进行 SNMP

当服务器有两个 IP 地址时,通过 NAT 进行 SNMP

我们有一个 SNMP 客户端通过 NAT 与 SNMP 代理通信。这在大多数情况下都有效。我们发送一个 SNMP 请求(例如从 1.2.3.4:12345 到 10.0.0.1:161),并收到从 10.0.0.1:161 到 1.2.3.4:12345 的回复。

但是,有些代理有多个 IP 地址,对于这些代理,当针对此类服务器发出从 1.2.3.4:12345 到 10.0.0.1:161 的 SNMP 请求时,我们可能会收到来自完全不同的 IP 地址的回复,例如从 10.0.1.1:161 到 1.2.3.4:161。我推测这是因为 SNMP 使用 UDP,因此没有连接,而代理的默认网关使用 10.0.1.1:161。

这在没有 NAT 的“真实”直接连接的客户端上运行良好,但是当涉及 NAT 时,客户端的响应不会通过 NAT 发送到客户端。

我们正在使用标准iptablesNAT。

  • 有没有什么办法可以iptables只查看 UDP NAT 的端口号,以便它能从其他 IP 地址发送这些回复?
  • 是否有更适合我们目的但我们尚未尝试过的 NAT 实现?

不幸的是,我们要求更改 IP 地址不是一种选择......

相关内容