Anda di halaman 1dari 39

Configuration Protocol

What is DHCP, and when & where is it used? Components of DHCP BOOTP and DHCP relation DHCP message format DHCP procedures allocating new address lease renewal State machine Questions & answers re. DHCP Benefits of DHCP

DHCP: Dynamic Host

Original by: Debie Beemsigne, Dominic Joy, Max Pereira, Ravidev Mohan, EL604, Fall 2001; Modified by Prof. M. Veeraraghavan

What is DHCP ?
Dynamic Host Configuration Protocol
Used for dynamic allocation of IP addresses used for hosts that run only client applications Allows for host-specific configuration parameters to be delivered from a DHCP server to a host

DHCP can also be used to convey permanent


IP address assignments to hosts
Server interfaces need permanent addresses because clients need to be able to reach them Also, router interfaces should have permanent addresses for stability of routing data

Where is DHCP used?


Since class B and class C address spaces have been
exhausted, service providers and enterprises use dynamically allocated IP addresses e.g., a cable modem service provider who has many customers since not all customers are simultaneously on the

e.g., used on the Poly campus on our 802.11 wireless network, where many students, faculty and staff members use their wireless cards for access to the Poly campus network
3

Internet, a client host dynamically obtains an address for a short period of time and releases it for use by some other client

Relevance of DHCP to wireless and mobile networking


If an end host only runs the client ends of
applications
e.g. a web browser, but not a web server e.g. Outlook to download email messages delivered to a PC
you ftp into utopia, but do you typically ftp into your PC?

users incoming mail server, but not the mail server itself e.g. Windows PCs have ftp clients but not ftp servers

Then, the end host can simply connect to the network at any point of attachment, obtain a network address and start receiving information

Why is a dynamically obtained address sufficient for such hosts?


Because, such end hosts only make outgoing calls
When such an end host initiates a call (TCP connection), the called server receives an IP packet from the calling host with the hosts new temporary address and hence can, in turn, send the caller back requested data

These hosts do not receive incoming calls,


i.e., no one calls them

Question: can we categorize a cellular


telephone as such an end point

Therefore, such end hosts do not need a permanent address that potentially callees will need to know
5

Answer to question in previous slide


No, because a cell phone can be called Therefore callees (calling parties) will
need to know the network address of the cellular phone

Is DHCP needed only for wireless users or also wired?


DHCP can be used whether link to
endpoint is wired or wireless
Even with an Ethernet NIC, a host can use DHCP to dynamically obtain an IP address e.g. cable modem user; Ethernet from host to cable modem; cable from modem to Internet

DHCP for mobile users?


DHCP is not designed to handle mobility by
itself
location management problem is to enable the delivery of calls to mobiles; but this means the callee needs the permanent address of the called mobile; so location management problem does not arise for DHCP hosts handoff management requires a rerouting of packets when end host is in a connection; costly to update far end of connection with a new temporary address if DHCP is used to change addresses when a user moves
8

Components
DHCP client: a host using DHCP to
obtain an IP address and other configuration information DHCP server: a host that returns IP addresses and other configuration information BOOTP relay agents: host or router that passes DHCP messages between DHCP clients and DHCP servers
9

DHCP uses BOOTP


Based on BOOTP
Uses BOOTP format for messages Uses BOOTP relay agents to avoid having one DHCP server per network segment

BOOTP used to bootstrap hosts

BOOTP uses UDP

First operation, get Ethernet and IP address for itself and the address of a server and bootfile name (diskless client) Second operation, uses TFTP to download bootfile
67 for the server port 68 for the client port
10

Differences between BOOTP and DHCP


Two differences
DHCP specifies a lease time for IP address usage allowing for allocation of the same address to another client upon lease expiry DHCP can acquire all IP-related configuration information, more than in BOOTP

BOOTP clients can talk to DHCP servers


(backward compatibility)
DHCP is an extension of BOOTP Message format similar
11

Format of a DHCP message


op (1) htype (1)
secs (2) ciaddr (4) yiaddr (4) siaddr (4) giaddr (4) chaddr (6) sname (64) file (128) options ( variable)
12

hlen (1) xid (4)

hops(1)
flags (2)

BACK

Format of a DHCP message cont.


Op - message op code / message type
1 = BootRequest, 2 = BootReply htype - hardware address type hlen - hardware address length (i.e. 6 for 10mbps Ethernet) hops - client sets to 0, optionally used by relay agents when booting via a relay agent xid - transaction ID, a random number chosen by the client, used by the client and server to associate messages and responses between a client and a server secs filled in by the client, seconds elapsed since client began address acquisition or renewal process flags broadcast flag used if client cannot accept unicast IP packets before IP layer is configured (chicken-and-egg problem)
destination IP address in IP header is a broadcast IP address instead of yiaddress and destination MAC address is all ones; then set this flag to broadcast mode. Server receiving this flag in Bootrequest will know to send the Bootreply in broadcast mode

13

BACK

Format of a DHCP message cont.


ciaddr client IP address; only filled in if client is in
BOUND, RENEW or REBINDING state and can respond to ARP requests yiaddr your (client) IP address (set in DHCPOFFER) siaddr IP address of next server to use in bootstrap; returned in DHCPOFFER, DHCPACK by server giaddr relay agent IP address, used in booting via a relay agent chaddr client hardware addresses sname optional server host name, null terminated string file Boot file name, null terminated string; generic name or null in DHCPDISCOVER, fully qualified directory-path name in DHCPOFFER 14 options optional parameters field (see RFC 1533)

DHCP options
DHCP Message Type

(must in all messages) Requested IP Address Server identifier IP Address Lease Time Renewal Time Value (T1) Rebinding Time Value (T2) Client identifier

DNS (Domain Name Server)


option

Router option

specifies IP addresses of DNS servers available to client specifies IP addresses of routers on the clients subnet

Max Datagram

Reassembly Subnet Mask Client Hostname

For all other options refer to RFC 2132


15

Types of DHCP messages


DHCPDISCOVER DHCPOFFER DHCPREQUEST DHCPACK DHCPNAK DHCPDECLINE DHCPRELEASE DHCPINFORM
16

How does DHCP work?


When a client needs to start up TCP/IP operations, it
broadcasts a request for address information. The DHCP server receives the request, assigns a new address for a specific time period (called a lease period) and sends it to the client together with the other required configuration information. This information is acknowledged by the client, and used to set up its configuration. The DHCP server will not reallocate the address during the lease period and will attempt to return the same address every time the client requests an address. The client may extend its lease with subsequent requests, and may send a message to the server before the lease expires telling it that it no longer needs the address so it can be released and assigned to another client on the network.

17

DHCP procedures
Obtaining a new address Reusing a previously allocated address

18

Allocating new address


Server (not selected)
Sent on Ethernet broadcast address

Client

Server (selected)
DHCP DISC.

DHCP DISC.

Also broadcast

DHCP REQ.

Collects replies

DHCP REQ.

Initialization Complete Graceful Shutdown


DHCPRELEASE

Client selects configuration; in DCHP REQ it accepts one servers offer (server identifier option) and implicitly reject rest
19

Discard lease

How the server selects a new address


The client's current address as recorded in the
client's current binding, ELSE The client's previous address as recorded in the client's (now expired or released) binding, if that address is in the server's pool of available addresses and not already allocated, ELSE The address requested in the 'Requested IP Address' option, if that address is valid and not already allocated, ELSE A new address allocated from the server's pool of available addresses; the address is selected based on the subnet from which the message was received (if 'giaddr' is 0) or on the address of the relay agent that forwarded the message ('giaddr' is not 0). 20

Obtaining an IP address
DHCPDISCOVER is broadcast because client
does not know IP address of DHCP server; BOOTP relay agents may relay it to other DHCP servers One or more DHCP servers respond with DHCPOFFER, which carry yiaddr (Your IP address, i.e., client address)
is free ping needed because often a user will leave without graceful release of address

recommended check: SHOULD instead of MUST server uses ICMP echo request (ping) to check if address

21

Obtaining an IP address contd.


If the client receives no DHCP offer before
it times out, it retransmits DHCPDISCOVER Client may wait for multiple replies and then choose one offer. It broadcasts DHCPREQUEST with server identifier option included identifying the server whose offer it has accepted and requested IP address option Client SHOULD probe address with an ARP; if client detects that the address is already in use, it issues DHCPDECLINE
22

Obtaining an IP address contd.


Servers other than the one selected in the
DHCPREQUEST will release their offered addresses, while the selected server will note the binding If selected server cannot meet the needs of the DHCPREQ. it sends a DHCPNAK If the client does not receive a DHCPACK or DHCPNAK before timeout it resends DHCPREQ Retransmission attempts use exponential backoff times
23

Reuse of address
Server
DHCP REQ.

Client

Server
DHCP REQ.

Locates Config.
DHCPACK
Servers with knowledge of the client's configuration parameters respond with a DHCPACK message to the client.

Locates Config.
DHCPACK

Initialization Complete
(Subsequent DHCP Packets Ignored)

24

Reuse of IP address
DHCP REQUEST - client message to
servers
requesting offered parameters from one server and implicitly declining offers from all others confirming correctness of previously allocated address after, e.g., system reboot, extending the lease on a particular network address.
25

Reuse of IP address cont.


DHCPACK - Server to client with
configuration parameters, including committed network address.

26

State machine
init with known network address
INIT/ REBOOT Send DHCPREQUEST DHCPNAK Restart REBOOTING DHCPACK/Record lease, set timers Send DHCPDISCOVER SELECTING

Init with acquiring new network address


INIT DHCPNAK/Halt Network

DHCPNAK/ Discard

DHCPACK + not accept Send DHCPDECLINE

DHCPOFFER/ Send DHCPREQUEST

REQUESTING DHCPACK/ Record lease, set Timers T1,T2 DHCPOFFER/ Discard DHCPACK/ Record lease, set timersT1, T2

REBINDING

T2 expires/ Broadcast DHCPREQUEST

BOUND DHCPOFFER, DHCPACK DHCPNAK/Discard

DHCPACK/Record lease set timersT1,T2


T1 expires/ Send DHCPREQUEST To leasing server (unicast)

RENEWING

T1 is earlier than T2, which should expire before lease expires

27

Timers
T1 is the time at which the client enters the
RENEWING state and attempts to contact the server that originally issued the client's network address. T2 is the time at which the client enters the REBINDING state and attempts to contact any server. T1 MUST be earlier than T2 T2 MUST be earlier than the time at which the client's lease will expire.
28

Use of giaddr and bootp relays


By using BOOTP relay agents, we avoid having to place a DHCP

server on every subnet giaddr (gateway address) is poorly named it exists to facilitate relaying of BOOTP messages and is not a general or gateway IP router address giaddr should be 0 in DHCPDiscover (says BOOTPRequest in RFC 1542) BOOTP relay agent should not be confused with an IP router: former terminates BOOTP messages, processes them and generates new ones; it does not simply forward packets if giaddr is 0 when a BOOTP relay agent receives a message, it sets it to the IP address of the interface on which it was received in the new message it relays to the next agent if giaddr is non-zero, then it MUST not be modified
allows the DHCP server to determine subnet of client
29

RFC 1542 explains this procedure well

Questions on DHCP
What happens if there is no DHCP server on a
network and an IP host connects to it with the Obtain IP address automatically option selected? Who makes and sells DHCP servers? Are these standalone entities or are they add-ons to IP routers? Use a sniffer, capture DHCP messages and explain procedure and parameters.

30

What happens if there is no DHCP server on a network and an IP host connects to it with the Obtain IP address automatically

option selected?

31

What happens if there is no DHCP server on a network and an IP host connects to it with the Obtain IP address automatically

option selected?
If there is no DHCP server, and no BOOTP relay agent, then no IP address will be assigned and hence host cannot communicate; In this case Static Addressing needs to be used In static addressing, the following fields: Gateway, DNS Configuration and IP Address would have to be manually set for a host to have connectivity into the network.

32

Who makes and sells DHCP servers? Are these standalone entities or are they add-ons to IP routers?

Commercial DHCP servers


Microsoft: DHCP server included in Windows NT Server 3.51, 4.0, Windows 2000 SunSoft: Solstice SolarNet PC-Admin 1.5 includes a DHCP/BOOTP server Cisco IOS DHCP Server (IOS is used in routers)

33

Use sniffer and obtain a trace of a DHCP session


Current IP configuration (before release)

34

IP configuration after release

35

Tcpdump output for a renew



17:26:32.135029 0:b0:c2:f3:15:80 0:50:4:fd:10:85 0800 482: 128.238.112.1.67 > 128.238.112.144.68: xid:0x596f374e Y:128.238.1 12.144 S:128.238.29.25 G:128.238.112.1 [|bootp] 4500 01d4 b330 0000 ff11 247a 80ee 7001 80ee 7090 0043 0044 01c0 3bb7 0201 0600 596f 374e 0000 0000 0000 0000 80ee 7090 80ee 1d19 80ee 7001 0050 04fd 1085 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 17:26:32.135144 0:50:4:fd:10:85 ff:ff:ff:ff:ff:ff 0800 342: 0.0.0.0.68 > 255.255.255.255.67: xid:0x596f374e [|bootp] 4500 0148 4401 0000 8011 f5a4 0000 0000 ffff ffff 0044 0043 0134 a8ac 0101 0600 596f 374e 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0050 04fd 1085 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 17:26:32.142934 0:b0:c2:f3:15:80 0:50:4:fd:10:85 0800 487: 128.238.112.1.67 > 128.238.112.144.68: xid:0x596f374e Y:128.238.112.144 G:128.238.112.1 [|bootp] 4500 01d9 b332 0000 ff11 2473 80ee 7001 80ee 7090 0043 0044 01c5 cb6b 0201 0600 596f 374e 0000 0000 0000 0000 80ee 7090 0000 0000 80ee 7001 0050 04fd 1085 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 17:26:32.143044 0:50:4:fd:10:85 ff:ff:ff:ff:ff:ff 0800 346: 0.0.0.0.68 > 255.255.255.255.67: xid:0x596f374e [|bootp] 4500 014c 4501 0000 8011 f4a0 0000 0000 ffff ffff 0044 0043 0138 ddee 0101 0600 596f 374e 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0050 04fd 1085 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000

Identify parameters and explain values

36

IP configuration after the renew

37

Benefits of using DHCP for dynamic address allocation


Address reuse
A service provider/enterprise with 1000 addresses can support a much larger number of subscribers/hosts with time multiplexing of addresses (one host uses an address, and releases it when done; another host is allocated the same address)

Removes error-prone manual host configuration

process to set IP addresses, DNS server addresses, gateways, etc. Configuration information can be administered from a single point. Major network resource changes (e.g. a router changing an interface address) requires an update of only the DHCP server, rather than every system. 38 Caveat: cannot allocate temporary addresses to servers/routers

References

RFC 2131: DHCP RFC 2132: DHCP options RFC 951: Bootstrap protocol (BOOTP) RFC 1542: BOOTP relay agents Steven M. Glass, Use of DHCP in Mobile IP, 2000,
http://www.ietf.org/proceedings/00jul/SLIDES/mobileipdhcpinmip/index.htm

Charles Perkins, Mobile IP, Addison Wesley, 1998

39

Anda mungkin juga menyukai