It’s not that weird, it’s how TTLs work.
When your computer wants to know what server x.com
is, it (oversimplifying a bit) asks its own internal DNS (Domain Name System) resolver, which asks your router’s resolver, which asks your ISP’s resolver, and so on, until an authoritative resolver is found.
Each of those resolvers, before asking the next one, has its own memory it can reference just in case it gets asked about the same address very often, because asking can be costly in terms of time (because you have to ask the next server for the answer OR because so many different request are coming in that it’s difficult to answer all of them). This memory is called a cache, and everything stored in that cache is given a Time To Live (TTL).
When a resolver that knows the answer to “what server is x.com
?” is found, it gives not only the answer, but also a guess at how long that answer is valid. That guess is the TTL for the next server’s cache. This number is controlled by the owner of x.com
.
What all this means is
- If you expect that
x.com
should always resolve to the same server, the TTL should be very long (because you want the resolution to be served from the cache, meaning it’s faster) - If you expect that
x.com
will change in the near future you want the TTL to be very short (because you want resolutions to reach your authoritative server and get the new server address)
And what THAT means, relative to this particular bit of current events, is that somebody fucked up. If this change was well-planned, then the TTLs would’ve been shortened in advance of the server switch, giving time for the downstream resolvers to clear their caches.
But that didn’t happen, which means that when your device asks “what server is x.com
?”, it sometimes gets the answer from the authoritative server (updated correctly to point to Twitter) and sometimes it gets the answer from a cache (pointed at who knows what).
Basically, Elon once again rushed some shit through and sure enough it’s a fiasco.