Before answering your question, i will explain how Internet works.
When we open a website in a browser (or through any other way), our browser first does a DNS request for that domain and then send HTTP request to the web server.
Suppose, we have typed www.stackexchange.com in our browser, then -
- DNS request will go to resolver; query will be like - what is an IP address of www.stackexchange.com
- If resolver doesn't have the answer (A record in our case) in its cache or if TTL has been expired, then
- Resolver does the recursive query for that domain and if able to reach to authoritative servers for said domain, then resolver answer our query.
- After getting the IP address of the website, browser send a HTTP request to the web-server and show the result.
Below image shows how recursive query happens in DNS --
Now comes to your question:
If i just knew a way to access these sites without relying on the affected DNS server, I should be able to access them? Are there any methods for doing this, or is this simply not possible?
Internet in its standard format works in a way as i explained above.
Standards says, you should respect the TTL value. No standard DNS implementation (be it BIND, UNBOUND or any other) supports caching of the domain entries after expiration of TTL value.
If you really want to achieve such thing, then you have to tweak the code accordingly (I will not suggest you to do this at all; Reason is explained below).
Issues involved in not respecting TTL value -
Suppose, you have cached the IP address for a domain and you are relying on your cache, after expiration of TTL;
And domain owner changes the IP address of its domain (for any reason whatsoever);
You will keep on going to the same IP address which is there in your cache;
You will land to the OLD IP address each and every time; And you will not find any data there.
In case domain is signed (i.e., DNSSEC implementation), things will going to be really messy; if you don't respect TTL value.