DNSCrypt / dnscrypt-resolvers

Lists of public DNSCrypt / DoH DNS servers and DNS relays
https://dnscrypt.info
1.2k stars 259 forks source link

Add nextdns ultralow server #638

Closed bigdargon closed 2 years ago

bigdargon commented 2 years ago

Ultralow servers are servers located in each country, making domain name resolution faster. I am living in Vietnam, when using the ultralow server, there are 2 following servers.

; <<>> DiG 9.11.3-1ubuntu1.16-Ubuntu <<>> dns.nextdns.io @8.8.8.8
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 34850
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;dns.nextdns.io.            IN  A

;; ANSWER SECTION:
dns.nextdns.io.     300 IN  CNAME   steering.nextdns.io.
steering.nextdns.io.    60  IN  A   203.162.172.59
steering.nextdns.io.    60  IN  A   103.199.17.192

;; Query time: 281 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Tue Feb 15 09:46:08 +07 2022
;; MSG SIZE  rcvd: 98

Ultralow server does not use anycast address like 45.90.28.0 45.90.30.0 2a07:a8c0:: 2a07:a8c1::

In addition to the available nextdns resolution servers (with IP address attached). I request to add nextdns-ultralow server without ip address, then dns.nextdns.io domain name will switch to bootstrap resolver (ex 8.8.8.8) server to get server ip address.

I have DNS Stramps calculated according to the parameters

sdns://AgcAAAAAAAAAAAAOZG5zLm5leHRkbnMuaW8BLw

Thanks!

jedisct1 commented 2 years ago

Hi!

And thanks!

What should be the description for this entry? Is the main difference that the server location depends on the bootstrap resolver rather than automatic routing?

bigdargon commented 2 years ago

The ultra low server feature is currently not officially announced on the homepage, but i can find is a map of the network pops of nextdns.

Screenshot 2022-02-16 at 09-39-47 NextDNS

This is a thread I created before https://help.nextdns.io/t/y4ht599/servers-in-vietnam-are-testing

Some server anycast & ultra low https://router.nextdns.io/?limit=10&stack=dual

[{"hostname":"anexia-han-1.edge.nextdns.io","ips":["203.162.172.59"]},{"hostname":"greencloud-han-1.edge.nextdns.io","ips":["103.199.17.192","2404:fbc0::1:0:0:bb:6d75"]},{"hostname":"bangmod-bkk-1.edge.nextdns.io","ips":["116.204.183.61"]},{"hostname":"premiumrdp-bkk-1.edge.nextdns.io","ips":["43.229.79.19"]},{"hostname":"premiumrdp-kul-1.edge.nextdns.io","ips":["45.121.146.34"]},{"hostname":"thegigabit-kul-1.edge.nextdns.io","ips":["45.121.145.91"]},{"hostname":"zepto-sin-1.edge.nextdns.io","ips":["194.156.163.172","2407:b9c0:e003:180:5054:ff:fe7f:c513"]},{"hostname":"gsl-sin-1.edge.nextdns.io","ips":["103.62.48.147","2401:3bc0:600:101:c2f:a6e6:5afd:1"]},{"hostname":"vultr-sin-1.edge.nextdns.io","ips":["45.76.144.218","2001:19f0:4400:6432:5400:2ff:fec8:772b"]},{"hostname":"anexia-sin-1.edge.nextdns.io","ips":["217.146.9.93","2a00:11c0:26:4::5"]}]

And ping tool https://ping.nextdns.io/

  greencloud-han (IPv6)    33 ms
  greencloud-han           36 ms  (ultralow2)
■ anexia-han               38 ms  (ultralow1)
  anexia-hkg               39 ms  (anycast2)
  zepto-sin                39 ms
  vultr-sin                54 ms
  zepto-sin (IPv6)         58 ms
  zepto-hkg (IPv6)         60 ms  (anycast1)
  gsl-sin (IPv6)           61 ms
  anexia-sin (IPv6)        61 ms
  gsl-sin                  62 ms
  vultr-sin (IPv6)         63 ms
  premiumrdp-kul           68 ms
  anexia-sin               75 ms
  premiumrdp-bkk           78 ms
  thegigabit-kul           80 ms
  bangmod-bkk              99 ms
  zepto-fra               175 ms  (anycast1)
  anexia-ams (IPv6)       229 ms  (anycast2)
  dns1.nextdns.io (IPv6)   error  (ultralow1)
  dns2.nextdns.io (IPv6)   error  (ultralow2)

And here is the latest diagnostic (a network diagnostic tool by nextdns https://github.com/nextdns/diag) I created https://nextdns.io/diag/93eb6770-8ed1-11ec-9013-af4fb4bae918

In the diagnostic there are 2 groups of servers, Ultra Low Latency and Anycast. Ultra Low Latency servers are only available when using encrypted DNS like DoH, DoT (no anycast IP address attached). The Anycast servers use the anycast IP address, which is for plain-text DNS without encryption.

If you attach the IP address to the DoH, you will still use the Anycast server. If the domain dns.nextdns.io is resolved at bootstrap servers (with ECS) like Google DNS or OpenDNS (Cloudflare DNS is sometimes available) there will be an IP address in the country in which the user lives.

Ex:

; <<>> DiG 9.11.3-1ubuntu1.16-Ubuntu <<>> dns.nextdns.io @8.8.8.8
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 37255
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;dns.nextdns.io.            IN  A

;; ANSWER SECTION:
dns.nextdns.io.     300 IN  CNAME   steering.nextdns.io.
steering.nextdns.io.    60  IN  A   103.199.17.192
steering.nextdns.io.    60  IN  A   203.162.172.59

;; Query time: 298 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Wed Feb 16 09:59:47 +07 2022
;; MSG SIZE  rcvd: 98
; <<>> DiG 9.11.3-1ubuntu1.16-Ubuntu <<>> dns.nextdns.io @208.67.222.222
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 57309
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;dns.nextdns.io.            IN  A

;; ANSWER SECTION:
dns.nextdns.io.     298 IN  CNAME   steering.nextdns.io.
steering.nextdns.io.    60  IN  A   203.162.172.59
steering.nextdns.io.    60  IN  A   103.199.17.192

;; Query time: 337 msec
;; SERVER: 208.67.222.222#53(208.67.222.222)
;; WHEN: Wed Feb 16 10:03:44 +07 2022
;; MSG SIZE  rcvd: 98
; <<>> DiG 9.11.3-1ubuntu1.16-Ubuntu <<>> dns.nextdns.io @1.1.1.1
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 57523
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;dns.nextdns.io.            IN  A

;; ANSWER SECTION:
dns.nextdns.io.     300 IN  CNAME   steering.nextdns.io.
steering.nextdns.io.    60  IN  A   103.199.17.192
steering.nextdns.io.    60  IN  A   203.162.172.59

;; Query time: 290 msec
;; SERVER: 1.1.1.1#53(1.1.1.1)
;; WHEN: Wed Feb 16 09:59:52 +07 2022
;; MSG SIZE  rcvd: 98

But if using 9.9.9.9 (without ECS) and 9.9.9.11 (with ECS), the ultra low server will be different

; <<>> DiG 9.11.3-1ubuntu1.16-Ubuntu <<>> dns.nextdns.io @9.9.9.9
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4888
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;dns.nextdns.io.            IN  A

;; ANSWER SECTION:
dns.nextdns.io.     289 IN  CNAME   steering.nextdns.io.
steering.nextdns.io.    49  IN  A   103.62.48.147
steering.nextdns.io.    49  IN  A   217.146.9.93

;; Query time: 62 msec
;; SERVER: 9.9.9.9#53(9.9.9.9)
;; WHEN: Wed Feb 16 10:04:37 +07 2022
;; MSG SIZE  rcvd: 98
; <<>> DiG 9.11.3-1ubuntu1.16-Ubuntu <<>> dns.nextdns.io @9.9.9.11
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 11996
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
; COOKIE: 8003ee986a373c0a90e09d04620c6a125d10079ace398b8d (good)
;; QUESTION SECTION:
;dns.nextdns.io.            IN  A

;; ANSWER SECTION:
dns.nextdns.io.     300 IN  CNAME   steering.nextdns.io.
steering.nextdns.io.    60  IN  A   203.162.172.59
steering.nextdns.io.    60  IN  A   103.199.17.192

;; Query time: 305 msec
;; SERVER: 9.9.9.11#53(9.9.9.11)
;; WHEN: Wed Feb 16 10:05:54 +07 2022
bigdargon commented 2 years ago

@jedisct1 I have updated and checked it seems that the DNS Stamp of nextdns and nextdns-ultralow are the same. And nextdns-ultralow has been assigned an IP address? So, the incoming server is still anycast, not ultralow (I tried it on raspberry and the result is at https://test.nextdns.io it still shows anycast as true)

As far as I know, dnscrypt-proxy will connect to hostname using the IP address available in DNS Stamp. And I want to add -ultralow by not putting IP address in DNS Stamp, then dnscrypt-proxy will resolve hostsname via bootstrap server.

Please check this out! Thank you!