>From my reading of 2553bis, there seem to be at least two ways this
can be implemented (not counting the semantic changes being proposed):
- The IPv4 address space is part of (a subset of, actually) the IPv6
address space. With this approach, 0.0.0.0 can be thought of as a
more specific address in the combined address space than the IPv6
unspecified address ::. If an application binds to ::, then it will
receive all traffic (IPv4 and IPv6). Only if IPV6_V6ONLY is set
will it not receive IPv4 traffic.
A second application can bind to a specific IPv6 address (say fec0::1)
and begin to receive traffic for that specific IPv6 address while all
other IPv6 traffic is received by the application which bound to ::.
In the same manner, a second application can bind to 0.0.0.0 and it will
begin to receive all IPv4 traffic, while the IPv6 traffic continues to
be received by the initial application. This happens irrespective of
whether IPV6_V6ONLY is set. The basic rationale behind this is 0.0.0.0
is,
when encoded in IPv6 format (::ffff:0.0.0.0), is a more specific address
than ::, much in the same way that fec0::1 was in the example above, and
should be treated in the same way.
- The IPv4 address space is separate from the IPv6 address space. When an
application binds to ::, it is the equivalent of binding to the IPv6
unspecified address and the IPv4 equivalent, 0.0.0.0.
As before, a second application can bind to a specific IPv6 address (say
fec0::1) and begin to receive traffic for that specific IPv6 address
while all other IPv6 traffic is received by the application which bound
to ::.
However, a second application can only bind to 0.0.0.0 if the first
application has set IPV6_V6ONLY. This is because the first application
is already (conceptually) listening on 0.0.0.0.
2553 doesn't seem to specify which is the correct behavior. We've
implemented the second approach, and it sounds like several others
(Jim included if I'm reading it right) have as well.
Roy
On Wednesday, 06/27/2001 at 12:45 AST, Jim Bound <[EMAIL PROTECTED]>
wrote:
> > > => you can use it with the V6ONLY stuff.
> >
> > yes, but on rfc2553-compliant system you cannot have both an AF_INET
> > and an AF_INET6 socket listening on the same port.
>
> Sure you can. By using V6ONLY. Thats the point of the option. It is
> just you must set it via setsocopt.
>
> With V6ONLY you should be able to bind 0.0.0.0, 23 and bind ::,23 one
> using AF_INET and the other AF_INET6.
>
> Any IPv4 addreses entering the system will not be permitted to reach any
> AF_INET6 socket.
>
> This permits the shared port space model.
--------------------------------------------------------------------
IETF IPng Working Group Mailing List
IPng Home Page: http://playground.sun.com/ipng
FTP archive: ftp://playground.sun.com/pub/ipng
Direct all administrative requests to [EMAIL PROTECTED]
--------------------------------------------------------------------