Exclude IP address from DHCP pool

dhcpisc-dhcp

Is there a way to exclude a single IP address from a DHCP pool? For various reasons I have a machine that I can't reconfigure or move off the network (let's call it a printer). It has been hard coded with address x.x.x.50 and my DHCP pool is x.x.x.10 -> x.x.x.246.
I don't want to have two pool definitions for this one subnet just to cover the ranges on either side of this machine. Is there some form of 'exclude IP' argument/option?

I'm using Ubuntu 11 and the isc-dhcp-server package.

DISCLAIMER: I have googled and it only came up with IOS and Juniper configuration info.

Best Answer

Why don't you set the IP for that appliance explicitly:

# The standard subnet
subnet 10.0.0.0 netmask 255.255.255.0 {
    option domain-name "ourdomain.internal";
    option routers 10.0.0.1;
    option domain-name-servers 10.0.0.2;
    range 10.0.0.10 10.0.0.49;
    range 10.0.0.51 10.0.0.246;
}


#has hardcoded ip, and dhcp should not use that in pool
host fixedipappliance {
    hardware ethernet 10:4e:ed:co:ff:ee;
    fixed-address 10.0.0.50;
}

I just successfully tested a configuration with two ranges like that. Multiple range statements are legal, as per the manpage there must be at least one range statement:

The range statement

  range [ dynamic-bootp ] low-address [ high-address];

For any subnet on which addresses will be assigned dynamically, there must be at least one range statement. The range statement gives the lowest and highest IP addresses in a range. All IP addresses in the range should be in the subnet in which the range statement is declared. The dynamic-bootp flag may be specified if addresses in the specified range may be dynamically assigned to BOOTP clients as well as DHCP clients. When specifying a single address, high-address can be omit‐ ted.

Related Topic