Is it better to let DNS be managed by Domain Provider like GoDaddy/Namecheap or point the nameservers to hosting providers like Linode? What are the differences and disadvantages/advantages of both?
Much more than web hosting, DNS hosting is a commodity service, so as long as the DNS provider is competent, there's not much difference from one provider to another. The reasons are:
- The Internet DNS network is designed to be load distributed. That is, when users looks up example.com, they aren't all sending the request to your domain's authoritative nameservers. Typically, they're making the request to their ISP's local caching DNS server. And sometimes, these nameservers are forwarders that send the request to a more central recursive nameserver. And if the client's local DNS cache or the DNS caches of either the ISP's forwarding or recursive nameservers contain an unexpired record for your domain, then your authoritative nameservers won't be queried.
- DNS is a very powerful system, but it's also very simple. And most people don't require very complex DNS setups or ever access all but the most basic DNS features. So aside from network performance and UI, there's not really much to differentiate one service from the other. For the end user, there's even less to differentiate one DNS provider from another.
- Even the network performance is largely dependent on the client's ISP and intermediate links in most cases. And in the context of a web page request, DNS consitutes a very small amount of the total bandwidth and roundtrip time. In the context of a browser session, the performance of your DNS servers is even more negligible.
So for me, cost and convenience are the biggest factors. And it's typically cheapest and most convenient to use the web host's DNS servers. I typically register my domains through my web host as well (since it's another commodity service, and web hosts are a lot less shady on average than registrars), so I can manage nearly everything from one control panel. When I register a new domain, it's automatically added to my account, the DNS entries are created, and the vhost is set up on the web server.
On projects that demand higher security, I might look for a web host that supports DNSSEC (though this is irrelevant if you're using one of the many TLDs whose root nameservers don't support it). But aside from that, there's not a lot that necessitates shopping around.
Unless you need specific DNS features that your web host doesn't provide (and have a good reason for sticking with them) I'd just let the web host handle it. They're already managing 99% of your hosting needs, so why create another account (another bill, set of login credentials, admin panel, support staff...) and another failure point. It makes more sense to spend a little more time picking out a really good web host that's competent and trustworthy.
I apologize for the length of this answer, but I just want to add a few more points:
There are legitimate reasons for choosing a dedicated DNS service if you're part of the 1% of users who require advanced features like:
- DNS loadbalancing - typically, a CDN will provide load-balancing for you, but if you're running your own self-managed small-scale CDN with a handful of locations, then this could be useful. Round-robin DNS isn't the best load-balancing method, but a good DNS provider should have better DNS-based load-balancing methods.
- Ultra low-latency - as mentioned earlier, unless your DNS service is exceptionally poor, the performance difference between different DNS providers is unnoticeable to the end users. However, there are certain niches where such performance micro-optimizations can make a difference, such as extremely time-critical applications and/or ones with a high ratio of DNS lookups to DNS-cached requests.
- Dynamic DNS - a small minority of webmasters/server admins choose to host their server on dynamic IPs. This is far from ideal in most cases, but if you want to host a website on your home broadband connection without renting a static IP, then you pretty much need to use a specialized DNS provider.
- High availability - at the opposite extreme, there are organizations with very mission critical apps/services where the 99.98% uptime offered by typical web hosts and registrars just isn't good enough. Such customers need the degree of redundancy and SLA guarantees that companies like Amazon and Dyn provide.
Still, most don't fall into the 1% that require these services. There's also a large overlap between many of these features and CDN/cloud hosting. So carefully evaluate your situation and options first. If you're focused on performance, do some benchmarks to see if DNS is your main bottleneck. There usually are easier and much more significant performance optimizations to be made before you need load-balanced anycast DNS, etc.
- As per the comments, web hosts automatically handle a lot of DNS management for you. With a 3rd-party DNS provider, it'd take twice as long to set up a new site, and you'd have to worry about your web host making network changes that break your DNS settings. It's just more efficient letting the web host automate all of this.
- Still, you should look out for incompetent web hosts and registrars with subpar performance & UI/features. They're a small minority, but Godaddy is one of them. In particular, they routinely drop DNS requests and even instituted a policy of selective DNS blackouts instead of refurnishing their underprovisioned DNS servers. Though in a case like this, I'd simply change registrars/web hosts, as their blatant undermining of the public DNS suggests more fundamental problems with the company, such as incompetent management.
Depends on how much you value your website. It you are okay with having outages and have low traffic then a Registrar DNS would be fine and free. If you DO value your website and want to ensure optimal performance and reliability then by all means go with a managed provider. I personally work for Dyn so I would be more than happy to talk more with you about our service. We have three levels of services, personal/smb/enterprise so there is a price point for everyone and we are leaders in this industry. Route53 and UltraDNS are the other two organizations that we would consider tier 1 providers. Check out these links. they may be useful to you. :)
I use Amazon Route 53 for DNS management. They have more options than my previous provider no-ip.com. The configuration I needed no-ip could not support. Route 53 is pretty cheap compared to other DNS management services.
GoDaddy/NameCheap etc. cost less, but offer less flexibility. Running a Linode virtual server is more complicated and offers more flexibility. An alternative middle ground is companies offering specialised DNS services.
DNS-hosting, as any other smart job, better done by professionals. Domain-sellers or WebHosting-sellers are not professionals in Hostmaster duty. So answer is "it depends..."б depends on where more competent employee in the required area of business will be found.