Makes sense. Thank you, Ian. Also for anyone who will stumble upon this thread in the future, this issue <https://github.com/golang/go/issues/25336> shows what impact on performance consulting every server would have.
пятница, 15 марта 2019 г., 18:42:47 UTC+3 пользователь Ian Lance Taylor написал: > > On Fri, Mar 15, 2019 at 8:31 AM Timofei Bredov <timofe...@gmail.com > <javascript:>> wrote: > > > > Context: I use go version go1.12 linux/amd64. I have a VPN set up which > has private DNS server. This server can resolve URLs that have top level > domain name ".custom-tld". > > > > File /etc/resolvconf has the following content: > > > > nameserver 8.8.8.8 > > nameserver 1.1.1.1 > > nameserver 192.10.10.18 > > > > When I try to use net.LookupSRV("", "", "service.name.custom-tld") it > returns "no such host" error because it tries the first server and then > fails after host name is not found. However local DNS resolver works as > expected and resolves the URL no problem. > > > > I have two questions: > > > > Should default DNS resolver for linux platform use every server in > /etc/resolvconf to try to lookup a URL? > > What is a better way to handle DNS resolution in that situation? > > In general the Go resolver is intended to work like the historic C > resolver. The historic C resolver will query one nameserver. If that > nameserver times out, it will try the next one. See "man > resolv.conf". So if one of your name servers is returning "no such > host", then both the Go and C name servers will stop at that point. > > One common approach for this situation would be to use a single > nameserver line and point it to a DNS server that replies with the > desired result for your special domain and otherwise forwards the > query to a normal caching resolver. > > Ian > -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.