* * * * *
A limitation sure, but it sneaks around its own limitations
I was reminded by Yesterday's post on DNS (Domain Name Service) [1] that I
was playing around with SRV (Service) records, and oh yes, here's a few I set
up some time ago:
> _http._tcp IN SRV 1 1 8888 lucy
> IN SRV 2 10 8888 marvin
> IN SRV 2 20 8888 bunny-desktop
> IN SRV 2 30 8888 saltmine
>
So, let's see what I get when I query _http._tcp.roswell.area51. (the “home
domain” I use around here):
> rcode = 0.000000,
> ra = true,
> aa = true,
> query = false,
> ad = false,
> rd = true,
> cd = false,
> tc = false,
> id = 1234.000000,
>
> question =
> {
> class = "IN",
> name = "_http._tcp.roswell.area51.",
> type = "SRV",
> },
>
Okay, so far, this is expected—some DNS flags, and the “question” we asked.
Continuing …
> answers =
> {
> [1] =
> {
> port = 8888.000000,
> type = "SRV",
> name = "_http._tcp.roswell.area51.",
> weight = 30.000000,
> target = "saltmine.roswell.area51.",
> class = "IN",
> ttl = 86400.000000,
> priority = 2.000000,
> },
> [2] =
> {
> port = 8888.000000,
> type = "SRV",
> name = "_http._tcp.roswell.area51.",
> weight = 1.000000,
> target = "lucy.roswell.area51.",
> class = "IN",
> ttl = 86400.000000,
> priority = 1.000000,
> },
> [3] =
> {
> port = 8888.000000,
> type = "SRV",
> name = "_http._tcp.roswell.area51.",
> weight = 10.000000,
> target = "marvin.roswell.area51.",
> class = "IN",
> ttl = 86400.000000,
> priority = 2.000000,
> },
> [4] =
> {
> port = 8888.000000,
> type = "SRV",
> name = "_http._tcp.roswell.area51.",
> weight = 20.000000,
> target = "bunny-desktop.roswell.area51.",
> class = "IN",
> ttl = 86400.000000,
> priority = 2.000000,
> },
> },
>
Okay, these are the answers we were looking for, but wait? What's this?
> additional =
> {
> [1] =
> {
> type = "A",
> name = "lucy.roswell.area51.",
> address = "192.168.1.10",
> class = "IN",
> ttl = 86400.000000,
> },
> [2] =
> {
> type = "AAAA",
> name = "lucy.roswell.area51.",
> address = "fc00::1",
> class = "IN",
> ttl = 86400.000000,
> },
> [3] =
> {
> type = "A",
> name = "marvin.roswell.area51.",
> address = "192.168.1.13",
> class = "IN",
> ttl = 86400.000000,
> },
> [4] =
> {
> type = "AAAA",
> name = "marvin.roswell.area51.",
> address = "fc00::3",
> class = "IN",
> ttl = 86400.000000,
> },
> [5] =
> {
> type = "A",
> name = "bunny-desktop.roswell.area51.",
> address = "192.168.1.16",
> class = "IN",
> ttl = 86400.000000,
> },
> [6] =
> {
> type = "AAAA",
> name = "bunny-desktop.roswell.area51.",
> address = "fc00::2",
> class = "IN",
> ttl = 86400.000000,
> },
> [7] =
> {
> type = "A",
> name = "saltmine.roswell.area51.",
> address = "192.168.1.18",
> class = "IN",
> ttl = 86400.000000,
> },
> [8] =
> {
> type = "AAAA",
> name = "saltmine.roswell.area51.",
> address = "fc00::4",
> class = "IN",
> ttl = 86400.000000,
> },
> },
>
Yes, even though I run that braindead DNS implementation that only accepts
single questions [2], it also preemptively sent back the appropriate IP
(Internet Protocol) addresses!
Will wonders never cease. There's probably no need for multiple DNS queries
to handle SRV lookups.
[1]
gopher://gopher.conman.org/0Phlog:2015/02/17.1
[2]
https://www.isc.org/downloads/bind/
Email author at
[email protected]