# How parent name server communicates with child name server



## TomHsiung (Aug 30, 2018)

Hi, guys

I have a concern. The network books does not tell in detail about how the parent name server communicates with child name server.

Suppose, we have a domain of tomhsiung.com, and this second level domain has its own authoritative DNS server called ns1.tomhsiung.com, so this domain is a separate zone.

Books just say the DNS query is firstly sent to a root DNS server, and the root DNS server replies the name server information of TLD for com. Then a second DNS query is sent to the authoritative DNS server for com, and it replies the name server information of tomhsiung.com. Finally, the last query is sent to the name server authoritative for tomhsiung.com and a IP address mapping is replied.

In this case, there are three DNS zones: the root, the TLD (for com.), and the tomhsiung.com., and I want to understand how the root name server knows the information of the TLD, and how the TLD knows the information of tomhsiung.com,

Tom


----------



## ShelLuser (Aug 30, 2018)

This requires way more info. For starters: what DNS software are you actually using?

There is a HUGE difference between those and how they communicate.


----------



## TomHsiung (Aug 31, 2018)

I think macOS server uses BIND as its DNS software.


----------



## TomHsiung (Aug 31, 2018)

I just did some research and the DNS seems to work like:

1) You must register your DNS name server, e.g., ns1.toms-therapeutics.site, at website of your host / domain provider. This requires a DNS name (e.g., ns1.toms-therapetuics.site) and static IP address (123.1.2.3) of the name server.

This step is to make sure that your domain of your name server is registered, and along with its A record (domain and IP mapping) are upload to the parent DNS name server (e.g., an TLD name server).

Resource record should be like (there is a period / dot after "site"):
ns1.toms-therapeutics.site. IN A 123.1.2.3

2) You must configure your custom DNS name server in the name server setting webpage of your host / domain provider. In this case, you should point your domain's name server to ns1.toms-therapeutics.site

This step is to make sure that your domain and its authoritative name server mapping, as a NS record, is uploaded to the parent DNS name server.

Resource record should be like
toms-therapeutics.site. IN NS ns1.toms-therapeutics.site.


----------



## ShelLuser (Aug 31, 2018)

If we're talking about registering a real domain then yes: the upstream needs to know about that somehow. You register a domain with a provider and some (not all!) will then allow you to configure your own DNS server(s) for this.

Which is the first thing to keep in mind: some providers require the use 2 DNS servers working on different IP addresses in order to guarantee stability. If you want to host a Dutch domain (.nl) then this is (or was, I didn't keep up) even a mandatory rule.

About the resource records: that's why I mentioned that more information was required. Those heavily depend on the software being used, there is no set out standard here. Also: the only thing the suffix dot does is to prevent the server from expanding the domain. It doesn't _have_ to look like that, in fact this is probably much easier:

```
NS      ns1.intranet.lan.
                        NS      ns2.intranet.lan.
;
ns1                     A       10.0.1.5
ns1a                    A       10.0.1.100
ns2                     A       10.0.0.5
ns2a                    A       10.0.0.100
```
I simply let the server expand all the names and leave it at that. Note: this is Bind, but like I said the notation heavily depends on the software being used.


----------

