У нас есть клиент SNMP, который общается с агентом SNMP через NAT. Это работает в большинстве случаев. Мы отправляем запрос SNMP, например с 1.2.3.4:12345 на 10.0.0.1:161 и получите ответ от 10.0.0.1:161 на 1.2.3.4:12345.
Однако некоторые агенты имеют несколько IP-адресов, и для них, когда для такого сервера выполняется запрос SNMP от 1.2.3.4:12345 до 10.0.0.1:161, мы можем получить ответ с совершенно другого IP-адреса, например с 10.0.1.1:161 до 1.2.3.4:161. Я предполагаю, что это связано с тем, что SNMP использует UDP и, следовательно, не имеет соединения, а шлюз агента по умолчанию использует 10.0.1.1:161.
Это прекрасно работает на «реальном» напрямую подключенном клиенте без NAT, но когда задействован NAT, ответ клиента не отправляется клиенту через NAT.
Мы используем стандартные iptables
NAT.
iptables
смотреть только номера портов для UDP NAT, чтобы отправлять эти ответы с других IP-адресов?К сожалению, изменить запрашиваемый IP-адрес невозможно ...