Linux SNMP有效负载地址转换

Linux SNMP有效负载地址转换,linux,networking,snmp,iptables,nat,Linux,Networking,Snmp,Iptables,Nat,我在linux下使用iptables来NAT SNMP流量。某些SNMP数据包具有varbind,其中包含生成它们的设备的(真实)IP地址。这混淆了标准管理工具,它们需要在VARBINDs中查看nated地址。因此,除了头中的地址外,我还需要转换有效负载中的地址 标准工具是nf_nat_snmp_basic.ko内核模块,但原始版本只翻译地址的第一个八位字节,而最新版本只会完全破坏数据包。这显然是网络(www.netfilter.org)上的“常识”,我已经在自己的设备上进行了验证 在我深入研究

我在linux下使用
iptables
来NAT SNMP流量。某些SNMP数据包具有varbind,其中包含生成它们的设备的(真实)IP地址。这混淆了标准管理工具,它们需要在VARBINDs中查看nated地址。因此,除了头中的地址外,我还需要转换有效负载中的地址

标准工具是
nf_nat_snmp_basic.ko
内核模块,但原始版本只翻译地址的第一个八位字节,而最新版本只会完全破坏数据包。这显然是网络(www.netfilter.org)上的“常识”,我已经在自己的设备上进行了验证

在我深入研究内核之前,是否有其他人研究过这个问题并提出了合适的解决方案?现在,只翻译那些OID将其类型指定为IP地址的变量绑定就足够了。换句话说,我不需要翻译嵌入字符串数据中的地址,这要困难得多


谢谢你的建议

罗伯特·甘博可能的DIY解决方案:

经过一点单元测试之后,将会有更新和更多的赞扬——谢谢你,罗伯特