Working divert socket example prog?

Ian Smith smithi at nimnet.asn.au
Fri Apr 29 12:34:54 UTC 2016


On Fri, 29 Apr 2016 00:32:05 -0300, lpa lpa wrote:
 > On Thu, Apr 28, 2016 at 4:06 PM, Nikolay Denev <nike_d at cytexbg.com> wrote:

 >> Hi,
 >>
 >> Have you looked at the natd(8) source code?

 > yes but it's a complete application, it does a lot of stuff and I am 
 > not able to "clean" it up to become a simple divert application which 
 > reinjects packet so I can measure something. I was not able, so far, 
 > to make thementioned divert-loop work, not breaking natd is a much 
 > longer step to a non programmer

You could have a look at Mike Makonnen's ipfw-classifyd, which diverts 
packets with the intent of applying Linux L7 filters to traffic, then 
feeding matching packets via dummynet pipes, originally for throttling
P2P applications and such.

You don't need to be interested in what it does with packets to benefit 
from knowing how it works; it's maybe an order of magnitude simpler than 
natd; and it can return from divert to different ipfw rule numbers.

This didn't become a port, not sure why, but maybe it might help you 
(though you'd still need some coding to make it useful for your needs):

http://people.freebsd.org/~mtm/ipfw-classifyd.tar.bz2

cheers, Ian

> On Thu, Apr 28, 2016 at 7:21 AM, lpa lpa <arvorebemgrande at gmail.com>
> wrote:
> > Do anyone have a working example code of a divert loop program?
> >
> > I tried building this one[1] but it seems to be for FreeBSD 5 and won't
> > build on latest system. I want to make simple measurement of pps rate
> for a
> > packet traveling inside a divert socket and getting reinjected back while
> > printing some logs.
> >
> > However I am not a coder :(
> >
> > Thank you.
> >
> > [1]https://github.com/DianeRay/divert-loop/tree/master/divert-loop


More information about the freebsd-net mailing list