India banned my site... I think?
Your requested URL has been blocked as per the directions received from Department of Telecommunications, Government of India.
A few days ago I got a ping from one of the moderators in the Top.gg Discord server about something I’ve never seen happen before.
marco_rennmaus | Rennmoose2
Hey xet apparently https://docs.top.gg is banned in India?
might wanna check this one out
one of the users is having problems with it
I’m sorry? Why would a documentation site get banned by the Indian government? Surely this is a mistake. Anyways, best to check it out to see what’s going on.
Maverick Wolf
any reason why?
you have some expired license for that URL or something?
Xetera
lemme check with a VPN
huh, weird
could be getting caught in a wide net cast on some subdomains
marco_rennmaus | Rennmoose2
well uhm
how to fix kekw
Xetera
apparently some indian isps briefly banned google docs in 2014
could be some sort of clash with that?
docs.google.com, docs.top.gg
Ok, this is a strange situation but the google docs ban seems like a fairly reasonable lead to follow.
After a little bit of digging around on Google I found out that Google sites were never blocked to begin with.
In an order dated 23 June 2014, the Delhi High Court upon a request made by Sony Entertainment ordered 472 file sharing and file hosting websites blocked, including The Pirate Bay, Google Docs, Google Videos, and Google’s URL shorterner (goo.gl) […] However, it was reported on 7 July 2014 that an updated court order blocks just 219 sites. Included are many file storage and torrent websites, but no Google sites.
So I guess that’s not it then. Time to start looking somewhere else. Should I just be getting in touch with the Department of Telecommunications at this point? I know plenty of Indian developers in different communities I hang out in, maybe they can help me figure out what’s going on.
I’m also not convinced this is a global ban. Sure, a documentation site doesn’t receive that much traffic but we have a lot of Indian users and someone would’ve either let us know about this ban a long time ago, or there would be more than one person with the same problem, right? It seems very odd that I’m only now hearing about this and only from a single user.
Let’s check in with people in a different server.
Xetera
does anyone know how I can get in touch with department of telecommunications in india lol
windows user
any reason for that?
Xetera
one of the sites I work on is blocked by them and my indian users can't access the site
it's literally just api documentation. I have no idea why it would be blocked
windows user
That's the Indian government for you
You can always try writing an email to them
That would be nice but I don’t think they want me, or really anyone emailing them, ever.
At least I can definitely relate to not wanting emails.
Oh they do have their twitter page up there though. Seems a bit silly but I know my mom managed to figure out some problems with Cox in the US only after DMing them on Twitter so maybe that’ll work for me here too.
Please ignore the fact that I yoinked the docs page from the apollo docs.I know I don’t have a ton of experience sliding into DMs but I was really hoping the government of India of all people wouldn’t leave me on read.
They also have an option to leave feedback on their site. I could try sending the same message there.
Welp, that went about as well as I thought it would. I figured this might’ve been because of my non-indian IP but sadly it didn’t work with a VPN either. I dug around in dev tools and it’s something about my captcha being invalid…? I can’t even be bothered tbh.
It’s 10 AM at this point and I don’t exactly feel like making an international call inquiring the status of my national ban. Also, I hate phone calls, please don’t call me. It might be a good idea to check if anyone else is having problems reaching the site. That should help narrow things down a bit.
Xetera
Can someone help me figure out why the Department of Telecommunications banned my site.
https://docs.top.gg if any of you are in India and want to check for me
Sky
sigh
windows user
Working for me
Sky
I'm in kolkata, india
using jio as ISP
windows user
I'm in noida
Xetera
Are you using your ISP's DNS though?
Sky
Oh right, it works with cloudflare DNS
Drac
Works for me
(im in india)
Sky
probably because you aren't using your isp's dns
Xetera
it's either that or some ISPs don't enforce the ban
windows user
It's working even on my phone
Oh so it’s a DNS issue then. Looks like it’s banned at the DNS level for Indian citizens. But windows user (if he doesn’t unknowingly have a custom DNS setup) is able to reach the site through his ISP’s DNS. Maybe different Indian ISPs enforce censorship at different levels?
I know this is something Turkish ISPs do extremely inconsistently as well. Plenty of VPN sites like NordVPN are banned by ISPs that have close ties to the state but others don’t seem to be bothered to enforce certain bans. At least I haven’t had any problems connecting to VPNs with the god-awful network provider I’m currently using, and yet my parents have. I could totally see this being the case for India as well.
Xetera
what isp are you all using
windows user
Jio
Drac
I'm on airtel
Sky
jio here too
Great, so we have two people using Jio, one of whom can view the site and another person who can’t. Could the ban be enforced geographically? That’s not unheard of but it feels like the explanations we’re reaching for here are starting to get more far-fetched every time.
At this point, I take a break from the intense investigative journalism to go back to doing what I was supposed to be doing for half an hour or so.
I come back and have the idea of looking at the traceroute for the URL to see what IP the docs URL is being resolved to when I’m on an Indian VPN. But to my surprise I see…
WHAT???
Why is it working now? Maybe it’s just a VPN thing?
Xetera
could you check on the first device that was blocked if you're still free? I feel like it's just working now for no reason
Sky
k let me reset my dns back to how it was then
Xetera
ur the best
Sky
um, it works now?
how
Xetera
this is so weird
I hate this so much
Why do these things always happen to me?
I hate web development
To be fair, it’s possible (and most likely the real reason in this specific case) that it works now because the DNS query got cached at the router and/or browser level when Sky switched his DNS server to 1.1.1.1 and got a successful response. But I’ve seen the same thing happen to at least 3 people where they inexplicably regain access to the site after a while, even when they haven’t switched their DNS server.
Possible explanation
What I think is going on here is that some Indian ISPs (most likely Jio in this case) are using some sort of heuristic to determine whether or not a DNS query to a site should be blocked, and then they are caching the result in their own DNS servers to speed up subsequent lookups.
This is completely normal practice for DNS servers, but unfortunately it feels like they might be committing the cardinal sin of caching. Where they leave out part of the context that changes the response per-user, and are instead using a single shared cache key for every user when doing any lookup. On the user side of things, this is equivalent to opening up Instagram and seeing the feed of a different person every 30 minutes.
Chances are, the DNS query was cached when the original person who tried to reach the docs page got an error. Any subsequent requests going to the same DNS server ended up returning the same cached error response for as long as the TTL lasted. Then when the cache got reset, it got replaced with the correct IP originating from the request of a non-blocked user. Which allowed the original blocked user to also be able to access the site.
As for the reason for the censor itself, I’m still not sure but my team and I are speculating that it’s caused by an old censorship of GitHub. Our docs page was being hosted on GitHub Pages and the ban is mostly likely the result of a lingering censorship of the GitHub Pages IPs. We’ve since moved to Netlify and it seems that solved the issue. Or at the very least I haven’t seen anyone bring this up since then.
Solution
If you’re being affected by this, the easiest solution is to change your DNS server your device or preferably your router uses to 1.1.1.1 or any other public DNS server that isn’t limited by Indian censorship. You do not need a VPN as it doesn’t seem like the DoT uses packet inspection and relies only on DNS lookups. If you’re using GitHub Pages to host your site, switch over to an alternative like Cloudflare Pages or Netlify to make sure you don’t run into the great mediocre firewall of India.
Enjoyed reading?
Feel free to follow or reach out to me on Twitter 1 before it dies and I have to move to a different Twitter.