Argus-2.0 byte count strategy
Carter Bullard
carter at qosient.com
Sun Oct 1 22:35:28 EDT 2000
Hey Peter,
So there is a signal issue and a byte count issue.
Regarding the SIG_HUP, Argus-2.0 should handle this well,
so we'll need to look into that. It should flush all
records that it is tracking. I suspect that if you compiled
in the debug support and ran it in debug mode -d2, you
would see some different behavior (maybe?). Use -d4 to
see if its writing out the record to the other processes.
The byte counts are due to Argus-2.0 reporting bytes
differently from Argus-1.8.1. We discussed this
briefly on the list, and now is probably a great time
to talk it through. Argus-2.0 is not doing the right
thing, so lets decide what the right thing is.
We should be reporting total bytes above IP, as derived from
the packet headers. In argus-1.8.1 we are subtracting
ether, IP header and transport header length from the
reported bytes, so Argus-1.8.1 you get user bytes. So
Argus-2.0 is reporting something in between total bytes
and user bytes. So that's expected.
We should support both in Argus-2.0. Possibly a -A switch
for application bytes, and default reporting total
bytes? Do we want any other strategies
I'll double check the man record byte reporting, 6 bytes
off is 6 tooooo many.
Other differences that you did not mention.
In Argus-2.0, notice that the tcp connection is saying
RST, but the arrow is different from 1.8.1. You'll
get the older indication if you ran ra with the -R
(response) option.
Carter
-----Original Message-----
From: owner-argus at lists.andrew.cmu.edu
[mailto:owner-argus at lists.andrew.cmu.edu]On Behalf Of Peter Van Epp
Sent: Sunday, October 01, 2000 7:09 PM
To: argus
Subject: good news / bad news :-)
The good news is that memory on the latest 2.0.0k has climbed to about
8 megs and stablized probably indicating the memory leak has been found (or
at least slowed substantially, it hasn't been running long enough yet to
tell).
The bad news is two fold: the counts look wrong and a small file gets
lost when run live. Below are the results from running a single web
transaction
through tcpreplay (which also caught an error in my perl script that
processes
sniffer output).
start both argus_bpf (2.0.0k from an hour or so ago, /usr/local/bin erased
and
replaces with 2.0.0k/bin/*) and tcpdump which deletes the argus.1.log and
tcpdump.1.log files before launching:
# ./start
[1] 14078
[2] 14079
tcpdump: listening on xl0
demoa# ls -l
total 8805
-rw-r--r-- 1 root unsupped 128 Oct 1 15:00 argus.1.log
-rw-r--r-- 1 root unsupped 0 Oct 1 15:00 tcpdump.1.log
Hit the other machine and fire up tpcreplay with the 9 packet long tcpdump
file (I'll forward Carter a copy of it) and wait for it to finish (I used a
rate of 1 meg per second) then killed the two processes:
demoa# kill -HUP 14078 14079
9 packets received by filter
0 packets dropped by kernel
demoa# ls -l
-rw-r--r-- 1 root unsupped 256 Oct 1 15:01 argus.1.log
-rw-r--r-- 1 root unsupped 2468 Oct 1 15:01 tcpdump.1.log
Use ra to read the argus log, don't get anything at all:
demoa# ra -r argus.1.log -c -n
01 Oct 00 15:01:32.053752 man pkts 0 bytes 0 drops
0
flows 0 closed 0 STP
Use argus_bpf, the tcpdump file and ra and get data (but unfortunatly not
right data ...):
demoa# argus_bpf -r tcpdump.1.log -w - |ra -c -n
01 Oct 00 15:00:55.714191 tcp 130.71.240.184.2197 ->
142.58.12.12.80
5 4 440 1554 RST
01 Oct 00 15:00:55.714511 man pkts 9 bytes 2300 drops
0
flows 1 closed 1 STP
Now feed the tcpdump file to 1.8.1 (patched) argus_bpf and ra and get right
data (according to the sniffer anyway):
1.8argus_bpf -r tcpdump.1.log -w - | 1.8ra -c -n
9 packets recv'd by filter
0 packets dropped by kernel
Sun 10/01 15:38:13 man 0.0.0.0 0.0.0.0
0
0 0 0 INT
Sun 10/01 15:00:55 M tcp 130.71.240.184.2197 |> 142.58.12.12.80
5
4 314 1456 RST
Sun 10/01 15:38:13 man pkts 9 drops 0 flows active
0
closed 1 CLO
Here is what the sniffer (or more correctly what the perl script that
post processed the sniffer summary data) thought:
this is src/dst ip/port src dst packets src/dst total bytes src/dst data
bytes
130.71.240.184.2197 142.58.12.12.80 5 4 608 1690 314 1456
The src/dst data bytes agree with 1.8.1, but don't with 2.0.0k (in
either case). As well the 2.0.0k version saw 2 more (2300 against 2298 for
the sniffer) total bytes for the flow as well from the final tcpdump man
line.
Hmmm, 1.8.1 seems to have the same bug when not coming from tcpdump
but rather tcpreplay over the wire:
demoa# 1.8argus_bpf -ixl0 -w - |1.8ra -c -n
^C
9 packets recv'd by filter
0 packets dropped by kernel
demoa# rm t
demoa# 1.8argus_bpf -ixl0 -w t
^C
9 packets recv'd by filter
0 packets dropped by kernel
demoa# 1.8ra -r t -c -n
Sun 10/01 16:04:22 man 1.168.192.0 255.255.255.0
0
0 0 0 INT
Sun 10/01 16:04:31 man pkts 9 drops 0 flows active
0
closed 0 CLO
demoa#
Peter Van Epp / Operations and Technical Support
Simon Fraser University, Burnaby, B.C. Canada
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://pairlist1.pair.net/pipermail/argus/attachments/20001001/698c66e3/attachment.html>
More information about the argus
mailing list