On 2012-11-22, at 18:10, Mark Andrews <ma...@isc.org> wrote:

> Individual hosts should be doing dynamic DNS.  Where that update
> is sent to may change but all machines should be doing it and should
> support TSIG as a minimum.

The missing pieces here include:

 - what sane ISP/campus/home network/hotspot operator gives credentials to 
customers or even random users to complete dynamic updates to one of their 
master servers?
 - how can a TSIG key be shared between a network operator and a client that 
potentially don't know each other?
 - what name should a user be allowed to specify in their PTR RDATA?
 - what stops user A from sending authentically TSIG-signed UPDATEs to a 
nameserver and changing (or removing) user B's PTR?
 - what consumer systems do this by default? (I think it's none, but I thought 
I'd ask)

> Individual hosts should be able to work out where to send the updates
> by querying the DNS to find the nameservers of the containing zone
> after processing and DNAME/CNAME mappings.

I think you skipped a step -- you need to find the zone cut before you can find 
the nameservers responsible for the zone. I guess I do that by asking for 
blah.ip6.arpa/IN/SOA and checking the authority section, but what if the 
authority section is empty because of software choices in some nameserver? I 
guess then I need to

[krill:~]% ifconfig en0 | grep inet6 | grep -vi fe80::
        inet6 2001:4900:1042:100:7ed1:c3ff:fee8:102f prefixlen 64 autoconf 
[krill:~]% 
[krill:~]% dig 
7.7.2.6.4.f.d.8.e.7.2.a.e.4.8.5.0.0.1.0.2.4.0.1.0.0.9.4.1.0.0.2.ip6.arpa. IN 
SOA +short
[krill:~]% dig 
7.2.6.4.f.d.8.e.7.2.a.e.4.8.5.0.0.1.0.2.4.0.1.0.0.9.4.1.0.0.2.ip6.arpa. IN SOA 
+short 
[krill:~]% dig 
2.6.4.f.d.8.e.7.2.a.e.4.8.5.0.0.1.0.2.4.0.1.0.0.9.4.1.0.0.2.ip6.arpa. IN SOA 
+short 
[krill:~]% dig 
6.4.f.d.8.e.7.2.a.e.4.8.5.0.0.1.0.2.4.0.1.0.0.9.4.1.0.0.2.ip6.arpa. IN SOA 
+short 
[krill:~]% dig 
4.f.d.8.e.7.2.a.e.4.8.5.0.0.1.0.2.4.0.1.0.0.9.4.1.0.0.2.ip6.arpa. IN SOA +short 
[krill:~]% dig f.d.8.e.7.2.a.e.4.8.5.0.0.1.0.2.4.0.1.0.0.9.4.1.0.0.2.ip6.arpa. 
IN SOA +short 
[krill:~]% dig d.8.e.7.2.a.e.4.8.5.0.0.1.0.2.4.0.1.0.0.9.4.1.0.0.2.ip6.arpa. IN 
SOA +short 
[krill:~]% dig 8.e.7.2.a.e.4.8.5.0.0.1.0.2.4.0.1.0.0.9.4.1.0.0.2.ip6.arpa. IN 
SOA +short  
[krill:~]% dig e.7.2.a.e.4.8.5.0.0.1.0.2.4.0.1.0.0.9.4.1.0.0.2.ip6.arpa. IN SOA 
+short  
[krill:~]% dig 7.2.a.e.4.8.5.0.0.1.0.2.4.0.1.0.0.9.4.1.0.0.2.ip6.arpa. IN SOA 
+short  
[krill:~]% dig 2.a.e.4.8.5.0.0.1.0.2.4.0.1.0.0.9.4.1.0.0.2.ip6.arpa. IN SOA 
+short  
[krill:~]% dig a.e.4.8.5.0.0.1.0.2.4.0.1.0.0.9.4.1.0.0.2.ip6.arpa. IN SOA 
+short 
[krill:~]% dig e.4.8.5.0.0.1.0.2.4.0.1.0.0.9.4.1.0.0.2.ip6.arpa. IN SOA +short 
[krill:~]% dig 4.8.5.0.0.1.0.2.4.0.1.0.0.9.4.1.0.0.2.ip6.arpa. IN SOA +short 
[krill:~]% dig 8.5.0.0.1.0.2.4.0.1.0.0.9.4.1.0.0.2.ip6.arpa. IN SOA +short 
[krill:~]% dig 5.0.0.1.0.2.4.0.1.0.0.9.4.1.0.0.2.ip6.arpa. IN SOA +short 
[krill:~]% dig 0.0.1.0.2.4.0.1.0.0.9.4.1.0.0.2.ip6.arpa. IN SOA +short 
[krill:~]% dig 0.1.0.2.4.0.1.0.0.9.4.1.0.0.2.ip6.arpa. IN SOA +short 
[krill:~]% dig 1.0.2.4.0.1.0.0.9.4.1.0.0.2.ip6.arpa. IN SOA +short 
[krill:~]% dig 0.2.4.0.1.0.0.9.4.1.0.0.2.ip6.arpa. IN SOA +short 
[krill:~]% dig 2.4.0.1.0.0.9.4.1.0.0.2.ip6.arpa. IN SOA +short 
. jabley.hopcount.ca. 2011032174 10800 3600 604800 86400
[krill:~]% 

Ah, there it is. There's no MNAME specified (I rudely called it ".") but let's 
pretend I didn't do that.

Now I need to know:

  what is my name?
  how do I know the name is unique within this network?
  what TSIG key should I use?

Let's suspend disbelief and suppose that I am capable of knowing a reasonable 
name that represents a reasonable, valid FQDN, that I know it's unique, and 
that I have somehow discovered a TSIG secret for the local network that is 
still a secret, and isn't shared knowledge amongst 300,000 other customers.

Once I've answered those questions, I send a TSIG-signed UPDATE to the 
MNAME-specified server and update:

7.7.2.6.4.f.d.8.e.7.2.a.e.4.8.5.0.0.1.0.2.4.0.1.0.0.9.4.1.0.0.2.ip6.arpa. IN 
PTR krill.hopcount.ca.

Presumably we're encouraging PTR records to make sense, in which case I also 
want to update:

krill.hopcount.ca. AAAA 2001:4900:1042:100:584e:a27e:8df4:6277

Since hopcount.ca is my own domain, and I run the server referenced in the 
MNAME (assuming again I change it from "." to something sensible), there is 
some chance I could make this work. What if the domain is hosted elsewhere? 
What if it's the ISP's domain I've decided to use? What if I have no reasonable 
parent domain configured, and the local hostname is "Joe's Computer"?

I need to repeat this for every v6 address I have (I have five right now, 
apparently, not counting the link-local) and also handle deletion of AAAAs and 
PTRs that might already be there, accommodating the full range of abrupt 
disconnects that phones and networks enjoy six hundred times per day.

Even without harping on about the many unanswerable questions in the travelogue 
above, this whole procedure seems filled with fail.

> Darwin and Windows already support sending dynamic updates though
> I don't believe they handle the presence of DNAME or CNAME.

I believe these days none of (Windows, Mac OS X, iOS, Android) do this by 
default. Windows and Mac OS X can be made to do this kind of thing with 
specific configuration ("wide-area bonjour", "Active Directory"), which is 
usually only ever done in an enterprise context.

I think current tools for this suck, and current protocols are going to need 
extensions to be defined before the situation gets any better. Happy to be 
proven wrong, though.

If there's a good way to do this (enforce a naming scheme that guarantees 
uniqueness, use SIG(0), whatever) then I think this draft needs to spell it out 
in a way that people can actually implement, both as vendors of consumer 
operating systems and as v6-capable ISPs. Simply saying "this has been easy for 
a decade" doesn't really get us anywhere. 


Joe
_______________________________________________
DNSOP mailing list
DNSOP@ietf.org
https://www.ietf.org/mailman/listinfo/dnsop

Reply via email to