# Data Networking/Fall 2015/ZZTL
## Group Members

Xiao TAN Bohan ZHONG Junjie LI Xiyu ZHAO

## Motivations

The project aims to establish a network and provide relative functions for a company. The key concepts used in the project are highly related to our Data Networking class. While configuring those protocols, we met several problems and had deeper understanding of DHCP, DNS, VPS and Web server. We are more familiar with Ubuntu System, which is fast, secure and stylishly simple. Ubuntu System has a lot difference between Windows System. The ultimately solution basically solve the problems we might meet in engineering practice.

## Understanding the Protocol
#### DHCP

Dynamic Host Configuration Protocol – a network service that enables host computers to be automatically assigned settings from a server as opposed to manually configuring each network host. DHCP Servers are very often used in enterprise networks to reduce configuration. All IP addresses of all computers are stored in a database that resides on a DHCP server machine.

#### DNS

Domain Name Service – is a service that maps IP addresses and fully qualified domain names to one another. DNS alleviates the need to remember IP addresses and make people easy to remember website names. Ubuntu ships with BIND9 (Berkley Internet Naming Daemon), which is the most widely deployed DNS server.

#### WEB SERVER

Web Server is a web pages requested by clients. Clients typically request and view Web Pages using Web Browser applications, like Firefox.

#### FIREWALL

Firewall is setup on web server for secure matters. If the fire wall is enabled, no one would have the accessibility to servers except some clients and some kinds of services specified by firewall rules. Firewall can divide, filter and forward the data coming in or going out the network.

#### BACKUP

Backup is a very useful way to protect and recover lost data. It will copy all data of daily works in current server and send it to another server in remote. As server is a busy machine as clients increases ad it is possible for the server to crashed by heavy work. Back up is necessary to protect both server and data it generated.

#### VPN

VPN- virtual private network (VPN) extend a private network that can run over the public network.

#### NIS

NIS-network information service(NIS) produces a network lookup service including the service of databases and process.

#### NFS

Network File System allows hosts to access a directory located on one networked computer in the same network. The computer be accessed by other computer is called the server and the computers or devices connecting to that server are called clients. When a client get enough, it becomes part of their own directory structure.

#### NTP

NTP-network time protocol(NTP) is a kind of protocol which is used to synchronize the clocks of computers to some time reference.

#### MAIL SERVER

A mail server is a server that handles and delivers e-mail over a network, usually over the Internet. A mail server can receive e-mails from client computers and deliver them to other mail servers. A mail server can also deliver e-mails to client computers.

## The Requirements
#### DNS

* Assign a set of IP addresses that have to be used for this project.
* Create any 5 DNS records.
* Use IPv4 and IPv6 addresses in your implementation of records.
* Create reverse domains in in-addr.arpa and ipv6.arpa for the addresses.
* Configure a Master DNS server as well as a Slave DNS server, the Slave DNS should automatically update with Master DNS server.
* Test plan and implementation with examples.

#### DHCP

* Assigned a set of IP addresses that have to be used for this project.
* Use IPv4 and IPv6 addresses in your implementation of DHCP.
* Dynamic allocation of network addresses.
* The Client-Server Protocol.

#### Web Server & Firewall

* Use only command line tools and packages.
* Provide all the commands that you have used and also give a brief description in one line.
* Provide the changes you have made to the files/folders for configuring the webserver as well as the firewall.
* Create a basic page to be server by this web server.
* Make this page accessible to the clients in your network using a web browser.
* Make your server the most secured one in all possible ways.

#### Back Up

* Automate the process of backing up the data.
* The backup file should be zipped and sent to a different server.
* Describe briefly about how you backup automatically and also how file transfer is made.
* Mention which protocol you are using to complete this task.
* Provide the commands and configurations for sending the zipped file to a different location.

## Steps to perform the setup / installation
#### DHCP Server

IPv4
* Install:
* To Assign IP addresses dynamically, change the file:
* Then save and exit the file, restart the dhcp-server.
* Setting several fixed ip address.
IPv6
* Install:

#### DNS Server

IPv4
* Install DNS on local machine using Ubuntu & BIND9 package.
* Edited Forward Zone File: To map domain names to IP address.
* Used an existing zone file as a template to create the /etc/bind/db.www.wxl.com file.
* Create 5 records for the base domain, wxl.com. Then restart BIND9.
* Reverse Zone File:
* Create the /etc/bind/db.192 file
* After creating the reverse zone file then restart BIND9
IPv6
* Install radvd.
* Edit the file:

#### Web Server

* Install:
* Setting sever name:
* Then modify webpage.

#### Firewall

* Install:
* Configuration:
* Checking firewall status.
* Shut down the firewall.

#### Back up

MYSQL
* Install:
* Configuration:
* Copy the files in Web Server.
Rsync with ssh
* Install:
* Exchange keys to authorize the client to visit the server:
Cron
* Install:
* Configuration:

#### Add-ons

VPN
* Install:
* Configuration:
* Configuration:
NFS
* Install:
* NFS Server
* NFS client

## Testing

* Test the network
To see if they can ping successfully.
* Test DNS Server
Use Command nslookup Type in domain name to see if it could get the IP address it mapped Type in IPv4 address to see if it could get the domain name it mapped Type in IPv6 address to see if it could get the domain name it mapped
* Test DHCP Server
Using ‘ifconfig’ to see if the client (or server) gets the IP addresses (including IPv4 and IPv6).
* Test Web Server
Open the web browser, type in localhost to see if it can access the website.
* Test MySQL
Type the command MySQL –uroot –ppassword to login the MySQL Database. Type the command show databases; to see if it can get the table of database.

## Future Prospects

* Implementing more security functions to protect the network.
* Setting mail server in the network for better connection.
* Better to start earlier and realize more add-ons in the future.

## Citations

* https://help.ubuntu.com/lts/serverguide/network-file-system.html
* http://www.krizna.com/ubuntu/setup-mail-server-ubuntu-14-04/
* http://ju.outofmemory.cn/entry/39235
* https://www.youtube.com/watch?v=ML2xX64z6Q8
* https://help.ubuntu.com/10.04/serverguide/index.html
* https://help.ubuntu.com/10.04/serverguide/index.html