Since people voted this down without offering any concrete explanation, I am going to answer it according to my understanding of the system. I hope another noob finds it useful. It is long, but it also helps me understand the convention.
Let's say you registered the domain
abc123.com, the "com" is the top level domain, the "abc123" part is the second level domain.
When a web user wants to visit
abc123.com, he types in
abc123.com into his web browser. The browser then contact the DNS resolver (such as google DNS, level3, or opendns -- which is acting as a cache) to query if the DNS resolver has the IP address for
abc123.com previously saved. If some one had tried to reach
abc123.com previously through this resolver, the resolver should have the IP address for the
abc123.com domain name and return the IP to the browser. But if no has ever queried the DNS resolver for
abc123.com, the resolver does not have the IP cached. The resolver then need to contact the root DNS server for that information.
The root DNS server gets its info from the domain registrars. When you register the
abc123.com is recorded by the root DNS server; along with the nameservers/IP (optional).
The guess is that the "
abc123.com" must exist in the root DNS server for it be able to logically say that
ns1.abc123.com to be valid. If
abc123.com does not exist in the record, then
ns1.abc123.com must not be valid.
Aside from the DNS principle, it is not possible for you to set nameserver names that contains a non registered domain because your registrar won't allow it. If you own
abc123.com and you log into your registrar to register nameserver names, the top (".com") and second ("abc123") level domains are locked and can't be changed. You can only enter values for the sub level domain. So what you could end up with is
xxxx.abc123.com as your nameserver name;
abc123.com is fixed. So it is not possible to create a public nameserver name that contains an unregistered second-level domain name.