To:
<itojun@iijlab.net>
cc:
<dnsop@cafax.se>
From:
Philip Hazel <ph10@cus.cam.ac.uk>
Date:
Thu, 20 Sep 2001 09:11:04 +0100 (BST)
In-Reply-To:
<12584.1000889027@itojun.org>
Sender:
owner-dnsop@cafax.se
Subject:
Re: operationally (if not yet WG) related
On Wed, 19 Sep 2001 itojun@iijlab.net wrote:
> yes, the implementation differences are painful for application
> developers, however, implementers failed to reach the consensus
> after a long long holy war. the safest way for application
> implementers is to avoid using IPv4 mapped address at all and use
> AF_INET6/AF_INET sockets separately.
Data point for information:
You cannot at present do that on all OS, as I found when sorting this
out for Exim.
. On Solaris, an IPv6 socket will accept IPv4 calls, and give them as mapped
addresses. However, if an IPv4 socket is also listening, calls are
directed to the appropriate socket.
. On (some versions of) Linux, an IPv6 socket will accept IPv4 calls, and
give them as mapped addresses, but an attempt also to listen on an IPv4
socket causes an error.
. On OpenBSD, an IPv6 socket will not accept IPv4 calls. You have to set up
two sockets if you want to accept both kinds of call.
. FreeBSD is like OpenBSD, but it has the IPV6_V6ONLY socket option, which
can be turned off, to make it behave like the versions of Linux described
above.
. I heard a report that the USAGI IPv6 stack for Linux has implemented
IPV6_V6ONLY.
--
Philip Hazel University of Cambridge Computing Service,
ph10@cus.cam.ac.uk Cambridge, England. Phone: +44 1223 334714.