On Thu, Oct 15, 2015 at 10:24 AM, Øyvind Johnsen <john...@gerilja.no> wrote:
> Hi all,
>
> We are running HAProxy on our Docker / Swarm / Weave cluster also featuring 
> Weave-DNS for service discovery between the containers in the cluster. We are 
> deploying fairly often to the cluster for both dev and stage environments and 
> was very happy to see the DNS Resolvers feature introduced with HAProxy 1.6. 
> Problem is that I cannot seem to get this feature to work with our setup. 
> HAProxy does never pick up a DNS change as it is supposed to, so when a 
> container is redeployed the backend will go down whenever the container gets 
> assigned a new IP from Weave.
>
> Weave-DNS is available on every node in the cluster on IP 172.17.42.1 and I 
> can resolve all the internal DNS names using the resolver at this address to 
> the correct IP from inside the container running HAProxy. The DNS changes 
> immediately when a container is redeployed and gets assigned a new IP.
>
> A simplified and anonymised version of our HAProxy config:
>
> defaults
>     log global
>     option httplog
>     option dontlognull
>     option log-health-checks
>     option httpchk
>     mode http
>     option http-server-close
>     timeout connect 7s
>     timeout client 10s
>     timeout server 10s
>     timeout check 5s
>
> resolvers weave-dns
>     nameserver dns1 172.17.42.1:53
>     timeout retry 1s
>     hold valid 10s
>
> frontend http-in
>     bind *:80
>     acl acl_domain1 hdr(host) -i domain1.io
>     use_backend backend_domain1 if acl_domain1
>
>     acl acl_domain2 hdr(host) -i domain2.io
>     use_backend backend_domain2 if acl_domain2
>
> frontend https-in
>     bind *:443 ssl crt /data/ssl-certs/
>     reqadd X-Forwarded-Proto:\ https
>
>     acl acl_domain1 hdr(host) -i domain1.io
>     use_backend backend_domain1 if acl_domain1
>
>     acl acl_domain2 hdr(host) -i domain2.io
>     use_backend backend_domain2 if acl_domain2
>
> backend backend_domain1
>     server domain1-server domain1.weave.local:80 check inter 1000 resolvers 
> weave-dns resolve-prefer ipv4
>
> backend backend_domain2
>     server domain2-server domain2.weave.local:80 check inter 1000 resolvers 
> weave-dns resolve-prefer ipv4
>
> Is there any reason why the server check should not pick up the DNS change 
> and update HAProxy with the new IP so the backend continue to work when we do 
> a redeploy?
>
>
> I also encountered another issue when trying to upgrade to the final 1.6.0 
> version. The server is using two wildcard certificates in the folder 
> specified in the config. When running the ssllabs.com SSL test on the server 
> at domain2 (the cert that is not the default one, but using SNI) then HAProxy 
> segfaults and dies completely. This behaviour is not observed on neither of 
> the 1.6.0-devX builds.



Hi Oyvind,

Please repost your SSL question in a new thread with an appropriate subject.
Next time avoid mixing 2 very different topics in the same thread.

Have you enabled stats socket in your global section?
If not, please enable it.
Then run a "show stat resolvers" and report here the output of the command.

A packet capture of a few DNS packets would be much appreciated.

Baptiste

Reply via email to