I thought it would be cool to have my own TLD, but apparently it’s all managed by the ICANN, so you can’t just name your website with any TLD you want. There are different prices. But at least you can customize your second level domain. Why aren’t TLDs like this?
Mostly because you need to be able to resolve the TLD. The root DNS servers need to know about every TLD and it would quickly be a nightmare if they had to store hundreds of thousands records vs the handful of TLDs we have now. The root servers are hardcoded, they can’t easily be scaled or moved or anything. Their job is solely to tell you where .com is, .net is, etc. You’re supposed to query those once and then you hold to your cached reply for like 2+ days. Those servers have to serve the entire world, so you want as few queries to those as possible.
Hosting a TLD is a huge commitment and so requires a lot of capital and a proper legal company to contractually commit to its maintenance and compliance with regulations. Those get a ton of traffic, and users getting their own TLDs would shift the sum of all gTLD traffic to the root servers which would be way too much.
With the gTLDs and ccTLDs we have at least there’s a decent amount of decentralization going, so .ca is managed by Canada for example, and only Canada has jurisdiction on that domain, just like only China can take away your .cn. If everyone got TLDs the namespace would be full already, all the good names would be squatted and waiting to sell it for as much as possible like already happens with the .com and .net TLDs.
There’s been attempts at a replacement but so far they’ve all been crypto scams and the dotcom bubble all over again speculating on the cool names to sell to the highest bidder.
That said if you run your own DNS server and configure your devices to use it, you can use any domain as you want. The problem is gonna get the public Internet at large to recognize it as real.
In case you didn’t know, domain names form a tree. You have the root
.
, you have TLDscom.
, and then usually the customer’s domaingoogle.com.
, then subdomainswww.google.com.
. Each level of dots typically hands over the rest of the lookup to another server. So in this example, the root servers tell you go ask .com at this IP, you go ask .com where Google is, and it tells you the IP of Google’s DNS server, then you query Google’s DNS server directly. Any subdomain under Google only involves Google, the public DNS infrastructure isn’t involved at that point, significantly reducing load. Your ISP only needs to resolve Google once, then it knows how to get*.google.com
directly from Google.You’re not just buying a name that by convention ends with a TLD. You’re buying a spot in that chain of names, the tree that is used to eventually go query your server and everything under it. The fee to get the domain contributes to the cost of running the TLD.
I’ve seen the crypto scams, unfortunately, which is basically what brought me to ask this question.
Is there a reason why they decided that domain names should be owned? Cause it kinda sounds like the metaverse, but older (like buying digital land and stuff). And idk, it just leaves a bad taste for me at least.
Because if they’re not owned, then how do you know who is who? How do we independently conclude that yup,
microsoft.com
goes to Microsoft, without some central authority managing who’s who?It’s first come first served which is a bit biased towards early adopters, but I can’t think of a better system where you go to
google.com
and reliably end up at Google. If everyone had a different idea of where that should send you it would be a nightmare, we’d be back to passing IP addresses on post-it notes to your friends to make sure we end up on the sameyoutube.com
. When you type an address you expect to end up on the site you asked, and nothing else. You don’t want to end up on Comcast YouTube because your ISP decided that’s whereyoutube.com
goes, you expect and demand the real one, the same as everyone else.And there’s still the massive server costs to run a dictionary for literally the entire Internet for all of that to work.
A lot of the times, when asking those kinds of questions, it’s useful to think about how would you implement it such that it would work. It usually answers the question.
Thanks for answering! I was more wondering what kind of issue DNS solved and why it was solved that way. Also if anyone thought of another solution.
I also read the history here (https://cyber.harvard.edu/icann/pressingissues2000/briefingbook/dnshistory.html), and it still seems pretty sketchy to me that the concern of website names being inaccessible to small businesses and such was solved with the ICANN. Didn’t this just make domain names into stuff you could speculate with? I may be tweaking rn, but I don’t think it’s necessarily right.
The issue DNS solves is the same as the phone book. You could memorize everyone’s phone number/IP, but it’s a lot easier to memorize a name or even guess the name. Want the website for walmart? Walmart.com is a very good guess.
Behind the scenes the computer looks it up using DNS and it finds the IP and connects to it.
The way it started, people were maintaining and sharing host files. A new system would come online and people would take the IP and add it to their host file. It was quickly found that this really doesn’t scale well, you could want to talk to dozens of computers you’d have to find the IP for! So DNS was developed as a central directory service any computer can request to look things up, which a hierarchy to distribute it and all. And it worked, really well, so well we still use it extensively today. The desire to delegate directory authority is how the TLD system was born. The host file didn’t use TLDs just plain names as far as I know.
At least in windows, the hosts file can point from any domain to any IP. In theory you can do things like point advertising domains to 127.0.0.1 if you wanted to make sure web requests never made it off your local machine. I did this a lot back in the day to test websites running locally but pointed to a friendlier name than localhost:randomport
I understand. Thank you!
There’s definitely been a surge in speculation on domain names. That’s part of the whole dotcom bubble thing. And it’s why I’m glad TLDs are still really hard to obtain, because otherwise they would all be taken.
Unfortunately there’s just no other good way to deal with it. If there’s a shared namespace, someone will speculate the good names.
Different TLDs can help with that a lot by having their own requirements. .edu for example, you have to be a real school to get one. Most ccTLDs you have to be a citizen or have a company operating in the country to get it. If/when it becomes a problem, I expect to see a shift to new TLDs with stronger requirements to prove you’re serious about your plans for the domain.
It’s just a really hard problem when millions of people are competing to get a decent globally recognized short name, you’re just bound to run out. I’m kind of impressed at how well it’s holding up overall despite the abuse, I feel like it’s still relatively easy to get a reasonable domain name especially if you avoid the big TLDs like com/net/org/info. You can still get xyz for dirt cheap, and sometimes there’s even free ones like .tk and .ml were for a while. There’s also several free short-ish ones, I used max-p.fr.nf for a while because it was free and still looks like a real domain, it looks a lot like a .co.uk or something.
You can use whatever top level domain you want, you just have to convince everyone in the world to use your Root servers instead of ICANN, which ain’t gonna happen. Tor has the .onion TLD, etc. There are no restrictions here. They’re more like…agreements.
But why did everyone agree to that? Couldn’t domains be determined by user, or at least a bit more decentralized? (ex: google.com leads to IP address 1.1.1.1)
How is the internet supposed to work if we don’t agree on where every site goes? How are you supposed to decentralize a central agreement?
I meant more like did it have to be a central agreement for it to scale up to what it is now?
There’s nothing to scale. DNS servers are just an address book. There’s only 200 million entries active and visited. 1.1b entries otherwise, which; for a computer isn’t a lot.
DNS servers replicate down-stream, and the root servers maintain authority. A local SQLite file could handle this easily, and you could always run your own DNS server locally if you wanted to. But there has to be a central authority. That’s why you can have any TLD you want – you run your own DNS. But since nobody sees you as an authority, they won’t be using your DNS.
DNS isn’t just an address book, it determines ownership. So in a decentralized system I could just spin up some servers that direct anyone in my area trying to reach PayPal to my IP instead.
Insanely, this is kind of how IP addresses are assigned using bgp.
In short, because of how DNS servers work. Each TLD has to be resolvable in the root servers and as far as I know ICANN doesn’t manage root DNS servers and ICANN would have to become a registrar and coordinate all those TLDs with all the root servers all over the world.
You can have whatever TLD you want, if you have a couple hundred thousand to blow.