Using FreeNAS as a DNS Server for your VMware vSphere Virtual Lab
Disclosure. This page contains links to products that may earn us a small commission at no extra cost to you, should you click on them and make a purchase. Read full disclosure.
This guide will show you how to install Dnsmasq on FreeNAS and configure it so that your Virtual Lab can resolve hostnames to IP addresses.
Overview
In my last post, I wrote a tutorial on how to install FreeNAS on VMware Fusion for use in a VMware vSphere Virtual Lab. Another service that you may need when building a vSphere lab is a DNS server so that vCenter can resolve its FQDN and the domain names of your ESXi hosts.
You can either create a separate VM and install Dnsmasq or since you’re likely to be configuring centralized storage to test out VMotion and HA, you can use FreeNAS. This guide will show you how.
Prerequisites
Before we begin, you should have created a
VMware Fusion* VM and installed FreeNAS. If you followed the steps in the last tutorial, you will have a VM that’s connected to a custom VMware Fusion network with a management IP of 10.1.1.201
and a gateway of 10.1.1.2
.
Okay, let’s do this.
Step 1: Create a Jail
Login to the FreeNAS web interface, click on Jails, select a pool and click CHOOSE.

Click ADD.

Type dnsmasq for the name, select Basejail for the type, select 11.3-RELEASE then click NEXT.

Enable VNET, select vnet0 for the interface, type an IP address that is on the same subnet as the management IP, enter the gateway IP in the defaut router field then click NEXT.

Click SUBMIT and wait a few minutes for the Jail to be created.

Click the arrow on the right.

Click START to power the Jail on.

Step 2: Install Dnsmasq
Click on the SHELL button to login to the Jail.

Run the following command to install Dnsmasq.
pkg install dnsmasq vim
Wait a few minutes for the packages to be installed.

Step 3: Configure Dnsmasq
At the shell run the following command to open the dnsmasq.conf
file for editing.
vim /usr/local/etc/dnsmasq.conf
Add the following config to the start of the file.
# Global settings
domain-needed
bogus-priv
no-resolv
expand-hosts
filterwin2k
# Upstream nameservers
server=8.8.4.4
server=8.8.8.8
# domain name
domain=vsphere.lab
local=/vsphere.lab/
listen-address=127.0.0.1
listen-address=10.1.1.254
Run the following command to start Dnsmasq when the Jail starts.
sysrc dnsmasq_enable="YES"
Start Dnsmasq
service dnsmasq start
Step 4: Add Some Hosts
Adding hosts to lookup is easy with Dnsmasq. It’s done exactly the same way as you would edit your local hosts file. Open /etc/hosts
and add the following entries.
10.1.1.11 esxi01.vpshere.lab esxi01
10.1.1.12 esxi02.vsphere.lab esxi02
10.1.1.100 vc01.vsphere.lab vc01
Restart Dnsmasq to apply the changes.
service dnsmasq restart
Step 5: Test DNS Lookups
Now if you change the DNS server of vCenter or your ESXi host to the IP address of the dnsmasq Jail, you should be able to lookup the hostnames we just specified above.
The following screen shot shows an ESXi hosts DNS Server being changed to the dnsmasq server IP.

And here we can see the DNS lookup has worked by testing a ping to esxi02.vpshere.lab.

Conclusion
That’s it. You now have a combined iSCSI and DNS Server in your lab without having to build an extra VM dedicated to DNS.