Subject: [BEHAVE] Question for draft-ietf-behave-dns64-00.txt

From: Hui Deng <[email-masked]>
Date: Mon, 13 Jul 2009 14:35:43 +0800

Hello, authors,

May I ask why couldn't we send both A and AAAA  dns resolve message
like Windows XP is doing today? which seems efficient?

thanks for the discussion

-Hui

---

From: marcelo bagnulo braun <[email-masked]>
Date: Mon, 13 Jul 2009 08:46:22 +0200

Hui Deng escribió:
> Hello, authors,
>
> May I ask why couldn't we send both A and AAAA  dns reor?solve message
> like Windows XP is doing today? 

you mean the dns64 sends both A and AAAA queries upon the reception of 
the AAAA query from the IPv6 only host?

If so, the current draft reads:

   DNS64 MAY perform the query for the AAAA RR and for the A RR in
   parallel, in order to minimize the delay.  However, this would result
   in performing unnecessary A RR queries in the case no AAAA RR
   synthesis is required.  A possible trade-off would be to perform them
   sequentially but with a very short interval between them, so if we
   obtain a fast reply, we avoid doing the additional query.

Is that what you were asking for?

Regards, marcelo

> which seems efficient?
> _______________________________________________
> Behave mailing list
> [email-masked]
> https://www.ietf.org/mailman/listinfo/behave
>
>

---

From: Hui Deng <[email-masked]>
Date: Mon, 13 Jul 2009 15:00:42 +0800

I mean host could send both A and AAAA, then DNS64 don't need
translate AAAA to A.

Thanks

-Hui

2009/7/13 marcelo bagnulo braun <[email-masked]>:
> you mean the dns64 sends both A and AAAA queries upon the reception of the
> AAAA query from the IPv6 only host?
>

---

From: marcelo bagnulo braun <[email-masked]>
Date: Mon, 13 Jul 2009 09:06:55 +0200

mmm, but that is not what we need, right?
I mean, suppose you have a v6 only host that queries for both A and AAAA
suppose it gets a A RR back, what does it do with it? It certainly 
cannot send an IPv4 packet...

---

From: Hui Deng <[email-masked]>
Date: Mon, 13 Jul 2009 15:13:24 +0800

DNS64 could do something if it get  a A RR back, host don't need do anything

-Hui

2009/7/13 marcelo bagnulo braun <[email-masked]>:
> suppose it gets a A RR back, what does it do with it? It certainly cannot
> send an IPv4 packet...
>
>
>
>
> Hui Deng escribió:
>>

---

From: marcelo bagnulo braun <[email-masked]>
Date: Mon, 13 Jul 2009 09:17:20 +0200

this is what dns64 already does.
I don't understand what is your suggestion, could you describe it?

---

From: Hui Deng <[email-masked]>
Date: Mon, 13 Jul 2009 15:25:17 +0800

let me try to make it in detail.
1) host send A and AAAA to DNS64,
2) DNS64 will forward to the root DNS server.
3) Anyhow DNS64 will get A record back
4) DNS64 could add a NAT64 prefix to A record and send to the host
with AAAA record.

-Hui

---

From: marcelo bagnulo braun <[email-masked]>
Date: Mon, 13 Jul 2009 09:41:49 +0200

> 4) DNS64 could add a NAT64 prefix to A record and send to the host

I think this is what happens only that we can see the two queries in 
parallel.
The host queries for an A RR and it gets an A RR back, The DNS64 cannot 
reply with an AAAA RR to an A RR query, it would confuse the resolver

The host queries for an AAAA RR and it gets a synthetic AAAA RR back, 
cause there is no real AAAA RR

Regards, marcelo

---

From: Hui Deng <[email-masked]>
Date: Mon, 13 Jul 2009 16:06:50 +0800

yes, this send two queries in parallel, which has been done by windows xp
and PNAT draft which we proposed as well

If the host send two queries, it could send AAAA back even it received A record,
this is what DNS64 does today.

-Hui

2009/7/13 marcelo bagnulo braun <[email-masked]>:
> The host queries for an AAAA RR and it gets a synthetic AAAA RR back, cause
> there is no real AAAA RR
>
> Regards, marcelo
>

---

From: Iljitsch van Beijnum <[email-masked]>
Date: Mon, 13 Jul 2009 15:30:28 +0200

> 4) DNS64 could add a NAT64 prefix to A record and send to the host

I don't know what you mean here. the "host" in 1, is that the IPv6- 
only host that is communicating through the NAT64, or is it a remote  
DNS server, or something else?

---

From: Hui Deng <[email-masked]>
Date: Mon, 13 Jul 2009 21:48:57 +0800

the host in 1 is the IPv6 only host

2009/7/13 Iljitsch van Beijnum <[email-masked]>:
> I don't know what you mean here. the "host" in 1, is that the IPv6-only host
> that is communicating through the NAT64, or is it a remote DNS server, or
> something else?
>

---

From: Iljitsch van Beijnum <[email-masked]>
Date: Mon, 13 Jul 2009 15:55:44 +0200

>>> 4) DNS64 could add a NAT64 prefix to A record and send to the host

Ok. Note that it's not unusual for operating systems to only request  
the type of DNS records that match the current type of connectivity.

I.e., if a MacOS system is running IPv4-only it will ask for A  
records, if it's running dual stack first A and then AAAA, and if it's  
running IPv6-only it will ask for AAAA records only.

Also note that the DNS64 does not modify requests for / responses  
including A records.

---

From: Marc Blanchet <[email-masked]>
Date: Mon, 13 Jul 2009 10:01:19 -0400

> the host in 1 is the IPv6 only host

well, that assumption (an ipv6-only host requesting AAAA _and_ A
records) would need to be verified, since it seems to me not typical for
a stack to have that behavior.

Marc.

-- 
=========
IPv6 book: Migrating to IPv6, Wiley. http://www.ipv6book.ca
Stun/Turn server for VoIP NAT-FW traversal: http://numb.viagenie.ca
DTN news service: http://reeves.viagenie.ca

---

From: Hui Deng <[email-masked]>
Date: Mon, 13 Jul 2009 22:31:38 +0800

Ok, you are making a magic here,
the host in the current world almost dual stack ready,
I guess NAT64 is talking about the host which has IPv6 address
assignment or IPv6 network connection. in this case, send A and AAAA
has no issue.

DNS64 does translate AAAA record to A record.

-Hui

2009/7/13 Iljitsch van Beijnum <[email-masked]>:
> Ok. Note that it's not unusual for operating systems to only request the
> type of DNS records that match the current type of connectivity.
>
> I.e., if a MacOS system is running IPv4-only it will ask for A records, if
> it's running dual stack first A and then AAAA, and if it's running IPv6-only
> it will ask for AAAA records only.
>
> Also note that the DNS64 does not modify requests for / responses including
> A records.
>

---

From: Hui Deng <[email-masked]>
Date: Mon, 13 Jul 2009 22:32:48 +0800

Thanks marc's remindness,

here IPv6 only host means Ipv6 connection or IPv6 address assignment
only, I guess most host has dual stack ability already in the current
world.

-Hui

---

From: Marc Blanchet <[email-masked]>
Date: Mon, 13 Jul 2009 10:40:40 -0400

> only, I guess most host has dual stack ability already in the current

right, most hosts are dual stack. however, when configured with only
ipv6, they most likely send only AAAA queries. Therefore, your
assumption (ipv6-only configured dual-stack host sending A query) might
not be exact.

And if the assumption is not exact, then your suggestion would require a
change in all dual-stack OS currently deployed... not what DNS64/NAT64
is intended to do...

Marc.

---

From: Hui Deng <[email-masked]>
Date: Mon, 13 Jul 2009 22:44:13 +0800

Current Windwos XP is even configured with IPv4 address, it will send
our the  AAAA record firstly,  so this already works for lots of scenario.

-Hui

---

From: Iljitsch van Beijnum <[email-masked]>
Date: Mon, 13 Jul 2009 16:49:39 +0200

On 13 jul 2009, at 16:40, Marc Blanchet wrote:

> right, most hosts are dual stack.

But we don't really care about that, we only care about IPv6-only  
hosts for the purpose of NAT64/DNS64. (Please no "has two stacks but  
only one is active" hair splitting. Dual stack = both IP versions up  
and running.)

We DON'T want dual stack hosts to send queries to a DNS64 if we can  
avoid it because then traffic will flow through the translator while  
it could have been sent natively over IPv4.

> however, when configured with only

> change in all dual-stack OS currently deployed...

Why? The presence or absence of A requests has no impact on DNS64/ 
NAT64 operation.

---

From: liu dapeng <[email-masked]>
Date: Tue, 14 Jul 2009 10:25:34 +0800

Hi,guys, very interesting discussion, please see inline
> assumption (ipv6-only configured dual-stack host sending A query) might

Whether the host send A or AAAA may be determined by the application
not the protocol stack running on the host.

For example, there is a DNS resolve request API in windows named
getaddrinfo(), it has a parameter named 'hints', the caller can
specify which address family it can support (eg, ipv4 or ipv6) using
hints. but if the caller specify the hints.ai_family =AF_UNSPEC, the
API will send both A and AAAA request.

Since most application does not know the version of the protocol stack
running on the host, most programmer will specify hints.ai_family
=AF_UNSPEC. So, it seems common that an application running on 'IPv6
only' host will send both A and AAAA request.

BR,
Dapeng Liu

---

From: Iljitsch van Beijnum <[email-masked]>
Date: Tue, 14 Jul 2009 11:34:21 +0200

> API will send both A and AAAA request.

This depends on the OS. On my MacOS 10.5, asking for PF_INET6 when you  
have only IPv4 connectivity will generate an error:

nodename nor servname provided, or not known

However, unless I'm mistaken, Firefox always asks for both types of  
records even if you don't have both types of connectivity. Not sure  
how they do that.

Source code, mostly copied from man pages:

http://www.muada.com/ipv6socketexample.c.txt

---

From: liu dapeng <[email-masked]>
Date: Wed, 15 Jul 2009 11:19:12 +0800

> nodename nor servname provided, or not known

Yes, MacOS's behavior on this may differ from Windows, but even on the
same OS  (eg, Windows), application can specify whether to send A or
AAAA or both DNS resolve request. So, we can not say that this only
depends on the OS.

> records even if you don't have both types of connectivity. Not sure

You mean Firefox on MacOS?

> http://www.muada.com/ipv6socketexample.c.txt

The Source code uses getaddrinfo() API, and specify hints.ai_family =
PF_UNSPEC,
the program will then send both A and AAAA request. And this may be
the most common way the programmer uses hints, because the programmer
does not know what kind of protocol stack and connectivity of the
machine his program will running on.

BR,
Dapeng Liu

---

From: Mark Andrews <[email-masked]>
Date: Wed, 15 Jul 2009 14:00:20 +1000

> > nodename nor servname provided, or not known

	With what flags set?  AI_ADDRCONFIG?

-- 
Mark Andrews, ISC
1 Seymour St., Dundas Valley, NSW 2117, Australia
PHONE: +61 2 9871 4742                 INTERNET: [email-masked]

---

From: liu dapeng <[email-masked]>
Date: Wed, 15 Jul 2009 13:23:52 +0800

> 	With what flags set?  AI_ADDRCONFIG?

             hints.ai_family = PF_UNSPEC
             http://www.muada.com/ipv6socketexample.c.txt