Is it possible to keep the existence of a domain secret?
Secret to whom? And incidentally, why does it need to be secret?
Secret to your OS, applications you use (including plugins in your browser, etc.), ISP, DNS resolver you use (any public one?), registrar and registry involved, certainly not. Which makes already a long list.
(Add to that, potentially, any government or governmental agency of any country in which any of the entities in the above list reside).
Maybe having just ~4 billion IPv4 addresses makes this inevitable.
You are slightly confusing 2 things here also. Registering a domain name does not force it to resolve. Yet the mere fact it was registered, and sometimes to whom, can be considered a valuable information (ex: new companies, or merges, or new movies or games, etc.)
Not trying to rely on any secrecy necessarily, but I do notice that my personal sites always get scanned by bots very quickly
So that is another question, which may have multiple answers. What do you mean exactly by "personal sites"? And why it is a problem that the "bots" (which ones?) do come see your site?
And is it related to when a domain is registered or when you switch ON a new server with a new site attached to it?
They are numerous ways, and the below is certainly not exhaustive:
- as, albeit wrongly, the other 2 answer states, they exist zonefiles, for gTLDs; almost anyone can get access to them, but it is updated only daily, so that can't explain a visit right after registering a domain
- your ISP can look at your traffic, and resell patterns. Typically at the DNS level if you use them as DNS recursive resolver, but same for any public resolver you may use, how do you know about its policy regarding data?
- multiple applications (ex: Skype) scan links in message, purposedly to detect harmful content, but that also mean as soon as you exchange a message with a link, you will get an hit on it; even private things; various other vendors or OS can have the same things, including in smartphones
- with the world going to HTTPS, browsers rely more and more on Certificate Transparency Logs; public CAs are mandated to publish the certificates they issue, and those certificates contain names; this is almost real time plus in fact the certificates are technically stored there even before the certificate is issued to end client
- etc. (I only gave the examples above as something you may not think about but are clearly source of data)
a9j47fn83jd8j49.tld IN NSpublicly, and only send queries likesecret-subdomain.a9j47fn83jd8j49.tld IN AAAAto the authoritative nameservers fora9j47fn83jd8j49.tldover an encrypted channel, but ensuring this is impossible without bespoke tooling or doing everything by hand. Else, whatever recursive name server or middleman you're talking to will just learn the subdomains you're trying to resolve. – Jivan Pal Dec 21 '21 at 14:01NXTrecords, this is an abandoned case. You are probably thinking aboutNSEC, and in some partNSEC3. Yes, they do also provide a way to enumerate a zone. However with one big caveat. DNSSEC has to be enabled on the zone, which is a very low percentage today. – Patrick Mevzek Dec 22 '21 at 02:53