Non l'ho usato, ma il target QUEUE netfilter sembra che potrebbe funzionare. Utilizza un socket nflink e un'applicazione userspace registrata nel socket per eseguire le modifiche al payload.
La pagina man di libipq contiene dettagli su come usarlo e fornisce un semplice esempio.
Risoluzione:
Abbiamo finito con un modulo personalizzato per netfilter, che è chiaramente lo strumento "giusto" per il lavoro.