Why do you have to pay for domains?
The root servers
would be quite expensive to run. These are the servers that all domain lookups start at.
Whenever you go to a domain (say, www.google.com) in your web browser, it needs to do a DNS lookup to find it. Generally, your ISP's DNS servers (or something like OpenDNS if you're using it) do this lookup for you. The steps taken for the DNS lookup are as follows:
- Go to a root server (a to m.root-servers.net) and ask where to go next. It says to go to the .com servers
- Go to a .com server and ask where to go next. It says to go to the google.com servers (eg. ns1.google.com)
- Go to a google.com server and ask where to got next. It returns the IP address of Google
Some of the payment for every new domain covers the cost of running these servers.
Can't I technically avoid this cost by making my own DNS server at home that is the primary server for only my domains - and then I hook it up to the internet and sync it to my local internet exchange which sync to everything connected to it etc. until it propogates around the world?
That's what is pretty much happening when I register a domain with a proper registrar isn't it?
The last step in my list above is what this is. However, you still have the two nameservers above it (the root server and the .com server), as well as things like maintaining the whois database. As you can imagine, running servers that know about every single .com domain would be quite expensive. A company called Verisign runs the .com servers, and charges $7.34 for every new .com domain added. There is no way around this, and every new .com domain will always cost that amount.
Why do registrar get to be the sole providers of domains - since they get to set their own prices - doesn't that mean nobody is actually calling the shots, so anybody should be allowed to do it?
As I mentioned above, Verisign (among some other companies) runs the .com servers, so they can charge whatever they want for it. They need to make money and deal with server maintenance as these servers are fundamental to the internet.
Registrars have very small profit margins - If a .com domain costs $8.25, they're only making $0.91 for every domain. Take away the cost of servers and staff and they're not left with much. Creating a registrar is expensive
so there's no way around that either.