Node Name Resolution#

The scyld-install script installs the clusterware-dnsmasq package which provides resolution services for head node names. Similar to the clusterware-iscdhcp, this package depends on a standard OS provided service, but runs a private instance of that service, configuring it through the templated configuration file /opt/scyld/clusterware-dnsmasq/dnsmasq.conf.template. Within that file, fields like "<DOMAIN>" are substituted with appropriate values from the cluster network configuration, and the resulting file is rewritten.

Specifically, the "domain" field (defaulting to .cluster.local) is appended to compute node names (n0, n1, etc.) to produce a fully-qualified domain name. That default value can be overridden in the cluster configuration provided at installation time or loaded via the scyld-cluster-conf command. Multiple domains can be defined in that configuration file and are applied to any subsequently defined network segments until a later line sets a new domain value. Note that when changing this value on an established cluster, the cluster administrator may want to only load the networking portion of the cluster configuration instead of recreating already configured compute nodes:

scyld-cluster-conf load --nets-only cluster.conf
sudo systemctl restart clusterware

By default, any hosts listed in the /etc/hosts file on the head node will also resolve on the compute nodes through dnsmasq as will names added through the scyld-clusterctl hosts command. The localise-queries keyword in the template file is provided because head nodes commonly have multiple addresses on different networks and dnsmasq should reply with the IP appropriate to the requestor. Commenting out localise-queries will cause dnsmasq to reply with all IPs for a queried name. To entirely prevent dnsmasq being populated with head node IPs set leases.register_heads = False in /opt/scyld/clusterware/conf/base.ini and restart the clusterware service. These dnsmasq behaviors and many others can be changed in the aforementioned configuration template.

An administrator may modify the template file to completely remove the domain or to otherwise modify the dnsmasq configuration. Please see the dnsmasq project documentation for details of the options that service supports. Similarly, the dhcpd configuration template is located at /opt/scyld/clusterware-iscdhcp/dhcpd.conf.template, although as that service is much more integral to the proper operation of the ClusterWare platform, changes should be kept to an absolute minimum. Administrators of more complicated clusters may add additional "options" lines or similarly remove the "option domain-name" line depending on their specific network needs. Additional DNS servers can also be provided to compute nodes through the "option domain-name-servers" lines. As with dnsmasq, please see the ISC DHCP documentation for supported options.

During compute node boot, dracut configures the bootnet interface of the node with the DNS servers and other network settings. These settings may be changed by cluster administrators in startup scripts as long as the head node(s) remain accessible to the compute nodes and vice versa.

During initial installation, the scyld-install script attempts to add the local dnsmasq instance (listening on the standard DNS port 53) as the first DNS server for the head node. If this is unsuccessful, DNS resolution will still work on compute nodes, although the administrator may need to add local DNS resolution before ssh and similar tools can reach the compute nodes. Please consult your Linux distribution documentation for details. Note that DNS is not used for compute node name resolution within the REST API or by the ClusterWare administrative tools; rather, the database is referenced in order to map node ids to IP addresses.