Welcome!

Linux Authors: Chris Fleck, Loraine Antrim, Walter H. Pinson, III, Suresh Krishna Madhuvarsu, Maureen O'Gara

Related Topics: Linux

Linux: Article

DHCP Servers – Microsoft v Linux

DHCP Servers – Microsoft v Linux

The Dynamic Host Configuration Protocol (DHCP) is a network protocol that sends network configuration information to computers (and other devices) on a network. It allows a system administrator to manage an IP address range from a central location and to maintain network parameters for all systems from that same central point.

DHCP is an internet standard, published as RFC2131. Implementations exist for many different platforms, covering clients and servers. As a standard protocol there is no need to run the same implementation on clients and servers. A Linux client will happily interact with -for example- a Microsoft DHCP Server, and Windows clients can retrieve their configuration from a Linux system running the DHCP daemon.

We have been running the Microsoft DHCP Server on our internal network for many years without too many issues. Recently I moved it over to a Linux machine, as part of our migration away from Windows. I was pleasantly surprised to find that the Linux implementation has a lot more features than Microsoft's. Here's a short list:

  • Duplicate Address Avoidence: The Linux DHCPD will always ping the address it is about to issue, to make sure that it is not already in use, whilst the Microsoft DHCP Server will purely rely on its own leases database, which does sometimes result in duplicate addresses on the network.
  • DHCP Failover: DHCPD on Linux supports the draft DHCP Failover protocol, which allows two servers to jointly manage a single DHCP scope. Microsoft DHCP does not implement any type of failover.
  • DNS Registration: The DHCP Server on Linux can register hostnames with DNS. In a Microsoft environment, registration is up to the client.
  • Expressions: On Linux, it is possible to use expressions to dynamically determine the value for an option to be sent to a client. The Microsoft DHCP Server only allows static values.
  • Groups and Classes of clients: In the Linux DHCP server configuration file you can create groups and classes within a DHCP scope, and specify specific options or parameters for a group or class. With the Microsoft version, you can only specify options per scope or per client, whilst parameters (such as lease time) can only be specified on a scope-by-scope basis.
Due to the limitations in Microsoft's DHCP implementation, most larger companies have opted to use DHCP services of other network devices. Many of such devices run the ISC implementation of DHCP, which is -in fact- the exact same implementation as what comes with most Linux distributions.

About Herman Verkade

Herman Verkade is a UK-based, independent consultant who specializes in the management of large-scale heterogeneous environments. Over the past 22 years he has worked mostly with financial institutions in the UK, the U.S., and continental Europe.

Comments (14) View Comments

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.


Most Recent Comments
srinivas 06/04/04 02:27:55 PM EDT

well, since the last time I posted message, I was successful in getting dhcp fail over working correctly. Everything described in man dhcpd.conf works perfectly except for the port ( both local and remote peer port have to be the same ). Making both primary and secondary server listen on same port, establishes a successful tcp connection between them ( with out firewall or other network blocks ) and works great !! Best source for dhcp failover is the man page itself

mark 06/04/04 12:51:22 PM EDT

Anyone have a good place to start with finding out how to set up and configure the DHCP failover? And will a RED HAT DHCP server work properly in an AD environment? Thanks

mark 06/04/04 12:49:44 PM EDT

Anyone have a good place to start with finding out how to set up and configure the DHCP failover?

srinivas 05/23/04 11:41:13 PM EDT

Hi, these are very interesting comments about dhcp server, could someone please describe what the split index does.
thanks

Armin Nekoosefat 04/10/04 07:56:14 AM EDT

>An unrelated question for you DHCP masters : Does any one >know how to exclude unknown computers from getting a >lease ?
>I would greatly appreciate a suggestion.
DHCP version 3 manual itself is helpful (ref.: http://www.bind9.net/dhcpd.conf.5)

-----------------------------------------
ALLOW DENY AND IGNORE IN SCOPE
The following usages of allow and deny will work in any
scope, although it is not recommended that they be used in
pool declarations.

The unknown-clients keyword

allow unknown-clients;
deny unknown-clients;
ignore unknown-clients;

The unknown-clients flag is used to tell dhcpd whether or
not to dynamically assign addresses to unknown clients.
Dynamic address assignment to unknown clients is allowed
by default. An unknown client is simply a client that has
no host declaration.

The use of this option is now deprecated. If you are try-
ing to restrict access on your network to known clients,
you should use deny unknown-clients; inside of your
address pool, as described under the heading ALLOW AND
DENY WITHIN POOL DECLARAIONS.
---------------------------------------
I myself have tested it before and have found it very helpful.

lionel 04/09/04 12:54:30 PM EDT

I agree with Armin & Daren's comments, Hermanhad a too short knowledge of MS DHCP, which in fact comes very close to ISC DHCP.
I am inclined to coinsider the reason why people use MS DHCP is just because it is bundled in the box.
I give a + to ISC for the DHCP Failover protocol as it allows two servers to jointly manage a single DHCP scope. Which is not the case with 80%20% scheme or MS Cluster.

An unrelated question for you DHCP masters : Does any one know how to exclude unknown computers from getting a lease ?
I would greatly appreciate a suggestion.

Darren 03/15/04 04:24:06 PM EST

This article shows a lack of knowledge of the subject matter:

Duplicate Address Avoidence: MS DHCP does this, as per the RFC

DHCP Failover: erm, 80/20 rule and/or clustering both do this

DNS Registration: the server can be set to register addresses on behalf of the client if you wish. considering w2k's reliance on DNS then this is sort of a fundamental feature...

Expressions/Groups and Classes of clients: done by scope id settings

it looks to me like both products do exactly the same thing, which you would expect if they conform to the publicly documented standard RFCs. This article is a load of FUD

K. 12/08/03 12:27:52 PM EST

"Duplicate Address Avoidence: The Linux DHCPD will always ping the address it is about to issue, to make sure that it is not already in use, whilst the Microsoft DHCP Server will purely rely on its own leases database, which does sometimes result in duplicate addresses on the network. "

Interesting difference, however the end justifies the means. If the goal is "duplicate address avoidence", then this still happens on a Microsoft network. Microsoft OS based DHCP clients will ARP to see if the address is in use beforehand and will not take it if it's active. This also generates a duplicate address alert on the original owners desktop (if configured). I haven't seen one of these alerts in ages.

Armin Nekoosefat 12/07/03 04:49:07 AM EST

Yes we need a real comparison.
ISC version of DHCP (or as you called Linux version) is so much better because it is open source and much more developers are developing it and trying to more it forward in spite of their lack of resources.
But for the sake of you dear Mr. Gates, I should declare that your version of DHCP Server on NT4,Win2000 and Win 2003 is much more easier to install, configure and cooperate with other services (as you mentioned WINS) and although newer versions of Linux like RedHat Linux 9.0 has included the latest version of ISC DHCP on their installation CDs, when using older versions the admin must download the source from INet, compile and install it ... not a simple task for a beginner to the World of Network administration.
Mr. Gates, your version of DHCP requires less knowledge of the real protocol to deploy a successful installation. Just by knowing what DHCP does, and clicking, pointing and some typing, a simple network is being made. Your DHCP Service and other networking services like DNS has helped those people with less knowledge become network administrators (Although just in the Windows world and I don’t dare to imagine what happens to these new administrators when they are asked to install, config. and maintain some networking services like DHCP on Linux, Solaris, HP-UX or other variants of UNIX.)
ISC(Linux) DHCP Server for Teachers :
I also believe that your version is not suitable for teaching the concepts of TCP/IP networking. Configuring it seems like a game for students. With the ISC version, I have the option to put it in DEBUG mode . When teaching about the different phases of the protocol, the DISCOVER phase, OFFER phase and so on, the student can see it on the screen, a nice lab. I have found that these students have no trouble working on other versions on other OSs.
I also believe that learning DHCP (and any other common TCP/IP protocols) on Windows platform makes these future N.Admins lazy
Mr. Gates, but you are the leader in simplicity and really usable software. You carefully listen to your customer’s suggestions and needs, as you have done in different versions of DHCP server, from
W NT4 to W2003. It is going to be much simpler as the time passes.

God Bless The ISC Team And Of Course the Linux Community
Also God Bless My country IRAN and the great people of the UNITED STATES OF AMERICA for being so nice and for those moving science and tech forward and making humanity closer.

Bill Gates 12/05/03 02:50:25 PM EST

I'm sorry..... Why is Linux version of DHCP so much better?

I think that we need a real comparison here. The reason people use MS DHCP is for the intergation with Active Directory and Dynamic DNS\WINS.

The Name of the Article should have been 'DHCP Server - Linux'

Stephen Samuel 12/01/03 06:24:14 AM EST

From reading the dhcpd man page, (v3.0pl1) it says that it
does both forward and reverse DNS name updates. You do need to provide the key statement for both the forward and the reverse domaine names

Gary Bowers 11/28/03 11:42:57 AM EST

i might be wrong here, but one feature that i havn't got working on DHCPD from Microsoft is auto-updating of client's reverse DNS entries.. Active Directory uses dhcp to generate a list of reverse entries.

If this can be done with Bind/DHCPD then please someone prove me wrong.

All in all i have found dhcpd more reliable, especially when dishing out large numbers of ip's at once... say 8am when everyone logs on.

Darryl 11/14/03 08:11:41 PM EST

Yahoo had an news story about this the other day. Not something I would normally think about but it made the news.

Armin Nekoosefat 11/13/03 02:01:02 PM EST

Besides the features you have mentioned, It has one very nice and useful feature.
It is possible to deny some clients from getting address. It's somehow like host registration, but you must explicitly set this option in order to deny unknown hosts from registering.
This feature is so helpful specially in my large networks where some employments may use external PCs and notebooks.
I once used this feature in the days of Nimda virus. A DHCP client with known NETBIOS, was spreading dirty attachments to other clients. Being new to this large newtork, I did not have any documentation about the client's
physical location to call him/her, so the best solution was not to give him/her logical network access in the form of IP assignment. I believed that he/her would call me complaining about the problem. By checking his/her NETBIOS name, it would be possible to initiate virus checking.
Using the mentioned nice feature I could deny Linux's DHCP server lease address to this specific host (A feature absent in any MS implementation of DHCP).
The story went on exactly according to my scenario.

Of course, the features are more than mentioned. It's debugging features are also a great tool for every network administrator.

Thanks to the great team of ISC DHCP Server.