Thursday, June 2, 2016

[Quick Install: DHCP Server and MAC Binding]: DHCP server installation and configuration Linux

DHCP server installation and configuration Linux

DHCP server : Dynamic host configuration protocol is a Client/Server protocol which will automatically provide IP address to the requested client. Not only IP address along with IP it will also provide subnet mask, default gateway and DNS IP address.
Every device on a TCP/IP-based network must have a unique unicast IP address to access the network and its resources. Without DHCP, IP addresses for new computers or computers that are moved from one subnet to another must be configured manually; IP addresses for computers that are removed from the network must be manually reclaimed.
With DHCP, this entire process is automated and managed centrally. The DHCP server maintains a pool of IP addresses and leases an address to any DHCP-enabled client when it starts up on the network. Because the IP addresses are dynamic (leased) rather than static (permanently assigned), addresses no longer in use are automatically returned to the pool for reallocation.
DHCP server will provide a automatic IP address using DORA process which means
DHCP discovery
The client broadcasts messages on the network subnet using the destination address 255.255.255.255 or the specific subnet broadcast address. A DHCP client may also request its last-known IP address. If the client remains connected to the same network, the server may grant the request. Otherwise, it depends whether the server is set up as authoritative or not.
DHCP offer
When a DHCP server receives a DHCPDISCOVER message from a client, which is an IP address lease request, the server reserves an IP address for the client and makes a lease offer by sending a DHCPOFFER message to the client. This message contains the client’s MAC address, the IP address that the server is offering, the subnet mask, the lease duration, and the IP address of the DHCP server making the offer.
DHCP request
In response to the DHCP offer, the client replies with a DHCP request, broadcast to the server, requesting the offered address. A client can receive DHCP offers from multiple servers, but it will accept only one DHCP offer. Based on required server identification option in the request and broadcast messaging, servers are informed whose offer the client has accepted. When other DHCP servers receive this message, they withdraw any offers that they might have made to the client and return the offered address to the pool of available addresses.
DHCP acknowledgement
When the DHCP server receives the DHCPREQUEST message from the client, the configuration process enters its final phase. The acknowledgement phase involves sending a DHCPACK packet to the client. This packet includes the lease duration and any other configuration information that the client might have requested. At this point, the IP configuration process is completed.

while providing the permanent IP address to the DHCP client it will collect its MAC address. Provided IP address will not changed until DHCP server lease time expires.

::DHCP Server Profile::
Packages : dhcp*
Service : dhcpd.service
Config file : /etc/dhcp/dhcpd.conf
Port Number: 67

Installing DHCP server required packages using yum
[root@mail ~]# yum install dhcp*
[root@mail ~]# systemctl enable dhcpd.service
[root@mail ~]# systemctl start dhcpd.service
Job for dhcpd.service failed. See 'systemctl status dhcpd.service' and 'journalctl -xn' for details.
you may receive above error some times don’t worry after we set and DHCP server configuration restart service will work normally
[root@mail ~]# firewall-cmd --permanent --add-service=dhcp
success
[root@mail ~]# firewall-cmd --reload
success
Copy the sample configuration file to main configuration file. Default DHCP server configuration will not contain anything (empty)
[root@mail ~]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf 
cp: overwrite ‘/etc/dhcp/dhcpd.conf’? y
Now edit the config file /etc/dhcp/dhcpd.conf
[root@mail ~]# vim /etc/dhcp/dhcpd.conf
Default Line number 48
# A slightly different configuration for an internal subnet.
subnet 192.168.4.0 netmask 255.255.255.0 {
 range 192.168.4.10 192.168.4.254;
 option domain-name-servers ns1.internal.example.org;
 option domain-name "arkit.co.in";
 option routers 192.168.4.2;
 option broadcast-address 192.168.4.255;
 default-lease-time 600;
 max-lease-time 7200;
}
as shown in above we have to change subnet IP netmask IP add your domain name, routers IP (default gateway) broadcast IP address.
After that restart the dhcpd service
[root@mail ~]# systemctl restart dhcpd.service 
[root@mail ~]# systemctl status dhcpd.service 
dhcpd.service - DHCPv4 Server Daemon
Loaded: loaded (/usr/lib/systemd/system/dhcpd.service; disabled)
Active: active (running) since Thu 2016-03-24 23:39:19 IST; 5s ago
dhcp server configuration verification we can verify the config file using below command, will tell you where is the configuration went wrong
[root@mail ~]# dhcpd configtest
that’s for server side.
Go to client and test whether your getting same series IP address.
Stay tune for mac binding / reserving static IP to particular server
####################################################3

Configuring MAC binding in DHCP Server

configuring MAC binding in DHCP server means permanently assigning static Internet protocol (IP) to the DHCP client using client MAC address.
We don’t want to give automatic IP address to servers, which are service providers. As a example if a NFS or Samba Server IP got changed automatically after a reboot are Network restart then all client who are acessing NFS and Samba shares can’t be accessible using old IP address each and every time we have to intimate to the employees if server IP address changed.  Not only about accessing the NFS and Samba shares some of the shares maybe used for hosting of application. Hot coded links in HTML/PHP intranets all things get effected due an single IP address change.
Our goal is to set static IP address to DHCP client (server) using DHCP server configuration, which is called asconfiguring MAC binding
first step is to configure DHCP server, please refer below link

DHCP server installation and configuration Step by Step Guide

Configuring MAC binding

after configuring the DHCP server restart the service and verify status
[root@mail ~]# systemctl restart dhcpd.service 
[root@mail ~]# systemctl status dhcpd.service 
collect client machine MAC address simple trick, ping to all the clients which you want configure MAC binding then run # arp -a command
[root@mail ~]# ping 192.168.4.12
PING 192.168.4.12 (192.168.4.12) 56(84) bytes of data.
64 bytes from 192.168.4.12: icmp_seq=1 ttl=64 time=0.290 ms
64 bytes from 192.168.4.12: icmp_seq=2 ttl=64 time=0.356 ms
^C
--- 192.168.4.12 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 0.290/0.323/0.356/0.033 ms
[root@mail ~]# arp -a
? (192.168.4.2) at 00:50e:56:ee:4e:e2 [ether] on eno16777736
Edit the configuration and change as required
[root@mail ~]# vim /etc/dhcp/dhcpd.conf
# Fixed IP addresses can also be specified for hosts. These addresses
# should not also be listed as being available for dynamic assignment.
# Hosts for which fixed IP addresses have been specified can boot using
# BOOTP or DHCP. Hosts for which no fixed address is specified can only
# be booted with DHCP, unless there is an address range on the subnet
# to which a BOOTP client is connected which has the dynamic-bootp flag
# set.
host nfsserver {
 hardware ethernet 00:50e:56:ee:4e:e2;
 fixed-address 192.168.4.12;
}
as shown above we have to add host short name MAC address and host IP address.
If you want to configure MAC binding for 50 servers then copy the same line and paste below 50 times and change there MAC address, hostname and IP address accordingly.
test configuration file before restarting DHCP server
[root@mail ~]# dhcpd configtest
Internet Systems Consortium DHCP Server 4.2.5
Copyright 2004-2013 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
Not searching LDAP since ldap-server, ldap-port and ldap-base-dn were not specified in the config file
Wrote 0 class decls to leases file.
Wrote 0 deleted host decls to leases file.
Wrote 0 new dynamic host decls to leases file.
Wrote 0 leases to leases file.
restart DHCP service
[root@mail ~]# systemctl restart dhcpd.service 
[root@mail ~]# systemctl status dhcpd.service 
That’s it restart network services in client and verify specified IP address it will get. If you restart 100 times also you will get same IP address from DHCP lease.

No comments: