I had a DNS entry mistyped as 10.8.1.1 when it should have been 10.8.8.1. Yikes.
Anyways, I almost declared victory but it seems like it's working very intermittently, so I don't think it's actually due to one of the DNS providers but perhaps something to do with Unbound. I have been able to connect to both Discord.com and Twitch.tv successfully using all combinations of Cloudflare + DoT, Google + DoT, and either of those + the ProtonVPN DNS server (10.8.8.1).
Sometimes, Discord works, but Twitch doesn't.
Sometimes, they both don't work.
There's never been a time where Twitch works and Discord doesn't.
I restarted the router between each DNS table change. Could there be an unbound DNS cache that's getting cleared and is built locally and is therefore throwing up errors after restarts? I know I'm talking crazy, just throwing it out there.
While it was working
Here's it while working with full Cloudflare plus the ProtonVPN DNS (10.8.8.1)
root@OpenWrt:~# ubus call system board; \
> for DNS in 127.0.0.1 ::1 10.8.8.1 1.1.1.1 2606:4700:4700::1111 8.8.8.
8 2001:4860:4860::8888; \
> do for OPT in "" +tcp +notcp; \
> do echo ${DNS}:${OPT}:$(dig @${DNS} -q discord.com +short ${OPT}); \
> done; done
{
"kernel": "4.14.195",
"hostname": "OpenWrt",
"system": "ARMv7 Processor rev 1 (v7l)",
"model": "Linksys WRT3200ACM",
"board_name": "linksys,rango",
"release": {
"distribution": "OpenWrt",
"version": "19.07.4",
"revision": "r11208-ce6496d796",
"target": "mvebu/cortexa9",
"description": "OpenWrt 19.07.4 r11208-ce6496d796"
}
}
127.0.0.1::162.159.128.233 162.159.138.232 162.159.136.232 162.159.135.232 162.159.137.232
127.0.0.1:+tcp:162.159.136.232 162.159.135.232 162.159.137.232 162.159.128.233 162.159.138.232
127.0.0.1:+notcp:162.159.138.232 162.159.136.232 162.159.135.232 162.159.137.232 162.159.128.233
::1:: ; <<>> DiG 9.16.8 <<>> @::1 -q discord.com +short ; (1 server found) ;; global options: +cmd ;; connection timed out; no servers could be reached
::1:+tcp:;; Connection to ::1#53(::1) for discord.com failed: connection refused.
::1:+notcp: ; <<>> DiG 9.16.8 <<>> @::1 -q discord.com +short +notcp ; (1 server found) ;; global options: +cmd ;; connection timed out; no servers could be reached
10.8.8.1::162.159.128.233 162.159.135.232 162.159.136.232 162.159.137.232 162.159.138.232
10.8.8.1:+tcp:162.159.128.233 162.159.135.232 162.159.136.232 162.159.137.232 162.159.138.232
10.8.8.1:+notcp:162.159.128.233 162.159.135.232 162.159.136.232 162.159.137.232 162.159.138.232
1.1.1.1::162.159.136.232 162.159.137.232 162.159.128.233 162.159.135.232 162.159.138.232
1.1.1.1:+tcp:162.159.136.232 162.159.137.232 162.159.138.232 162.159.128.233 162.159.135.232
1.1.1.1:+notcp:162.159.138.232 162.159.137.232 162.159.136.232 162.159.135.232 162.159.128.233
2606:4700:4700::1111::162.159.138.232 162.159.137.232 162.159.128.233 162.159.136.232 162.159.135.232
2606:4700:4700::1111:+tcp:162.159.128.233 162.159.138.232 162.159.136.232 162.159.135.232 162.159.137.232
2606:4700:4700::1111:+notcp:162.159.136.232 162.159.128.233 162.159.135.232 162.159.138.232 162.159.137.232
8.8.8.8::162.159.136.232 162.159.137.232 162.159.138.232 162.159.135.232 162.159.128.233
8.8.8.8:+tcp:162.159.136.232 162.159.137.232 162.159.138.232 162.159.135.232 162.159.128.233
8.8.8.8:+notcp:162.159.135.232 162.159.128.233 162.159.138.232 162.159.136.232 162.159.137.232
2001:4860:4860::8888::162.159.135.232 162.159.136.232 162.159.137.232 162.159.128.233 162.159.138.232
2001:4860:4860::8888:+tcp:162.159.136.232 162.159.138.232 162.159.128.233 162.159.135.232 162.159.137.232
2001:4860:4860::8888:+notcp:162.159.128.233 162.159.137.232 162.159.135.232 162.159.136.232 162.159.138.232
While it was NOT working
Here's a call to Twitch.tv during one of the times it was failing (using Cloudflare):
root@OpenWrt:~# ubus call system board; \
> for DNS in 127.0.0.1 ::1 10.8.8.1 1.1.1.1 2606:4700:4700::1111 8.8.8.
8 2001:4860:4860::8888; \
> do for OPT in "" +tcp +notcp; \
> do echo ${DNS}:${OPT}:$(dig @${DNS} -q twitch.tv +short ${OPT}); \
> done; done
{
"kernel": "4.14.195",
"hostname": "OpenWrt",
"system": "ARMv7 Processor rev 1 (v7l)",
"model": "Linksys WRT3200ACM",
"board_name": "linksys,rango",
"release": {
"distribution": "OpenWrt",
"version": "19.07.4",
"revision": "r11208-ce6496d796",
"target": "mvebu/cortexa9",
"description": "OpenWrt 19.07.4 r11208-ce6496d796"
}
}
127.0.0.1::
127.0.0.1:+tcp:
127.0.0.1:+notcp:
::1:: ; <<>> DiG 9.16.8 <<>> @::1 -q twitch.tv +short ; (1 server found) ;; global options: +cmd ;; connection timed out; no servers could be reached
::1:+tcp:;; Connection to ::1#53(::1) for twitch.tv failed: connection refused.
::1:+notcp: ; <<>> DiG 9.16.8 <<>> @::1 -q twitch.tv +short +notcp ; (1 server found) ;; global options: +cmd ;; connection timed out; no servers could be reached
10.8.8.1::151.101.2.167 151.101.66.167 151.101.130.167 151.101.194.167
10.8.8.1:+tcp:151.101.2.167 151.101.66.167 151.101.130.167 151.101.194.167
10.8.8.1:+notcp:151.101.2.167 151.101.66.167 151.101.130.167 151.101.194.167
1.1.1.1::151.101.194.167 151.101.2.167 151.101.66.167 151.101.130.167
1.1.1.1:+tcp:151.101.194.167 151.101.66.167 151.101.130.167 151.101.2.167
1.1.1.1:+notcp:151.101.2.167 151.101.66.167 151.101.194.167 151.101.130.167
2606:4700:4700::1111::151.101.130.167 151.101.194.167 151.101.66.167 151.101.2.167
2606:4700:4700::1111:+tcp:151.101.66.167 151.101.194.167 151.101.2.167 151.101.130.167
2606:4700:4700::1111:+notcp:151.101.2.167 151.101.66.167 151.101.194.167 151.101.130.167
8.8.8.8::151.101.194.167 151.101.66.167 151.101.2.167 151.101.130.167
8.8.8.8:+tcp:151.101.66.167 151.101.130.167 151.101.194.167 151.101.2.167
8.8.8.8:+notcp:151.101.194.167 151.101.130.167 151.101.2.167 151.101.66.167
2001:4860:4860::8888::151.101.194.167 151.101.130.167 151.101.2.167 151.101.66.167
2001:4860:4860::8888:+tcp:151.101.66.167 151.101.2.167 151.101.194.167 151.101.130.167
2001:4860:4860::8888:+notcp:151.101.130.167 151.101.2.167 151.101.194.167 151.101.66.167
Here's a call to Discord while it was failing (Cloudflare + 10.8.8.1):
root@OpenWrt:~# ubus call system board; \
> for DNS in 127.0.0.1 ::1 10.8.8.1 1.1.1.1 2606:4700:4700::1111 8.8.8.
8 2001:4860:4860::8888; \
> do for OPT in "" +tcp +notcp; \
> do echo ${DNS}:${OPT}:$(dig @${DNS} -q discord.com +short ${OPT}); \
> done; done
{
"kernel": "4.14.195",
"hostname": "OpenWrt",
"system": "ARMv7 Processor rev 1 (v7l)",
"model": "Linksys WRT3200ACM",
"board_name": "linksys,rango",
"release": {
"distribution": "OpenWrt",
"version": "19.07.4",
"revision": "r11208-ce6496d796",
"target": "mvebu/cortexa9",
"description": "OpenWrt 19.07.4 r11208-ce6496d796"
}
}
127.0.0.1::
127.0.0.1:+tcp:
127.0.0.1:+notcp:
::1:: ; <<>> DiG 9.16.8 <<>> @::1 -q discord.com +short ; (1 server found) ;; global options: +cmd ;; connection timed out; no servers could be reached
::1:+tcp:;; Connection to ::1#53(::1) for discord.com failed: connection refused.
::1:+notcp: ; <<>> DiG 9.16.8 <<>> @::1 -q discord.com +short +notcp ; (1 server found) ;; global options: +cmd ;; connection timed out; no servers could be reached
10.8.8.1::162.159.128.233 162.159.135.232 162.159.136.232 162.159.137.232 162.159.138.232
10.8.8.1:+tcp:162.159.128.233 162.159.135.232 162.159.136.232 162.159.137.232 162.159.138.232
10.8.8.1:+notcp:162.159.128.233 162.159.135.232 162.159.136.232 162.159.137.232 162.159.138.232
1.1.1.1::162.159.135.232 162.159.138.232 162.159.137.232 162.159.128.233 162.159.136.232
1.1.1.1:+tcp:162.159.136.232 162.159.135.232 162.159.128.233 162.159.138.232 162.159.137.232
1.1.1.1:+notcp:162.159.137.232 162.159.136.232 162.159.128.233 162.159.135.232 162.159.138.232
2606:4700:4700::1111::162.159.136.232 162.159.135.232 162.159.138.232 162.159.137.232 162.159.128.233
2606:4700:4700::1111:+tcp:162.159.128.233 162.159.138.232 162.159.135.232 162.159.137.232 162.159.136.232
2606:4700:4700::1111:+notcp:162.159.135.232 162.159.137.232 162.159.136.232 162.159.128.233 162.159.138.232
8.8.8.8::162.159.128.233 162.159.138.232 162.159.135.232 162.159.136.232 162.159.137.232
8.8.8.8:+tcp:162.159.136.232 162.159.138.232 162.159.128.233 162.159.135.232 162.159.137.232
8.8.8.8:+notcp:162.159.128.233 162.159.138.232 162.159.137.232 162.159.135.232 162.159.136.232
2001:4860:4860::8888::162.159.138.232 162.159.135.232 162.159.128.233 162.159.136.232 162.159.137.232
2001:4860:4860::8888:+tcp:162.159.136.232 162.159.135.232 162.159.128.233 162.159.137.232 162.159.138.232
2001:4860:4860::8888:+notcp:162.159.136.232 162.159.138.232 162.159.137.232 162.159.135.232 162.159.128.233
root@OpenWrt:~#
It's interesting that during the times when it's working okay, the 127.0.0.1 dig call goes through successfully. It's sometimes failing. Is that a local unbound DNS cache that's getting reset or something? Could it have anything to do with bootup order between Unbound and OpenVPN?
I'm also just going to attach this image of the Directed Zone config page in case any of these options look suspicious. As I write this, I have just restarted the router with this configuration and Discord is working but Twitch isn't.
Sorry that this is such a can of worms. I'll get in contact with ProtonVPN as well, but I'm just not sure whose side the issue's on.