Configure a Basic DNS Server on SmartOS using Bind9

Photo by Kelvin Ang on Unsplash

SmartOS is a Unix operating system that is focusing on virtualization. It’s based on the Illumos kernel (i.e. Open Solaris) It consists of an immutable OS that can be loaded into the memory via a USB key. Administrators can leverage the Solaris technology such as ZFS, zone, DTrace and Crossbow. It can also create VMs using KVM and bhyve technologies.

I had a very hard time finding relevant information on configuring DNS servers on SmartOS. After a few hours of searching and head banging, I’ve successfully configured a basic DNS server using Bind9. Here are the Steps.

Installing Bind9

The installation process is very simple. SmartOS adopted NetBSD’s package manager. So the command is

pkgin install bind-9.16.7

This will pull the relevant packages and install bind.

Enable Bind9

svcadmin enable pkgsrc/bind

Create a Basic Configuration File

I use vim. You can use any editor of your choice to create the configuration file.

vim /opt/local/etc/named.conf

This is a very basic configuration for named.conf

options {

  forwarders {;;



zone "" {

  type master;

  file "/opt/local/etc/namedb/dynamic/";


Create the zone file

$TTL    604800

@       IN      SOA (

                        2018101901;     Serial

                        3H;             Refresh

                        15M;            Retry

                        2W;             Expiry

                        1D );           Minimum


; name servers - NS records

        IN      NS


; name servers - A records

ns1.homelab.vm.               IN      A

Edit the configuration file path in svcadmin.

This is a very important step. Yet I only found it in an old Solaris book “Open Solaris Bible”.

svccfg -s pkgsrc/bind:default

svc:/pkgsrc/bind:default> setprop options/configuration_file=/opt/local/etc/named.conf

svc:/pkgsrc/bind:default> exit

svcadm refresh pkgsrc/bind

svcadm restart pkgsrc/bind

Test Your Setting

Use dig to test your setting. Log onto the DNS server and run

dig @