racluster, wounded after battling a dragon...
Carter Bullard
carter at qosient.com
Fri Nov 3 10:05:32 EST 2006
Hey Adrian,
Sorry for the delayed response. Thanks for the email, and yes Rick
is correct that
this has been an issue. I thought I fixed them all but, alas, bugs
abound.
'dport' as a aggregation object is supported, but it only makes sense
for some
protocols. Check to see that the record that is being aggregated is
an IPv[4,6]
record, and ICMP, TCP, UDP/RTP, ESP etc.... There are a lot of
protocols that
just don't have a port concept (there are some that have a dport, but
no sport, like
ESP).
I'm hoping to have new code up on the server later today (Fri).
Thanks again for the email.
Carter
On Oct 31, 2006, at 11:24 AM, Adrian Bool wrote:
>
> Hi,
>
> I have previously used ragator to look a traffic flows from
> archived pcap data. Over the last couple of days I've been trying
> to do similar in Argus 3rc33 with racluster.
>
> I'm trying for a filter of the form,
>
> filter="src net 192.168.0.0/16" model="saddr/24 daddr/24 dport"
>
> Whilst trying to get the data I want I have found a couple of bugs
> in the function argus_client.c::ArgusNewAggregator,
>
> Mask length decoding,
>
> Currently we have,
>
> char * endptr = NULL ;
>
> if ((len = strtol(mptr, endptr, 10)) == 0)
> if (*endptr == mptr)
> ArgusLog (LOG_ERR, "syntax error: %s %s", mptr,
> strerror(errno));
>
> ... but really need ...
>
> char * endptr = NULL ;
>
> if ((len = strtol(mptr, &endptr, 10)) == 0)
> if (endptr == mptr)
> ArgusLog (LOG_ERR, "syntax error: %s %s", mptr,
> strerror(errno));
>
>
> ... and possibly bomb out if we hit the syntax error. strtol
> stakes a char ** as its second argument - and if that is NULL it
> will not return any endptr information. So, we pass the address of
> the NULL ptr, it places the end of processing ptr in our end ptr
> and then we can just compare normal pointers.
>
> Then, there is currently,
>
> if (len <= 32)
> mask.addr_un.ipv4 = (0xFFFFFFFF << (32 - retn-
> >saddrlen));
>
> The mask.addr_un.ipv4 is not a function of the len we just
> decoded! Using the following seems to be ok,
>
> if (len <= 32)
> mask.addr_un.ipv4 = (0xFFFFFFFF << (32 - len));
>
> saddrlen (or daddrlen) seems to be set as appropriate lower down.
>
> I'm actually looking at aggregating on destination port - which
> worked pretty well in ragator. Lower down this function iterates
> through members of ArgusMaskDefs but only seem to be picking up
> saddr, daddr, smpls and dmpls. sport and dport seem to be
> ignored. Is aggregation on ports not implemented as yet?
>
> Regards,
>
> aid
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://pairlist1.pair.net/pipermail/argus/attachments/20061103/a4a6953a/attachment.html>
More information about the argus
mailing list