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.