On Sat, Jun 03, 2006 at 07:11:24AM -0400, Eric Martin wrote:
# Everybody in here will not get an ip whatsoever pool { range 10.10.20.20 10.10.20.127; deny known-clients; host slide { hardware ethernet 00:c0:9f:15:d7:3f; } } pool { range 10.10.20.128 10.10.20.253; deny unknown-clients; host fixed { hardware ethernet 00:11:22:33:44:55; # fixed-address 10.10.20.25; } } }
You've made several of the classic mistakes that everyone makes at first when learning ISC dhcpd (including myself :-) ). host {} blocks are always global in scope, regardless of where in the configuration they are placed. Putting them inside pool {} blocks just confuses readers into thinking they are locally scoped. So, in this configuration both hosts "slide" and "fixed" are considered known-clients, and they will both get dynamic addresses out of the second pool unless the fixed-address was uncommented for host "fixed" in which case "deny known-clients" etc. doesn't apply at all (they only apply to dynamic assignments). Another thing: fixed-address assignments must not be inside of pool ranges. The server will not check for such conflicts of static/dynamic addressing, so you will get duplicate IP assignments to more than one client in case fixed-addresses and ranges overlap. You can exclude the fixed-addresses like this: pool { range 10.10.20.20 10.10.20.24; range 10.10.20.26 10.10.20.127; [....] } Common practice is to not intersperse fixed-addresses throughout multiple pool ranges, to prevent unwieldy configurations with multiple range statements per pool. Rather, fixed-addresses are usually assigned contiguously together outside of a single pool range. Finally, when you say "everybody in here will not get an ip whatsoever", that is not true. The "deny known-clients" implicitely does "allow unknown-clients", and vice versa, so unknown-clients (those without any matching host {} declaration) will get dynamic addresses out of the first pool.