Difference between revisions of "OPS235 Lab 8 - Fedora17"

From CDOT Wiki
Jump to: navigation, search
 
(48 intermediate revisions by 4 users not shown)
Line 1: Line 1:
[[Category:OPS235]]{{Draft}}
+
[[Category:OPS235]]
= Install and Configure a DHCP Server =
+
{{Admon/caution|Draft Lab|This lab has NOT been released for regular distribution. When the lab is ready to be released, this caution banner will disappear.}}
[[Category:OPS235]][[Category:OPS235 Labs]]
+
= Setting Up, Using & Maintaining a DHCP Server =
 
 
  
 
==Overview==
 
==Overview==
  
* In this lab, you will learn how to setup, and run a DHCP server on your f16host machine, and then test-out the DHCP server by booting your VMs to receive IP addresses from the DHCP server.
+
* In this lab, you will learn how to setup, and run a DHCP server on your fedora3 machine, and then test-out the DHCP server by setting up your other VMs to receive an IP addresses from the DHCP server.
  
 
== Objectives ==
 
== Objectives ==
Line 12: Line 11:
 
* To obtain log information from DHCP server including lease address information.
 
* To obtain log information from DHCP server including lease address information.
 
* To lease the same IP address every-time from VM boot-up (instead of having DHCP server randomly assign IP address).
 
* To lease the same IP address every-time from VM boot-up (instead of having DHCP server randomly assign IP address).
 
  
 
==Required Materials (Bring to All Labs)==
 
==Required Materials (Bring to All Labs)==
  
* '''Fedora 16 LIVE CD''' - You can burn this onto a CD-R in the Open Lab
+
* Fedora 17 LIVE CD
* '''Fedora 16 x_64 Installation DVD''' - You can burn this onto a DVD-R in the Open Lab (or burn image onto a DVD+R if you are using the Freedom Toaster).
+
* Fedora 17 x86_64 Installation DVD
* '''SATA Hard Disk''' (in removable disk tray)
+
* SATA Hard Disk (in removable disk tray)
* '''USB Memory Stick''' (minimum 64M)
+
* USB Memory Stick
* '''Lab Logbook (Lab5 Reference Sheet)''' (to make notes and observations).
+
* Lab Logbook
  
 +
==Prerequisites==
  
==Prerequisites==
+
* Completion and Instructor "Sign-off" of Lab 7: [[OPS235 Lab 7]]
  
* Completion and Instructor "Sign-off" of Lab 6: [[OPS235 Lab 7]]
 
  
 +
==Linux Command Online Reference==
 +
Each Link below displays online manpages for each command (via [http://linuxmanpages.com/ http://linuxmanpages.com]):
  
{|width="100%" cellpadding="5"
+
{|width="100%" cellpadding="5" width="50%"
 
|'''Networking Utilities:'''
 
|'''Networking Utilities:'''
|
+
|'''Additional Utilities:'''
 +
|'''Configuration Files:'''
 
|- valign="top"
 
|- valign="top"
 
|
 
|
*[http://linuxmanpages.com/man1/ssh.1.php ssh]
+
 
*[http://linuxmanpages.com/man1/ssh-keygen.1.php ssh-keygen]
+
*[http://linuxmanpages.com/man8/dhcpd.8.php dhcpd]
*[http://linux.about.com/library/cmd/blcmdl5_ssh_config.htm ssh_config]
 
*[http://linux.about.com/od/commands/l/blcmdl5_sshdcon.htm sshd_config]
 
*[http://linuxmanpages.com/man1/scp.1.php scp]
 
*[http://linuxmanpages.com/man1/sftp.1.php sftp]
 
*[http://linuxmanpages.com/man8/netstat.8.php netstat]
 
 
*[http://linuxmanpages.com/man8/ifconfig.8.php ifconfig]
 
*[http://linuxmanpages.com/man8/ifconfig.8.php ifconfig]
*[http://linuxmanpages.com/man8/ping.8.php ping]
+
|
*[http://linuxmanpages.com/man8/arp.8.php arp]
 
 
*[http://www.linuxcertif.com/man/1/systemctl/ systemctl]
 
*[http://www.linuxcertif.com/man/1/systemctl/ systemctl]
*[http://linux.die.net/man/1/ssh-copy-id ssh-copy-id]
+
*[http://linuxmanpages.com/man1/tail.1.php tail]
*[http://linuxmanpages.com/man1/hostname.1.php hostname]
+
|
*[http://linuxmanpages.com/man8/restorecon.8.php restorecon]
+
*[http://linuxmanpages.com/man5/dhcpd.conf.5.php dhcpd.conf]
 +
*[http://linuxmanpages.com/man5/dhcp-options.5.php dhcpd-options]
 +
*[http://linuxmanpages.com/man5/dhcpd.leases.5.php dhcpd.leases]
 
|}
 
|}
  
Line 52: Line 49:
 
==Resources on the web==
 
==Resources on the web==
 
Additional links to tutorials and HOWTOs:
 
Additional links to tutorials and HOWTOs:
* [http://linuxmanpages.com/ man pages] for dhcpd, dhcpd.conf, dhcpd.leases, dhcp-options, dhclient, dhclient-conf
 
 
* [http://docs.fedoraproject.org/deployment-guide/f12/en-US/html/s1-dhcp-configuring-server.html Fedora DHCP Configuration Guide]
 
* [http://docs.fedoraproject.org/deployment-guide/f12/en-US/html/s1-dhcp-configuring-server.html Fedora DHCP Configuration Guide]
 
* [http://www.isc.org/software/dhcp Internet Software Consortium DHCP page]
 
* [http://www.isc.org/software/dhcp Internet Software Consortium DHCP page]
  
  
== Lab Preparation ==
+
== Install and Configure a DHCP Server ==
 +
 
 +
=== Lab Preparation ===
 
{{Admon/important | Update your systems | It is advisable to perform a <code>yum update</code> on your Fedora host and all 3 VM's.}}
 
{{Admon/important | Update your systems | It is advisable to perform a <code>yum update</code> on your Fedora host and all 3 VM's.}}
  
 
{{Admon/important | Backup your VMs before proceeding | If you did not do it at the end of Lab 7, stop all of your VMs and backup your VM disk images.}}
 
{{Admon/important | Backup your VMs before proceeding | If you did not do it at the end of Lab 7, stop all of your VMs and backup your VM disk images.}}
  
{{Admon/note |ISC DHCP packages Overview | The version of DHCP server (rpm package name called "dhcp-4.1.1-9.fc12.x86_64" ) that comes with Fedora is maintained and distributed by the Internet Software Consortium (http://www.isc.org). The source package that you can download from ISC includes not only the DHCP server, but also a DHCP client and a DHCP relay agent. However, Fedora separates it into two RPM packages: the DHCP client package called "dhclient-4.1.1-9.fc12.x86_64" and the DHCP server package called "dhcp-4.1.1-9.fc12.x86_64". The DHCP client package is installed by default by the workstation installation.}}
+
{{Admon/note |ISC DHCP packages Overview | The version of DHCP server (rpm package name called '''dhcp-4.1.1-9.fc16.x86_64''' ) that comes with Fedora is maintained and distributed by the Internet Software Consortium (http://www.isc.org). The source package that you can download from ISC includes not only the DHCP server, but also a DHCP client and a DHCP relay agent. However, Fedora separates it into two RPM packages: the DHCP client package called '''dhclient-4.1.1-9.fc16.x86_64''' and the DHCP server package called '''dhcp-4.1.1-9.fc16.x86_64'''. The DHCP client package is installed by default by the workstation installation.}}
 +
 
  
== Completing the Lab ==
+
=== Investigation 1: How do you install the DHCP Server? ===
=== Investigation 1: How do you install the DHCP Server. ===
+
{{Admon/note | Use your fedora3 VM | Complete the following steps on your fedora3 VM.}}
{{Admon/note | Note! | Complete the following steps on your fedora3 VM.}}
 
  
 
# To check that you have <code>dhclient</code> installed, enter the command:
 
# To check that you have <code>dhclient</code> installed, enter the command:
Line 76: Line 74:
 
<li>What file appears to be a sample configuration file?</li>
 
<li>What file appears to be a sample configuration file?</li>
 
<li>Copy the sample <code>dhcpd.conf</code> file to the <code>/etc/dhcp</code> directory making sure it is named <code>/etc/dhcp/dhcpd.conf</code></li>
 
<li>Copy the sample <code>dhcpd.conf</code> file to the <code>/etc/dhcp</code> directory making sure it is named <code>/etc/dhcp/dhcpd.conf</code></li>
<li>Answer the Investigation 1 question in your log book.</li>
 
 
</ol>
 
</ol>
 +
 +
'''Answer the Investigation 1 observations / questions in your lab log book.'''
 +
  
 
=== Investigation 2: What configuration options and directives need to be set in dhcpd.conf?===
 
=== Investigation 2: What configuration options and directives need to be set in dhcpd.conf?===
{{Admon/note | Note! | Complete the following steps on your fedora3 VM.}}
+
{{Admon/note | Use your fedora3 VM | Complete the following steps on your fedora3 VM.}}
  
  
Line 99: Line 99:
 
::* <code>subnet-mask</code>
 
::* <code>subnet-mask</code>
 
<ol><li value="2"> Study the sample <code>dhcpd.conf</code> file to see examples of how these options are used.</li>
 
<ol><li value="2"> Study the sample <code>dhcpd.conf</code> file to see examples of how these options are used.</li>
<li>Answer the Investigation 2 question in your log book.</li>
 
 
</ol>
 
</ol>
 +
 +
'''Answer the Investigation 2 observations / questions in your lab log book.'''
 +
  
 
=== Investigation 3: How do I configure dhcpd settings to be applied to all subnets?===
 
=== Investigation 3: How do I configure dhcpd settings to be applied to all subnets?===
{{Admon/note | Note! | Complete the following steps on your fedora3 VM.}}
+
{{Admon/note | Use your fedora3 VM | Complete the following steps on your fedora3 VM.}}
  
 
# Edit <code>/etc/dhcp/dhcpd.conf</code> and examine the top section of the file.
 
# Edit <code>/etc/dhcp/dhcpd.conf</code> and examine the top section of the file.
 
# Make the following changes to the global settings:
 
# Make the following changes to the global settings:
::* <code>domain-name</code> should be set to "ops235.org"
+
::* <code>domain-name</code> should be set to '''ops235.org'''
::* <code>domain-name-servers</code> should be set to 192.168.235.1
+
::* <code>domain-name-servers</code> should be set to '''192.168.235.1'''
::* <code>default-lease-time</code> should be set to 20 minutes
+
::* <code>default-lease-time</code> should be set to '''20 minutes'''
::* <code>max-lease-time</code> should be set to 1 hour
+
::* <code>max-lease-time</code> should be set to '''1 hour'''
 
<ol><li value="3">Save and exit your editing session.</li>
 
<ol><li value="3">Save and exit your editing session.</li>
<li>Answer the Investigation 3 question in your log book.</li>
 
 
</ol>
 
</ol>
  
{{Admon/note | Note! | As global settings these will affect all subnets unless they are separately declared for individual subnets.}}
+
{{Admon/note | Global Settings Affecting All Subnets | As global settings, these settings will affect <u>'''all subnets'''</u> unless they are separately declared for individual subnets.}}
 +
 
 +
'''Answer the Investigation 3 observations / questions in your lab log book.'''
 +
 
  
 
=== Investigation 4: How do I configure dhcpd to provide IP configuration to my virtual network?===
 
=== Investigation 4: How do I configure dhcpd to provide IP configuration to my virtual network?===
{{Admon/note | Note! | Complete the following steps on your fedora3 VM.}}
+
{{Admon/note | Use your fedora3 VM | Complete the following steps on your fedora3 VM.}}
  
 
# Edit <code>/etc/dhcp/dhcpd.conf</code> for a second time, and add a new subnet delcaration for your virtual network
 
# Edit <code>/etc/dhcp/dhcpd.conf</code> for a second time, and add a new subnet delcaration for your virtual network
# The network address is 192.168.235.0/255.255.255.0 and the range of host addresses should be from 51 to 60
+
# The network address is '''192.168.235.0/255.255.255.0''' and the range of host addresses should be from '''51 to 60'''
# Also add a default gateway for the virtual network of 192.168.235.1
+
# Also add a default gateway for the virtual network of '''192.168.235.1'''
# Save the file.
+
# Save your editing session, and exit the text editor.
{{Admon/note | Note! | Do not forget that you [http://zenit.senecac.on.ca/wiki/index.php/OPS235_Lab_7#Investigation_7:_How_do_you_make_sshd_more_secure. made ssh more secure] in the previous lab}}
+
{{Admon/note | Recall Secure SSH Connection Method from Lab7 | Do not forget that you [http://zenit.senecac.on.ca/wiki/index.php/OPS235_Lab_7#Investigation_7:_How_do_you_make_sshd_more_secure. made ssh more secure] in the previous lab. Therefore, you will need to use the same command in lab7 to securely connect to your VM.}}
  
 
<ol><li value="5">Open another terminal window (ssh into fedora3 from fedora host as user root) and issue the following command:
 
<ol><li value="5">Open another terminal window (ssh into fedora3 from fedora host as user root) and issue the following command:
Line 131: Line 135:
 
<li>In your original terminal prompt attempt to start the <code>dhcpd</code> service.</li>
 
<li>In your original terminal prompt attempt to start the <code>dhcpd</code> service.</li>
 
<li>You should see new lines being added to the messages file.</li>
 
<li>You should see new lines being added to the messages file.</li>
<li>If the service fails to start any error messages will be logged in the messages file. Read the errors and attempt to fix your configuration file.</li>
+
<li>If the <code>dhcpd</code> service fails to start any error messages will be logged in the messages file. Read the errors and attempt to fix your configuration file.</li>
<li>If the service starts successfully you should see success messages in the log. </li>
+
<li>If the <code>dhcpd</code> service starts successfully you should see success messages in the log. </li>
<li>If your service starts successfully edit the configuration file and introduce an error by removing a semicolon or closing curly bracket.</li>
+
<li>If your <code>dhcpd</code>  service starts successfully, try to generate errors by editing the configuration file and introduce an error by removing a semicolon or closing curly bracket.</li>
<li>Restart your service and observe the error messages generated.</li>
+
<li>Restart your <code>dhcpd</code> service and observe the error messages generated. This is good practice to learn how to trouble-shoot and solve dhcpd errors.</li>
 +
<li>Make certain that you have corrected those errors, and that your dhcpd service works properly.</li>
 
</ol>
 
</ol>
 
{{Admon/tip | Troubleshooting Tip: | Troubleshooting produces the best results when you are methodical in your approach. Try to fix the first error mentioned before fixing subsequent errors. Often the first error may cause multiple error messages as the configuration file is parsed. When you think you have fixed the first error try to start your service and if it fails check the log again. Fix one error at a time.}}
 
{{Admon/tip | Troubleshooting Tip: | Troubleshooting produces the best results when you are methodical in your approach. Try to fix the first error mentioned before fixing subsequent errors. Often the first error may cause multiple error messages as the configuration file is parsed. When you think you have fixed the first error try to start your service and if it fails check the log again. Fix one error at a time.}}
<ol><li value="13">When you have successfully started your service answer the Investigation 4 question in your log book. You may want to include all of the syntax you used.</li></ol>
+
 
 +
 
 +
'''Answer the Investigation 4 observations / questions in your lab log book.'''
 +
 
  
 
=== Investigation 5: How do I test my dhcpd service on my virtual network?===
 
=== Investigation 5: How do I test my dhcpd service on my virtual network?===
{{Admon/note | Note! | Complete the following steps on your fedora2 and fedora3 VM's.}}
+
 
 +
{{Admon/note | Use your fedora2 and fedora3 VMs | Complete the following steps on your fedora2 and fedora3 VM's.}}
  
 
# On a fedora3 terminal window make sure that the command <code>tail -f /var/log/messages</code> is running.
 
# On a fedora3 terminal window make sure that the command <code>tail -f /var/log/messages</code> is running.
# On fedora2 change the configuration of the eth1 (or your interface name) to receive dynamic address configuration
+
# On your fedora2 VM, change the configuration of '''eth1''' (or your interface name) to receive dynamic address configuration.
# Save your changes and restart <code>NetworkManager</code>
+
# Save your changes and restart the <code>NetworkManager</code> service.
 
# Observe the messages that get logged. You should see output similar to the following:
 
# Observe the messages that get logged. You should see output similar to the following:
<pre>
+
<pre >
 
Mar 24 13:28:24 fedora3 dhcpd: DHCPDISCOVER from 52:54:00:61:00:e7 via eth2
 
Mar 24 13:28:24 fedora3 dhcpd: DHCPDISCOVER from 52:54:00:61:00:e7 via eth2
 
Mar 24 13:28:25 fedora3 dhcpd: DHCPOFFER on 192.168.235.51 to 52:54:00:61:00:e7 via eth2
 
Mar 24 13:28:25 fedora3 dhcpd: DHCPOFFER on 192.168.235.51 to 52:54:00:61:00:e7 via eth2
Line 152: Line 161:
 
Mar 24 13:28:25 fedora3 dhcpd: DHCPACK on 192.168.235.51 to 52:54:00:61:00:e7 via eth2
 
Mar 24 13:28:25 fedora3 dhcpd: DHCPACK on 192.168.235.51 to 52:54:00:61:00:e7 via eth2
 
</pre>
 
</pre>
{{Admon/note | Note! | These messages record the DHCP lease transaction that consists of 4 broadcast packets, DISCOVER, OFFER, REQUEST and ACKNOWLEDGE. Try researching on the internet how this transaction differs from a DHCP lease renewal.}}
+
{{Admon/note | Identifying DHCP Lease Transaction Information  | These messages record the DHCP lease transaction that consists of 4 broadcast packets, DISCOVER, OFFER, REQUEST and ACKNOWLEDGE. Try researching on the internet how this transaction differs from a DHCP lease renewal.}}
<ol><li value="5">On fedora2 confirm the IP address assignment using <code>ifconfig</code></li>
+
<ol><li value="5">On fedora2, confirm the IP address assignment using <code>ifconfig</code></li>
<li>Answer the Investigation 5 question in your log book.</li>
 
 
</ol>
 
</ol>
 +
 +
'''Answer the Investigation 5 observations / questions in your lab log book.'''
 +
 +
 +
 +
== Obtaining Lease Information &amp; Lease Permanent IP Address ==
  
 
=== Investigation 6: Where does the dhcp server store a record of leased addresses?===
 
=== Investigation 6: Where does the dhcp server store a record of leased addresses?===
{{Admon/note | Note! | Complete the following steps on your fedora2 and fedora3 VM's.}}
+
 
 +
{{Admon/note | Use your fedora2 and fedora3 VMs | Complete the following steps on your fedora2 and fedora3 VM's.}}
  
 
# If your fedora3 DHCP server successfully issued the proper IP address configuration values to fedora2, check the file called <code>/var/lib/dhcpd/dhcpd.leases</code>
 
# If your fedora3 DHCP server successfully issued the proper IP address configuration values to fedora2, check the file called <code>/var/lib/dhcpd/dhcpd.leases</code>
Line 172: Line 187:
 
}
 
}
 
</pre>
 
</pre>
{{Admon/note | Note! | dhcpd records address leases in this file. If the service is restarted it reads in the file to know which addresses are currently leased and for how long.}}
+
{{Admon/note | Purpose of <code>dhcpd.leases</code> File | dhcpd records address leases in this file. If the service is restarted it reads in the file to know which addresses are currently leased and for how long.}}
<ol><li value="3">On the client fedora2 check the contents of the<code>/var/lib/dhclient</code> directory. The files in this directory is where the dhclient stores its record of leases.</li>
+
<ol><li value="3">On the client fedora2 check the contents of the <code>/var/lib/dhclient</code> directory. The files in this directory is where the dhclient stores its record of leases.</li>
<li>Answer the Investigation 6 question in your log book.</li>
 
 
</ol>
 
</ol>
 +
 +
'''Answer the Investigation 6 observations / questions in your lab log book.'''
  
 
=== Investigation 7: How can I lease the same address every time? ===
 
=== Investigation 7: How can I lease the same address every time? ===
{{Admon/note | Note! | Complete the following steps on your fedora2 and fedora3 VM's.}}
 
  
{{Admon/note | Note! | Even though DHCP gives out IP address dynamically, it also has the ability to reserve an IP address for a certain computer. In this sense it's almost as if the client computer has a static IP even though it uses DHCP to get it. This is useful if you want to be able to put entries in your /etc/hosts file and not have to worry about the entry becoming invalid over time. In Linux we refer to this as supplying a fixed address to a host. Microsoft calls it a reservation.}}
+
{{Admon/note | Use your fedora2 and fedora3 VMs | Complete the following steps on your fedora2 and fedora3 VM's.}}
 +
 
 +
{{Admon/note | Reserving IP Addresses with DHCP | Even though DHCP gives out IP address dynamically, it also has the ability to reserve an IP address for a certain computer. In this sense it's almost as if the client computer has a static IP even though it uses DHCP to get it. This is useful if you want to be able to put entries in your /etc/hosts file and not have to worry about the entry becoming invalid over time. In Linux we refer to this as supplying a fixed address to a host. Microsoft calls it a reservation.}}
  
 
# Make certain that you are located in your fedora3 virtual machine.
 
# Make certain that you are located in your fedora3 virtual machine.
 
# Create a host declaration for fedora2. Make sure you record the correct <code>hardware ethernet</code> setting that corresponds to the MAC address of the interface in fedora2.
 
# Create a host declaration for fedora2. Make sure you record the correct <code>hardware ethernet</code> setting that corresponds to the MAC address of the interface in fedora2.
 
# Give it the fixed-address 192.168.235.12
 
# Give it the fixed-address 192.168.235.12
{{Admon/tip | Note! | When supplying fixed-address it is important that the address assigned is exclusive of any ranges that have been declared. Otherwise it may be possible for 2 different hosts to receive the same address.}}
+
{{Admon/tip | Avoiding IP Address Conflicts | When supplying fixed-address it is important that the address assigned is exclusive of any ranges that have been declared. Otherwise it may be possible for 2 different hosts to receive the same address.}}
 
<ol><li value="3">Start your service and test the address assignment by releasing your current address on fedora2 and then requesting a new address. Use the following commands on fedora2:</li>
 
<ol><li value="3">Start your service and test the address assignment by releasing your current address on fedora2 and then requesting a new address. Use the following commands on fedora2:</li>
 
</ol>
 
</ol>
::: <code>dhclient -r eth1</code>
+
::: <code>ifdown eth1</code>
::: <code>dhclient eth1</code>
+
::: <code>ifup eth1</code>
 
<ol><li value="4">Confirm that you received the fixed address you were supposed to.</li>
 
<ol><li value="4">Confirm that you received the fixed address you were supposed to.</li>
<li>Answer the Investigation 7 question in your log book.</li>
 
 
</ol>
 
</ol>
 +
 +
'''Answer the Investigation 7 observations / questions in your lab log book.'''
  
 
== Completing the lab ==
 
== Completing the lab ==
Line 202: Line 220:
 
* DHCP client lease file
 
* DHCP client lease file
  
== Preparing for the Quizzes ==
+
== Preparing for Quizzes ==
  
 
# What protocol and port does dhcp use?  
 
# What protocol and port does dhcp use?  

Latest revision as of 18:55, 3 January 2014

Stop (medium size).png
Draft Lab
This lab has NOT been released for regular distribution. When the lab is ready to be released, this caution banner will disappear.

Setting Up, Using & Maintaining a DHCP Server

Overview

  • In this lab, you will learn how to setup, and run a DHCP server on your fedora3 machine, and then test-out the DHCP server by setting up your other VMs to receive an IP addresses from the DHCP server.

Objectives

  • To install, configure, and test ISC's DHCP Server.
  • To obtain log information from DHCP server including lease address information.
  • To lease the same IP address every-time from VM boot-up (instead of having DHCP server randomly assign IP address).

Required Materials (Bring to All Labs)

  • Fedora 17 LIVE CD
  • Fedora 17 x86_64 Installation DVD
  • SATA Hard Disk (in removable disk tray)
  • USB Memory Stick
  • Lab Logbook

Prerequisites

  • Completion and Instructor "Sign-off" of Lab 7: OPS235 Lab 7


Linux Command Online Reference

Each Link below displays online manpages for each command (via http://linuxmanpages.com):

Networking Utilities: Additional Utilities: Configuration Files:


Resources on the web

Additional links to tutorials and HOWTOs:


Install and Configure a DHCP Server

Lab Preparation

Important.png
Update your systems
It is advisable to perform a yum update on your Fedora host and all 3 VM's.
Important.png
Backup your VMs before proceeding
If you did not do it at the end of Lab 7, stop all of your VMs and backup your VM disk images.
Note.png
ISC DHCP packages Overview
The version of DHCP server (rpm package name called dhcp-4.1.1-9.fc16.x86_64 ) that comes with Fedora is maintained and distributed by the Internet Software Consortium (http://www.isc.org). The source package that you can download from ISC includes not only the DHCP server, but also a DHCP client and a DHCP relay agent. However, Fedora separates it into two RPM packages: the DHCP client package called dhclient-4.1.1-9.fc16.x86_64 and the DHCP server package called dhcp-4.1.1-9.fc16.x86_64. The DHCP client package is installed by default by the workstation installation.


Investigation 1: How do you install the DHCP Server?

Note.png
Use your fedora3 VM
Complete the following steps on your fedora3 VM.
  1. To check that you have dhclient installed, enter the command:
rpm -q dhclient
  1. If the package is not installed, you will get the message "package dhclient is not installed", otherwise, you will get the version information of the rpm package. Install the dhclient package if it was not installed.
  2. Check to see if the dhcp server package is installed.
  3. Follow the normal procedure to install the DHCP server rpm package called dhcp using yum.
  4. Enter the command to list all the files installed from the DHCP server package.
  5. What file appears to be a sample configuration file?
  6. Copy the sample dhcpd.conf file to the /etc/dhcp directory making sure it is named /etc/dhcp/dhcpd.conf

Answer the Investigation 1 observations / questions in your lab log book.


Investigation 2: What configuration options and directives need to be set in dhcpd.conf?

Note.png
Use your fedora3 VM
Complete the following steps on your fedora3 VM.


  1. Study the man pages of dhcpd, dhcpd.conf, dhcp-options, and dhcpd.leases and make notes in your log book. In particular, look up the meaning and possible value(s), if any, for the following configuration options:
  • broadcast-address
  • default-lease-time
  • max-lease-time (How is this different from default-lease-time?)
  • domain-name
  • domain-name-servers
  • fixed-address
  • group
  • hardware
  • host
  • host-name
  • range
  • routers
  • subnet
  • subnet-mask
  1. Study the sample dhcpd.conf file to see examples of how these options are used.

Answer the Investigation 2 observations / questions in your lab log book.


Investigation 3: How do I configure dhcpd settings to be applied to all subnets?

Note.png
Use your fedora3 VM
Complete the following steps on your fedora3 VM.
  1. Edit /etc/dhcp/dhcpd.conf and examine the top section of the file.
  2. Make the following changes to the global settings:
  • domain-name should be set to ops235.org
  • domain-name-servers should be set to 192.168.235.1
  • default-lease-time should be set to 20 minutes
  • max-lease-time should be set to 1 hour
  1. Save and exit your editing session.
Note.png
Global Settings Affecting All Subnets
As global settings, these settings will affect all subnets unless they are separately declared for individual subnets.

Answer the Investigation 3 observations / questions in your lab log book.


Investigation 4: How do I configure dhcpd to provide IP configuration to my virtual network?

Note.png
Use your fedora3 VM
Complete the following steps on your fedora3 VM.
  1. Edit /etc/dhcp/dhcpd.conf for a second time, and add a new subnet delcaration for your virtual network
  2. The network address is 192.168.235.0/255.255.255.0 and the range of host addresses should be from 51 to 60
  3. Also add a default gateway for the virtual network of 192.168.235.1
  4. Save your editing session, and exit the text editor.
Note.png
Recall Secure SSH Connection Method from Lab7
Do not forget that you made ssh more secure in the previous lab. Therefore, you will need to use the same command in lab7 to securely connect to your VM.
  1. Open another terminal window (ssh into fedora3 from fedora host as user root) and issue the following command:
    tail -f /var/log/messages
  2. This will show you the last 10 lines of /var/log/messages continue to display new lines as they are added to the log.
  3. In your original terminal prompt attempt to start the dhcpd service.
  4. You should see new lines being added to the messages file.
  5. If the dhcpd service fails to start any error messages will be logged in the messages file. Read the errors and attempt to fix your configuration file.
  6. If the dhcpd service starts successfully you should see success messages in the log.
  7. If your dhcpd service starts successfully, try to generate errors by editing the configuration file and introduce an error by removing a semicolon or closing curly bracket.
  8. Restart your dhcpd service and observe the error messages generated. This is good practice to learn how to trouble-shoot and solve dhcpd errors.
  9. Make certain that you have corrected those errors, and that your dhcpd service works properly.
Idea.png
Troubleshooting Tip:
Troubleshooting produces the best results when you are methodical in your approach. Try to fix the first error mentioned before fixing subsequent errors. Often the first error may cause multiple error messages as the configuration file is parsed. When you think you have fixed the first error try to start your service and if it fails check the log again. Fix one error at a time.


Answer the Investigation 4 observations / questions in your lab log book.


Investigation 5: How do I test my dhcpd service on my virtual network?

Note.png
Use your fedora2 and fedora3 VMs
Complete the following steps on your fedora2 and fedora3 VM's.
  1. On a fedora3 terminal window make sure that the command tail -f /var/log/messages is running.
  2. On your fedora2 VM, change the configuration of eth1 (or your interface name) to receive dynamic address configuration.
  3. Save your changes and restart the NetworkManager service.
  4. Observe the messages that get logged. You should see output similar to the following:
Mar 24 13:28:24 fedora3 dhcpd: DHCPDISCOVER from 52:54:00:61:00:e7 via eth2
Mar 24 13:28:25 fedora3 dhcpd: DHCPOFFER on 192.168.235.51 to 52:54:00:61:00:e7 via eth2
Mar 24 13:28:25 fedora3 dhcpd: DHCPREQUEST for 192.168.235.51 (192.168.235.13) from 52:54:00:61:00:e7 via eth2
Mar 24 13:28:25 fedora3 dhcpd: DHCPACK on 192.168.235.51 to 52:54:00:61:00:e7 via eth2
Note.png
Identifying DHCP Lease Transaction Information
These messages record the DHCP lease transaction that consists of 4 broadcast packets, DISCOVER, OFFER, REQUEST and ACKNOWLEDGE. Try researching on the internet how this transaction differs from a DHCP lease renewal.
  1. On fedora2, confirm the IP address assignment using ifconfig

Answer the Investigation 5 observations / questions in your lab log book.


Obtaining Lease Information & Lease Permanent IP Address

Investigation 6: Where does the dhcp server store a record of leased addresses?

Note.png
Use your fedora2 and fedora3 VMs
Complete the following steps on your fedora2 and fedora3 VM's.
  1. If your fedora3 DHCP server successfully issued the proper IP address configuration values to fedora2, check the file called /var/lib/dhcpd/dhcpd.leases
  2. You should see contents similar to:
lease 192.168.235.51 {
  starts 3 2010/03/24 17:28:25;
  ends 3 2010/03/24 17:48:25;
  cltt 3 2010/03/24 17:28:25;
  binding state active;
  next binding state free;
  hardware ethernet 52:54:00:61:00:e7;
}
Note.png
Purpose of dhcpd.leases File
dhcpd records address leases in this file. If the service is restarted it reads in the file to know which addresses are currently leased and for how long.
  1. On the client fedora2 check the contents of the /var/lib/dhclient directory. The files in this directory is where the dhclient stores its record of leases.

Answer the Investigation 6 observations / questions in your lab log book.

Investigation 7: How can I lease the same address every time?

Note.png
Use your fedora2 and fedora3 VMs
Complete the following steps on your fedora2 and fedora3 VM's.
Note.png
Reserving IP Addresses with DHCP
Even though DHCP gives out IP address dynamically, it also has the ability to reserve an IP address for a certain computer. In this sense it's almost as if the client computer has a static IP even though it uses DHCP to get it. This is useful if you want to be able to put entries in your /etc/hosts file and not have to worry about the entry becoming invalid over time. In Linux we refer to this as supplying a fixed address to a host. Microsoft calls it a reservation.
  1. Make certain that you are located in your fedora3 virtual machine.
  2. Create a host declaration for fedora2. Make sure you record the correct hardware ethernet setting that corresponds to the MAC address of the interface in fedora2.
  3. Give it the fixed-address 192.168.235.12
Idea.png
Avoiding IP Address Conflicts
When supplying fixed-address it is important that the address assigned is exclusive of any ranges that have been declared. Otherwise it may be possible for 2 different hosts to receive the same address.
  1. Start your service and test the address assignment by releasing your current address on fedora2 and then requesting a new address. Use the following commands on fedora2:
ifdown eth1
ifup eth1
  1. Confirm that you received the fixed address you were supposed to.

Answer the Investigation 7 observations / questions in your lab log book.

Completing the lab

Arrange proof of the following on the screen:

  • DHCP server log file showing a lease occuring
  • DHCP server configuration file showing subnet and host declaration
  • DHCP server lease file
  • DHCP client lease file

Preparing for Quizzes

  1. What protocol and port does dhcp use?
  2. What file is used to configure dhcpd?
  3. Can a dhcp server also be a dhcp client?
  4. What is the difference between max-lease-time and default-lease-time?
  5. What unit of measurement does default-lease-time require?
  6. What dhcp option is used for configuring a default gateway?
  7. What is the parameter range in the DHCP server configuration file used for?
  8. What is the purpose of a dhcp relay agent?
  9. Why might a dhcp relay agent be required?