When are DNS "glue" (or "host") records needed?

Solution 1:

You only need glue records when the hostname for your nameserver is part of the same domain as it's trying to serve.

Glue records are published in the parent zone. Hence if the operator of example.com wanted to have nameservers named ns1.example.com and ns2.example.com then the .com domain would need something like:

example.com.     IN NS ns1.example.com.
                 IN NS ns2.example.com.
ns1.example.com. IN A  192.0.2.1
ns2.example.com. IN A  198.51.100.5

(example subnets taken from RFC 5737).

The child zone would usually have the same A records in it (even if only for consistency), but when they're in the child zone they're not technically glue records any more.

Solution 2:

I guess this entry from Wikipedia should answer that pretty well:

Circular dependencies and glue records

Name servers in delegations appear listed by name, rather than by IP address. This means that a resolving name server must issue another DNS request to find out the IP address of the server to which it has been referred. Since this can introduce a circular dependency if the nameserver referred to is under the domain for which it is authoritative, it is occasionally necessary for the nameserver providing the delegation to also provide the IP address of the next nameserver. This record is called a glue record.

For example, assume that the sub-domain en.wikipedia.org contains further sub-domains (such as something.en.wikipedia.org) and that the authoritative name server for these lives at ns1.something.en.wikipedia.org. A computer trying to resolve something.en.wikipedia.org will thus first have to resolve ns1.something.en.wikipedia.org. Since ns1 is also under the something.en.wikipedia.org subdomain, resolving ns1.something.en.wikipedia.org requires resolving something.en.wikipedia.org which is exactly the circular dependency mentioned above. The dependency is broken by the glue record in the nameserver of en.wikipedia.org that provides the IP address of ns1.something.en.wikipedia.org directly to the requestor, enabling it to bootstrap the process by figuring out where ns1.something.en.wikipedia.org is located.