Intercepting a packet, changing it and re-injecting into the network

Chuck Swiger cswiger at mac.com
Fri Dec 22 08:22:15 PST 2006


Fabrício Barros Cabral wrote:
> Hello everybody!
> 
> I'm developing a network application which needs *to intercept* a packet
> (not just *copy* a packet, like libpcap does), move this packet into my
> application (userland), do some checking in the packet and according
> with some heuristics, the application may change the payload and
> re-inject the modified packet into the network. Note that sometimes,
> I'll change the payload, drop the packet or just let it go.
> 
> So, how can a I do that in FreeBSD? I can use 6.1, 7.1, any version.

Use IPFW plus a divert socket, or possibly netgraph.  See the sources for natd 
for an example of a userland app which intercepts and re-injects packets, 
possibly modified...

-- 
-Chuck


More information about the freebsd-net mailing list