Difference between revisions of "OPS235 Lab 8 - CentOS7"

From CDOT Wiki
Jump to: navigation, search
 
(105 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 +
{{Admon/caution|THIS IS AN OLD VERSION OF THE LAB|'''This is an archived version. Do not use this in your OPS235 course.'''}}
 
= LAB PREPARATION =
 
= LAB PREPARATION =
  
 
==Overview==
 
==Overview==
 +
{| width="40%" align="right" cellpadding="10"
 +
|- valign="top"
 +
|
 +
[[Image:ip.png|thumb|right|150px|Some computer networks (such as computer labs) configure their workstations for '''static IP addresses for security and to provide other interesting features such as WOL'''.]]
 +
|
 +
[[Image:wifi.png|thumb|right|125px|'''Hot-spots''' offer the ability for users to connect to the Internet via their mobile devices. '''Hybrid solutions''' combine DHCP and fixed IP Address.  ]]
 +
|}
 +
There are various ways in which computers can be networked together. Some computer networks (such as computer labs) configure their workstations for '''static IP addresses for security and to provide other interesting features such as WOL''' (Wake Up on Lan) which allows a signal from a computer system to remotely start all or specified workstations within the lab. '''Hot-spots (such as cafes or airport lounges) offer the ability for users to connect to the Internet (via DHCP) from their mobile devices''' (notebooks, netbooks, tablets, or smart phones). Finally, there are '''hybrid solutions that may offer both fixed IP address (computer workstations) and allow for wireless connections (via DHCP) to a mobile devices''' (like at your Seneca computer labs).
  
In this lab, you will learn how to setup, and run a DHCP server on your centos3 machine, and then test-out the DHCP server by setting up your other VMs to receive an IP addresses from the DHCP server.
+
In lab6, you learned to connect your VMs to a VPN using a fixed IP Address. In this final lab, you will learn to set-up a '''DHCP server''' to automatically assign IP Addresses upon connection requests.  
  
 
<u>Main Objectives</u>
 
<u>Main Objectives</u>
Line 14: Line 23:
 
==Minimum Required Materials==
 
==Minimum Required Materials==
  
{|cellpadding="15" width="40%"
+
{|cellpadding="15" width="40%"#INVESTIGATION_3:_SECURING_THE_SSH_CONNECTION
  
 
|- valign="top"
 
|- valign="top"
Line 40: Line 49:
 
|
 
|
 
*[http://man7.org/linux/man-pages/man1/tail.1.html tail]
 
*[http://man7.org/linux/man-pages/man1/tail.1.html tail]
 +
*[http://linux.die.net/man/8/chkconfig chkconfig]
 
|
 
|
 
*[https://www.freebsd.org/cgi/man.cgi?query=dhcpd.conf&sektion=5&apropos=0&manpath=FreeBSD+9.0-RELEASE+and+Ports dhcpd.conf]
 
*[https://www.freebsd.org/cgi/man.cgi?query=dhcpd.conf&sektion=5&apropos=0&manpath=FreeBSD+9.0-RELEASE+and+Ports dhcpd.conf]
Line 69: Line 79:
 
|width="90%" |The client sends a '''message of acceptance to the server'''. In turn, the client receives from the server a '''packet of information''' containing the lease duration and other configuration information
 
|width="90%" |The client sends a '''message of acceptance to the server'''. In turn, the client receives from the server a '''packet of information''' containing the lease duration and other configuration information
 
|}
 
|}
<br><br><br>
+
<br><br>
 
== Part 1: Installation of a DHCP==
 
== Part 1: Installation of a DHCP==
 
+
{| width="40%" align="right" cellpadding="10"
# Perform this section in your '''centos3''' VM.
+
|- valign="top"
# It is advisable to perform a yum update on your host and all three of your VM's.
+
|{{Admon/note|VM Backups and Yum Updates|Before proceeding with this lab make certain that you have backed-up from lab7, and then perform a '''yum update''' on all machines (including your VMs)|}}
# It is also advisable that you properly backed up your VMs from lab7.<br><br>The version of DHCP server that comes with CentOS 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. CentOS separates it into two RPM packages: the DHCP client package and the DHCP server package. The DHCP client package is installed by default by the workstation installation.<br><br>
+
|}
# To check that you have <code>dhclient</code> installed, enter the command:
+
# Perform this section in your '''centos3''' VM.<br><br>The version of DHCP server that comes with CentOS 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. CentOS separates it into two RPM packages: the DHCP client package and the DHCP server package. The DHCP client package is installed by default by the workstation installation.<br><br>
 +
# To check that you have <b>dhclient</b> installed, enter the command:
 
#:: <b><code><span style="color:#3366CC;font-size:1.2em;">rpm -q dhclient</span></code></b>
 
#:: <b><code><span style="color:#3366CC;font-size:1.2em;">rpm -q dhclient</span></code></b>
# 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 <code>dhclient</code> package if it was not installed.
+
# 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 <b>dhclient</b> package if it was not installed.
# Check to see if the dhcp server package is installed. If not - install it.
+
# Issue the following command to install the dhcp server package: <b><code><span style="color:#3366CC;font-size:1.2em;">yum install dhcp</span></code></b>
# Enter the command to list all the files installed from the DHCP server package.
+
# Enter the command to list all the files installed from the DHCP server package by issuing the command: <b><code><span style="color:#3366CC;font-size:1.2em;">rpm -qla dhcp</span></code></b>
# What file appears to be a sample configuration file?
+
# What file appears to be a sample (example) configuration file for dhcpd.conf?
# Copy the sample '''dhcpd.conf''' file to the '''/etc/dhcp''' directory making sure it is named: '''/etc/dhcp/dhcpd.conf'''
+
# Copy the '''dhcpd.conf.example''' file to the '''/etc/dhcp''' directory making sure it is named: '''/etc/dhcp/dhcpd.conf'''
  
 +
'''Answer Part 1 observations / questions in your lab log book.'''
  
'''Answer Part 1 observations / questions in your lab log book.'''
 
  
 
== Part 2: Configuring the DHCP Server==
 
== Part 2: Configuring the DHCP Server==
  
 +
[[Image:dhcp-config.png|thumb|right|500px|The '''dhcpd.config''' file allows the Linux system administrator to customize the DCHP server. Generally in this file are '''global settings''' (options that apply throughout entire network) and '''subnet declarations''' (options that apply only to that subnet). Whenever changes are made to this file, the '''DCHP service needs to be restarted''' to allow new settings to take effect.<br><br>'''NOTE: Any errors in this file (such as typos or missing semi-colons) can cause the DHCP server not to restart!''' ]]
  
# Remain in your centos3 VM for this section.
+
# Remain in your '''centos3''' VM for this section.
# Study the man pages of <code>dhcpd</code>, <code>dhcpd.conf</code>, <code>dhcp-options</code>, and <code>dhcpd.leases</code> and make notes in your log book. In particular, look up the meaning and possible value(s), if any,  for the following configuration options:
+
# Click on the following link to access the online manual page for the following DHCP items to gain an understanding: <ul><li>[http://linux.die.net/man/8/dhcpd dhcpd]</li><li>[https://www.freebsd.org/cgi/man.cgi?query=dhcpd.conf&sektion=5&apropos=0&manpath=FreeBSD+9.0-RELEASE+and+Ports dhcpd.conf]</li><li>[http://linux.die.net/man/5/dhcp-options dhcpd-options]</li><li>[http://linux.die.net/man/5/dhcpd.leases dhcpd.leases]<br><br></li></ul>
::* broadcast-address
+
# Study the sample '''dhcpd.conf''' file to see examples of how these options are used.
::* default-lease-time
+
# Edit '''/etc/dhcp/dhcpd.conf''' and examine the top section of the file.
::* max-lease-time (How is this different from "default-lease-time"?)
+
# Look for the comment: '''"option definitions common to all supported networks"'''
::* domain-name
+
# Below that comment change the existing global options to reflect the newer values shown below:<br><br><br>'''domain-name'''  '''"ops235.org";'''<br>'''domain-name-servers''' '''192.168.235.1;'''<br><br>'''default-lease-time'''  '''1200;'''<br>'''max-lease-time''' '''3600;'''<br><br><br>'''Note:''' Any values for time are stated in seconds.<br><br>
::* domain-name-servers
+
# View your editing sessions for typos (check for missing semicolons), then save and exit your editing session.<br><br>
::* fixed-address
+
 
::* group
+
 
::* hardware
+
'''Answer Part 2 observations / questions in your lab log book.'''
::* host
+
 
::* host-name
+
 
::* range
+
== Part 3: Configuring DHCP Server for Static IP Addresses==
::* routers
+
{|width="40%" align="right"
::* subnet
 
::* subnet-mask
 
<ol><li value="2"> Study the sample '''dhcpd.conf''' file to see examples of how these options are used.</li>
 
<li>Edit '''/etc/dhcp/dhcpd.conf''' and examine the top section of the file.</li>
 
<li>Make the following changes to the global settings:</li>
 
</ol>
 
{|width="40%"
 
  
 
|- valign="top"
 
|- valign="top"
  
|{{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.}}
+
|{{Admon/important | 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.}}
  
 
|}
 
|}
:: '''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'''
 
<ol><li value="5">Save and exit your editing session.</li>
 
</ol>
 
  
'''Answer Part 2 observations / questions in your lab log book.'''
 
  
 +
# Remain in your '''centos3''' VM for this section.
 +
# Edit '''/etc/dhcp/dhcpd.conf''' for a second time.
 +
# View this file for existing subnet declarations. Note the syntax and the directive for '''range''' and the option for '''routers''' (gateway).
 +
# Now, add a new subnet delcaration for your virtual network:<br><br>The network address is: '''192.168.235.0/255.255.255.0'''<br>range of host addresses should be from: '''51 to 60'''<br>default gateway (routers) for the virtual network is: '''192.168.235.1'''<br><br>
 +
# Save your editing session, and exit the text editor.
 +
<ol><li value="6">Open another terminal window (ssh into centos3 from the centos host as user root) and issue the following command:<br><b><code><span style="color:#3366CC;font-size:1.2em;">tail -f /var/log/messages</span></code></b><br><br>(This will show you the last lines of '''/var/log/messages''' continue to display new lines as they are added to the log.)<br><br></li>
 +
<li>In your original terminal prompt attempt to start the '''dhcpd''' service.</li>
 +
<li>You should see new lines being added to the messages file.</li>
 +
</ol>
 +
{|width="40%" align="right"
  
== Part 3: How do I configure dhcpd to provide IP configuration to my virtual network?==
+
|- valign="top"
{{Admon/note | Use your centos3 VM | Complete the following steps on your centos3 VM.}}
 
  
# Edit <code>/etc/dhcp/dhcpd.conf</code> for a second time, and add a new subnet delcaration for your virtual network
+
|{{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.}}
# 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'''
 
# Save your editing session, and exit the text editor.
 
{{Admon/note | 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.}}
 
  
<ol><li value="5">Open another terminal window (ssh into centos3 from the centos host as user root) and issue the following command:
+
|}
::: <code>tail -f /var/log/messages</code>
+
<ol>
<li>This will show you the last 10 lines of <code>/var/log/messages</code> continue to display new lines as they are added to the log.</li>
+
<li value="9">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.</li>
<li>In your original terminal prompt attempt to start the <code>dhcpd</code> service.</li>
+
<li>If the '''dhcpd''' service starts successfully you should see success messages in the log. </li>
<li>You should see new lines being added to the messages file.</li>
+
<li>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.</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>Restart your '''dhcpd''' service and observe the error messages generated. This is good practice to learn how to trouble-shoot and solve dhcpd errors.</li>
<li>If the <code>dhcpd</code> service starts successfully you should see success messages in the log. </li>
+
<li>Make certain that you have corrected those errors, and that your dhcpd service works properly.
<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>Once the dhcpd service has is running, use the '''systemctl''' command to see if the dhcpd service is enabled. If it is not enabled, use the '''chkconfig''' command to enable the dhcpd service so it started automatically upon boot-up.</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.}}
+
 
  
  
Line 153: Line 154:
  
 
== Part 4: How do I test my dhcpd service on my virtual network?==
 
== Part 4: How do I test my dhcpd service on my virtual network?==
 +
{|width="40%" align="right"
  
{{Admon/note | Use your centos2 and centos3 VMs | Complete the following steps on your centos2 and centos3 VMs.}}
+
|- valign="top"
  
# On a centos3 terminal window make sure that the command <code>tail -f /var/log/messages</code> is running.
+
|{{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.}}
# On your centos2 VM, change the configuration of '''eth0''' (or your interface name) to receive dynamic address configuration.
+
 
# Save your changes and restart the <code>NetworkManager</code> service.
+
|}
# Observe the messages that get logged. You should see output similar to the following:
+
# Use your '''centos2''' and '''centos3''' VMs for this section.
<pre >
+
# On your '''centos3''' terminal window (via ssh from your c7host machine) make sure that the command<br><b>tail -f /var/log/messages</b> is running.
Mar 24 13:28:24 centos3 dhcpd: DHCPDISCOVER from 52:54:00:61:00:e7 via eth2
+
# On your '''centos2''' VM, change the configuration of '''eth0''' (or your interface name) to receive dynamic address configuration (i.e. via graphical application, for IVP4 tab, change ''Address'' from '''Manual''' to '''DHCP''', and '''Apply''' settings)<br>([http://zenit.senecac.on.ca/wiki/index.php/OPS235_Lab_6_-_CentOS7#Part_2:_Configuring_VM_Network_Setup_Graphically_.28system-config-network.29 Refer to Lab6, Investigation1, Part2]).<br><br>Note: if you are configuring via command line, make certain to restart the network for centos2.
Mar 24 13:28:25 centos3 dhcpd: DHCPOFFER on 192.168.235.51 to 52:54:00:61:00:e7 via eth2
+
# Logout and restart your '''centos2''' VM.
Mar 24 13:28:25 centos3 dhcpd: DHCPREQUEST for 192.168.235.51 (192.168.235.13) from 52:54:00:61:00:e7 via eth2
+
# Observe the messages that get logged from the tail -f command as your centos2 VM starts. You should see output similar to the following:<br><br>
Mar 24 13:28:25 centos3 dhcpd: DHCPACK on 192.168.235.51 to 52:54:00:61:00:e7 via eth2
+
::<span style="font-family:courier;">Mar 24 13:28:24 centos3 dhcpd: DHCPDISCOVER from 52:54:00:61:00:e7 via eth2</span>
</pre>
+
::<span style="font-family:courier;">Mar 24 13:28:25 centos3 dhcpd: DHCPOFFER on 192.168.235.51 to 52:54:00:61:00:e7 via eth2</span>
{{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.}}
+
::<span style="font-family:courier;">Mar 24 13:28:25 centos3 dhcpd: DHCPREQUEST for 192.168.235.51 (192.168.235.13) from 52:54:00:61:00:e7 via eth2</span>
<ol><li value="5">On centos2, confirm the IP address assignment using <code>ifconfig</code></li>
+
::<span style="font-family:courier;">Mar 24 13:28:25 centos3 dhcpd: DHCPACK on 192.168.235.51 to 52:54:00:61:00:e7 via eth2<br><br></span>
 +
<ol>
 +
<li value="6">On '''centos2''', confirm the IP address assignment using <b><code><span style="color:#3366CC;font-size:1.2em;">ifconfig</span></code></b></li>
 +
<li>Has the IP Address changed? If so, how has the IP Address been assigned according to the '''dhcpd.conf''' file settings?</li>
 
</ol>
 
</ol>
  
Line 176: Line 181:
  
  
== Part 1: Where does the dhcp server store a record of leased addresses?==
+
== Part 1: Obtaining Leased Address Infomation==
 +
{|width="40%" align="right"
  
{{Admon/note | Use your centos2 and centos3 VMs | Complete the following steps on your centos2 and centos3 VMs.}}
+
|- valign="top"
  
# If your centos3 DHCP server successfully issued the proper IP address configuration values to centos2, check the file called <code>/var/lib/dhcpd/dhcpd.leases</code>
+
|{{Admon/note | 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.}}
# You should see contents similar to:
+
 
<pre>
+
|}
lease 192.168.235.51 {
+
 
   starts 3 2010/03/24 17:28:25;
+
# Remain in your '''centos2''' and '''centos3''' VMs for this section.
   ends 3 2010/03/24 17:48:25;
+
# If your '''centos3''' DHCP server successfully issued the proper IP address configuration values to '''centos2''', check the file called:<br>'''/var/lib/dhcpd/dhcpd.leases''' in your <u>'''centos3''' VM</u>. You should the similar contents:<br><br>
   cltt 3 2010/03/24 17:28:25;
+
::<span style="font-family:courier;"> lease 192.168.235.51 {</span>
   binding state active;
+
::<span style="font-family:courier;">   starts 5 2015/07/10 17:57:34;</span>
   next binding state free;
+
::<span style="font-family:courier;">   ends 5 2015/07/10 18:17:34;</span>
   hardware ethernet 52:54:00:61:00:e7;
+
::<span style="font-family:courier;">   cltt 5 2015/07/10 17:57:34;</span>
}
+
::<span style="font-family:courier;">   binding state active;</span>
</pre>
+
::<span style="font-family:courier;">   next binding state free;</span>
{{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.}}
+
::<span style="font-family:courier;">  rewind binding state free;</span>
<ol><li value="3">On the client centos2 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>
+
::<span style="font-family:courier;">   hardware ethernet 52:54:00:0e:7d:a4;</span>
 +
::<span style="font-family:courier;">  client-hostname "centos2";</span>
 +
::<span style="font-family:courier;"> }</span>
 +
<ol><li value="3">On the client '''centos2''' check the contents of the <b>/var/lib/dhclient</b> directory. The files in this directory is where the dhclient stores its record of leases.<br><br> '''NOTE:''' If there are no files, then in a shell as root in your centos2 VM issue the command: <b><code><span style="color:#3366CC;font-size:1.2em;">dhclient eth0</span></code></b><br>Then check to see if there is file containing lease information in that directory.<br><br></li>
 
</ol>
 
</ol>
  
 
'''Answer Part 1 observations / questions in your lab log book.'''
 
'''Answer Part 1 observations / questions in your lab log book.'''
  
== Part 2: How can I lease the same address every time? ==
+
== Part 2: Configuring DHCP server to Continually Lease Same IP Address==
 +
{|width="40%" align="right"
  
{{Admon/note | Use your centos2 and centos3 VMs | Complete the following steps on your centos2 and centos3 VMs.}}
+
|- valign="top"
  
{{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.}}
+
|{{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 centos3 virtual machine.
+
|}
# Create a host declaration for centos2. Make sure you record the correct <code>hardware ethernet</code> setting that corresponds to the MAC address of the interface in centos2.
+
# Remain in your '''centos2''' and '''cento3''' VMs for this section.
# Give it the fixed-address 192.168.235.12
+
# Make certain that you are located in your '''centos3''' virtual machine.
{{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.}}
+
# Create a host declaration for '''centos2'''. Make sure you record the correct <code>hardware ethernet</code> setting that corresponds to the MAC address of the interface in '''centos2'''.
<ol><li value="3">Start your service and test the address assignment by releasing your current address on centos2 and then requesting a new address. Use the following commands on centos2:</li>
+
# Give it the fixed-address '''192.168.235.42'''<br><br>'''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.<br><br>
 +
<ol><li value="5">Start your service and test the address assignment by releasing your current address on '''centos2''' and then requesting a new address. Use the following commands on '''centos2''':</li>
 
</ol>
 
</ol>
::: <code>ifdown eth1</code>
+
::: <b><code><span style="color:#3366CC;font-size:1.2em;">ifdown eth1</span></code></b>
::: <code>ifup eth1</code>
+
::: <b><code><span style="color:#3366CC;font-size:1.2em;">ifup eth1</span></code></b>
<ol><li value="4">Confirm that you received the fixed address you were supposed to.</li>
+
<ol><li value="6">Confirm that you received the fixed address you were supposed to.</li>
 
</ol>
 
</ol>
 +
  
 
'''Answer Part 2 observations / questions in your lab log book.'''
 
'''Answer Part 2 observations / questions in your lab log book.'''
  
 
= LAB 8 SIGN-OFF (SHOW INSTRUCTOR) =
 
= LAB 8 SIGN-OFF (SHOW INSTRUCTOR) =
{{Admon/important|Time for a new backup!|If you have successfully completed this lab, make a new backup of your virtual machines. Remember to also make a backup of the new second virtual disk drive on ''centos3'' -- you now have two virtual disks on ''centos3'', and therefore two image files, and therefore will need two backup files.}}
+
{{Admon/important|Time for a new backup, INCLUDING YOUR VIRTUAL HARD DRIVE!|If you have successfully completed this lab, make a new backup of your virtual machines. <br><br>'''Virtual hard-drives created lab5 are image files and may have data changed as a result of performing this lab. Therefore, you need to be backed up this hard disk image as well!'''.}}
Arrange proof of the following on the screen:
+
 
* DHCP server log file showing a lease occuring
+
'''Arrange proof of the following on the screen:'''
* DHCP server configuration file showing subnet and host declaration
+
 
* DHCP server lease file
+
<ol><li><span style="color:green;font-size:1.5em;">&#x2713;</span> '''centos2''' VM:<blockquote><ul><li>'''ifconfig eth0''' shows IP address '''192.168.235.42'''</li><li>DHCP client lease file</li></ul></blockquote><li><span style="color:green;font-size:1.5em;">&#x2713;</span> '''centos3''' VM:<blockquote><ul><li>DHCP server log file showing a lease occuring</li><li>DHCP server configuration file showing subnet and host declaration</li><li>DHCP server lease file</li></ul></blockquote></li><li><span style="color:green;font-size:1.5em;">&#x2713;</span> '''Lab8''' log-book filled out.</li></ol>
* DHCP client lease file
 
  
= Preparing for Quizzes =
+
== Practice For Quizzes, Tests, Midterm &amp; Final Exam ==
  
 
# What protocol and port does dhcp use?  
 
# What protocol and port does dhcp use?  

Latest revision as of 11:18, 27 November 2019

Stop (medium size).png
THIS IS AN OLD VERSION OF THE LAB
This is an archived version. Do not use this in your OPS235 course.

LAB PREPARATION

Overview

Some computer networks (such as computer labs) configure their workstations for static IP addresses for security and to provide other interesting features such as WOL.
Hot-spots offer the ability for users to connect to the Internet via their mobile devices. Hybrid solutions combine DHCP and fixed IP Address.

There are various ways in which computers can be networked together. Some computer networks (such as computer labs) configure their workstations for static IP addresses for security and to provide other interesting features such as WOL (Wake Up on Lan) which allows a signal from a computer system to remotely start all or specified workstations within the lab. Hot-spots (such as cafes or airport lounges) offer the ability for users to connect to the Internet (via DHCP) from their mobile devices (notebooks, netbooks, tablets, or smart phones). Finally, there are hybrid solutions that may offer both fixed IP address (computer workstations) and allow for wireless connections (via DHCP) to a mobile devices (like at your Seneca computer labs).

In lab6, you learned to connect your VMs to a VPN using a fixed IP Address. In this final lab, you will learn to set-up a DHCP server to automatically assign IP Addresses upon connection requests.

Main 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).


Minimum Required Materials

Removable Hard Disk Pack (SATA)
USB key
(for backups)
Lab8 Log Book

My Toolkit (CLI Reference)

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

Networking Utilities: Additional Utilities: Configuration Files:

INVESTIGATION 1: INSTALL AND CONFIGURE A DHCP SERVER

The term DORA best describes how DHCP works.

This lab will demonstrate setting up a DHCP server. The term DHCP stands for Dynamic Host Configuration Protocol. DHCP allows computers (eg. workstations, notebooks, smart-phones) to be automatically configured so that they can communicate over a network. This automatic configuration has gained popularity over the years, especially as the need for detecting and configuring portable computer devices increases. DHCP configuration allows for various setups including: Dynamic, Automatic, and Static allocation.

The term DORA best describes how DHCP Works:

Discovery: The client broadcasts a message (IP lease request) on a sub-network to discover available DHCP servers
Offer: The DHCP server receives the request from the client, reserves an IP ADDRESS for the client and sends a DHCPOFFER
Request: The DHCP server broadcasts a message request for acceptance, but also notifies other DHCP server
Acknowledgement: The client sends a message of acceptance to the server. In turn, the client receives from the server a packet of information containing the lease duration and other configuration information



Part 1: Installation of a DHCP

Note.png
VM Backups and Yum Updates
Before proceeding with this lab make certain that you have backed-up from lab7, and then perform a yum update on all machines (including your VMs)
  1. Perform this section in your centos3 VM.

    The version of DHCP server that comes with CentOS 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. CentOS separates it into two RPM packages: the DHCP client package and the DHCP server package. The DHCP client package is installed by default by the workstation installation.

  2. To check that you have dhclient installed, enter the command:
    rpm -q dhclient
  3. 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.
  4. Issue the following command to install the dhcp server package: yum install dhcp
  5. Enter the command to list all the files installed from the DHCP server package by issuing the command: rpm -qla dhcp
  6. What file appears to be a sample (example) configuration file for dhcpd.conf?
  7. Copy the dhcpd.conf.example file to the /etc/dhcp directory making sure it is named: /etc/dhcp/dhcpd.conf

Answer Part 1 observations / questions in your lab log book.


Part 2: Configuring the DHCP Server

The dhcpd.config file allows the Linux system administrator to customize the DCHP server. Generally in this file are global settings (options that apply throughout entire network) and subnet declarations (options that apply only to that subnet). Whenever changes are made to this file, the DCHP service needs to be restarted to allow new settings to take effect.

NOTE: Any errors in this file (such as typos or missing semi-colons) can cause the DHCP server not to restart!
  1. Remain in your centos3 VM for this section.
  2. Click on the following link to access the online manual page for the following DHCP items to gain an understanding:
  3. Study the sample dhcpd.conf file to see examples of how these options are used.
  4. Edit /etc/dhcp/dhcpd.conf and examine the top section of the file.
  5. Look for the comment: "option definitions common to all supported networks"
  6. Below that comment change the existing global options to reflect the newer values shown below:


    domain-name "ops235.org";
    domain-name-servers 192.168.235.1;

    default-lease-time 1200;
    max-lease-time 3600;


    Note: Any values for time are stated in seconds.

  7. View your editing sessions for typos (check for missing semicolons), then save and exit your editing session.


Answer Part 2 observations / questions in your lab log book.


Part 3: Configuring DHCP Server for Static IP Addresses

Important.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. Remain in your centos3 VM for this section.
  2. Edit /etc/dhcp/dhcpd.conf for a second time.
  3. View this file for existing subnet declarations. Note the syntax and the directive for range and the option for routers (gateway).
  4. Now, add a new subnet delcaration for your virtual network:

    The network address is: 192.168.235.0/255.255.255.0
    range of host addresses should be from: 51 to 60
    default gateway (routers) for the virtual network is: 192.168.235.1

  5. Save your editing session, and exit the text editor.
  1. Open another terminal window (ssh into centos3 from the centos host as user root) and issue the following command:
    tail -f /var/log/messages

    (This will show you the last lines of /var/log/messages continue to display new lines as they are added to the log.)

  2. In your original terminal prompt attempt to start the dhcpd service.
  3. You should see new lines being added to the messages file.
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.
  1. 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.
  2. If the dhcpd service starts successfully you should see success messages in the log.
  3. 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.
  4. Restart your dhcpd service and observe the error messages generated. This is good practice to learn how to trouble-shoot and solve dhcpd errors.
  5. Make certain that you have corrected those errors, and that your dhcpd service works properly.
  6. Once the dhcpd service has is running, use the systemctl command to see if the dhcpd service is enabled. If it is not enabled, use the chkconfig command to enable the dhcpd service so it started automatically upon boot-up.


Answer Part 3 observations / questions in your lab log book.


Part 4: How do I test my dhcpd service on my virtual network?

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. Use your centos2 and centos3 VMs for this section.
  2. On your centos3 terminal window (via ssh from your c7host machine) make sure that the command
    tail -f /var/log/messages is running.
  3. On your centos2 VM, change the configuration of eth0 (or your interface name) to receive dynamic address configuration (i.e. via graphical application, for IVP4 tab, change Address from Manual to DHCP, and Apply settings)
    (Refer to Lab6, Investigation1, Part2).

    Note: if you are configuring via command line, make certain to restart the network for centos2.
  4. Logout and restart your centos2 VM.
  5. Observe the messages that get logged from the tail -f command as your centos2 VM starts. You should see output similar to the following:

Mar 24 13:28:24 centos3 dhcpd: DHCPDISCOVER from 52:54:00:61:00:e7 via eth2
Mar 24 13:28:25 centos3 dhcpd: DHCPOFFER on 192.168.235.51 to 52:54:00:61:00:e7 via eth2
Mar 24 13:28:25 centos3 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 centos3 dhcpd: DHCPACK on 192.168.235.51 to 52:54:00:61:00:e7 via eth2

  1. On centos2, confirm the IP address assignment using ifconfig
  2. Has the IP Address changed? If so, how has the IP Address been assigned according to the dhcpd.conf file settings?

Answer Part 4 observations / questions in your lab log book.


INVESTIGATION 2: OBTAINING LEASE & LEASE PERMANENT IP ADDRESS INFORMATION

Part 1: Obtaining Leased Address Infomation

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. Remain in your centos2 and centos3 VMs for this section.
  2. If your centos3 DHCP server successfully issued the proper IP address configuration values to centos2, check the file called:
    /var/lib/dhcpd/dhcpd.leases in your centos3 VM. You should the similar contents:

lease 192.168.235.51 {
starts 5 2015/07/10 17:57:34;
ends 5 2015/07/10 18:17:34;
cltt 5 2015/07/10 17:57:34;
binding state active;
next binding state free;
rewind binding state free;
hardware ethernet 52:54:00:0e:7d:a4;
client-hostname "centos2";
}
  1. On the client centos2 check the contents of the /var/lib/dhclient directory. The files in this directory is where the dhclient stores its record of leases.

    NOTE: If there are no files, then in a shell as root in your centos2 VM issue the command: dhclient eth0
    Then check to see if there is file containing lease information in that directory.

Answer Part 1 observations / questions in your lab log book.

Part 2: Configuring DHCP server to Continually Lease Same IP Address

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. Remain in your centos2 and cento3 VMs for this section.
  2. Make certain that you are located in your centos3 virtual machine.
  3. Create a host declaration for centos2. Make sure you record the correct hardware ethernet setting that corresponds to the MAC address of the interface in centos2.
  4. Give it the fixed-address 192.168.235.42

    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.

  1. Start your service and test the address assignment by releasing your current address on centos2 and then requesting a new address. Use the following commands on centos2:
ifdown eth1
ifup eth1
  1. Confirm that you received the fixed address you were supposed to.


Answer Part 2 observations / questions in your lab log book.

LAB 8 SIGN-OFF (SHOW INSTRUCTOR)

Important.png
Time for a new backup, INCLUDING YOUR VIRTUAL HARD DRIVE!
If you have successfully completed this lab, make a new backup of your virtual machines.

Virtual hard-drives created lab5 are image files and may have data changed as a result of performing this lab. Therefore, you need to be backed up this hard disk image as well!.

Arrange proof of the following on the screen:

  1. centos2 VM:
    • ifconfig eth0 shows IP address 192.168.235.42
    • DHCP client lease file
  2. centos3 VM:
    • DHCP server log file showing a lease occuring
    • DHCP server configuration file showing subnet and host declaration
    • DHCP server lease file
  3. Lab8 log-book filled out.

Practice For Quizzes, Tests, Midterm & Final Exam

  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?