# Data Networking/Fall 2013/Group16
## The Folks

Jinisha Ruparelia
Pooja Ghosh
Dheeraj Turupu Anandamurthy
Mehjabeen Dar

## Motivation

The objective of this project is to have a better understanding of a Linux based operating system, Ubuntu 12.04 by configuring network elements such as DHCP, DNS, Web Server, Firewall and Back-up. The purpose is to build a start-up company which effectively understands the customers requirements and provide a robust, secure, dynamic and cost effective system.

## Understanding the Protocol

DHCP (Dynamic Host Configuration Protocol) DHCP uses a four step procedure for assigning IP address to all the devices in the network. DHCP discover – Host sends this to the DHCP server, within a UDP packet to port 67. There can be many DHCP servers in the network so; this is a broadcast message (255.255.255.255) with Host IP address as 0.0.0.0. DHCP offer – To this reply the server again send a broadcast message which offers IP address and also its own address to host at port 68. DHCP request – Host select one DHCP server and sends a request to configuration the parameters; broadcasting the message to all the servers in the network. DHCP ACK – To the request message the server reply back with an ACK confirming the parameters. This completes the interaction and IP addresses are leased for a particular time. These IP address assigned by DHCP are private IP address.
DNS (Domain Name System) A host on the internet can be identified by either a hostname or an IP address. DNS is a directory service that translates hostnames to IP addresses and vice versa. It runs over UDP. It is employed by other application-layer protocol including HTTP, SMTP or FTP. To provide scalability, DNS uses a large number of servers, organized in a hierarchical fashion and thus the mapping is distributed across the servers. There are three classes of DNS servers.
1. Root DNS server
2. Top Level Domain DNS server
3. Authoritative DNS server
DNS is usually implemented using one or more centralized servers that are authoritative for certain domains. When a client host requests information from a nameserver, it usually connects to port 53. The nameserver then attempts to resolve the name requested. If it does not have an authoritative answer, or does not already have the answer cached from an earlier query, it queries other nameservers, called root nameservers, to determine which nameservers are authoritative for the name in question, and then queries them to get the requested name.
Everything you should know about the protocol
Architecture
Fundamental Logic

## The Requirements

Configuration of DHCP,DNS, Web Server with Firewall and Backup:
DHCP Server
Steps to configure:
1. Installation of DHCP package: In terminal we required to install the dhcp package by using command:
"sudo apt-get install isc-dhcp-server"
This command will install all the packages required by the machine to run the DHCP server.
2. Configuration of files: The two files required to configure /etc/default/isc-dhcp-server and /etc/dhcp/dhcpd.conf. /etc/default/isc-dhcp-server is used to configure the ethernet port we will be using to connect the server with all the other machines in our network. In the vi editor the we edit as INTERFACES="eth0". This will make the interface eth0 as the port where the changes of dhcp will be reflected. The another file is used to configure the dhcp server as per our IP address assignments need for our project. DHCP is given a static IP and the IP of the DNS Server and the Web server is fixed.
3. Installing DHCPv6 server: For installing DHCPv6 server it is required to install two packages:wide-dhcpv6-server and radvd.
For configuring DHCPv6 server it is required to configure the /etc/default/wide-dhcpv6-server file. It is required that server should forward IPv6 address and the router is also required to advertise the IPv6 network address. For router advertisement /etc/radvd.conf is configured.
4. Start the servers: Both the servers and router advertisements are started to provide the IP addresses to all the devices in the network as mentioned in the configured file.
DNS
Ubuntu ships with BIND (Berkley Internet Naming Daemon), the most common program used for maintaining a name server on Linux. First the IP address of server is set to static.
To install Bind following command is used. sudo apt-get install bind9
1. The DNS configuration files are stored in the /etc/bind directory. The primary configuration file is /etc/bind/named.conf.
2. The file /etc/bind/named.conf.options allows where to look for outside world.
3. To add a DNS zone to BIND9, turning BIND9 into a Primary Master server, the file /etc/bind/named.conf.local is configured. In this file forward and reverse lookup zones for ipv4 and ipv6 are defined. Reverse zone allows DNS to resolve an address to a name.
4. Two files are created to enter ipv4 and ipv6 resource records for forward and reverse zone. The file /etc/bind/zones/db.group16.com is used for forward zone and /etc/bind/zones/db.192 is created to enter resource records for reverse zone.
5. /etc/resolv.conf is used to configure name IP and domain of nameserver.
Web server
The web server installed is Apache version 2. Apache is a free open source software which runs over 50% of the world’s web servers. We use Ubuntu version 12.4 LTS to install the web server.
IP address of the web server is given by the DHCP using IP Reservation. In this way we fix a static IP address for the server.
To install apache, we use the following command in the terminal:
"sudo apt-get install apache2"
Firewall
We can implement firewalls to prevent two types of traffic the IPv4 and IPv6 traffic. The Uncomplicated firewall(UFW) and the GUFW enable us to do this. Configuring firewall: command used: "sudo apt-get install ufw"
To check Status of firewall: "sudo ufw status"

## Testing

Tests Plan
DHCP Server All the machines when connected to the network, it is checked whether DHCP is leasing its clients IP address from the proper range in network. The IP address assigned to the DNS Server and the Web Server is verified. For testing, the dhcp server is start using the command 'sudo service isc-dhcp-server start'. To stop the server the command used is 'sudo service isc-dhcp-server stop'.
DNS Server In order to test DNS server, it is connected with a computer using cross over cable. Then the command nslookup mehjabeen.group16.com is used to check the configured DNS server’s IP address which is 192.168.1.5/24 in this case. Ping 192.168.1.5 command was also used and the ping was successful.
Web server In order to verify whether the configuration of the web server is done correctly, we go the apache website and type 'localhost' . Then we type in the IP address of the machine on which the web server is configured in the browser URL. If the web site displays the message 'IT WORKS' then we have correctly installed the web server.
Test Tools
Test Cases

## Progress Updates

1.DHCP Server implemented which provides IPv4 and IPv6 address correctly.
2.Web server implemented and tested.
3.Firewall- Iptables implemented amd correctly blocks and allows traffic as per rules added.
4.DNS implemented and tested
5.Back-up implemented and testing is going-on
Expansion
Growth
Improvements

## Citations

Websites:
DHCP Server: http://askubuntu.com/questions/140126/how-do-i-configure-a-dhcp-server Books, Articles