<p>I am pretty sure stunnel uses the final connect string as the connect host. Round robin only works if dns returns multiple addresses. There was a user patch a while ago that provided a different way.</p>
<div class="gmail_quote">On Jan 7, 2013 12:39 PM, "Matt Wise" <<a href="mailto:matt@nextdoor.com">matt@nextdoor.com</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
I've got dozens of clients connecting with Stunnel to a group of 5 servers. Each system has a config that looks like this:<br>
<br>
> cert = /etc/stunnel/zookeeper.pem<br>
> key = /etc/stunnel/zookeeper.key<br>
> CAfile = /etc/stunnel/zookeeper_ca.pem<br>
> verify = 2<br>
> delay = yes<br>
> sslVersion = TLSv1<br>
> client = yes<br>
> setuid = stunnel4<br>
> setgid = stunnel4<br>
> pid = /var/lib/stunnel4/zookeeper.stunnel4.pid<br>
> socket = l:TCP_NODELAY=1<br>
> socket = r:TCP_NODELAY=1<br>
> TIMEOUTconnect = 2<br>
> session = 86400<br>
> debug = 5<br>
> [zookeeper]<br>
> accept  = <a href="http://127.0.0.1:2182" target="_blank">127.0.0.1:2182</a><br>
> failover = rr<br>
> connect = prod-zookeeper:2182<br>
> connect = prod-zookeeper-1:2182<br>
> connect = prod-zookeeper-2:2182<br>
> connect = prod-zookeeper-3:2182<br>
> connect = prod-zookeeper-4:2182<br>
> connect = prod-zookeeper-5:2182<br>
<br>
<br>
Essentially the first host is a load balancer, and the next 5 are the actual zookeeper hosts so that we can bypass the ELB if its giving us fits. Now what we're seeing is that almost every connection ends up on prod-zookeeper-5. Over and over and over again, our hosts pick the same system each time. We're running Stunnel 4.52:<br>

<br>
> Clients allowed=8000<br>
> stunnel 4.52 on i486-pc-linux-gnu platform<br>
> Compiled/running with OpenSSL 0.9.8k 25 Mar 2009<br>
> Threading:PTHREAD SSL:ENGINE Auth:LIBWRAP Sockets:POLL,IPv6<br>
<br>
<br>
Any ideas what might be wrong here? Obviously we want the connections to be *roughly* random across the list of hosts... and if one of the hosts goes down, and the connection fails, we want the stunnel service to try again, and randomly pick a new host. It doesn't really seem to be doing that though.<br>

<br>
--Matt<br>
<br>
_______________________________________________<br>
stunnel-users mailing list<br>
<a href="mailto:stunnel-users@stunnel.org">stunnel-users@stunnel.org</a><br>
<a href="https://www.stunnel.org/cgi-bin/mailman/listinfo/stunnel-users" target="_blank">https://www.stunnel.org/cgi-bin/mailman/listinfo/stunnel-users</a><br>
</blockquote></div>