Subject: Re: pkg/17672: wwwoffle-2.7b expects IPv4-mapped IPv6 address
To: None <jlam@netbsd.org>
From: Nagae Hidetake <nagae@notwork.org>
List: netbsd-bugs
Date: 08/06/2002 06:59:11
From: "Johnny C. Lam" <jlam@netbsd.org>
Subject: Re: pkg/17672: wwwoffle-2.7b expects IPv4-mapped IPv6 address support
Date: Mon, 5 Aug 2002 14:32:30 -0700

> On Mon, Jul 22, 2002 at 12:18:30AM -0500, Frederick Bruckman wrote:
> > In article <200207212211.g6LMBJX08052@dixie.nag.notwork.org>,
> > 	nagae@notwork.org writes:
> > >>Description:
> > > wwwoffle-2.7b does not bind 0.0.0.0 if bind-ipv6 is 0:0:0:0:0:0:0:0,
> > > expecting it accepts IPv4 connections with IPv4-mapped IPv6 address.
> > > Now NetBSD does not allow IPv4-mapped IPv6 address connections,
> > > so IPv4 clients can't connect to wwwoffled.
> > >>How-To-Repeat:
> > > Set bind-ipv4 = 0.0.0.0 and bind-ipv6 = :: in wwwoffle.conf.
> > 
> > As a work-around, you can set the "net.inet6.ip6.bindv6only" sysctl
> > to "0". I don't know why that's not the default in NetBSD -- I don't
> > see a downside.
> 
> Apache has the same problem as described in this PR.  If you have INET6
> in your kernel, then Apache will only bind to the IPv6 addresses and not
> the IPv4 ones.  The workaround with Apache is you can explicitly specify
> binding to 0.0.0.0:80 in the config file, but it'd be nice to not need
> this.

I heard IPv4-mapped IPv6 address is disabled intentionally in NetBSD.
I don't understand this issue as well as I can explain the reason.
Please refer the discussion titled "RFC1933 IPv4 mapped address" in
the archive of tech-net, December 1999.

    http://mail-index.netbsd.org/tech-net/1999/12/

Following paper is also focused on this issue.

    http://www.iijlab.net/i-d/draft-itojun-ipv6-transition-abuse-01.txt


BTW, wwwoffle does not bind 0.0.0.0 even if both :: and 0.0.0.0 are
specified in wwwoffle.conf.  It compares specified addresses with
0:0:0:0:0:0:0:0 and 0.0.0.0, and binds only IPv6 one in this case
(see src/wwwoffled.c).
There is no work-around with config file.
The only way is sysctl (as Frederick wrote).
--
Nagae Hidetake   nagae@notwork.org