Difference between revisions of "OPS335 DNS Lab"

From CDOT Wiki
Jump to: navigation, search
(Perform these steps on your Intranet machine)
(Perform these steps on your Intranet machine)
Line 137: Line 137:
 
*Now try the commands
 
*Now try the commands
 
   host f16.<learnid>.org
 
   host f16.<learnid>.org
   host vm01.example.org
+
   host vm01.<learnid>.org
   host vm02.example.org
+
   host vm02.<learnid>.org
   host vm03.example.org
+
   host vm03.<learnid>.org
 
   host yahoo.ca
 
   host yahoo.ca
 
*And the commands
 
*And the commands

Revision as of 20:42, 29 January 2012

Domain Name System

In this lab you will configure a Linux host to be a DNS server for the rest of the machines in your intranet. You'll use your learn ID as your domain with IP addresses in the range 192.168.X.1 - 192.168.X.254. The server will handle all queries for names in the <learnid>.org domain and all reverse lookups for addresses in the given range of local IP numbers. The server will pass DNS queries for other names and addresses out to the Internet (i.e. to Seneca's DNS server).

Instructions

You're going to populate your server with the following records:

Fully Qualified Domain Name  IP Address
f16.<learnid>.org            192.168.X.1
vm01.<learnid>.org           192.168.X.2
vm02.<learnid>.org           192.168.X.3
vm03.<learnid>.org           192.168.X.4


Here's what your network will look like (f13=f16):
Lab03.png

Perform these steps on your gateway/firewall/DNS machine

  • Start up your Fedora 16 PC, login as joker, open a terminal window and "su -" to root. This PC will be f16. It will be your gateway/firewall as well as the domain name server for your intranet.
  • Ensure you are connected to the Internet. Use firefox to authenticate yourself so you can surf the web outside of the Seneca domain.
  • Use yum to update your system if necessary.
yum update
  • Use yum to install the DNS server.
yum install bind
  • Also start your ssh server.
systemctl start sshd.service
  • Set your hostname to f16.
hostname f16
  • Set your domainname to <learnid>.org.
domainname <learnid>.org

Edit /etc/named.conf

  • Edit the file /etc/named.conf and enter the following: But use your own X value where applicable. If no file exists, create one. If one is already there, renamed it and make a new one.
 options {
 	directory "/var/lib/named";
	auth-nxdomain no;
	forwarders { 142.204.1.2; 142.204.43.43;};
 };
 zone "localhost" {
 	type master;
 	file "localhost.zone";
 };
 zone "X.168.192.in-addr.arpa" {
 	type master;
 	file "mydb-for-192-168-X";
 };
 zone "<learnid>.org" {
 	type master;
 	file "mydb-for-<learnid>-org";
 };
  • Make a new directory called 'named', like this
mkdir /var/lib/named
  • Now edit /var/lib/named/localhost.zone and enter the following:
 $TTL	604800
 @	IN	SOA	localhost.	root.localhost. ( 
 			1	; Serial
 			604800	; Refresh
 			86400	; Retry
 			2419200	; Expire
 			604800 ); Negative Cache TTL
 ; 
 @	IN	NS	localhost.
 @	IN	A	127.0.0.1
  • Now edit /var/lib/named/mydb-for-<learnid>-org and enter the following: But use your own X value where applicable.
 $TTL	604800
 @	IN	SOA	localhost.	root.localhost. (
 			1	; Serial
 			604800	; Refresh
 			86400	; Retry
 			2419200	; Expire
 			604800 ); Negative Cache TTL
 ; 
 @	IN	NS	localhost.
 f16	IN	A	192.168.X.1
 vm01	IN	A	192.168.X.2
 vm02	IN	A	192.168.X.3
 vm03	IN	A	192.168.X.4
  • Next, edit /var/lib/named/mydb-for-192-168-X and enter the following:
 $TTL	604800
 @	IN	SOA	localhost.	root.localhost. ( 
 			1	; Serial
 			604800	; Refresh
 			86400	; Retry
 			2419200	; Expire
 			604800 ); Negative Cache TTL
 ; 
 @	IN	NS	localhost.
 1	IN	PTR	f16.<learnid>.org.
 2	IN	PTR	vm01.<learnid>.org.
 3	IN	PTR	vm02.<learnid>.org.
 4	IN	PTR	vm03.<learnid>.org.
  • Now set up your resolver to point to itself. Edit /etc/resolv.conf, delete what's there and enter this data instead. Remember to use your value for X.
nameserver 192.168.X.1
domain <learnid>.org
  • Start your DNS server with the command
systemctl start named.service
  • Check that your name server is running
ps ax | grep named
  • or
systemctl status named.service
  • When starting or restarting your name server view the log file (/var/log/messages) to ensure it started without error.
  • Try a few lookups:
 host f16.<learnid>.org
 	host vm01.<learnid>.org
 	host vm02.<learnid>.org
 	host vm03.<learnid>.org
 	host cbc.ca
  • Now try a few reverse lookups:
 host 192.168.X.1
 	host 192.168.X.2
 	host 192.168.X.3
 	host 192.168.X.4

Perform these steps on your Intranet machine

Use virt-manager on Fedora 16 and open vm01.

  • On this machine edit the /etc/resolv.conf file and enter the following:
 nameserver 192.168.X.1
 domain <learnid>.org
  • Now try the commands
 host f16.<learnid>.org
 	host vm01.<learnid>.org
 	host vm02.<learnid>.org
 	host vm03.<learnid>.org
 	host yahoo.ca
  • And the commands
 host 192.168.X.1
 	host 192.168.X.2
 	host 192.168.X.3
 	host 192.168.X.4

  • Now, still on the second machine, try surfing the web with Firefox. NOTE: you should not need to authenticate yourself through SeneNet on this machine.
  • Finally, on all machines in your network, experiment with the following commands. Be sure to use several different command options to learn and understand how they work.
 host
 dig
 nslookup

Completing the Lab

Answer the following questions:

  1. What is your full name and nine digit Seneca ID?
  2. Use iptables-save command to show the rules relating to DNS. Only show these rules.
  3. Show the log messages generated when starting your DNS server.
  4. What is a zone file and what is it used for?
  5. Name the zone files used in this lab.
  6. What is the purpose of /etc/nsswitch.conf?
  7. What is the purpose of /etc/resolv.conf?
  8. Under what circumstances does DNS use TCP vs UDP?
  9. What is meant by the term "negative cache"?
  10. Name 5 top level domains.