DHCP Pools on Ubuntu DHCP server not working properly

Solution 1:

The problem lies in the use of the hardware filter.

The documentation states that:

The hardware operator returns a data string whose first element is the type of network interface indicated in packet being considered, and whose subsequent elements are client's link-layer address. If there is no packet, or if the RFC2131 hlen field is invalid, then the result is null. Hardware types include ethernet (1), token-ring (6), and fddi (8). Hardware types are specified by the IETF, and details on how the type numbers are defined can be found in RFC2131 (in the ISC DHCP distribution, this is included in the doc/ subdirectory).

In other words, hardware, 5, 6 does not return the 5th and 6th octet of the MAC address, as you may expect, but the 4th and 5th, because the first element will be the type (0x01, because it's Ethernet).