Subject: Re: [BEHAVE] using IPv4-mapped DNS/DNS64 resolvers fordual-stack/IPv6-only hosts

From: [email-masked]
Date: Fri, 12 Mar 2010 15:05:55 +0800

Hi, Dan,

Not that difficult.DNS64 server only needs to record the transaction ID of the A query it generates for AAAA query, and does not record the transaction ID of the A query it forwards. When DNS64 server receives the response of a A query, DNS64 server looks for the transaction ID in the records. If satisfied, DNS64 server synthesizs AAAA answer for it. Otherwise, DNS64 server just forwards the A answer to the relevant host, then the host will send traffic using IPv4.

In short, if a host explicitly wants a type A answer, DNS64 server should not touch the answer it receives, just forwards it to the host.

As for HBT, that is not my intent.
In addition, a picture is good to illustrate the environment you want to address.

Best Regards,
Zhenqiang

> IMO, DNS64 enhancement can solve your problem. Since dual 
> stack application generates A and AAAA DNS query, and IPv6 
> only application only generates AAAA query, DNS64 can 
> recognize the type of the application easily. DNS64 should 
> not synthesize the answer of A query it forwards, only 
> synthesize the answer of A query it generates for AAAA query.

Interesting idea.  The DNS64 server would need to heuristically 
accomplish that function by noticing if an IPv6 client sent an 
A query and AAAA query (for the same QNAME) within NNNN 
milliseconds.  That seems fragile.  

No matter the heuristic chosen, a requirement is the host send all
its DNS queries over the same IPv6 interface so the DNS64 server 
would know the same host is querying the same QNAME for A 
and for AAAA.  That requirement seems to conflict with existing 
behavior of some OSs which have per-interface DNS lists [1] 
and may conflict with emerging requirements in MIF [2].

[1]
http://tools.ietf.org/html/draft-ietf-mif-current-practices-00#section-2.3.1
[2] http://tools.ietf.org/html/draft-ietf-mif-problem-statement-02#section-4.1

However, I imagine you are considering doing this new function within
the host itself (host-based translation), to avoid giving a dual-stack
application a synthesized AAAA record.  Which means the dual-stack
application is effectively being forced to prefer IPv4 to reach the
IPv4-only server.  With host-based translation (HBT), that means the
application's data goes through HBT from IPv4->IPv6, across the network, 
and then through the in-network IPv6->IPv4 translator.  Versus (without
the idea proposed above) the dual-stack application using the
synthesized AAAA and using the in-network IPv6->IPv4.  In both cases
with there was an in-network IPv6->IPv4 translation for that dual-
stack application accessing an IPv4-only server.

-d

---

From: Mark Andrews <[email-masked]>
Date: Fri, 12 Mar 2010 21:20:34 +1100

In message <[email-masked]
ile>, [email-masked] writes:
> Hi, Dan,
> 
> Not that difficult.DNS64 server only needs to record the transaction ID of th
> e A query it generates for AAAA query, and does not record the transaction ID
> of the A query it forwards.

A DNS server needs to record *every* transaction id of *every* query it makes.

> When DNS64 server receives the response of a A q
> uery, DNS64 server looks for the transaction ID in the records. If satisfied,
> DNS64 server synthesizs AAAA answer for it. Otherwise, DNS64 server just for
> wards the A answer to the relevant host, then the host will send traffic usin
> g IPv4.
> 
> In short, if a host explicitly wants a type A answer, DNS64 server should not
> touch the answer it receives, just forwards it to the host.

What made you think a DNS64 server didn't answer A queries with A
records?  DNS64 servers are standard DNS servers for EVERYTHING
other than AAAA and PTR queries.  That includes A queries.  They
just do additional processing on A and PTR queries than a standard
server doesn't do.

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

---

From: "Dan Wing" <[email-masked]>
Date: Fri, 12 Mar 2010 10:39:54 -0800

> -----Original Message-----
> From: [email-masked] 
> [mailto:[email-masked]] On Behalf Of 
> [email-masked]
> Sent: Thursday, March 11, 2010 11:06 PM
> To: Dan Wing; [email-masked]
> Cc: [email-masked]
> Subject: Re: [BEHAVE] using IPv4-mapped DNS/DNS64 resolvers 
> fordual-stack/IPv6-only hosts
> 
> Hi, Dan,
> 
> Not that difficult.

I said 'fragile'.  

> DNS64 server only needs to record the 
> transaction ID of the A query it generates for AAAA query, 
> and does not record the transaction ID of the A query it 
> forwards. When DNS64 server receives the response of a A 
> query, DNS64 server looks for the transaction ID in the 
> records. If satisfied, DNS64 server synthesizs AAAA answer 
> for it. Otherwise, DNS64 server just forwards the A answer to 
> the relevant host, then the host will send traffic using IPv4.
>
> In short, if a host explicitly wants a type A answer, DNS64 
> server should not touch the answer it receives, just forwards 
> it to the host.

Changing DNS64's handling of A is not needed for what you
have proposed.  But DNS64 already does not change A at all,
which was made clearer with the addition of the second 
sentence in -07 of draft-ietf-behave-dns64,

  All other RRs MUST be returned unchanged.  This includes 
  responses to queries for A RRs.

-d

> [2] 
> http://tools.ietf.org/html/draft-ietf-mif-problem-statement-02
> #section-4.1
> 
> 
> _______________________________________________
> Behave mailing list
> [email-masked]
> https://www.ietf.org/mailman/listinfo/behave