What's new

ASUSWRT-Merlin and NextDNS issue

  • SNBForums Code of Conduct

    SNBForums is a community for everyone, no matter what their level of experience.

    Please be tolerant and patient of others, especially newcomers. We are all here to share and learn!

    The rules are simple: Be patient, be nice, be helpful or be gone!

I did the Stubby install via Entware while still running 384.14 and still got the same result with Stubby still using the older OpenSSL 1.0.2 Once I reverted back to 384.13, leaving the new Entware Stubby installed, with the edited the stubby config to point to NextDNS, it all started working correctly.
Yea the problem with the "entware" route the environment has to be setup to use correct binaries or else routers get used. That is why I mentioned the xentrk script as alternative as it should already do that.
 
This would probably be specific to the mainline branch, because my RT-AX88U is properly linked against 1.1 here.
 
The getdns build recipes were modified by Asus's 384_81044 GPL, they no longer provided the path to the OpenSSL instance to link against, so it picked whatever was available to it - namely 1.0.2.

That's why the issue only affected the mainline model - RT-AX88U, RT-AC87U and RT-AC3200 were built from different branches, without the 81044 GPL changes.
 
The getdns build recipes were modified by Asus's 384_81044 GPL, they no longer provided the path to the OpenSSL instance to link against, so it picked whatever was available to it - namely 1.0.2.
Nice that you found the root cause!

Does this mean you can fix this for a future build, or do you need a fix from ASUS?
 
Nice that you found the root cause!

Does this mean you can fix this for a future build, or do you need a fix from ASUS?

Entirely under my control. Asus on their own end won't have any issue the day they enable stubby because they do not have to deal with a dual-OpenSSL architecture like I do. So in their case, it will always use whichever OpenSSL version they decide to use at build time.
 
So I'm experimenting with NextDNS and the large dbl.oisd.nl list (known as the Large list in Diversion). NextDNS is configured to return UNSPECIFIED ADDRESS (i.e. 0.0.0.0) for blocked domains. This prevents my continued use of Pixelserv-tls locally with 192.168.1.2 as my blocking IP. Not awful, but can I have the best of both worlds?

I'm experimenting with adding this line to dnsmasq.conf to map upstream responses of 0.0.0.0 to 192.168.1.2:
Code:
alias=0.0.0.0,192.168.1.2
Added via dnsmasq.postconf:
Code:
#!/bin/sh
CONFIG="$1"
. /usr/sbin/helper.sh

if [ "$(nvram get dnspriv_enable)" = "1" ] && [ -n "$(nvram get dnspriv_rulelist | grep nextdns)" ]; then
        pc_append "alias=0.0.0.0,192.168.1.2" "$CONFIG"
        pc_delete "stop-dns-rebind" "$CONFIG"
fi
Of course, I need to disable DNS Rebind protection, but this is just an experiment to benefit from the dbl.oisd.nl list without the high memory usage on my AC68U.
 
So I'm experimenting with NextDNS and the large dbl.oisd.nl list (known as the Large list in Diversion). NextDNS is configured to return UNSPECIFIED ADDRESS (i.e. 0.0.0.0) for blocked domains. This prevents my continued use of Pixelserv-tls locally with 192.168.1.2 as my blocking IP. Not awful, but can I have the best of both worlds?

I'm experimenting with adding this line to dnsmasq.conf to map upstream responses of 0.0.0.0 to 192.168.1.2:
Code:
alias=0.0.0.0,192.168.1.2
Added via dnsmasq.postconf:
Code:
#!/bin/sh
CONFIG="$1"
. /usr/sbin/helper.sh

if [ "$(nvram get dnspriv_enable)" = "1" ] && [ -n "$(nvram get dnspriv_rulelist | grep nextdns)" ]; then
        pc_append "alias=0.0.0.0,192.168.1.2" "$CONFIG"
        pc_delete "stop-dns-rebind" "$CONFIG"
fi
Of course, I need to disable DNS Rebind protection, but this is just an experiment to benefit from the dbl.oisd.nl list without the high memory usage on my AC68U.
So is this telling any upstream response from 0.0.0.0 to behave as 192.168.1.2? Or vice versa?
 
So is this telling any upstream response from 0.0.0.0 to behave as 192.168.1.2? Or vice versa?
Any response the upstream DNS server sends back to dnsmasq that is 0.0.0.0, it is modified to return to the client as 192.168.1.2.
Here's an example dig against NextDNS directly, and again through dnsmasq.
Code:
# dig metrics.icloud.com @45.90.28.170

; <<>> DiG 9.14.4 <<>> metrics.icloud.com @45.90.28.170
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 24212
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;metrics.icloud.com.            IN      A

;; ANSWER SECTION:
metrics.icloud.com.     300     IN      A       0.0.0.0

;; Query time: 72 msec
;; SERVER: 45.90.28.170#53(45.90.28.170)
;; WHEN: Sun Dec 29 20:36:39 UTC 2019
;; MSG SIZE  rcvd: 70

# dig metrics.icloud.com @127.0.0.1

; <<>> DiG 9.14.4 <<>> metrics.icloud.com @127.0.0.1
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 64588
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;metrics.icloud.com.            IN      A

;; ANSWER SECTION:
metrics.icloud.com.     54      IN      A       192.168.1.2

;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sun Dec 29 20:36:50 UTC 2019
;; MSG SIZE  rcvd: 63
 
RMerlin posted a fix for the OpenSSL linking (384.14_1).

Unfortunately I don’t have time to test the fix this year (=today;)).

Anyone else able to check whether NextDNS over TLS now works OK?
 
NextDNS has begun testing their client on Merlin devices!

You can find the repository with code here:
https://github.com/nextdns/nextdns

It's as simple as running the following command from terminal on your router:
Code:
sh -c 'sh -c "$(curl -sL https://nextdns.io/install)"'

Keep in mind it's being advertised as a TEST so do not expect absolutely flawless functionality on all configurations.

This probably deserves its own thread instead of piggybacking off this thread, but I figure someone else can do that (such as the actual NextDNS dev who has an account here).
 
Correct, it's DoH using their native client and using dnsmasq to forward requests to it. Stubby not involved.
have you tested it yet? also is there an uninstall command?
 
So I'm experimenting with NextDNS and the large dbl.oisd.nl list (known as the Large list in Diversion). NextDNS is configured to return UNSPECIFIED ADDRESS (i.e. 0.0.0.0) for blocked domains. This prevents my continued use of Pixelserv-tls locally with 192.168.1.2 as my blocking IP. Not awful, but can I have the best of both worlds?

I'm experimenting with adding this line to dnsmasq.conf to map upstream responses of 0.0.0.0 to 192.168.1.2:
Code:
alias=0.0.0.0,192.168.1.2
Added via dnsmasq.postconf:
Code:
#!/bin/sh
CONFIG="$1"
. /usr/sbin/helper.sh

if [ "$(nvram get dnspriv_enable)" = "1" ] && [ -n "$(nvram get dnspriv_rulelist | grep nextdns)" ]; then
        pc_append "alias=0.0.0.0,192.168.1.2" "$CONFIG"
        pc_delete "stop-dns-rebind" "$CONFIG"
fi
Of course, I need to disable DNS Rebind protection, but this is just an experiment to benefit from the dbl.oisd.nl list without the high memory usage on my AC68U.
how well did this test work for you?
 

Latest threads

Support SNBForums w/ Amazon

If you'd like to support SNBForums, just use this link and buy anything on Amazon. Thanks!

Sign Up For SNBForums Daily Digest

Get an update of what's new every day delivered to your mailbox. Sign up here!
Top