[Bro] Problem: Bro listening on two ethernet interfaces
Jose M. Gonzalez
chema at cs.berkeley.edu
Mon May 23 11:49:44 PDT 2005
The C-program you mention opens several interfaces and select()'s its
descriptors. A per-packet call to select() can be too expensive in
high-volume environments. Moreover, it's not clear select() is the
cheapest way to attend several descriptors. If you want to play with
this, Kohler's click FromDevice element permits selecting between
select(), poll(), and FreeBSD's kevent() (though the latter may be buggy
when used with BPF devices).
FYI, Bro tries to limit the calls to select() to just those instants
when all the sources are dry (or every often; check IOSource.cc and
PktSrc.cc, where all the pcap stuff is located). Also, Bro orders
packets received from different sources by their timestamp (the
C-program is biased to processing packets from the first interface).
BTW, you can't compare this program with Bro. The former just dumps
packets to a file. Bro is a stateful intrusion detection system.
Christoph Goeldi wrote:
> Zitat von Vern Paxson <vern at icir.org>:
> >>i looked at the c-code. i runned it on different machines and
> >>on various interfaces. bro still drops most of the packets
> >>when i force it to listen on two interfaces.
> >>is it a libpcap problem?
> >>a bro problem?
> >>a linux problem?
> >I believe it's a Linux problem. We do this under FreeBSD in two different
> >ways, either merging the interfaces in the kernel into one logical
> >(via a custom patch), or at user level. While the in-kernel version
> >performs better, the user-level one isn't a disaster like you describe.
> >I also recall hearing others mention that multiple interfaces under Linux
> >do not work well in general. I don't use Linux, though, so can't comment
> >more directly.
> I found a small C-program that allows to listen on multiple interfaces and
> write the captured packets to a file:
> And it works!!!
> I'm really not (yet) the pcap-crack. Does somebody know what's the
> between this program and the bro implementation?
> I really appreciate any help.
> Bro mailing list
> bro at bro-ids.org
More information about the Bro