summaryrefslogtreecommitdiffstats
path: root/src/etc/inc/services.inc
diff options
context:
space:
mode:
authorBrett Keller <blkeller@comcast.net>2016-12-22 12:27:24 -0600
committerBrett Keller <blkeller@comcast.net>2016-12-22 12:27:24 -0600
commit11ee0c6d6f311215411cc0d15298ad075864ad2e (patch)
tree6bac7db02afa7ca85d5a2adadf45d88c89106e0d /src/etc/inc/services.inc
parentc393f1d1c3c2981dcf41f002b6edcc08aa6d5a65 (diff)
downloadpfsense-11ee0c6d6f311215411cc0d15298ad075864ad2e.zip
pfsense-11ee0c6d6f311215411cc0d15298ad075864ad2e.tar.gz
Add new "Ignore client identifiers" DHCP feature
Exposes the underlying dhcpd configuration option "ignore-client-uids" in the pfSense "Services / DHCP Server" GUI by adding an "Ignore client identifiers" checkbox. As of ISC dhcpd version 4.3.0+, there is a new configuration statement available, "ignore-client-uids". According to the ISC's documentation, "If the 'ignore-client-uids' statement is present and has a value of 'true' or 'on', the UID for clients will not be recorded." While this behavior does not strictly adhere to the DHCP specification, it can be very useful in environments where devices on the network dual boot or PXE boot. Normally, if the network stacks in a single device's different operating systems (including PXE firmware) make DHCP requests with differing client identifiers, the server will treat each request with a unique identifier as having come from a unique client, even when they come from the same device. Thus, different operating systems on the same device and NIC might hold different leases with different IP addresses. Once activated, the "ignore-client-uids" option tells the DHCP server not to record client identifiers in new DHCP leases, which forces the server to fall back on hardware (MAC) addresses to uniquely identify clients. Now different operating systems on the same device and NIC will hold the same lease (based on MAC address), which should keep a device's IP address consistent regardless of its currently running operating system. Same as with most other general and pool-specific DHCP server options in pfSense, note that turning on this option only affects new leases. Any leases that existed prior to enabling this option will still contain their respective client identifiers. Manually deleting older leases or flushing the entire lease table can expedite a full migration to the new server behavior, if desired.
Diffstat (limited to 'src/etc/inc/services.inc')
-rw-r--r--src/etc/inc/services.inc5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/etc/inc/services.inc b/src/etc/inc/services.inc
index cfda822..dded825 100644
--- a/src/etc/inc/services.inc
+++ b/src/etc/inc/services.inc
@@ -885,6 +885,11 @@ EOPP;
$dhcpdconf .= " ignore bootp;\n";
}
+ // ignore-client-uids
+ if (isset($poolconf['ignoreclientuids'])) {
+ $dhcpdconf .= " ignore-client-uids true;\n";
+ }
+
// netbios-name*
if (is_array($poolconf['winsserver']) && $poolconf['winsserver'][0] && ($poolconf['winsserver'][0] != $dhcpifconf['winsserver'][0])) {
$dhcpdconf .= " option netbios-name-servers " . join(",", $poolconf['winsserver']) . ";\n";
OpenPOWER on IntegriCloud