Domanda

Sto usando iptables sotto il traffico SNMP da Linux a NAT. Alcuni pacchetti SNMP hanno VARBIND che contengono gli indirizzi IP (reali) dei dispositivi che li hanno generati. Questo confonde gli strumenti di gestione standard, che devono vedere gli indirizzi NATted nei VARBIND. Quindi devo tradurre gli indirizzi nel payload oltre a quelli nelle intestazioni.

Lo strumento standard è il modulo del kernel nf_nat_snmp_basic.ko , ma la versione originale traduce solo il primo ottetto dell'indirizzo e l'ultima versione semplicemente corrompe del tutto i pacchetti. Questa è apparentemente "conoscenza comune" sul Web (www.netfilter.org) e l'ho verificato sul mio dispositivo.

Prima di immergermi nel kernel, qualcun altro ha lavorato su questo problema e ha trovato una soluzione adatta? Per ora, è sufficiente tradurre solo quei VARBIND i cui OID specificano il loro tipo come indirizzo IP. In altre parole, non ho bisogno di tradurre indirizzi incorporati nei dati delle stringhe, il che sarebbe molto più difficile.

Grazie per i tuoi suggerimenti!

È stato utile?

Soluzione

Possibile soluzione fai-da-te di Robert Gamble qui: Utilità di manipolazione dei pacchetti oltre a iptables?

Aggiornamenti e ulteriori elogi a venire dopo un po 'di test unitari - grazie, Robert!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top