Hello,

We are running HAProxy in our Docker (18.09.0) swarm and we are relying on
the Docker embedded DNS server for service discovery.

The backend servers are configured to resolve the IP addresses via a
"resolvers" config entry pointing to the Docker embedded DNS running on
"127.0.0.11".

Up to HAProxy 1.8.14 this worked like charm, but it stopped working with
version 1.8.15. Also the newly released version 1.9.0 is affected by this
problem.

I've looked through the changes between 1.8.14 and 1.8.15 and I could narrow
it down to commit 2e53fe8:
"BUG: dns: Prevent out-of-bounds read in dns_validate_dns_response()".
If I revert this commit on haproxy-1.8 it works perfectly, just as before.

DNS resolution does not seem to be generally broken though. If I use a regular
(non-docker-internal) hostname, it can be resolved normally, even using the
Docker embedded DNS server.

I'm not yet sure if it is the Docker DNS server returning an invalid result
or HAProxy having a problem with the validation.

I'm happy to help with debugging. I can provide packet captures of the DNS
resolution and a sample config to reproduce the problem if you are interested.

Best,
Leo

-- 
Leonhard Wimmer
Senior DevOps Engineer
ecosio GmbH

Reply via email to