Fred Baker wrote:
So I have a dumb question.
Why not:
- use a DNS lookup that asks for all records (including A, MX, and
AAAA)
- open both a v4 and a v6 connection simultaneously
- accept the first to successfully open and shut down all others
Down sides: It gets all of the DNS data, which may be more than it
wanted to know, and it issues a second SYN-or-whatever, and in the worst
case one to each address. But it deterministically finds a solution that
works and gives the system the service it is looking for.
I the big picture, the problem with that behavior is what?
In the big picture, I think that's the direction we need to move.
But I don't think we want to have every application have that logic,
since the logic might need to evolve over time (and needs to take into
account Alain's example of umpteen different IP addresses - might want
to stagger the attempts when there are lots of IP addresses to try.)
So instead I think we want to raise the abstraction layer for the
applications by introducing a connect-by-name socket API so that the
application just hands in the FQDN and the port number to which it wants
to connect.
It isn't hard to come up with an initial cut of a connect-by-name
implementation entirely as a library routine (using non-blocking sockets
for the connect() system calls so that multiple can be outstanding and
the same time.)
Erik
--------------------------------------------------------------------
IETF IPv6 working group mailing list
ipv6@ietf.org
Administrative Requests: https://www1.ietf.org/mailman/listinfo/ipv6
--------------------------------------------------------------------