I've been told to assume it takes as long as 48 hours for a DNS change to propagate throughout the entire Internet, because some DNS servers cache their entries for longer than my TTL.
However, for years and across ISPs and domains, every time I've made a DNS change I see the effects within a couple of hours.
Is it still true that I need to assume a full two days for everyone to see my changes?
It takes until the last cache holding the old data expires and that server fetches the new data.
You have limited control over that with the TTL value on the records, but there are ISPs who disregard cache times, cache everything for the SOA
expire
orrefresh
time, assign their own arbitrary value (AOL used to be famous for caching everything for 1 day regardless of any other directives), and probably a few broken implementations that always re-query the data.Bottom line: It takes as long as it takes.
48 hours is a good rule of thumb that has served the internet well.
Yes, and in some cases it can be much longer.
I think it's a 80/20 problem. Don't spend 80% of your energy trying to figure out how 20% of Internet users will get to your site. Stick to RFCs and you've done your job. The rest is beyond your control anyway.