DHCP

advertisement
DHCP: Dynamic Host
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





Original by: Debie Beemsigne, Dominic
Joy, Max Pereira, Ravidev Mohan,
EL604, Fall 2001;
Modified by Prof. M. Veeraraghavan
1
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
2
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
Internet, a client host dynamically obtains an address for
a short period of time and releases it for use by some
other client
 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
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
user’s incoming mail server, but not the mail server itself
 e.g. Windows PCs have ftp clients but not ftp servers
 you ftp into utopia, but do you typically ftp into your PC?
 Then, the end host can simply connect to the
network at any “point of attachment,” obtain a
network address and start receiving information
4
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 host’s 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
 Therefore, such end hosts do not need a
permanent address that potentially “callees” will
need to know
 Question: can we categorize a cellular
telephone as such an “end point”
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
6
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
7
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
 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
 BOOTP uses UDP
 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)
hlen (1)
xid (4)
secs (2)
hops(1)
flags (2)
ciaddr (4)
yiaddr (4)
siaddr (4)
giaddr (4)
chaddr (6)
sname (64)
file (128)
options ( variable)
12
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
 specifies IP addresses of DNS
servers available to client
 Router option
 specifies IP addresses of
routers on the client’s 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
Also broadcast
Client
DHCP DISC.
DHCP REQ.
Server (selected)
DHCP DISC.
Collects replies
DHCP REQ.
Initialization Complete
Graceful Shutdown
DHCPRELEASE
Discard lease
Client selects
configuration;
in DCHP REQ
it accepts one
server’s offer
(server identifier
option)
and implicitly
reject rest
19
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)
 recommended check: SHOULD instead of MUST
 server uses ICMP echo request (ping) to check if address
is free
 ping needed because often a user will leave without
graceful release of 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.
Locates Config.
DHCP REQ.
Locates Config.
DHCPACK
Servers with
knowledge of
the client's
configuration
parameters
respond with a
DHCPACK
message to
the client.
Server
Client
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 with acquiring new network address
INIT
Send DHCPREQUEST
DHCPNAK
Restart
Send DHCPDISCOVER
SELECTING
REBOOTING
DHCPACK/Record lease, set timers
DHCPNAK/
Discard
DHCPACK + not accept
Send DHCPDECLINE
DHCPOFFER/
Send DHCPREQUEST
REQUESTING
DHCPACK/
Record lease, set
Timers T1,T2
DHCPNAK/Halt Network
INIT/
REBOOT
REBINDING
DHCPOFFER/
Discard
DHCPACK/
Record lease, set timersT1, T2
BOUND
DHCPOFFER, DHCPACK
DHCPNAK/Discard
DHCPACK/Record lease
set timersT1,T2
T2 expires/
Broadcast DHCPREQUEST
RENEWING
T1 expires/
Send DHCPREQUEST
To leasing server (unicast)
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
 RFC 1542 explains this procedure well
29
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.1 12.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
Download