18

It is not mentioned explicitly in the manpage, but setting lease time to -1 in any of the options you mention, default-lease-time -1; max-lease-time -1; is effectively disabling the expiry time of the leases, so their expiration will be effectively set "to infinity".


15

It goes: CLIENT -> DHCPDISCOVER SERVER -> DHCPOFFER CLIENT -> DHCPREQUEST SERVER -> DHCPACK You you are missing the DHCPREQUEST before the DHCPACK in your description. If the client is on a different subnet than the DHCP server the DHCPOFFER is sent unicast to the DHCP-relay on port 67 UDP. The DHCP-relay agent broadcasts the DHCPOFFER to the ...


10

As you discovered, you cannot declare hosts inside a class. The class declaration can only contain match or match if statements. If you want to group your client requests into classes using the class construct, you could do it something like this: class "MyHosts" { match hardware; } subclass "MyHosts" 1:10:bf:48:xx:xx:xx; # host2 subclass "MyHosts" 1:...


10

Supposing your DHCP-server and DHCP-client are both connected to the same ethernet segment, and supposing such ethernet segment spans several L2-switches interconnected with various "trunk" (802.1q) links, I've run into similar issues when there was a mismatch between the configuration of at least one trunk link. In detail, the never-ending cycle of DHCP-...


9

As MadHatter mentioned in a comment, the leases file is periodically re-created to avoid this problem. While the period isn't mentioned in the documentation, discussions on the dhcp-users mailinglist indicates that it should be done once an hour, and I've checked the source code and found that this is correct. Unfortunately this isn't a configurable option. ...


6

Had the same issue. Not seeing any DHCPACKs. Problem here was: disk full dhcpd could not write to /var/lib/dhcp/dhcpd.leases.


6

While product recommendations are off-topic for ServerFault and I expect your question to be closed by the community in short order, I can offer two suggestions: Limiting yourself to a GUI-based system is limiting your ability to implement the best solution for your situation. Perhaps a system with a GUI will work well, or perhaps not. In spite of the above,...


6

dhcpcd after 6.4.0 (or fetch the trunk from the repository) will request and disposition a ia-pd prefix. for instance the nominal config interface eth1 ia-pd 1/::/60 eth2/2/64 eth3/3/64 will request a prefix with a length of 60 (so four bits, a.k.a. eight networks) and assign the resulting networks to the listed interfaces, with the prefix length of 64 and ...


5

From this thread on the mailing list, another option to block specific hosts is: class "black-hole" { match substring (hardware, 1, 6); # deny booting; ignore booting; } subclass "black-hole" <MAC-ADDRESS-TO_IGNORE>; The thread also says that the difference between ignore and deny is that the later logs the request whereas the former does ...


5

OK, I figured it out. If you have more than one IP address assigned to the same interface, then all the subnet declarations have to be grouped together into another declaration. For example, the Linux machine has 192.168.1.1 and 10.10.10.1 (both /24) IP's on eth0. Then a simple scope would be: shared-network mynet { subnet 10.10.10.0 netmask 255.255.255.0 ...


5

Probably a typo: option subnet-mask 225.225.225.0; Not a valid mask :-)


4

The lease expires when its expiration time arrives. ISC dhcpd does not remove the leases until it "needs" to (e.g. it ran out of IPs to assign, so now it will assign one from an expired lease). This is to support an often-overlooked feature of DHCP -- the DHCP server will DHCPOFFER a given client (MAC address) the same address it's used previously, even if ...


4

The name has changed in IPv6it is called now dhcp6.vendor-opts. In the dhcpd6.conf file in the host section you must add: option dhcp6.vendor-opts "options"; Depending on the client you must need to modify its config file to request it.


4

You should not configure an infinite lease time. The reason of having DHCP is to have a central management and flexibility. Making the lease time infinite, you will kill the flexibility.


4

ISC DHCP certainly will request a prefix delegation from your ISP if you ask it to, but it won't actually do anything with it beyond logging it somewhere. Nor will any other DHCP client. If you really intend to build your own router, you'll have to write your own scripts to determine the prefix that was delegated, set up static routes, and configure your ...


4

The first DHCP DORA (Discover, Offer, Request, Accept) sequence is triggered by the client PXE firmware trying to find an IP/MASK and the PXE data (NBP + TFTP location). The PXE firmware then TFTP retrieves and runs the corresponding kernel+initrd. When this kernel starts running it needs an IP/MASK then it triggers a second DHCP DORA sequence (this is a ...


3

I've seen this a few times and so far I've seen only two reasons: The IP address the DHCP server gave is already in use by another device. Usually you'd see a DHCPNAK though. Your firewall is accepting the traffic to the dhcp server, but not the traffic back Fortunately both should be easy to test. Ping the IP address and check relevant firewalls.


3

I would suggest specifying lease times in seconds. So where: default-lease-time 600; This being ten minutes max-lease-time 7200; This being two hours try: default-lease-time 86400; This being one day max-lease-time 604800; This being one week You could try 2592000 which is 30 days. I wouldn't exceed that.


3

Why not specify a tftp server that's a hop away? As long as your clients are receiving the appropriate default gateway this might be the easiest way to go. That said, if you must support multiple interfaces - It's possible to run multiple instances of dhcpd. Each would have its own configuration that would include entries to specifically bind said ...


3

I've been researching this myself, which turned up this thread. I've found: Anemon DHCP which appears to be dead/gone (thus the archive.org link). "modules gives anemon the ability to use many database as backend (mysql, postgresql, mssql, sqllite, sybase, etc..) " KEA from ISC "MySQL, Postgres back-end support." staticDHCPd "Databases: Postgres, MySQL, ...


3

The guys at ISC (authors of BIND and the ISC DHCP server) are working on KEA, a new DHCP server implementation that -- among other nice features -- has SQL support. The source code has had support for SQLite and MySQL for years, and PostgreSQL support was added recently. There's no proper release yet, and very little activity on their dev/users mailing ...


3

I had a similar issue. I ended up writing a few lines of Python code to generate DHCP config files from a database backend. Using diff I regularly check whether the file I generate has changes to the old config and in that case I reload the DHCP server. Works quite well for me with multiple data centers, dozens of networks and hundreds of IPs. Also ...


3

Yes, you can set options based on conditional statements in the ISC dhcpd server. Specifically you can test if the dhcp-client-identifier option is present in the incoming DHCP packet, and if it is set the option for the response packet to the incoming value by this expression: # other options in scope ... if exists dhcp-client-identifier { option ...


3

With DNS, there's a concept of recursive and authoritative queries, so what you're doing there - commonly called hidden master - makes sense. You have a the hidden master holding the data, the slaves copying it, and only enable recursion at the slaves. With DHCP, there's no such concept; a DHCP server either does not reply, grants or refuses a lease. ...


3

Regardless of whether you use DHCP or not, you'd better not putting two interfaces with identical MACs and different IPs into the same link (broadcast domain). Unless You are able to predict exactly all results. If you have two isolated subnets, your DHCP config is straightforward: just put host entries into corresponding subnet declarations. But remember ...


3

Create an empty declaration for your 10.4.1.0/24 network. subnet 10.4.1.0 netmask 255.255.255.0 { } And don't use that deprecated alias nonsense for multiple addresses. You don't need it, and it just confuses things. Setup your interfaces file like this. This results in the same effective configuration if you look at it using ip addr. and ip route. ...


3

From the dhcpd.conf(5) man page: The ddns-update-style parameter ddns-update-style style; The style parameter must be one of ad-hoc, interim or none. The ddns-update-style statement is only meaningful in the outer scope - it is evaluated once after reading the dhcpd.conf file, rather than each time a client is assigned ...


3

Use ebtables instead of iptables to block MAC addresses at layer 2: ebtables -A INPUT -s 00:11:22:33:44:55 -j DROP


3

The error says it all, you have both static and dynamic lease present for the same ip address range. In the following you have defined a dynamic lease: # Bekannte Geraete pool { range 192.168.1.1 192.168.1.169; deny unknown-clients; } Therefore you shouldn't configure static lease from this range anymore. I guess you have static ...


3

Your configuration should look more like this: subnet 1.2.3.0 netmask 255.255.255.0 { range 1.2.3.128 1.2.3.254 next-server 1.2.3.199; filename "pxelinux.0"; option routers 1.2.3.1; option subnet-mask 255.255.255.0; option domain-name "host.edu"; option domain-name-servers 1.2.8.; option broadcast-address 1.2.3.255; default-lease-time -1; max-...


Only top voted, non community-wiki answers of a minimum length are eligible