Maybe this comes from my lack of understanding of how DNS fully works, but i want to host a domain on my own set of DNS servers.
That being said, i cannot seem to find a clear way to do this. From what i understand ICANN owns the TLD's (com, org, net, etc...) and licenses other companies to create subdomains. These companies sell these subdomains to the public and usually host them as well. In a nutshell anyways.
I simply want to register a domain and host it on my own servers. I am going to assume ICANN has a set of DNS servers that manage the TLD's, but how do i go about linking my DNS servers into theirs? Essentially i would have to create NS records on ICANN's root servers correct? This is were i am lost, as i don't really know how to do that. Unless i can go into the system of the party i purchased my domain from and set the NS records to my own servers. In that event won't i still be using the third parties DNS servers as a type of relay?
You would typically use whoever is giving DNS service to your registrar as a middleman, and that's how it's supposed to work. You don't just insert a record into a root DNS server yourself. In general, your registrar gives you DNS hosting for free with your domain as a way of providing additional service, but other than that, they charge you for dealing with the upstream DNS system and getting your domain's record into the TLD's name servers.
You can use DNS tracing tools to figure out the name resolution process for a domain name and get a feel of how it ends up on your server, but DNS being a hierarchical system you can't really host your domain yourself - you need agreement from a higher level DNS server.
Here's a simple web-based tracing tool: http://www.simpledns.com/lookup-dg.aspx
Keep this in mind: when I say "middleman", I mean in the authoritative chain of DNS resolution. Actual DNS queries will pretty much never go to either a root DNS server, your registrar's, or your DNS servers for that matter, as they will be cached downstream. The point up to which recursive resolution is needed only depends on what is cached and what isn't (i.e, if your ISP's DNS server already knows the authoritative name servers for .com, they don't have to go query the root for it).
Don't mix up hosting a website with hosting a DNS server. You do NOT have to run a DNS server in order to host a domain.
A domain is simply a pointer to an IP address where a website (or other service) is hosted. Ownership and control of domains is regulated by a set of vetted registrars, who sell domain ownership and maintain the lists of who owns what domain, as well as the settings/configuration associated with each domain. This data is propagated out to other DNS servers, with lower-level DNS servers always treating the registrars as the authoritative source of accurate DNS information.
Now, it is possible to create and run your own DNS servers, but this is equivalent to printing and using your own currency. It is meaningless unless everyone else also adopts your system. :)
To host a website, you just need a server that is accessible via a public IP address. Anyone could type in the IP address into a browser and see your site. Now, to associate this with a domain, you need to purchase the domain from a registrar, and then configure the domain to have your server's IP address as the 'A record' for 'www'. At that point, all a person needs to do is type in www.yourdomain.com and they will be at your server.
I a company some years ago we choosed to follow this way, to host our authoritative dns server.
To do so, we needed to buy a domain from someone that can allow use to CHANGE the nameserver addresses related to our domain.
We find NTChosting.
We created a bind9 system composed of 2+2 dns server. This allowed use to do 'on the fly' a lot of things that a LOT o providers do not allow to do using their web interface. First of all, we wre able to serve a dynamic dns.
We received 11 DDOS and about 200-250 DOS in less that 6 months.
Yes, we survived, but, no, we do not hold them no more.
I suggest to find some registrar that allow a LOT of free to you, but, I suggest to avoid it.
As realtebo already stated, you need to update the NS (nameserver) DNS records to point towards your DNS severs. I've already seen many registrars that allow to change the nameserver records for the domains. This is also a typical way when integrating with route53, cloudflare, or other DNS related services.
For testing you can setup a DNS server for e.g.
myzone.domain.tld
, and add NS records at your registrar formyzone
to point at your DNS servers. Then use some DNS server (e.g. bind9, powerdns, ...) to start managing the zone(s) myzone and all related sub-zones. You can even redirect DNS again to other servers below yourmyzone
using other NS records. Yourmyzone
servers needSOA
records formyzone.domain.tld
.And you will need at least two DNS servers, as this will be required by most registrars to allow changing the NS entries. Typically the two servera are setup as master/slave with automatic zone updates.
You can always just use your DNS address on any device you plan to use the with site. Go into your devices internet settings and locate the DNS settings. Many downloadable apps allow you to do this, then set the DNS on the device to same as server DNS on the PC. When you're finished, visit the server address on the device example : localhost://8888
Hosting your own domain on your own servers is very simple. I have been doing it at my website at home since 2006. It involves the following steps.
That's it.