Date: Tue, 22 Oct 2002 11:32:49 -0700 From: Luigi Rizzo <rizzo@icir.org> To: "Marc G. Fournier" <scrappy@hub.org> Cc: freebsd-net@FreeBSD.ORG Subject: Re: determining "originator/source" of connection ... Message-ID: <20021022113249.C33933@carp.icir.org> In-Reply-To: <20021022143427.Y47756-100000@hub.org>; from scrappy@hub.org on Tue, Oct 22, 2002 at 02:47:36PM -0300 References: <20021022143427.Y47756-100000@hub.org>
next in thread | previous in thread | raw e-mail | index | archive | help
let me understand, you basically want something that puts flow statistics in the bucket identified by the <dst-ip,dst-port> of the first SYN packet you see (the assumption being that connections are initiated by clients towards a well known port, which appears as dst-port in the first syn packet ? Or if you are just happy to aggregate by IP, one solution i often use is the following (based on dummynet's dynamic pipes): # do not expire pipes even if they have no pending traffic sysctl net.inet.ip.dummynet.expire=0 # create separate pipes for src and dst masks ipfw pipe 20 config mask src-ip 0xffffffff buckets 256 ipfw pipe 21 config mask dst-ip 0xffffffff buckets 256 ipfw add pipe 20 ip from $my_subnet to any ipfw add pipe 21 ip from any to $my subnet cheers luigi On Tue, Oct 22, 2002 at 02:47:36PM -0300, Marc G. Fournier wrote: > > I've got FreeBSD setup as a firewall to our campus network, and its doing > a great job of it, but we want to be able log statistics on traffic going > in and out ... > > I have trafd running on the server, with it dumping its data to a > PostgreSQL database, but for every ~8min "segment", it is logging ~12 000 > records ... so ~90k/hr, or 2.16 million per day ... > > Now, I'm figuring that if I could determine direction of flow (did we > originate the connection, or did someone off campus originate it), I could > shrink that greatly, as right now I have stuff like: > > 216.158.133.242 80 131.162.158.24 3914 6 2356 4 > 216.158.133.242 80 131.162.158.24 3915 6 47767 34 > 216.158.133.242 80 131.162.158.24 3916 6 78962 56 > 216.158.133.242 80 131.162.158.24 3917 6 330141 224 > 216.158.133.242 80 131.162.158.24 3918 6 118862 89 > 216.158.133.242 80 131.162.158.24 3919 6 264139 185 > 216.158.133.242 80 131.162.158.24 3920 6 259543 179 > 216.158.133.242 80 131.162.158.24 3921 6 98014 73 > 216.158.133.242 80 131.162.158.24 3922 6 267772 186 > 216.158.133.242 80 131.162.158.24 3923 6 148879 109 > 216.158.133.242 80 131.162.158.24 3924 6 6406 8 > 216.158.133.242 80 131.162.158.24 3925 6 2486 5 > 216.158.133.242 80 131.162.158.24 3928 6 109584 75 > 216.158.133.242 80 131.162.158.24 3929 6 92435 62 > 216.158.133.242 80 131.162.158.24 3936 6 13059 9 > 216.158.133.242 80 131.162.158.24 3937 6 22641 17 > > where I don't care about the source port, only the dest port ... except, > in the above, trafd is writing it as 'source port == 80' and 'dest port' > is arbitray ... > > while later in the results, I'll get something like: > > 130.94.4.7 40072 131.162.138.193 25 6 2976 10 > 130.94.4.7 58562 131.162.138.193 25 6 5249 16 > > which does make sense (ie. source port -> dest port) ... > > is there something that i can do with libpcap that will give me better > information then trafd does? is there a 'tag' in the IP headers that can > be used to determine the originator of the connection? > > thanks ... > > > > To Unsubscribe: send mail to majordomo@FreeBSD.org > with "unsubscribe freebsd-net" in the body of the message To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-net" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20021022113249.C33933>