change packets with IPFW divert
Samira Nazari
nazari.s11 at gmail.com
Wed Oct 19 05:56:12 UTC 2016
Thank you for all of your comments and help.
In fact, I want to divert packets for one program that do header compression
Sam, Naz
On Tue, Oct 18, 2016 at 7:33 PM, Ian Smith <smithi at nimnet.asn.au> wrote:
> On Tue, 18 Oct 2016 14:21:50 +0000, Shawn Bakhtiar wrote:
> > On Oct 18, 2016, at 6:49 AM, Samira Nazari <nazari.s11 at gmail.com
> <mailto:nazari.s11 at gmail.com>> wrote:
> > > Hello every one,
> > > When we diverte packets to the specified port with "IPFW divert" ,
> > > we can change it and re-sent to the kernel?
>
> > Not sure what you mean by change it but:
> >
> > "Divert sockets are similar to raw IP sockets, except that they can
> > be bound to a specific divert port via the bind(2) system call. The
> > IP address in the bind is ignored; only the port number is
> > significant. A divert socket bound to a divert port will receive all
> > packets diverted to that port by some (here unspecified) kernel
> > mechanism(s). Packets may also be written to a divert port, in which
> > case they re-enter kernel IP packet processing."
> >
> > -- SRC: https://www.freebsd.org/cgi/man.cgi?query=divert&sektion=
> 4&apropos=0&manpath=FreeBSD+10.3-RELEASE+and+Ports
>
> Apart from divert(4), most likely the best example is the natd(8) code,
> which modifies packet source or destination addresses and (maybe) ports.
>
> Ignoring the NAT processing - or not, as appropriate - the way natd uses
> divert sockets both to receive packets from ipfw and later (perhaps) to
> reinject them for further processing should show clearly how it's done.
>
> cheers, Ian
>
More information about the freebsd-ipfw
mailing list