Possible DNS interception on ISP network #6603
|
I’m experiencing what appears to be DNS interception on an ISP network in Iran. A newly configured domain initially works normally for about a day. Then it suddenly stops working, and public DNS resolvers begin returning the same incorrect private IP instead of the real VPS IP. Authoritative DNS → <PUBLIC_VPS_IP> 8.8.8.8 → 10.10.34.35 Directly querying the authoritative nameserver still returns the correct public IP, and the VPS itself remains reachable by IP. Interestingly, this also happens with newly created subdomains: they start resolving to 10.10.34.35. This makes me suspect that the domain is initially unknown to the filtering system, but after approximately one day it is detected and DNS responses are subsequently rewritten to a private sinkhole IP. I also tried DNS-over-HTTPS, but connections to dns.google:443 timed out. Has anyone observed similar behavior, and is this consistent with DNS interception/censorship that dynamically discovers and blocks new domains? I appreciate any help. |
Replies: 2 comments 2 replies
|
Yes, this is textbook transparent DNS interception, and the sinkhole address gives it away.
What's actually happeningPlain DNS is UDP/53 in cleartext. A middlebox on the path doesn't need to be your resolver — it watches for UDP/53, and when it sees a query for a filtered name it injects a forged response. The forged packet arrives before the real one from Google/Cloudflare, your resolver library takes the first answer, and the genuine response is discarded as a duplicate. That's why:
The one-day delay you noticed is the interesting part and it matches what these systems do: the filter learns domains from passive observation. Your new domain is invisible until traffic to it appears, gets classified, and is added to the list. New subdomains getting sinkholed immediately afterwards means the rule landed on the parent zone as a wildcard, not on the individual name. Why DoH to
|
|
Your main domain has already been flagged, then adding subDomain is flagged too. |
Yes, this is textbook transparent DNS interception, and the sinkhole address gives it away.
10.10.34.35is not a random private IP.10.10.34.34/.35/.36are the well-known addresses Iranian ISPs return for filtered domains — they're the block-page hosts. Getting that back from8.8.8.8,1.1.1.1and9.9.9.9simultaneously doesn't mean three independent resolvers agree; it means none of your queries ever reached them.What's actually happening
Plain DNS is UDP/53 in cleartext. A middlebox on the path doesn't need to be your resolver — it watches for UDP/53, and when it sees a query for a filtered name it injects a forged response. The forged packet arrives before the real one from Google/Clou…