dns-proxy-server icon indicating copy to clipboard operation
dns-proxy-server copied to clipboard

host.docker can't be resolved

Open c93614 opened this issue 5 years ago • 5 comments

What is Happening

dps can't resolve host.docker and error occurs.

Steps to Reproduce

docker run --rm  --hostname dns.mageddo --name dns-proxy-server -p 5380:5380 \
-v /opt/dns-proxy-server/conf:/app/conf \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /etc/resolv.conf:/etc/resolv.conf \
defreitas/dns-proxy-server

host.docker can't be resolved both in host or in another container.

Specs:

  • OS: CentOS 8.1.1911 AND 7.6.1810
  • dps.log

c93614 avatar Jun 15 '20 17:06 c93614

It's crashing right here, then it means the resolved gateway IP is not a valid one, try to enable debug logs and find for status=FindDpsNetworkGatewayIp, ip= or status=FindDockerNetworkNetworkGatewayIp, ip at the logs.

I will download centos and try to simulate the issue, maybe it's related to centos, or maybe just related with your specific installation.

mageddo avatar Jul 09 '20 23:07 mageddo

You can change the log level by changing it's config

mageddo avatar Jul 09 '20 23:07 mageddo

Hello @mageddo, I'm having the same issue. Not sure what I should look for, but here's the log output with log level set to "DEBUG".

dns_1 | 2020/08/18 07:41:48.600003 DEBUG f=dns.go:50 pkg=main m=handleQuestion uuid=0b567bad22 status=begin, reqId=20215, questions=1, question=host.docker., type=TypeAAAA dns_1 | 2020/08/18 07:41:48.600023 DEBUG f=dns.go:50 pkg=main m=handleQuestion uuid=c295ea0814 status=begin, reqId=19915, questions=1, question=host.docker., type=TypeA dns_1 | 2020/08/18 07:41:48.600030 DEBUG f=local.go:29 pkg=github.com/mageddo/dns-proxy-server/events/local m=LoadConfiguration status=loading, path=/app/conf/config.json dns_1 | 2020/08/18 07:41:48.600035 DEBUG f=local.go:29 pkg=github.com/mageddo/dns-proxy-server/events/local m=LoadConfiguration status=loading, path=/app/conf/config.json dns_1 | 2020/08/18 07:41:48.600186 DEBUG f=dockernetwork.go:74 pkg=github.com/mageddo/dns-proxy-server/docker/dockernetwork m=FindNetworkGatewayIp status=begin, network=dps dns_1 | 2020/08/18 07:41:48.600186 DEBUG f=dockernetwork.go:74 pkg=github.com/mageddo/dns-proxy-server/docker/dockernetwork m=FindNetworkGatewayIp status=begin, network=dps dns_1 | 2020/08/18 07:41:48.601515 DEBUG f=dockernetwork.go:63 pkg=github.com/mageddo/dns-proxy-server/docker/dockernetwork m=GetGatewayIp status=FindDpsNetworkGatewayIp, ip= dns_1 | 2020/08/18 07:41:48.601655 ERROR f=panic.go:523 pkg=runtime m=gopanic uuid=0b567bad22 status=fatal-error-handling-question, req=[{Name:host.docker. Qtype:28 Qclass:1}], err=runtime error: index out of range, stack=goroutine 48 [running]: dns_1 | runtime/debug.Stack(0xc000129870, 0x7f3260, 0xbbd940) dns_1 | /usr/local/go/src/runtime/debug/stack.go:24 +0x9d dns_1 | main.handleQuestion.func1(0x8fede0, 0xc00049c210, 0xc00049a090) dns_1 | /app/src/github.com/mageddo/dns-proxy-server/dns.go:32 +0x5a dns_1 | panic(0x7f3260, 0xbbd940) dns_1 | /usr/local/go/src/runtime/panic.go:522 +0x1b5 dns_1 | github.com/mageddo/dns-proxy-server/proxy.SystemDnsSolver.getMsg(0xc00048c2d4, 0xb, 0x0, 0x0, 0xc00048c2d4, 0xc, 0xc00001001c, 0xc0003ba000) dns_1 | /app/src/github.com/mageddo/dns-proxy-server/proxy/system.go:38 +0x387 dns_1 | github.com/mageddo/dns-proxy-server/proxy.SystemDnsSolver.Solve(0x8fede0, 0xc00049c210, 0xc00048c2d4, 0xc, 0x1001c, 0xc00044dfa0, 0x20, 0x811aa0) dns_1 | /app/src/github.com/mageddo/dns-proxy-server/proxy/system.go:22 +0x16e dns_1 | github.com/mageddo/dns-proxy-server/proxy.(*DefaultDnsSolverFactory).Solve(0xbe7398, 0x8fede0, 0xc00049c210, 0xc00048c2d4, 0xc, 0xc00001001c, 0xc0000d2b80, 0x4, 0x4, 0x1, ...) dns_1 | /app/src/github.com/mageddo/dns-proxy-server/proxy/factory.go:19 +0xd8 dns_1 | github.com/mageddo/dns-proxy-server/proxy.(*CnameDnsSolverFactory).Solve(0xc000129db0, 0x8fede0, 0xc00049c210, 0xc00048c2d4, 0xc, 0x1001c, 0xc0000d2b80, 0x4, 0x4, 0x715c85, ...) dns_1 | /app/src/github.com/mageddo/dns-proxy-server/proxy/factory.go:48 +0xbd dns_1 | main.handleQuestion(0x902a60, 0xc000386880, 0xc00049a090) dns_1 | /app/src/github.com/mageddo/dns-proxy-server/dns.go:51 +0x48e dns_1 | github.com/mageddo/dns-proxy-server/vendor/github.com/miekg/dns.HandlerFunc.ServeDNS(0x88a448, 0x902a60, 0xc000386880, 0xc00049a090) dns_1 | /app/src/github.com/mageddo/dns-proxy-server/vendor/github.com/miekg/dns/server.go:84 +0x44 dns_1 | github.com/mageddo/dns-proxy-server/vendor/github.com/miekg/dns.(*ServeMux).ServeDNS(0xc0002d1e30, 0x902a60, 0xc000386880, 0xc00049a090) dns_1 | /app/src/github.com/mageddo/dns-proxy-server/vendor/github.com/miekg/dns/server.go:210 +0x63 dns_1 | github.com/mageddo/dns-proxy-server/vendor/github.com/miekg/dns.(*Server).serve(0xc000356000, 0x8fad00, 0xc00049c1e0, 0x8f6c40, 0xc0002d1e30, 0xc0003f0e00, 0x1d, 0x200, 0xc000010520, 0xc00044ddc0, ...) dns_1 | /app/src/github.com/mageddo/dns-proxy-server/vendor/github.com/miekg/dns/server.go:579 +0x2a4 dns_1 | created by github.com/mageddo/dns-proxy-server/vendor/github.com/miekg/dns.(*Server).serveUDP dns_1 | /app/src/github.com/mageddo/dns-proxy-server/vendor/github.com/miekg/dns/server.go:533 +0x29e dns_1 | 2020/08/18 07:41:48.601528 DEBUG f=dockernetwork.go:63 pkg=github.com/mageddo/dns-proxy-server/docker/dockernetwork m=GetGatewayIp status=FindDpsNetworkGatewayIp, ip= dns_1 | 2020/08/18 07:41:48.601739 ERROR f=panic.go:523 pkg=runtime m=gopanic uuid=c295ea0814 status=fatal-error-handling-question, req=[{Name:host.docker. Qtype:1 Qclass:1}], err=runtime error: index out of range, stack=goroutine 47 [running]: dns_1 | runtime/debug.Stack(0xc0004df870, 0x7f3260, 0xbbd940) dns_1 | /usr/local/go/src/runtime/debug/stack.go:24 +0x9d dns_1 | main.handleQuestion.func1(0x8fede0, 0xc000089c80, 0xc0000b4bd0) dns_1 | /app/src/github.com/mageddo/dns-proxy-server/dns.go:32 +0x5a dns_1 | panic(0x7f3260, 0xbbd940) dns_1 | /usr/local/go/src/runtime/panic.go:522 +0x1b5 dns_1 | github.com/mageddo/dns-proxy-server/proxy.SystemDnsSolver.getMsg(0xc00009b2d0, 0xb, 0x0, 0x0, 0xc00009b2d0, 0xc, 0xc000010001, 0xc0003ba000) dns_1 | /app/src/github.com/mageddo/dns-proxy-server/proxy/system.go:38 +0x387 dns_1 | github.com/mageddo/dns-proxy-server/proxy.SystemDnsSolver.Solve(0x8fede0, 0xc000089c80, 0xc00009b2d0, 0xc, 0x10001, 0xa0, 0x1b, 0xbfc6ff6f23c3a082) dns_1 | /app/src/github.com/mageddo/dns-proxy-server/proxy/system.go:22 +0x16e dns_1 | github.com/mageddo/dns-proxy-server/proxy.(*DefaultDnsSolverFactory).Solve(0xbe7398, 0x8fede0, 0xc000089c80, 0xc00009b2d0, 0xc, 0xc000010001, 0xc0000d2b80, 0x4, 0x4, 0xc0003ae6c0, ...) dns_1 | /app/src/github.com/mageddo/dns-proxy-server/proxy/factory.go:19 +0xd8 dns_1 | github.com/mageddo/dns-proxy-server/proxy.(*CnameDnsSolverFactory).Solve(0xc0004dfdb0, 0x8fede0, 0xc000089c80, 0xc00009b2d0, 0xc, 0x10001, 0xc0000d2b80, 0x4, 0x4, 0x715c85, ...) dns_1 | /app/src/github.com/mageddo/dns-proxy-server/proxy/factory.go:48 +0xbd dns_1 | main.handleQuestion(0x902a60, 0xc0003bc900, 0xc0000b4bd0) dns_1 | /app/src/github.com/mageddo/dns-proxy-server/dns.go:51 +0x48e dns_1 | github.com/mageddo/dns-proxy-server/vendor/github.com/miekg/dns.HandlerFunc.ServeDNS(0x88a448, 0x902a60, 0xc0003bc900, 0xc0000b4bd0) dns_1 | /app/src/github.com/mageddo/dns-proxy-server/vendor/github.com/miekg/dns/server.go:84 +0x44 dns_1 | github.com/mageddo/dns-proxy-server/vendor/github.com/miekg/dns.(*ServeMux).ServeDNS(0xc0002d1e30, 0x902a60, 0xc0003bc900, 0xc0000b4bd0) dns_1 | /app/src/github.com/mageddo/dns-proxy-server/vendor/github.com/miekg/dns/server.go:210 +0x63 dns_1 | github.com/mageddo/dns-proxy-server/vendor/github.com/miekg/dns.(*Server).serve(0xc000356000, 0x8fad00, 0xc00049c1b0, 0x8f6c40, 0xc0002d1e30, 0xc00038cc00, 0x1d, 0x200, 0xc000010520, 0xc00044dda0, ...) dns_1 | /app/src/github.com/mageddo/dns-proxy-server/vendor/github.com/miekg/dns/server.go:579 +0x2a4 dns_1 | created by github.com/mageddo/dns-proxy-server/vendor/github.com/miekg/dns.(*Server).serveUDP dns_1 | /app/src/github.com/mageddo/dns-proxy-server/vendor/github.com/miekg/dns/server.go:533 +0x29e dns_1 | 2020/08/18 07:41:51.102801 DEBUG f=dns.go:50 pkg=main m=handleQuestion uuid=0c536ab9a2 status=begin, reqId=20215, questions=1, question=host.docker., type=TypeAAAA dns_1 | 2020/08/18 07:41:51.102823 DEBUG f=dns.go:50 pkg=main m=handleQuestion uuid=0ed9fec95c status=begin, reqId=19915, questions=1, question=host.docker., type=TypeA dns_1 | 2020/08/18 07:41:51.102837 DEBUG f=local.go:29 pkg=github.com/mageddo/dns-proxy-server/events/local m=LoadConfiguration status=loading, path=/app/conf/config.json dns_1 | 2020/08/18 07:41:51.102823 DEBUG f=local.go:29 pkg=github.com/mageddo/dns-proxy-server/events/local m=LoadConfiguration status=loading, path=/app/conf/config.json dns_1 | 2020/08/18 07:41:51.103415 DEBUG f=dockernetwork.go:74 pkg=github.com/mageddo/dns-proxy-server/docker/dockernetwork m=FindNetworkGatewayIp status=begin, network=dps dns_1 | 2020/08/18 07:41:51.103732 DEBUG f=dockernetwork.go:74 pkg=github.com/mageddo/dns-proxy-server/docker/dockernetwork m=FindNetworkGatewayIp status=begin, network=dps dns_1 | 2020/08/18 07:41:51.105339 DEBUG f=dockernetwork.go:63 pkg=github.com/mageddo/dns-proxy-server/docker/dockernetwork m=GetGatewayIp status=FindDpsNetworkGatewayIp, ip= dns_1 | 2020/08/18 07:41:51.105580 ERROR f=panic.go:523 pkg=runtime m=gopanic uuid=0c536ab9a2 status=fatal-error-handling-question, req=[{Name:host.docker. Qtype:28 Qclass:1}], err=runtime error: index out of range, stack=goroutine 59 [running]: dns_1 | runtime/debug.Stack(0xc0004db870, 0x7f3260, 0xbbd940) dns_1 | /usr/local/go/src/runtime/debug/stack.go:24 +0x9d dns_1 | main.handleQuestion.func1(0x8fede0, 0xc00048e510, 0xc0003c9290) dns_1 | /app/src/github.com/mageddo/dns-proxy-server/dns.go:32 +0x5a dns_1 | panic(0x7f3260, 0xbbd940) dns_1 | /usr/local/go/src/runtime/panic.go:522 +0x1b5 dns_1 | github.com/mageddo/dns-proxy-server/proxy.SystemDnsSolver.getMsg(0xc0003d7a34, 0xb, 0x0, 0x0, 0xc0003d7a34, 0xc, 0xc00001001c, 0xc0004e6000) dns_1 | /app/src/github.com/mageddo/dns-proxy-server/proxy/system.go:38 +0x387 dns_1 | github.com/mageddo/dns-proxy-server/proxy.SystemDnsSolver.Solve(0x8fede0, 0xc00048e510, 0xc0003d7a34, 0xc, 0x1001c, 0xa3, 0x1b, 0xbfc6ff6fc620a19a) dns_1 | /app/src/github.com/mageddo/dns-proxy-server/proxy/system.go:22 +0x16e dns_1 | github.com/mageddo/dns-proxy-server/proxy.(*DefaultDnsSolverFactory).Solve(0xbe7398, 0x8fede0, 0xc00048e510, 0xc0003d7a34, 0xc, 0xc00001001c, 0xc0000d2b80, 0x4, 0x4, 0xc00022c840, ...) dns_1 | /app/src/github.com/mageddo/dns-proxy-server/proxy/factory.go:19 +0xd8 dns_1 | github.com/mageddo/dns-proxy-server/proxy.(*CnameDnsSolverFactory).Solve(0xc0004dbdb0, 0x8fede0, 0xc00048e510, 0xc0003d7a34, 0xc, 0x1001c, 0xc0000d2b80, 0x4, 0x4, 0x715c85, ...) dns_1 | /app/src/github.com/mageddo/dns-proxy-server/proxy/factory.go:48 +0xbd dns_1 | main.handleQuestion(0x902a60, 0xc000374680, 0xc0003c9290) dns_1 | /app/src/github.com/mageddo/dns-proxy-server/dns.go:51 +0x48e dns_1 | github.com/mageddo/dns-proxy-server/vendor/github.com/miekg/dns.HandlerFunc.ServeDNS(0x88a448, 0x902a60, 0xc000374680, 0xc0003c9290) dns_1 | /app/src/github.com/mageddo/dns-proxy-server/vendor/github.com/miekg/dns/server.go:84 +0x44 dns_1 | github.com/mageddo/dns-proxy-server/vendor/github.com/miekg/dns.(*ServeMux).ServeDNS(0xc0002d1e30, 0x902a60, 0xc000374680, 0xc0003c9290) dns_1 | /app/src/github.com/mageddo/dns-proxy-server/vendor/github.com/miekg/dns/server.go:210 +0x63 dns_1 | github.com/mageddo/dns-proxy-server/vendor/github.com/miekg/dns.(*Server).serve(0xc000356000, 0x8fad00, 0xc00048e4e0, 0x8f6c40, 0xc0002d1e30, 0xc0004ea200, 0x1d, 0x200, 0xc000010520, 0xc0004ac660, ...) dns_1 | /app/src/github.com/mageddo/dns-proxy-server/vendor/github.com/miekg/dns/server.go:579 +0x2a4 dns_1 | created by github.com/mageddo/dns-proxy-server/vendor/github.com/miekg/dns.(*Server).serveUDP dns_1 | /app/src/github.com/mageddo/dns-proxy-server/vendor/github.com/miekg/dns/server.go:533 +0x29e dns_1 | 2020/08/18 07:41:51.105360 DEBUG f=dockernetwork.go:63 pkg=github.com/mageddo/dns-proxy-server/docker/dockernetwork m=GetGatewayIp status=FindDpsNetworkGatewayIp, ip= dns_1 | 2020/08/18 07:41:51.105656 ERROR f=panic.go:523 pkg=runtime m=gopanic uuid=0ed9fec95c status=fatal-error-handling-question, req=[{Name:host.docker. Qtype:1 Qclass:1}], err=runtime error: index out of range, stack=goroutine 58 [running]: dns_1 | runtime/debug.Stack(0xc0000fb870, 0x7f3260, 0xbbd940) dns_1 | /usr/local/go/src/runtime/debug/stack.go:24 +0x9d dns_1 | main.handleQuestion.func1(0x8fede0, 0xc0004d0120, 0xc0000b4cf0) dns_1 | /app/src/github.com/mageddo/dns-proxy-server/dns.go:32 +0x5a dns_1 | panic(0x7f3260, 0xbbd940) dns_1 | /usr/local/go/src/runtime/panic.go:522 +0x1b5 dns_1 | github.com/mageddo/dns-proxy-server/proxy.SystemDnsSolver.getMsg(0xc00009b650, 0xb, 0x0, 0x0, 0xc00009b650, 0xc, 0xc000010001, 0xc0004e6000) dns_1 | /app/src/github.com/mageddo/dns-proxy-server/proxy/system.go:38 +0x387 dns_1 | github.com/mageddo/dns-proxy-server/proxy.SystemDnsSolver.Solve(0x8fede0, 0xc0004d0120, 0xc00009b650, 0xc, 0x10001, 0xa0, 0x1b, 0xbfc6ff6fc620f5fb) dns_1 | /app/src/github.com/mageddo/dns-proxy-server/proxy/system.go:22 +0x16e dns_1 | github.com/mageddo/dns-proxy-server/proxy.(*DefaultDnsSolverFactory).Solve(0xbe7398, 0x8fede0, 0xc0004d0120, 0xc00009b650, 0xc, 0xc000010001, 0xc0000d2b80, 0x4, 0x4, 0xc0003aea80, ...) dns_1 | /app/src/github.com/mageddo/dns-proxy-server/proxy/factory.go:19 +0xd8 dns_1 | github.com/mageddo/dns-proxy-server/proxy.(*CnameDnsSolverFactory).Solve(0xc0000fbdb0, 0x8fede0, 0xc0004d0120, 0xc00009b650, 0xc, 0x10001, 0xc0000d2b80, 0x4, 0x4, 0x715c85, ...) dns_1 | /app/src/github.com/mageddo/dns-proxy-server/proxy/factory.go:48 +0xbd dns_1 | main.handleQuestion(0x902a60, 0xc0003bca00, 0xc0000b4cf0) dns_1 | /app/src/github.com/mageddo/dns-proxy-server/dns.go:51 +0x48e dns_1 | github.com/mageddo/dns-proxy-server/vendor/github.com/miekg/dns.HandlerFunc.ServeDNS(0x88a448, 0x902a60, 0xc0003bca00, 0xc0000b4cf0) dns_1 | /app/src/github.com/mageddo/dns-proxy-server/vendor/github.com/miekg/dns/server.go:84 +0x44 dns_1 | github.com/mageddo/dns-proxy-server/vendor/github.com/miekg/dns.(*ServeMux).ServeDNS(0xc0002d1e30, 0x902a60, 0xc0003bca00, 0xc0000b4cf0) dns_1 | /app/src/github.com/mageddo/dns-proxy-server/vendor/github.com/miekg/dns/server.go:210 +0x63 dns_1 | github.com/mageddo/dns-proxy-server/vendor/github.com/miekg/dns.(*Server).serve(0xc000356000, 0x8fad00, 0xc00048e4b0, 0x8f6c40, 0xc0002d1e30, 0xc0004ea000, 0x1d, 0x200, 0xc000010520, 0xc0004ac640, ...) dns_1 | /app/src/github.com/mageddo/dns-proxy-server/vendor/github.com/miekg/dns/server.go:579 +0x2a4 dns_1 | created by github.com/mageddo/dns-proxy-server/vendor/github.com/miekg/dns.(*Server).serveUDP dns_1 | /app/src/github.com/mageddo/dns-proxy-server/vendor/github.com/miekg/dns/server.go:533 +0x29e

As OS I'm using Ubuntu 20.04. Docker version: 19.03.8.

Not sure what additional information you might need.

Sajito avatar Aug 18 '20 07:08 Sajito

Same issue here, same logs and same setup

ferrine avatar Feb 16 '22 14:02 ferrine

Once it appears I weirdly have resolv.conf misconfigured

# nameserver 8.8.8.8 # dps-comment
# nameserver 8.8.4.4 # dps-comment
nameserver  # dps-entry

ferrine avatar Feb 16 '22 14:02 ferrine

Hey @ferrine your evidence is really precious, I worked at more ways to retrieve some valid IP to configure the nameserver and don't get an empty IP as in your cause, can give a try at version 3.5.2?

PSC @Sajito it may help you, if can give it a try...

mageddo avatar Mar 02 '23 17:03 mageddo

I'm closing this but feel free to reopen if you need

mageddo avatar Mar 03 '23 11:03 mageddo