Bootstrap and Autoconfiguration (DHCP) Chapter 22 Look at client-server for bootstrapping Computer must know IP address before sending or receiving datagrams Needs router address, subnet mask, address of name server Look at protocol to allow host to determine information automatically at startup Client & server communicate using UDP Remember…UDP relies on IP to transfer messages How use UDP to find IP address? Will look at special IP addresses mentioned in Chap 3 History of Bootstrapping Chap 5 mentioned RARP Protocol to permit computer to get IP address More general BOOTP replaced RARP BOOTstrap Protocol DHCP developed as successor to BOOTP Dynamic Host Configuration Protocol Most features of DCHP also apply to BOOTP For simplicity, only talk about DHCP DHCP uses UDP and IP Can be implemented with an application program Operates in client-server paradigm Requires a single packet exchange IP address Router address Name server address Option: field for vendor-specific info Using IP to Determine an IP Address DHCP uses UDP to carry messages UDP messages encapsulated in IP datagrams Recall in Chap 3 several special-case IP addrs Specifically, all 1’s specifies limited broadcast IP SW can do even before knowing its local IP addr “An application program can use the limited broadcast IP address to force IP to broadcast a datagram on the local network before IP has discovered the IP address of the local network or the machine’s IP address” Example Client A wants to use DHCP; B is server (B is on same physical net) A uses limited broadcast for its initial DHCP request B probably cannot send a directed reply back B sends reply datagram to network interface SW Interface SW needs to map next hop IP addr to HW addr Would use ARP, but A does not know its address to answer the ARP request B has two choices Broadcast the reply Manually add entry to its ARP cache System may not allow application program to do DHCP Retransmission Policy UDP uses IP for delivery We know it is an unreliable service DHCP puts responsibility for reliability on client DHCP also: Requires that UDP use checksums IP does not have checksum for the data Requires that the do not fragment bit be set To accommodate clients with little memory Allows multiple replies (accepts & processes the 1st) Timeout & retransmission used for reliability Client sends request; starts timer If no reply before expires, must retransmit DHCP server(s) can get overrun with requests After power failure & all machines booting Machines use different retransmission timeout DHCP specification recommends random delay In addition, start with random timeout value (0-4 seconds) Double the time after each retransmissions After reach 60 seconds, not double but still use randomization DHCP Message Format Fixed length fields Client & server used loosely Figure 22.1 The format of a DHCP message. To keep implementations small enough to fit in ROM, fields except for options have fixed length Clients sends request Server sends reply DHCP can be used even if client already knows its IP address To get other info Need for Dynamic Configuration Early bootstrap protocols designed for static environment Manager created configuration file File changed infrequently Then: wireless networking & portable computers Static parameter assignment requires extensive involvement of managers Enter parameters for each host & store in server config file Assign each host an IP address Configure server so it understands host ID to IP addr mapping DHCP designed for automated address assignment Gets all configuration information in one message Allows dynamic address allocation to computers Manager configures DHCP server with set of IP addresses New computer connects & requests addr, server picks one DHCP allows three types of assignments Manual configuration Manager configures specific address for specific computer Automatic configuration Server allowed to assign permanent address Dynamic configuration Server “loans” an address for a limited time Assignment based on client’s identifier and the network to which it has connected Server can allocate to different computers in different ways DHCP Lease Concept Dynamic address assignment is temporary DHCP server leases an address to a client Server specifies the lease period at allocation During the lease, server cannot lease that address to any other client At end of lease, client must renew or stop using addr How long should the lease be? Depends on network and needs of host DHCP does not specify a fixed constant Client requests a certain period; server informs client of the period it grants Multiple Addresses & Relays DHCP provides info about one interface Multi-homed host has multiple interfaces Each interface handled independently Relay agent Lets computer contact server on nonlocal net Complicates multi-homed host configuration Get multiple requests from same computer Assume multi-homed client can identify each interface uniquely so server can tell requests apart Address Acquisition States State diagram has six states At boot, client enters INITIALIZE state Broadcasts DHCPDISCOVER message Moves to SELECT state Gets zero or more DHCPOFFER responses Each contains configuration info & IP address Client must choose one of the offers (first to arrive) Sends DHCPREQUEST message to negotiate Enters REQUEST state Server acks request and starts lease with DHCPACK Client enters BOUND state upon receipt of ack Proceeds to use the address This is the normal state of operation To terminate a lease early, send DHCPRELEASE Cannot send any more datagrams using the address Leaves BOUND state; must enter INITIALIZE to use IP Client has three timers in this state First: 50% of the lease time; must attempt to renew lease Moves to RENEW state Server can send DHCPACK or DHCPNACK Second: 87.5% If no response, server is either down or unreachable When second timer expires, move to REBIND state Broadcasts DHCPREQUEST to any server on net If get positive response, move back to BOUND If get negative response, move back to INITIALIZE Third: full lease period If get no response in REBIND state, move back to INITIALIZE when this timer expires Figure 22.3 DHCP and Domain Names Not all procedures for attaching permanent host to internet are automated DHCP protocol does not specify interaction with the domain name system (DNS) However, some implementations do interact with DNS Summary DHCP allows a computer to obtain information at startup Router address, DNS server address, IP address Permits automatic and dynamic allocation of IP addresses Dynamic allocation is necessary in environments where computers attach and detach quickly Computer becomes client to use DHCP Broadcasts request to DHCP servers Selects one of the offers it receives Exchanges messages to obtain lease on IP address Relay agent can forward DHCP requests Allows site to have one DHCP server for multiple subnets Starts three timers When first expires, must attempt to renew its lease If second expires before renewal is done, attempts to rebind from any server If third expires before renewal, client stops using IP address and returns to initial state to get new address