Consider the steps below when applying the principles in this article to your own system.
- We haven't automated all the hostname entries in the /etc/hosts file. You might want to allow the user to choose a hostname or alias when requesting a new provisioning machine in the web portal. IBM SmartCloud Enterprise allows you to define additional parameters using the image metadata file parameters.xml. The parameter values supplied by the user requesting the instance are copied to the directory /etc/cloud in the running instance. You can use these values to change the settings in /etc/hosts.
- BIND can also store DNS records in a relational database. If you're managing a domain with many virtual machines, this may be a good option, enabling your domain to scale more easily and allowing you to add new DNS entries without editing files.
- Automate registration of new domains and subdomains, as well as addition of resource records. You could implement the Apache LibCloud DNS interface as a DNS service provider, to give it a consistent interface shared by other cloud-based DNS providers.
- Separate the management of public and private IP addresses. Ideally, public and private IP addresses should belong to different domains, and mappings of private IP addresses shouldn't be visible in a public network. You can make this change with additional settings in the BIND named.conf file. It's also possible for BIND to give different responses to a name query, based on the network zone from which the query comes. For example, if the query comes from the Internet, return a public IP address; if the query comes from a private network, return the private address.