Đặng Thanh Bình

Dynamic Host Configuration Protocol

Contents

• Why Use DHCP? • Configuring a DHCP Server • Configuring a DHCP Client

WHY USE DHCP?

Why Use DHCP?

• Dynamic Host Configuration Protocol (DHCP) is a that automatically assigns

network protocol TCP/IP information to client machines.

• Each DHCP client connects to the centrally located DHCP server, which returns that client's network configuration (including the IP address, gateway, and DNS servers).

Why Use DHCP?

• DHCP is useful for automatic configuration of

• When configuring system, client

client network interfaces. the the administrator chooses DHCP instead of specifying an IP address, netmask, gateway, or DNS servers. • The client retrieves this information from the

DHCP server.

Why Use DHCP?

• DHCP is also useful if an administrator wants to change the IP addresses of a large number of systems.

• Instead of reconfiguring all the systems, he can just edit one DHCP configuration file on the server for the new set of IP addresses. – If the DNS servers for an organization changes, the changes are made on the DHCP server, not on the DHCP clients.

Why Use DHCP?

• If an organization has a functional DHCP server laptops and properly connected to a network, other mobile computer users can move these devices from office to office.

CONFIGURING A DHCP SERVER

Configuring a DHCP Server

• To configure a DHCP server, you must create the dhcpd.conf configuration file in the /etc/dhcp directory.

• A sample file can be found at

/usr/share/doc/dhcp-/dhcpd.conf.sample

• DHCP uses the

to store file the

also /var/lib/dhcpd/dhcpd.leases client lease database.

Configuration File

• The first step in configuring a DHCP server is to create the configuration file that stores the network information for the clients.

• Use this file to declare options and global options

for client systems.

• The configuration file can contain extra tabs or blank lines for easier formatting. Keywords are case-insensitive and lines beginning with a hash mark (#) are considered comments.

DNS update schemes

• Two DNS update schemes are currently

implemented – the ad-hoc DNS update mode – the interim DHCP-DNS interaction update mode. server

the DNS

configure

• You must

for

compatibility with these schemes.

DNS update schemes

• To use adhoc mode, add the following line to the

top of the configuration file

• To use the recommended mode, add the following line to the top of the configuration file

Types Of Statements

– Declarations — Describe the topology of the network, describe the clients, provide addresses for the clients, or apply a group of parameters to a group of declarations.

• Two types of statements in the configuration file: – Parameters — State how to perform a task, whether to perform a task, or what network configuration options to send to the client.

Ex. 1. Subnet Declaration

• There are global options for every DHCP client in the subnet and a range declared. Clients are assigned an IP address within the range

Ex. 2. Shared-network Declaration

• All subnets that share the same physical network should be declared within a shared-network declaration

• Parameters within the shared-network, but outside the enclosed subnet declarations, are considered to be global parameters.

• The name of the shared-network must be a descriptive title for the network, such as using the title 'test-lab' to describe all the subnets in a test lab environment.

Ex. 2. Shared-network Declaration

Ex. 3. Group Declaration

• The group declaration is used to apply global

parameters to a group of declarations.

• For example, shared networks, subnets, and

hosts can be grouped.

Ex. 3. Group Declaration

Ex. 4. Range Parameter

• To configure a DHCP server that leases a dynamic IP address to a system within a subnet, modify Example 4, “Range Parameter” with your values. • It declares a default lease time, maximum lease time, and network configuration values for the clients.

• This example assigns IP addresses in the range client

192.168.1.100

and

to

192.168.1.10 systems.

Ex. 4. Range Parameter

Ex. 5. Static IP Address using DHCP

• To assign an IP address to a client based on the MAC address of the network interface card, use the hardware ethernet parameter within a host declaration.

• As demonstrated in Example 5, “Static IP Address using DHCP”, the host apex declaration specifies that the NIC with the MAC address 00:A0:78:8E:9E:AA always receives the IP address 192.168.1.4.

• Note that the optional parameter host-name can

also be used to assign a host name to the client.

Ex. 5. Static IP Address using DHCP

Lease Database

• On

the

server,

DHCP

the

file /var/lib/dhcpd/dhcpd.leases stores the DHCP client lease database

• All times in the lease database are in Coordinated

Universal Time (UTC), not local time.

• The lease database is recreated from time to time so

that it is not too large. – First, all known leases are saved in a temporary lease

database.

– The dhcpd.leases file is renamed dhcpd.leases~ and the

temporary lease database is written to dhcpd.leases.

Starting and Stopping the Server

• To start the DHCP service, use the command

/sbin/service dhcpd start.

• To stop the DHCP server, use the command

/sbin/service dhcpd stop.

• By default, the DHCP service does not start at boot time. To configure the daemon to start automatically at boot time, use chkconfig

Starting and Stopping the Server

• If more than one network interface is attached to the system, but the DHCP server should only be started on one of the interfaces, configure the DHCP server to start only on that device.

• In /etc/sysconfig/dhcpd, add the name of the

interface to the list of DHCPDARGS:

DHCP Relay Agent

• The DHCP Relay Agent (dhcrelay) allows for the relay of DHCP and BOOTP requests from a subnet with no DHCP server on it to one or more DHCP servers on other subnets.

• When a DHCP client requests information, the DHCP Relay Agent forwards the request to the list of DHCP servers specified when the DHCP Relay Agent is started.

DHCP Relay Agent

• When a DHCP server returns a reply, the reply is broadcast or unicast on the network that sent the original request.

interfaces unless

• The DHCP Relay Agent listens for DHCP requests the interfaces are on all specified in /etc/sysconfig/dhcrelay with the INTERFACES directive.

• To start the DHCP Relay Agent, use the command

service dhcrelay start.

CONFIGURING A DHCP CLIENT

Configuring DHCP Clients

• The first step is to make sure the kernel

recognizes the network interface card.

– Modify the /etc/sysconfig/network file to enable

networking

– Modify the configuration file for each network device

in the /etc/sysconfig/network-scripts directory. • In this directory, each device should have a configuration file named ifcfg-eth0, where eth0 is the network device name.

• To configure a DHCP client manually

/etc/sysconfig/network file

• The /etc/sysconfig/network file should contain

the following line:

• The NETWORKING variable must be set to yes if

you want networking to start at boot time.

/etc/sysconfig/network-scripts/ifcfg-eth0

• The /etc/sysconfig/network-scripts/ifcfg-eth0 file

should contain the following lines:

• A configuration file is needed for each device to

be configured to use DHCP.

/etc/sysconfig/network-scripts/ifcfg-eth0

– DHCP_HOSTNAME — Only use this option if the DHCP server requires the client to specify a hostname before receiving an IP address. (The DHCP server daemon in Red Hat Enterprise Linux does not support this feature.)

– PEERDNS=, where is one of the

following: • yes — Modify /etc/resolv.conf with information from the

server. If using DHCP, then yes is the default.

• no — Do not modify /etc/resolv.conf.

• Other options for the network script

/etc/sysconfig/network-scripts/ifcfg-eth0

– SRCADDR=

, where

the

is specified source IP address for outgoing packets.

– USERCTL=, where is one of the

following: • yes — Non-root users are allowed to control this device. • no — Non-root users are not allowed to control this device.

• Other options for the network script