Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 25 Sep 2012 19:39:21 -0400
From:      "Mikhail T." <mi+thun@aldan.algebra.com>
To:        net@FreeBSD.org
Cc:        rpaulo@FreeBSD.org, kensmith@FreeBSD.org, ra@iop.kiev.ua
Subject:   Should not libpcap be compiled with INET6 unconditionally?
Message-ID:  <506240A9.1010301@aldan.algebra.com>

next in thread | raw e-mail | index | archive | help
On my systems, where I rebuild "world" by hand, I usually disable INET6 
(WITHOUT_INET6 is documented in src.conf(5)) -- because it is still a waste on 
today's Internet with most ISPs.

Unfortunately, this effectively disables tools like nmap, which use an 
expression like:

    Packet capture filter (device lo0): dst host 127.0.0.1 and (icmp *or icmp6*
    or ((tcp or udp or sctp) and (src host 127.0.0.1)))

for many (most?) scans. The problem is, libpcap simply refuses to recognize the 
INET6-related tokens (like the icmp6 above), unless INET6 is defined at compile 
time:

    Error compiling our pcap filter: *icmp6 not supported*

In addition to disabling nmap, this also prevents a non-INET6 machine to be used 
to examine a network dump obtained from an INET6-using host -- by tcpdump or any 
other libpcap-using tool.

Unlike other utilities, which expect INET6 support from libc, libpcap can be 
compiled with -DINET6 by itself. I'd say, it should be built this way -- 
unconditionally:

    --- Makefile    (revision 240899)
    +++ Makefile    (working copy)
    @@ -90,9 +90,7 @@
      CFLAGS+=-DHAVE_CONFIG_H -Dyylval=pcapyylval -I${.CURDIR} -I.
      CFLAGS+=-D_U_="__attribute__((unused))"
      CFLAGS+=-DHAVE_SNPRINTF -DHAVE_VSNPRINTF
    -.if ${MK_INET6_SUPPORT} != "no"
      CFLAGS+=-DINET6
    -.endif
      .if ${MK_PF} != "no"
      CFLAGS+=-DHAVE_NET_PFVAR_H
      .endif

Yours,

    -mi




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?506240A9.1010301>