DHCP Dynamic Host Configuration Protocol VRUSHALI SONAR Summary

  • Slides: 37
Download presentation
DHCP Dynamic Host Configuration Protocol VRUSHALI SONAR

DHCP Dynamic Host Configuration Protocol VRUSHALI SONAR

Summary of topics Ø Ø Ø Ø Ø Introduction History (BOOTP) Purpose of DHCP

Summary of topics Ø Ø Ø Ø Ø Introduction History (BOOTP) Purpose of DHCP Design goals Message formats and message fields Operations of DHCP Event flows and State machine Performance issues, Problems and Security issues Extension: DHCPv 6 Conclusion and Reference

Introduction Every computer on a TCP/IP network must have a unique IP address. The

Introduction Every computer on a TCP/IP network must have a unique IP address. The IP address identifies both the host computer and the subnet to which it is attached. When you move a computer to a different subnet, the IP address must be changed. DHCP allows you to dynamically assign an IP address to a client from a DHCP server IP address database:

Ø Dynamic Host Configuration Protocol(DHCP) provides a framework for passing configuration information to hosts

Ø Dynamic Host Configuration Protocol(DHCP) provides a framework for passing configuration information to hosts on a TCP/IP network. Ø DHCP is based on the Bootstrap Protocol(BOOTP), adding the capability of automatic allocation of reusable network addresses and additional configuration options. Ø DHCP captures the behavior of BOOTP relay agents and DHCP participants can interoperate with BOOTP participants.

History of DHCP Ø DHCP was created by the Dynamic Host Configuration Working Group

History of DHCP Ø DHCP was created by the Dynamic Host Configuration Working Group of the Internet Engineering Task Force (IETF). Ø It was first defined in RFC 1531 October 1993 written by Ralph Droms at Bucknell University. Then, RFC 1541 in same month, same year. Ø In March 1997, he made some changes in RFC 2131.

BOOTP Ø DHCP is an extension of Bootstrap protocol (BOOTP) Ø BOOTP allows a

BOOTP Ø DHCP is an extension of Bootstrap protocol (BOOTP) Ø BOOTP allows a diskless client machine to discover its own IP address, the address of a server host, and the name of a file to be loaded into memory and executed.

BOOTP (cont. ) Ø Similarities of DHCP and BOOTP: - Client/server model - Nearly

BOOTP (cont. ) Ø Similarities of DHCP and BOOTP: - Client/server model - Nearly identical message structure (BOOTP/DHCP relay agent usually treat their messages as the same message type without differentiating them) - UDP port numbers(67/68) (Both BOOTP and DHCP servers use UDP port 67 to listen for and receive client request messages. And both their clients use 68 for accepting message replies from either a BOOTP or DHCP server) - IP address distribution as an integral part of configuration service

BOOTP (cont. ) Ø Two major differences: 1. BOOTP database was static and maintained

BOOTP (cont. ) Ø Two major differences: 1. BOOTP database was static and maintained manually (DHCP database is dynamic. The size of the database is dependent upon the number of DHCP clients on the network. The DHCP database grows and shrinks over time. ) 2. BOOTP server cannot do dynamic allocation and distribution of IP addresses to the hosts. (It provides fixed allocation of a single IP address for each client, permanently reserving this address in its database. However, DHCP provides dynamic, leased allocation of available IP addresses, reserving each DHCP client address temporarily in the database. )

Purpose of DHCP Ø Enable individual hosts on an IP network to extract their

Purpose of DHCP Ø Enable individual hosts on an IP network to extract their configuration from a DHCP server or servers. Ø IP address allocation to the hosts. Ø Overall, reduce the administrator’s work for a large IP network.

Three mechanisms to allocate IP address to hosts Ø Automatic allocation: - assigns a

Three mechanisms to allocate IP address to hosts Ø Automatic allocation: - assigns a permanent IP address to a client Ø Dynamic allocation: - assigns an IP address to a client for a limit time or until the client explicitly relinquishes the address Ø Manual allocation: - network administrator assigns a client’s IP address, DHCP is just to convey the assigned address to the client

General Design goal of DHCP Ø DHCP should be a mechanism rather than a

General Design goal of DHCP Ø DHCP should be a mechanism rather than a policy Ø Clients should require no manual configuration Ø Networks should require no manual configuration for individual clients Ø DHCP should not require a server on each subnet (most routers can forward DHCP configuration requests) Ø A DHCP client must be prepared to receive multiple responses to a request for configuration parameters Ø DHCP must coexist with statically configured, non-participating hosts and with existing network protocol implementations Ø DHCP must interoperate with the BOOTP relay agent Ø DHCP must provide service to existing BOOTP clients.

Design goal for network layer Ø Guarantee that any specific network address will not

Design goal for network layer Ø Guarantee that any specific network address will not be in use by more than one DHCP client at a time Ø Retain DHCP client configuration across DHCP client reboot Ø Retain DHCP client configuration across server reboots and whenever possible, a DHCP client should be assigned the same configuration parameters despite restarts of the DHCP mechanism Ø Allow automated assignment of configuration parameters to new clients to avoid hand configuration for new clients Ø Support fixed or permanent allocation of configuration parameters to specific clients

Message formats & Message fields Opcode: 1 for BOOTREQUEST, 2 for BOOTREPLY Hardware type:

Message formats & Message fields Opcode: 1 for BOOTREQUEST, 2 for BOOTREPLY Hardware type: 1 for Ethernet … 33 for CAI (Common Air Interface) Hop count: This field is used by relay agents. 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. Number of seconds: The elapsed time in seconds since the client began an address acquisition or renewal process.

Message formats & Message fields (cont. ) Client IP address: only filled in if

Message formats & Message fields (cont. ) Client IP address: only filled in if client is in BOUND, RENEW or REBINDING state and can respond to ARP requests. Your (client) IP address. Gateway IP address: is Relay agent IP address, used in booting via a relay agent. Boot file name: null terminated string; "generic" name or null in DHCPDISCOVER, fully qualified directory-path name in DHCPOFFER.

Client’s operations Ø DHCPDISCOVER: broadcast to locate available servers Ø DHCPREQUEST either: (a) requesting

Client’s operations Ø DHCPDISCOVER: broadcast to locate available servers Ø DHCPREQUEST either: (a) requesting offered parameters from one server and implicitly declining offers from all others (b) confirming correctness of previously allocated address after extending the lease on a particular network address Ø DHCPDECLINE: indicating network address is already in use Ø DHCPRELEASE: relinquishing network address and canceling remaining lease Ø DHCPINFORM: asking only for local configuration parameters; client already has externally configured network address

Server’s operations ØDHCPOFFER: Ø response to DHCPDISCOVER with offer of configuration parameters ØDHCPACK: Ø

Server’s operations ØDHCPOFFER: Ø response to DHCPDISCOVER with offer of configuration parameters ØDHCPACK: Ø Contains configuration parameters and committed network address ØDHCPNAK: Ø indicating refusing request for configuration parameters (e. g. , requested network address already allocated).

Two kinds of event flow 1. Event flow for allocating a new network address

Two kinds of event flow 1. Event flow for allocating a new network address 2. Event flow for reusing a previous allocated network address

Event flows for allocating a new network address

Event flows for allocating a new network address

Step by step to allocate a new network address 1 2 1. The client

Step by step to allocate a new network address 1 2 1. The client broadcasts a DHCPDISCOVER message on its local physical subnet. 2. Each server may respond with a DHCPOFFER message that includes an available network address 3 3. The client receives one or more DHCPOFFER messages from and chooses one server, then broadcasts a DHCPREQUEST message include the 'server identifier' to indicate the selected server.

Step by step to allocate a new network address 4. The servers receive the

Step by step to allocate a new network address 4. The servers receive the DHCPREQUEST broadcast from the client. The selected server commits the binding for the client to persistent storage and responds with a DHCPACK message containing the configuration parameters for the requesting client. 4 5 6 5. The client receives the DHCPACK message with configuration parameters. 6. The client may choose to relinquish its lease on a network address by sending a DHCPRELEASE message to the server.

A much more Clear View 1. DHCPDISCOVER 2. DHCPOFFER 3. DHCPREQUEST 4. DHCPACK DHCP

A much more Clear View 1. DHCPDISCOVER 2. DHCPOFFER 3. DHCPREQUEST 4. DHCPACK DHCP client 5. DHCPRELEASE DHCP server

Event flows for reusing a previous allocated network address

Event flows for reusing a previous allocated network address

Step by step to reuse a previous allocated network address 1. The client broadcasts

Step by step to reuse a previous allocated network address 1. The client broadcasts a DHCPREQUEST message on its local subnet. The message includes the client's network address in the 'requested IP address' option. 1 2 2. 2. Servers with knowledge of the client's configuration parameters respond with a DHCPACK message to the client. Servers SHOULD NOT check that the client's network address is already in use; the client may respond to ICMP Echo Request messages at this point. If the client's request is invalid (e. g. , the client has moved to a new subnet), servers SHOULD respond with a DHCPNAK message to the client.

Step by step to reuse a previous allocated network address 3. The client receives

Step by step to reuse a previous allocated network address 3. The client receives the DHCPACK message with configuration parameters and performs a final check on the parameters, notes the duration of the lease specified in the DHCPACK message. 3 4 4. The client may choose to relinquish its lease on a network address by sending a DHCPRELEASE message to the server.

A much more Clear View 1. DHCPREQUEST 2. DHCPACK DHCP client 3. DHCPRELEASE DHCP

A much more Clear View 1. DHCPREQUEST 2. DHCPACK DHCP client 3. DHCPRELEASE DHCP server

State machine

State machine

Highlight for a successful allocation of new network address

Highlight for a successful allocation of new network address

Highlight for a successful reusing a previously allocated address

Highlight for a successful reusing a previously allocated address

Reacquisition and expiration ØThe client maintains two times, T 1 and T 2, that

Reacquisition and expiration ØThe client maintains two times, T 1 and T 2, that specify the times at which the client tries to extend its lease on its network address. ØT 1 is the time at which the client enters the RENEWING state and attempts to contact the server ØT 2 is the time at which the client enters the REBINDING state and attempts to contact any server. ØT 1 MUST be earlier than T 2, which MUST be earlier than the time at which the client's lease will expire.

Performance issues Ø A DHCP server should be able to start up very quickly.

Performance issues Ø A DHCP server should be able to start up very quickly. (Don’t need do a lot of things such as committing entries in the transaction log to its database and load a lot information into memory) Ø A DHCP server should be persistence. (Means it should be able to keep state and also recover from a disaster) Ø DHCP server should be able to quickly receive, process, and answer requests.

Problems, Security issues Ø Malicious DHCP server (May lead misconfiguration across entire network) Ø

Problems, Security issues Ø Malicious DHCP server (May lead misconfiguration across entire network) Ø Malicious DHCP client (denial-of-service attack on DHCP servers by requesting many leases from the server, thereby depleting the number of leases that are available to other DHCP clients) Ø DHCP is built directly on UDP and IP which are as yet inherently insecure. Ø DHCP is generally intended to make maintenance of remote and/or diskless hosts easier. Configuring such hosts with passwords or keys may be difficult and inconvenient. Therefore, DHCP in its current form is quite insecure.

Extension: DHCPv 6 Ø The Dynamic Host Configuration Protocol for IPv 6 enables DHCP

Extension: DHCPv 6 Ø The Dynamic Host Configuration Protocol for IPv 6 enables DHCP servers to pass configuration parameters such as IPv 6 network addresses to IPv 6 nodes. Ø It offers the capability of automatic allocation of reusable network addresses and additional configuration flexibility. IPv 6 defines 2 classifications of address auto-configuration: Ø Stateless Ø nodes configure addresses themselves with information from routers Ø no managed addresses Ø Stateful Ø nodes use DHCPv 6 to obtain addresses. Ø Duplicate address detection (DAD) used to avoid duplicated addresses

DHCPv 6 (more) Ø The DHCPv 6, RFC 3315, submitted in July 2003, proposes

DHCPv 6 (more) Ø The DHCPv 6, RFC 3315, submitted in July 2003, proposes an almost entire rewrite of DHCPv 4, complete with authentication and interoperability with stateless auto-configuration. DHCPv 6 Versus DHCPv 4 (major differences): Ø Unlike DHCPv 4, IPv 6 address allocation in DHCPv 6 is handled using a message option instead in the main header. Ø The operations such as DHCPDISCOVER and DHCPOFFER supported by DHCPv 4 are removed in DHCPv 6. Instead, DHCPv 6 servers are located by a client SOLICIT message followed by a server ADVERTISE message. Ø Now, DHCPv 6 clients can request multiple IPv 6 addresses.

DHCPv 6 (more)

DHCPv 6 (more)

Conclusion Ø DHCP provides a framework for passing configuration information to hosts on a

Conclusion Ø DHCP provides a framework for passing configuration information to hosts on a TCP/IP network. Ø It supports three mechanisms for IP address allocation: automatic, dynamic and manual allocation. Ø It saves a lot of work for network administrator. Ø However, remember that DHCP in its current form is quite insecure. There are some security issues about it. Ø Now, newer version of DHCP is DHCPv 6. It is for passing configuration parameters to a node in IPv 6 network.

Reference 1. RFC 1531, 1541, 2131, 3315 www. ietf. org RFC database 2. The

Reference 1. RFC 1531, 1541, 2131, 3315 www. ietf. org RFC database 2. The DHCP handbook http: //www. dhcp-handbook. com/dhcp_faq. html 3. Debugging DHCP Performance http: //www. cs. wisc. edu/~suman/pubs/imc 04. pdf 4. Windows server 2003: DHCP http: //technet 2. microsoft. com/Windows. Server/en/Library/8 cf 0 b 3 bf 0 ea 2 -4 dcf-a 3 b 9 -d 71 ba 386 f 5 e 51033. mspx

Thank you!

Thank you!