Home > DHCP Tutorial

DHCP Tutorial

June 18th, 2015 Go to comments

In IP environment, before a computer can communicate to another one, they need to have their own IP addresses. There are two ways of configuring an IP address on a device:
+ Statically assign an IP address. This means we manually type an IP address for this computer
+ Use a protocol so that the computer can obtain its IP address automatically (dynamically). The most popular protocol nowadays to do this task is called Dynamic Host Configuration Protocol (DHCP) and we will learn about it in this tutorial.

A big advantage of using DHCP is the ability to join a network without knowing detail about it. For example you go to a coffee shop, with DHCP enabled on your computer, you can go online without doing anything. Next day you go online at your school and you don’t have to configure anything either even though the networks of the coffee shop and your school are different (for example, the network of the coffee shop is 192.168.1.0/24 while that of your company is 10.0.0.0/8). Really nice, right? Without DHCP, you have to ask someone who knows about the networks at your location then manually choosing an IP address in that range. In bad situation, your chosen IP can be same as someone else who is also using that network and an address conflict may occur. So how can DHCP obtain an suitable IP address for you automatically? Let’s find out.

DHCP_Advantages.jpg

How DHCP works

1. When a client boots up for the first time (or try to join a new network), it needs to obtain an IP address to communicate. So it first transmits a DHCPDISCOVER message on its local subnet. Because the client has no way of knowing the subnet to which it belongs, the DHCPDISCOVER is an all-subnets broadcast (destination IP address of 255.255.255.255, which is a layer 3 broadcast address) and a destination MAC address of FF-FF-FF-FF-FF-FF (which is a layer 2 broadcast address). The client does not have a configured IP address, so the source IP address of 0.0.0.0 is used. The purpose of DHCPDISCOVER message is to try to find out a DHCP Server (a server that can assign IP addresses).

DHCP_Discover.jpg

2. After receiving the discover message, the DHCP Server will dynamically pick up an unassigned IP address from its IP pool and broadcast a DHCPOFFER message to the client(*). DHCPOFFER message could contain other information such as subnet mask, default gateway, IP address lease time, and domain name server (DNS).

DHCP_Offer.jpg

(*)Note: In fact, the DHCPOFFER is a layer 3 broadcast message (the IP destination is 255.255.255.255) but a layer 2 unicast message (the MAC destination is the MAC of the DHCP Client, not FF-FF-FF-FF-FF-FF). So in some books they may say it is a broadcast or unicast message.

3. If the client accepts the offer, it then broadcasts a DHCPREQUEST message saying it will take this IP address. It is called request message because the client might deny the offer by requesting another IP address. Notice that DHCPREQUEST message is still a broadcast message because the DHCP client has still not received an acknowledged IP. Also a DHCP Client can receive DHCPOFFER messages from other DHCP Servers so sending broadcast DHCPREQUEST message is also a way to inform other offers have been rejected.

DHCP_Request.jpg

4. When the DHCP Server receives the DHCPREQUEST message from the client, the DHCP Server accepts the request by sending the client a unicast DHCPACKNOWLEDGEMENT message (DHCPACK).

DHCP_Acknowledgement.jpg

In conclusion there are four messages sent between the DHCP Client and DHCP Server: DHCPDISCOVER, DHCPOFFER, DHCPREQUEST and DHCPACKNOWLEDGEMENT. This process are often abbreviated as DORA (for Discover, Offer, Request, Acknowledgement).

After receiving DHCPACKNOWLEDGEMENT, the IP address is leased to the DHCP Client. A client will usually keep the same address by periodically contacting the DHCP server to renew the lease before the lease expires.

If the DHCP Server is not on the same subnet with the DHCP Client, we need to configure the router on the DHCP client side to act as a DHCP Relay Agent so that it can forward DHCP messages between the DHCP Client & DHCP Server. To make a router a DHCP Relay Agent, simply put the “ip helper-address <IP-address-of-DHCP-Server>” command under the interface that receives the DHCP messages from the DHCP Client.

DHCP_Relay_Agent.jpg

As we know, router does not forward broadcast packets (it drops them instead) so DHCP messages like DHCPDISCOVER message will be dropped. But with the “ip helper-address …” command, the router will accept that broadcast message and cover it into a unicast packet and forward it to the DHCP Server. The destination IP address of the unicast packet is taken from the “ip helper-address …” command.

When a DHCP address conflict occurs

During the IP assignment process, the DHCP Server uses ping to test the availability of an IP before issuing it to the client. If no one replies then the DHCP Server believes that IP has not been allocated and it can safely assign that IP to a client. If someone answers the ping, the DHCP Server records a conflict, the address is then removed from the DHCP pool and it will not be assigned to a client until the administrator resolves the conflict manually.

Configure a DHCP Server on Cisco router

Instead of using a separate computer/server as a DHCP Server, we can save the cost and configure a Cisco router (even a Layer 3 Cisco switch) to work as a DHCP Server. The following example configuration will complete this task:

Configuration Description
Router(config)#ip dhcp pool CLIENTS Create a DHCP Pool named CLIENTS
Router(dhcp-config)#network 10.1.1.0 /24 Specifies the subnet and mask of the DHCP address pool
Router(dhcp-config)#default-router 10.1.1.1 Set the default gateway of the DHCP Clients
Router(dhcp-config)#dns-server 10.1.1.1 Configure a Domain Name Server (DNS)
Router(dhcp-config)#domain-name 9tut.com Configure a domain-name
Router(dhcp-config)#lease 0 12 Duration of the lease (the time during which a client computer can use an assigned IP address). The syntax is “lease {days[hours] [minutes] | infinite}”. In this case the lease is 12 hours. The default is a one-day lease.
Before the lease expires, the client typically needs to renew its address lease assignment with the server
Router(dhcp-config)#exit  
Router(config)# ip dhcp excluded-address 10.1.1.1 10.1.1.10 The IP range that a DHCP Server should not assign to DHCP Clients. Notice this command is configured under global configuration mode
Comments (50) Comments
Comment pages
1 2 3 5 2425
  1. black
    June 22nd, 2015

    Thanks 9tut.

  2. Aonlie
    June 30th, 2015

    Cool stuff

  3. ismail
    June 30th, 2015

    easy to understand, very illustrative and informative piece of work

  4. Yusuf
    July 2nd, 2015

    Nice stuff thanks 9 tut

  5. Fazil Ali VS
    July 11th, 2015

    Thanks! Nice article for refreshing my knowledge !

  6. Anonymous
    July 12th, 2015

    good illustrastion and clean explanation

  7. hansa
    July 20th, 2015

    cool illustration and clear explanation

  8. Anonymous
    July 22nd, 2015

    very nice!

  9. Vijay
    July 24th, 2015

    thanks 9tut

  10. Mahiyan
    August 11th, 2015

    Thanks a lot 9tut !!!!!

  11. shiva
    August 12th, 2015

    helped me alot!!! thanks!!!

  12. Anugrah
    August 12th, 2015

    good description of DORA process

  13. Eliseu Castro
    August 12th, 2015

    Very good!

  14. matito
    August 13th, 2015

    Estos question practicos entran en el nuevo examen de ccna??

  15. Anonymous
    August 13th, 2015

    Nice Tut

  16. Aliina
    August 13th, 2015

    Thank you! Very clear and nice!

  17. ven
    August 15th, 2015

    are these dumps still valid??

  18. Dennis Bulldog
    August 15th, 2015

    9tut rocks!!!

  19. packeer mohideen
    August 17th, 2015

    Thank you.. very clear and neat explanations….

  20. Jason
    August 19th, 2015

    Thanks!

  21. Ramu
    August 19th, 2015

    Its very easy to understand

  22. Sarah
    August 21st, 2015

    Great work, yo!

  23. Jawwad
    August 21st, 2015

    Thanks, very good notes

  24. Jeff
    August 22nd, 2015

    Thank you!

  25. ella
    August 23rd, 2015

    great n straightforward

  26. hicham
    August 25th, 2015

    thanks 9tut, goud job :)

  27. Magdi Balla -sudan
    August 26th, 2015

    thanks 9tut

  28. Francisco
    August 27th, 2015

    Very nice tutorial!! well done!!

  29. Chirag
    August 27th, 2015

    Really…It was very informative tutorial..

  30. Emeka
    August 27th, 2015

    Excellent

  31. Sam
    August 27th, 2015

    Great!

  32. Joni
    August 30th, 2015

    nice..

  33. chilemu T.
    September 1st, 2015

    Good tutorial,be blessed

  34. Mohammed, Moya school of technology
    September 3rd, 2015

    Thanks a lot really it’s very helpful tutor.

  35. nitiputra
    September 4th, 2015

    clear information and education…cool..

  36. CAMARA
    September 7th, 2015

    well done here, it’s very helpful

  37. arv….
    September 7th, 2015

    thaks a lot

  38. Rubenns
    September 8th, 2015

    Good explanation

  39. Benj
    September 9th, 2015

    Tried opening some vce files but failed…..,somebody please help

  40. phanindra
    September 9th, 2015

    Thnks 9tut fr this grt article on DHCP..it help me a lot….

  41. Mahendra
    September 10th, 2015

    great explain

  42. Marc
    September 10th, 2015

    Thanks 9tut

  43. Thanks.This article is of a great substanvce
    September 11th, 2015

    Pius Taremwa.

  44. INNOTEX
    September 12th, 2015

    It’s very informative thank you DORA

  45. afoli
    September 12th, 2015

    new to cisco router but want to configure cctv remote view on it pls help

  46. Jawwad
    September 12th, 2015

    I passed my CCNA with 945/1000 so i am thankful to GOD and 9tut as it was really helpful…
    A question to 9tut management, are you planning anything such for CCNP

  47. 9tut
    September 13th, 2015

    @Jawwad: Please check the bottom of the right-side menu to see links for CCNP exams.

  48. Anonymous
    September 14th, 2015

    thank you sir

  49. rowell
    September 17th, 2015

    thanks 9tut

  50. moonyarson
    September 20th, 2015

    Very helpful. Thanks

Comment pages
1 2 3 5 2425
Add a Comment