3TART BY CLONING YOUR 6- TEMPLATE 2IGHT CLICK ON THE TEMPLATE AND SELECT h#LONEv 4HE TARGET NODE WILL DEFAULT TO hPVEv OR WHATEVER YOU CALLED YOUR 0ROXMOX HOST 3ET THE 6- )$ AND
NAME TO WHATEVER YOU WANT ,EAVE THE AUTO INCREMENTING )$ AS IS AND GIVE THE 6- A NAME THATS THE SAME AS THE HOSTNAME YOULL ASSIGN )N MY EXAMPLE ) USED hDNSv 3ET THE -ODE TO
h&ULL #LONEv AND SET THE 4ARGET 3TORAGE TO hLOCALv WITH h2AW DISK IMAGEv AS THE FORMAT
)T TAKES LESS THAN A MINUTE TO SPAWN A NEW 6- FROM YOUR TEMPLATE
)N ITS CURRENT STATE ITS EXACTLY LIKE THE ORIGINAL hUBUNTUv 6-SAME )0 ADDRESS SAME HOSTNAME /F COURSE YOULL NEED TO CHANGE THOSE BEFORE PUTTING THE MACHINE INTO PRODUCTION
Figure 15. Cloning the Template
FEATURE: The Tiny Internet Project, Part III
Q %DIT ETCHOSTS CHANGE 127.0.1.1 ubuntu to 10.128.1.3 dns01.tiny.lab dns01.
Q %DIT ETCHOSTNAME CHANGE ubuntu to dns01.tiny.lab.
Q %DIT ETCNETWORKINTERFACES CHANGE THE 10.128.1.200 address to 10.128.1.3.
Once you’ve made these basic changes, reboot, log in and install bind9:
$ sudo apt-get update
$ sudo apt-get install bind9 bind9utils dnsutils bind9-doc 4HE MAIN $.3 CONFIGURATION IS DONE IN THESE THREE FILES
Q ETCDEFAULTBIND
Q ETCBINDNAMEDCONFOPTIONS
Q ETCBINDNAMEDCONFLOCAL
9OULL FINISH BY CREATING YOUR ZONE FILES IN ETCBINDZONES )M USING THE hTINYLABv DOMAIN NAME IN ALL THESE EXAMPLES BUT YOU CAN SET THE name to anything you want.
3TART BY ADDING AN )0V OPTION
$ sudo vi /etc/default/bind9
!DD THE FOLLOWING TO THE END OF THE FILE
OPTIONS="-4 -u bind"
-AKE BACKUP COPIES OF THE NEXT TWO FILES BEFORE EDITING THEM THEN EDIT ETCBINDNAMEDCONFOPTIONS AND ADD YOUR TRUSTED HOSTS
ONE FOR EACH SERVER AND RESOURCE YOU HAVE AND SET THE OPTIONS
FEATURE: The Tiny Internet Project, Part III
acl "trusted" {
directory "/var/cache/bind";;
3AVE THE FILE AND CREATE YOUR ZONES BY EDITING ETCBINDNAMEDCONFLOCAL
4HIS IS WHERE YOU SET YOUR DOMAIN NAME REPLACING hTINYLABv WITH WHATEVER you want:
zone "tiny.lab" { type master;;
file "/etc/bind/zones/db.tiny.lab";;
allow-transfer { 10.128.1.4;; };; # Setting this for a
FEATURE: The Tiny Internet Project, Part III
# future secondary DNS server };;
zone "128.10.in-addr.arpa" { type master;;
file "/etc/bind/zones/db.10.128";;
allow-transfer { 10.128.1.4;; };;
};;
.OW CREATE THE FORWARD AND REVERSE ZONE FILES PLACING THEM IN THE
ETCBINDZONES FOLDER )F IT DOESNT EXIST CREATE IT
$ cd /etc/bind
$ sudo mkdir zones
#OPY THE DEFAULT $.3 FORWARD AND REVERSE ZONE CONFIG FILES INTO THAT FOLDER RENAMING THEM TO MATCH YOUR DOMAIN NAME AND IP subnet:
$ sudo cp db.local ./zones/db.tiny.lab
$ sudo cp db.127 ./zones/db.10.128
%DIT ETCBINDZONESDBTINYLAB AND ENTER YOUR CURRENT AND FUTURE HOSTS 4HE FILE ) SET UP INCLUDES COMMENTS AT THE TOP TO REMIND ME OF CHANGES ) MAKE
) ALSO CREATED ENTRIES FOR MY ROUTER AND A PROXY SERVER WHICH ) PUT ON THE SAME BOX AS MY DNS %ACH TIME YOU MAKE MODIFICATIONS INCREMENT THE 3ERIAL ENTRY BEFORE SAVING !LSO NOTE THE hv AFTER EACH NAME $ONT LEAVE THOSE OFF 9OU CAN FIND MORE INFORMATION ABOUT $.3 IN THE 2ESOURCES SECTION AT THE END OF THIS ARTICLE BUT THIS WILL GET YOU STARTED
;; BIND data file for local loopback interface
;;
;; 20150505 JST Modified proxy address
;; 20160505 JST Added web01
$TTL 604800
FEATURE: The Tiny Internet Project, Part III
@ IN SOA dns01.tiny.lab admin.dns01.tiny.lab. (
3AVE THE FILE AND EDIT THE ETCBINDDB REVERSE ZONE FILE 4HE )0 ADDRESSES FOR EACH SERVER UNDER h042 RECORDSv ARE TRUNCATED LOOKING AND CAN BE CONFUSING )MAGINE EACH LEADING OFF WITH AN INVISIBLE
hv TO ENVISION THE ADDRESSES !GAIN BE SURE TO INCREMENT THE Serial entry each time you make a change:
;; BIND reverse data file for local loopback interface
;;
FEATURE: The Tiny Internet Project, Part III
2419200 ;; Expire
604800 ) ;; Negative Cache TTL
;;
;; name servers -- NS records
IN NS dns01.tiny.lab.
IN NS dns02.tiny.lab.
;; PTR records
1.1 IN PTR dhcp.tiny.lab.
1.2 IN PTR pve.tiny.lab.
1.3 IN PTR dns01.tiny.lab.
1.4 IN PTR dns02.tiny.lab.
1.5 IN PTR mail.tiny.lab.
1.6 IN PTR mirror.tiny.lab.
1.7 IN PTR web01.tiny.lab.
3AVE THE FILE AND CHECK THE SYNTAX OF YOUR FILES BY RUNNING
$ sudo named-checkconf
)F EVERYTHING IS CORRECT YOULL GET NO OUTPUT AND NO ERRORS #HECK THE CONFIGURATIONS FURTHER WITH named-checkzone:
$ sudo named-checkzone tiny.lab /etc/bind/zones/db.tiny.lab
$ sudo named-checkzone 128.10.in-addr.arpa /etc/bind/zones/db.10.128
9OULL SEE h/+v IF EVERYTHING CHECKS OUT )F NOT EDIT THE FILES ,EAVING OFF THE TRAILING hv IS A COMMON MISTAKE
Restart bind to get it up and running:
$ sudo service bind9 restart
7HEN bind9 RESTARTS DO A QUICK CHECK WITH THE dig utility, or simply open a browser and navigate to your mirror server at http://mirror.tiny.lab:
$ dig mirror.tiny.lab
FEATURE: The Tiny Internet Project, Part III
)F YOU SEE IN THE dig output, you’ve succeeded. DNS is working. You can complete your DNS setup by deploying a second 6- OR INSTALLING bind9 on a physically separate machine on your tiny internet network, but it’s not strictly necessary at this point. You also CAN SET THIS 6- TO START AUTOMATICALLY WHEN YOUR 0ROXMOX HOST STARTS so you have DNS running whenever your tiny internet is up.