[dns-operations] sibling glue
Joe Abley
jabley at hopcount.ca
Tue Jun 23 17:18:59 UTC 2015
On 23 Jun 2015, at 13:03, Tony Finch wrote:
> A question for those who know more about registry rules than me...
>
> In the .example zone there can be five kinds of delegation NS record
> (taking each record separately rather than the whole delegation NS
> RRset).
I think there are probably as many answers to this as there are
registries, and one size definitely doesn't fit all, but let's assume
you're talking about the kind of EPP data model that grew out of the
RRP-accessible registries that were operated by Verisign, back in the
day (i.e. there are domain objects and host objects).
> The requirements I am stating below are from the DNS point of view
> rather
> than from the registry point of view.
I think that's not going to help you get a clear answer, but let's give
it a try. People who actually know how registries work can correct all
the horrible mistakes I'm about to type. It has been a while. The EPP
spec might be worth reading.
> glue-forbidden.example. IN NS ns0.example.net.
> ;
> ; You must not provide glue when the name server host name is not a
> ; subdomain of the parent domain (.example in this case).
The EPP data model includes host objects and domain objects. Every
domain is linked to one or more host objects (two or more in practice,
for policy reasons orthogonal to the data model).
In this case the domain object glue-forbidden.example would be linked to
a host object ns0.example.net. Since the host object's name is not
subordinate to the zone to be produced by the registry, it has no
addresses associated with it. Hence there is no possibility of producing
a zone from the registry that includes glue records.
> not-glue.example. IN NS ns1.example.
> ;
> ; A child zone's name server host name can be in the authoritative
> data
> ; for the parent zone. This isn't glue.
In this case the domain object not-glue.example is linked to the host
object ns1.example. Since the host object's name is subordinate to the
zone to be produced by the registry (it's named under example) the host
object must include one or more addresses. This means that the zone
produced from the registry can include a glue record alongside the
delegation.
Whether or not a glue record is actually included in the zone depends on
the algorithm by which the zone is produced from the registry. The most
simple algorithm is to include a delegation for every domain object and
glue records for every host object, but other algorithms that
distinguish between glue that is definitively required and glue that
might not be required are surely possible.
Of course, it's still possible to shoot yourself in the foot, e.g.
$ORIGIN COW.
DOMAIN IN NS A.DOMAIN.HORSE.
NS B.DOMAIN.HORSE.
$ORIGIN HORSE.
DOMAIN IN NS A.DOMAIN.COW.
NS B.DOMAIN.COW.
No glue is possible to include in either of the COW or HORSE zones (the
corresponding host objects have no address attributes) and hence none of
{A, B}.DOMAIN.{COW, HORSE} can ever be resolved unless the nameservers
for COW or HORSE are also authoritative for the DOMAIN.COW or
DOMAIN.HORSE zones.
> glue-required.example. IN NS ns2.glue-required.example.
> ;
> ; You must provide glue when a child zone has a name server whose host
> ; name is a subdomain of the child zone's apex.
I don't think that condition is part of the EPP data model; the criteria
that matters here is that the host object's name is subordinate to the
name of the zone produced from the registry, which means that one or
more address records for the host are required.
> ; There are two cases where a child zone has a name server whose host
> name
> ; is a subdomain of a different sibling child zone of the same parent
> zone.
>
> sibling-must-glue.example. IN NS ns2.glue-required.example.
Ditto.
> ; The name server of this child zone can also be a name server of its
> ; sibling zone, in which case the sibling delegation must provide
> glue.
>
> sibling-may-glue.example. IN NS ns3.sibling.example.
Ditto.
> ; The name server of this child zone can be a subdomain of its sibling
> ; zone but not a name server for the sibling zone. Glue is optional in
> ; this case.
The host object ns3.sibling.example requires one or more address
attributes. Whether or not glue records are published depends on the
zone publication algorithm, as above.
Joe
More information about the dns-operations
mailing list