Networking - DNS - LAME Nameserver Delegation

A nameserver which gives non-authoritative answer is usually called 'LAME'.

Every domain must have at least 2 nameservers and if each is asked, and if they all have domain zone information, they will all give an authoritative answer. If not it's a 'lame delegation'.

Refer to RFC 1912 section 2.8..

An example of lame delegation is:

example.com     IN    NS     ns1.example.com
example.com     IN    NS     ns2.example-server.net

ns1.example.com is configured to have zone information about the domain but ns2.example-server.net was not configured properly and does not have any information about the domain. So ns1 will answer authoritatively whereas ns2 won't which will be 'lame' until it is set up properly.

To get more in-depth understanding, use the dig tool for example.com.

1. First we find the nameservers of example.com:

dig example.com NS

;; ANSWER SECTION:
example.com.            158240  IN      NS      a.iana-servers.net.
example.com.            158240  IN      NS      b.iana-servers.net.

2. Since we have received 2 nameservers, we ask each of them whether they give authoritative answer. If it's authoritative, the 'aa' flag in the header will be set in the answer received ('aa' is authoritative answer).

dig @b.iana-servers.net example.com NS
dig @a.iana-servers.net example.com NS
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 60896
;; flags: qr aa rd; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0
 
;; QUESTION SECTION:
;example.com.                   IN      NS
 
;; ANSWER SECTION:
example.com.            172800  IN      NS      a.iana-servers.net.
example.com.            172800  IN      NS      b.iana-servers.net.

Look in the flags.

flags: qr aa rd

Since 'aa' is set in the answer, then both the nameservers of example.com provide authoritative answer. If it is lame delegation you won't get the authoritative answer.

CAUTION:

You should not use CNAME (alias) along with NS records as it often confuses most resolvers causing loops and often leads to 'lame' delegation.

example.com.     IN    NS     ns1.example.com.
example.com.     IN    NS     ns2.example.com.
example.com.     IN    CNAME  ns9.example-server.net

So never use CNAME along with NS records.