BOOTP and DHCP

advertisement
BOOTP and DHCP
Lesson 23 - (1 of 42)
Outline:
BOOTP and DHCP
• Configuration Information
• Bootstrap Protocol
(BOOTP):
– Efficiency Enhancements
– Message Format
– Bootstrap Procedure
– Specific Areas of the
Message
• Dynamic Host
Configuration Protocol
• DHCP Message Format:
• Difference Between
BOOTP and DHCP
• DHCP Functionality
• Configuration and
Compatibility Issues
• Address Leasing in DHCP
• Problems and Concerns of
DHCP
• Acceptance of a New
Standard
Lesson 23 - (2 of 42)
Configuration Information:
• Most computers using TCP/IP need updated
configuration information when they start up
(boot).
• Examples of that type of information include:
– Default gateway
– Default file server and domain name server
– IP address and subnet mask.
– Etc.
Lesson 23 - (3 of 42)
Configuration Information:
• Two protocols are commonly used to supply the
client with this information:
– BOOTP (Bootstrap Protocol)
– DHCP (Dynamic Host Configuration Protocol)
Lesson 23 - (4 of 42)
Bootstrap Protocol (BOOTP):
• BOOTP (Bootstrap Protocol):
– Is a protocol that allows a diskless workstation
to determine it’s IP address (and other
information) without using RARP.
• BOOTP is a client / server program where a
BOOTP agent requests bootstrap information from
designated BOOTP servers.
• It uses UDP and IP, so it can be implemented in an
application, thus client / server.
Lesson 23 - (5 of 42)
Bootstrap Protocol (BOOTP):
• RARP has three drawbacks:
– Lower-level, requiring direct access to
hardware (difficult access for the average
application programmer).
– RARP only supplies IP address and not other
possible information.
– Cannot be used on networks that dynamically
assign hardware addresses.
• BOOTP handles these inefficiencies.
Lesson 23 - (6 of 42)
BOOTP Efficiency Enhancements:
• BOOTP is more efficient because a single
message contains many startup items including:
– IP addresses.
– Address of default gateway to use.
– Address of bootstrap image server.
– Vendor-specific hardware information and
subnet masks.
Lesson 23 - (7 of 42)
BOOTP Efficiency Enhancements:
Handling Service Problems
• It places all responsibility for reliable
communication of the BOOTP message on the
client program.
• Since the BOOTP configuration information must
be transferred quickly, clients are often
connectionless.
• BOOTP handles connectionless service problems
by:
– Requiring UDP to use checksums.
Lesson 23 - (8 of 42)
BOOTP Efficiency Enhancements:
Handling Service Problems
– Requests and replies are sent with the ‘DON’T
FRAGMENT’ bit set (for clients that have too
little memory for reassembly).
– Constructed to accept multiple replies and only
processes the first one (handles duplicates).
– Using time-out and retransmission techniques.
Lesson 23 - (9 of 42)
BOOTP:
Message Format
• The BOOTP Message Format contains fixed
length fields, where bootstrap requests and replies
use the same format.
• BOOTP and DHCP protocols also share the exact
same format with the exception of the OPTION
FIELD (same as VENDOR-SPECIFIC AREA in
BOOTP).
Lesson 23 - (10 of 42)
0
8
16
24
OP
HTYPE
HLEN
HOPS
TRANSACTION ID
SECONDS
UNUSED
CLIENT IP ADDRESS
YOUR IP ADDRESS
SERVER IP ADDRESS
ROUTER IP ADDRESS
CLIENT HARDWARE ADDRESS
( 16 OCTETS )
..
.
SERVER HOST NAME
( 64 OCTETS )
..
.
BOOT FILE NAME
.. ( 128 OCTETS )
.
VENDOR-SPECIFIC .AREA ( 64 OCTETS )
..
Lesson 23 - (11 of 42)
31
BOOTP:
Message Format
• OP (8-bits):
– Operation requested (Request or Reply).
• HTYPE (8-bits):
– Hardware type (Ethernet = 1).
• HLEN (8-bits):
– Length of the hardware address in octets
(Ethernet = 6).
Lesson 23 - (12 of 42)
BOOTP:
Message Format
• HOPS (8-bits):
– Allows bootstrapping across multiple gateways.
• TRANSACTION ID (32-bits):
– A number the client uses to match requests with
replies.
• SECONDS (16-bits):
– Number of seconds since the client started to
boot.
Lesson 23 - (13 of 42)
BOOTP:
Message Format
• Client IP Address (32-bits):
– Client that knows it’s IP address, places it here.
• Your IP Address (32-bits):
– If client IP address is zero in request, it is
placed here in the response.
• Server IP Address and
Router IP Address (32-bits each):
– Filled in if the client already knows these
addresses.
Lesson 23 - (14 of 42)
BOOTP:
Message Format
• All other fields are filled by the client with as
much information about the server as it knows.
• A client pads the fields with zero if it does not
know.
Lesson 23 - (15 of 42)
Bootstrap Procedure:
• Two-step Bootstrap Procedure:
– BOOTP provides the client with information
needed to obtain a bootstrap configuration
image.
– The client uses the Trivial File Transfer
Protocol (TFTP) to obtain the image from the
specified server.
Lesson 23 - (16 of 42)
Bootstrap Procedure:
• Separation of configuration and storage allows:
– Memory images to be stored on machines that
are not BOOTP servers
– And for administrators to configure sets of
machines to act independently or exactly the
same.
Lesson 23 - (17 of 42)
BOOTP:
Specific Areas of the Message
• Client Hardware Address (16-octets):
– If the client’s hardware address can be
manually configured, it will be included in this
area.
• Server Host Name (64-octets):
– Filled in by the client if it knows the servers
name.
– If not, the server will respond to a request and
fill in this field.
Lesson 23 - (18 of 42)
BOOTP:
Specific Areas of the Message
• Boot File Name (128-Octets):
– Allows the use of generic names to request
specific boot images.
– A database maps this simple name to a specific
machine architecture name.
Lesson 23 - (19 of 42)
BOOTP:
Specific Areas of the Message
• Vendor-Specific Area (64-Octets):
– Magic cookie is contained in the first 4 octets.
– It defines the format of the remaining items
found within the vendor-specific area.
Lesson 23 - (20 of 42)
BOOTP:
Specific Areas of the Message
• Form of the Magic Cookie:
• <1-octet TYPE, optional 1-octet LENGTH,
multi-octet VALUE>
• Ex.
<99.130.83.99> (specifies the standard format)
• Extensions are added to BOOTP to allow for
different configuration fields and values.
Lesson 23 - (21 of 42)
Vendor-Specific Information Items:
Item Type
Item Value
Code Length
Padding
0
-
Subnet Mask
1
4
Time of Day
2
4
255
-
End
Contents of Value
Zero - used only for
padding
Subnet mask for local
network
Time of day in universal
time
End of item list
Lesson 23 - (22 of 42)
Dynamic Host Configuration
Protocol (DHCP):
• Dynamic Host Configuration Protocol (DHCP) Designed to:
– Supply hosts with configuration parameters.
– Lease dynamically allocated IP addresses.
– Interoperate with BOOTP (acts as an
enhancement to BOOTP).
• The original definitions for DHCP can be found in
RFC-1531, RFC-1533, and RFC-1534
Lesson 23 - (23 of 42)
Dynamic Host Configuration
Protocol (DHCP):
• DHCP supports three mechanisms for IP address
allocation:
– Automatic - assigns a permanent IP address.
– Dynamic - the IP address is assigned for a
limited time.
– Manual - a network administrator assigns the
address and DHCP conveys the address to the
host.
Lesson 23 - (24 of 42)
DHCP Message Format:
• The frame format is based on BOOTP’s to capture
the BOOTP relay agent behavior.
• This is also to promote the interoperability of
existing BOOTP clients with DHCP servers.
• The only two fields that differ are:
– Flags (16-bits) = Not Used in BOOTP
– Options (Variable) = Vendor-Specific area has
been extended beyond 64 bytes to handle more
options.
Lesson 23 - (25 of 42)
0
8
16
24
OP
HTYPE
HLEN
HOPS
TRANSACTION ID
SECONDS
FLAGS
CLIENT IP ADDRESS
YOUR IP ADDRESS
SERVER IP ADDRESS
ROUTER IP ADDRESS
CLIENT HARDWARE ADDRESS
( 16 OCTETS )
..
.
SERVER HOST NAME
( 64 OCTETS )
..
.
BOOT FILE NAME
.. ( 128 OCTETS )
.
OPTIONS ( .VARIABLE )
..
Lesson 23 - (26 of 42)
31
Difference Between
BOOTP and DHCP:
• Two primary differences between BOOTP and
DHCP:
– A client can be assigned an IP addresses for a
fixed time-lease and then that address can be
reassigned again at a later time.
– DHCP provides the mechanism for the client to
acquire ALL IP configuration parameters it
needs to be fully functional.
Lesson 23 - (27 of 42)
DHCP Functionality:
• How it works:
– A client needing an IP address sends a
DHCPDISCOVER broadcast message over the
network which contains the client’s MAC
address (hardware).
Lesson 23 - (28 of 42)
DHCP Functionality:
• Any DHCP server (may be several offers) can
respond with a DHCPOFFER unicast message to
the client’s MAC address offering an:
• IP address
• Subnet mask
• IP address of the DHCP server
• Expiration time of the lease.
Lesson 23 - (29 of 42)
DHCP Functionality:
– Client selects an offer by sending a
DHCPREQUEST unicast message to the
appropriate DHCP server and accepts the
offered configuration information.
Lesson 23 - (30 of 42)
DHCP Functionality:
– The DHCP server responds with a DHCPACK
unicast message to the client and officially
assigns the address to the client node.
– It then provides DNS and/or WINS (Windows
Internet Name Service) server addresses, the
default gateway IP address, etc.
Lesson 23 - (31 of 42)
What is WINS?
• Windows Internet Naming Service (WINS):
– Microsoft has it’s own domain name service for
use on many of it’s TCP/IP networks.
– WINS is not an official Internet name service,
but is commonly used with many LANs.
– WINS, in part, allows a client node to identify
and connect to another windows machine.
– Windows 95, NT, and Windows for
Workgroups all use WINS servers.
Lesson 23 - (32 of 42)
Image source: Internetworking with TCP/IP vol I (1995 Prentice Hall, Douglas Comer)
Lesson 23 - (33 of 42)
Configuration and
Compatibility Issues:
• DHCP currently:
– Does not handle the registration of newly
configured hosts with the DNS
– Nor is it intended for use in configuring routers.
• DHCP must provide service to existing BOOTP
clients, to ensure their interoperability and
coexistence.
Lesson 23 - (34 of 42)
Configuration and
Compatibility Issues:
• Administrators setup scopes (ranges) of IP
addresses available on each subnet for dynamic
allocation by DHCP.
• Configuration options are defined either globally
or per scope as appropriate.
Lesson 23 - (35 of 42)
Configuration and
Compatibility Issues:
• When the DHCP service assigns IP addresses and
configuration options to a client, it does so based
on the scope of the subnet on which the client
resides.
• This can differ for each network in an autonomous
system.
Lesson 23 - (36 of 42)
Address Leasing in DHCP:
• Deciding efficient lease times is a key issue for
DHCP:
– Choosing times which are too short can cause
unneeded overhead on a machine, the network,
DHCP servers, and possibly administrators.
– Choosing times which are too long can waste
valuable IP addresses (to be used with other
machines) and disrupt routers which try to send
packets to an unused address.
Lesson 23 - (37 of 42)
Address Leasing in DHCP:
• The lease renewal process used with DHCP begins
when 50% of the lease period has expired.
• This occurs long before the lease expires, which
gives the machine and the user time to request and
allocate another.
Lesson 23 - (38 of 42)
Problems and Concerns of DHCP:
• Dynamic configuration is highly desirable for
large corporate environments.
• Name registration problems still haunt DHCP’s
wide-spread acceptance, but the issue is currently
being investigated.
• This will probably change with the acceptance of
IPv6.
Lesson 23 - (39 of 42)
Acceptance of a New Standard:
• The IETF has defined several RFC documents
which detail the DHCP protocol.
• Changes are also being made to handle the current
short-comings of DHCP.
• Many vendors (AT&T, Microsoft, etc.) currently
support or plan to support DHCP.
Lesson 23 - (40 of 42)
Questions
BOOTP and DHCP
• What advantages does DHCP provide over
traditional RARP or BOOTP protocols?
• What is an optimal lease time-period when
choosing an IP address to use through DHCP?
• To what advantage does it serve DHCP to use the
same message format of BOOTP? Why?
• What are some types of vendor specific
information that may be included in a BOOTP
message?
Lesson 23 - (41 of 42)
• Does your TCP/IP stack support DHCP?
Reference Materials
BOOTP and DHCP
• RFC1534: Interoperation between DHCP and BOOTP:
(http://www.cis.ohio-state.edu/htbin/rfc/rfc1534.html)
• DHCP FAQ:
(http://web.syr.edu/~jmwobus/comfaqs/dhcp.faq.html)
• RFC1541: Dynamic Host Configuration Protocol
(http://www.cis.ohio-state.edu/htbin/rfc/rfc1541.html)
• RFC1532: Clarifications and Extensions for the Bootstrap
Protocol
(http://www.cis.ohio-state.edu/htbin/rfc/rfc1532.html)
• Internetworking w/ TCP/IP vol 1, 3rd Edition: D. Comer.
Lesson 23 - (42 of 42)
Download