Configuring and Troubleshooting DNS Servers
The following configuration steps must be completed in order to install and operate UIP or Adapter Hub successfully. This work should be completed with the assistance of IT staff prior to attempting to install the software.
-
If a DNS server is changed this process must be completed again in order to update the system to use the modified DNS server(s).
-
Some sites may use different multiple DNS servers for accessing different destinations.
Configure Host OS DNS Settings
Warning
If these settings are modified after the UIP software has been installed then a software upgrade will need to be completed before it will start using the modified proxy settings.
If there is no software update currently available for UIP the changeip.sh utility script can be used.
Warning
If these settings are modified after the software for Adapter Hub has been installed then a software upgrade will need to be completed before it will start using the modified proxy settings.
An upgrade can be triggered for Adapter Hub by downloading and executing the latest available hub-install.sh install script.
Warning
The following instructions are only applicable to systems which use netplan
for their network configuration. If your system uses a different tool for network configuration, such as cloud-init
(the default for the "live-server" Ubuntu ISO) or ifupdown
the procedure for configuring DNS Servers will be different.
If the host system must use any private DNS servers to resolve the names of other machines, they must be configured on the host machine using the netplan
application.
All DNS servers should be listed in order of priority within the *.yaml configuration file located in /etc/netplan/
, similar to the following example.
network:
ethernets:
ens160:
addresses: []
dhcp4: true
optional: true
nameservers:
addresses: [192.168.1.100,192.168.1.101]
version: 2
In order for the change to take place, you must run sudo netplan apply
. The structure of the configuration file as well as more information about DNS server settings can be found here.
Configure Docker Daemon DNS Settings
Any change of the host system's DNS server must be propagated to the networks that exist within the system's internal virtual environment. Use the /etc/docker/daemon.json
file to make this change. Add or modify the following line. If more than one DNS server is needed, separate each entry by a comma.
"dns": ["192.168.1.100","192.168.1.101"]
After the changes to the /etc/docker/daemon.json
file are made, a Docker service restart is required for the new settings to take effect:
sudo systemctl daemon-reload
sudo systemctl restart docker
To confirm that your DNS server settings are configured properly, you should be able to perform a DNS query on your machine of its own FQDN. This can be done using the nslookup
bash command.
If the answer does not return the IP address that you are using for UIP it will not allow you to use that FQDN. A list of your machines current IP addresses can be displayed using the command hostname -I
.
Troubleshooting DNS Settings
If there are issues connecting to the UIP software repository, or issues connecting adapters to remote systems, there may be an issue with the DNS servers configured for the Docker daemon.
It is possible to view the DNS servers that are currently being used by UIP platform containers and internal adapters from the Administration > About page. The Test Connection feature will display a "Docker DNS Servers" list.
These following commands are useful when troubleshooting DNS and networking issues from Docker containers. The examples below use the busybox Docker container in order to have a similar environment to the rest of the UIP system. Keep in mind that ping might be blocked on some networks or devices, so a negative result with ping does not necessarily indicate a network problem.
# Ping a network resource.
# Replace DESTINATION with the address (IP or FQDN) of your destination system.
docker run busybox ping DESTINATION
# Run a DNS lookup.
# Replace DESTINATION with a name to look up (e.g. the FQDN of your UIP system).
docker run busybox nslookup DESTINATION