In message <30776e96-c575-4fde-899c-fdc8441c5...@icann.org>, Joe Abley writes: > > 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?
ISP's have a contractual relationship often with shared secrets (username / password) for updating all sorts of information via a web interface. TSIG is just a username / password pair operated over DNS instead of HTTP / HTTPS. You can still do all the sanity checking you want on the names if you want. Named has the hooks to do this today. What it doesn't have yet is a external TSIG database but that is realitively easy to add. > - how can a TSIG key be shared between a network operator and a client = > that potentially don't know each other? Use a DH TKEY exchange with packets sourced from the address you want to be updated. You then have a TSIG that is bound to a address. You only allow that TSIG to update the associated reverse name. > - what name should a user be allowed to specify in their PTR RDATA? Any legal multi label hostname. You can do checks on the name for obsenties if you want. > - what stops user A from sending authentically TSIG-signed UPDATEs to a = > nameserver and changing (or removing) user B's PTR? See above. > - what consumer systems do this by default? (I think it's none, but I = > thought I'd ask) We are designing for the FUTURE. The consumer systems WILL do this if the operators add support. This is all existing protocols being bolted together. > > 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 We shipped code to do this back before the turn of the millenium with BIND 8 as it was needed for nsupdate. > [krill:~]% ifconfig en0 | grep inet6 | grep -vi fe80:: > inet6 2001:4900:1042:100:7ed1:c3ff:fee8:102f prefixlen 64 = > autoconf=20 > [krill:~]%=20 > [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=20 > [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=20 > [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=20 > [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=20 > [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=20 > [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=20 > [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 =20 > [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 =20 > [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 =20 > [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 =20 > [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=20 > [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=20 > [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=20 > [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=20 > [krill:~]% dig 5.0.0.1.0.2.4.0.1.0.0.9.4.1.0.0.2.ip6.arpa. IN SOA +short=20= > > [krill:~]% dig 0.0.1.0.2.4.0.1.0.0.9.4.1.0.0.2.ip6.arpa. IN SOA +short=20= > > [krill:~]% dig 0.1.0.2.4.0.1.0.0.9.4.1.0.0.2.ip6.arpa. IN SOA +short=20 > [krill:~]% dig 1.0.2.4.0.1.0.0.9.4.1.0.0.2.ip6.arpa. IN SOA +short=20 > [krill:~]% dig 0.2.4.0.1.0.0.9.4.1.0.0.2.ip6.arpa. IN SOA +short=20 > [krill:~]% dig 2.4.0.1.0.0.9.4.1.0.0.2.ip6.arpa. IN SOA +short=20 > . jabley.hopcount.ca. 2011032174 10800 3600 604800 86400 > [krill:~]%=20 % nsupdate -dd > update add e.4.8.5.0.0.1.0.2.4.0.1.0.0.9.4.1.0.0.2.ip6.arpa. 0 in ptr > dummy.example.net. > send Reply from SOA query: ;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 5017 ;; flags: qr rd ra; QUESTION: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0 ;; QUESTION SECTION: ;e.4.8.5.0.0.1.0.2.4.0.1.0.0.9.4.1.0.0.2.ip6.arpa. IN SOA ;; AUTHORITY SECTION: 2.4.0.1.0.0.9.4.1.0.0.2.ip6.arpa. 0 IN SOA . jabley.hopcount.ca. 2011032174 10800 3600 604800 86400 Found zone name: 2.4.0.1.0.0.9.4.1.0.0.2.ip6.arpa The master is: . couldn't get address for '.': not found % > 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? Names don't depend apon where you are in the network. You give a machine a name when you configure it for the first time. > how do I know the name is unique within this network? The name is fully qualified. There is no "unique within this network" to worry about. It's globally unique. > what TSIG key should I use? The one you negotiate with the nameserver. > 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"? Well you host your zone on a server that does dynamic updates. > 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. Well you would send one update for the forward with all your addresses. > 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. Tools become better as every starts to support it. > 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.=20= -- Mark Andrews, ISC 1 Seymour St., Dundas Valley, NSW 2117, Australia PHONE: +61 2 9871 4742 INTERNET: ma...@isc.org _______________________________________________ DNSOP mailing list DNSOP@ietf.org https://www.ietf.org/mailman/listinfo/dnsop