So I would like someone to clarify the current situation, whether it is possible to get a "free" TLD domain (.com, .org, .net etc.), without having to pay to a registrar, by setting up an own DNS.
Não, se você quiser que ele esteja disponível para uso pelo público em geral.
Você está basicamente pagando por uma entrada de DNS em a/b/c.gtld-servers.net
, que todos os clientes já estão configurados para usar (direta ou indiretamente, devido à hierarquia do DNS). A menos que você injete seu próprio "servidor de nomes raiz" de alguma forma, você não poderá fazer isso de graça (e essa injeção provavelmente lhe custará dinheiro, de qualquer forma).
$ nslookup -type=ns cnn.com b.gtld-servers.net
Server: b.gtld-servers.net
Address: 192.33.14.30#53
Non-authoritative answer:
*** Can't find cnn.com: No answer
Authoritative answers can be found from:
cnn.com nameserver = ns1.timewarner.net.
cnn.com nameserver = ns3.timewarner.net.
cnn.com nameserver = ns5.timewarner.net.
ns1.timewarner.net internet address = 204.74.108.238
ns3.timewarner.net internet address = 199.7.68.238
ns5.timewarner.net internet address = 204.74.109.238
Depois disso, você consulta ns1.timewarner.net/ns3.timewarner.net/ns5.timewarner.net, que é o que eu suponho que você esteja se referindo quando diz
by setting up an own DNS.
$ nslookup -type=ns cnn.com ns1.timewarner.net
Server: ns1.timewarner.net
Address: 204.74.108.238#53
cnn.com nameserver = ns1.timewarner.net.
cnn.com nameserver = ns3.timewarner.net.
cnn.com nameserver = ns5.timewarner.net.
e você prossegue para se conectar a 204.74.108.238:80 para abrir o site cnn.com.