Monday, August 16, 2010

Bypass OpenDNS or any DNS. (no proxies)

This is the greatest discovery I have done in months. My entire network is under OpenDNS, because the OpenDNS addresses are configured in my router. Therefore, every device connected to that router is FORCED to use openDNS theoretically. For over a year, I had been trying to find a way to bypass OpenDNS, without changing any settings in the router, but everything I had found on the internet is related proxies. However, today at 4:17pm I found a new completely different way to bypass OpenDNS. The funny thing is that I was not even trying to do that. I was just comparing OpenDNS with Google's DNS, and due to a coincidence I made a discovery. OK, enough of  bragging, let me now tell you how I did this. By the way I am using Linux (OpenSUSE 11.3) but this should also work on Windows (I think).
  1. My router  was set up to use the OpenDNS addresses: 208.67.222.222 (as the primary), and 208.67.220.220 (as the secondary). As a result, every computer on the network was automatically using OpenDNS.
  2. Today, I decided to see what would happen if in addition to my router (which uses OpenDNS),  I also configure one of my computers to use Google's public DNS. Here are the instructions. (Don't forget to restart your computer after configuring the DNS settings)
  3. My hypothesis was that I would be using both DNSes simultaneously.
    The computer was set up to use Google's DNS (8.8.8.8) and the router was set up to use OpenDNS. And since the computer was connected to the router it was logical for me to come to that conclusion.
  4. So I started testing whether my hypothesis was correct.
    • I knew that one of the  features of google's DNS is doing an "I'm Feeling Lucky" type of Google search right from my address bar.  So I typed "bbc" in the address bar and the website "http://www.bbc.co.uk" opened. That was perfect because it confirmed that the Google's DNS was working properly.
    • At this point I thought that my hypothesis was correct because Google DNS was working, and since I had not changed any of the setting on my router, I thought my OpenDNS would still be protecting me and blocking certain websites. But I decided to test OpenDNS still.
      I knew that OpenDNS was configured to block all gambling and adult sites. So I typed the URL of one such site and pressed Enter, while expecting a message to appear that says "The site had been blocked".  When I did not get that message and the website opened I found out that my hypothesis was completely wrong.
     
  5. I then realized that I was using ONLY Google's DNS on that computer, and that I had discovered a way to bypass OpenDNS. 
I still don't know however, why didn't OpenDNS work. I mean it should have because the router, which is the CENTRAL POINT, is configured to use OpenDNS. Any ideas? Can someone try this and confirm whether this finding works on different hardware (I am using a D Link wireless router) ? Does it work on Windows?