Issue #19842 has been updated by Josh Cooper.

Status changed from Unreviewed to Accepted

Thanks Vincent. This is related to #18812, as puppet doesn't have a good 
lifecycle for managing network connections. If it did, it would be easy to 
reuse the http pool, dns resolver, etc for the duration of the catalog 
application. Unfortunately, ruby doesn't cache SRV lookups, so the situation is 
even worse there. It's definitely something we'd like to improve on.

----------------------------------------
Feature #19842: Unnecessary amount of dns requests with SRV records
https://projects.puppetlabs.com/issues/19842#change-87397

* Author: Vincent Gallissot
* Status: Accepted
* Priority: Normal
* Assignee: 
* Category: server
* Target version: 3.x
* Affected Puppet version: 3.1.1
* Keywords: srv dns requests
* Branch: 
----------------------------------------
Hi, 

I want to make you a feedback of using SRV records with Puppet 3.1.1

My architecture is : 
        - puppetca = puppet master acting as ca and able to manage all nodes 
files (centos 6.3 with Puppet server 3.1.1)
        - puppet1 and puppet2 = puppet master not ca. They are configured the 
old way (not with SRV) with ca_server=puppetca, server=fqdn and ca=false
        - mynode = desktop with puppet 3.1.1, under Fedora 16

Here are my DNS records : 
_x-puppet._tcp          IN      SRV     0       50      8140    
puppet1.foobar.fr.
_x-puppet._tcp          IN      SRV     0       50      8140    
puppet2.foobar.fr.
_x-puppet._tcp          IN      SRV     10      100     8140    
puppetca.foobar.fr.
_x-puppet-ca._tcp       IN      SRV     0       100     8140    
puppetca.foobar.fr.
_x-puppet-report._tcp   IN      SRV     0       100     8140    
puppetca.foobar.fr.


First of all, thanks for correcting the bug in 
http://projects.puppetlabs.com/issues/18161, works fine now !


Secondly, the tips given in http://projects.puppetlabs.com/issues/16840 work 
for me too. 


Thirdly, as you can see in logs (files mynode, puppet1 and puppet2 .foobar.fr), 
with SRV, nodes try to reach every masters and generate a lot of requests, not 
only dns ones. It tries to access all servers in "_x-puppet._tcp.foobar.fr." 
and it's not the best way. It also continue to resolve SRV even if it's 
downloading its configuration from the master. 
Using SRV records is for high availability and load distribution. It shouldn't 
double the nodes connexions. In facts, the more masters you have the more your 
network is overloaded. 

Nodes should try to resolve "_x-puppet._tcp.foobar.fr." only one time and if 
the returned server is available to connect, the node shouldn't do any other 
SRV request for "_x-puppet._tcp.foobar.fr." or tries to connect to the other 
masters. 

As it's written in the doc, the amount of DNS requests is very high, but is not 
needed at all. 





-- 
You have received this notification because you have either subscribed to it, 
or are involved in it.
To change your notification preferences, please click here: 
http://projects.puppetlabs.com/my/account

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Bugs" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/puppet-bugs?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to