{"id":165,"date":"2014-01-18T19:45:20","date_gmt":"2014-01-18T19:45:20","guid":{"rendered":"http:\/\/eltonoverip.com\/blog\/?p=165"},"modified":"2015-01-14T18:57:36","modified_gmt":"2015-01-14T18:57:36","slug":"dhcp-log-not-authoritative-for-subnet","status":"publish","type":"post","link":"https:\/\/eltonoverip.com\/blog\/2014\/01\/dhcp-log-not-authoritative-for-subnet\/","title":{"rendered":"DHCP log &#8220;not authoritative for subnet&#8230;&#8221;"},"content":{"rendered":"<p>Running ISC DHCP server in Debian, I stumbled upon the following log messages while looking for something entirely different:<\/p>\n<pre>\r\n<code>\r\nJan 18 13:13:45 eltonoverip dhcpd: DHCPRELEASE of 10.19.1.60 from f0:bf:97:dd:6a:a6 via eth1 (not found)\r\nJan 18 13:13:59 eltonoverip dhcpd: DHCPDISCOVER from f0:bf:97:dd:6a:a6 via eth1\r\nJan 18 13:13:59 eltonoverip dhcpd: DHCPOFFER on 10.19.1.60 to f0:bf:97:dd:6a:a6 via eth1\r\nJan 18 13:13:59 eltonoverip dhcpd: DHCPREQUEST for 10.19.1.60 (10.19.1.1) from f0:bf:97:dd:6a:a6 via eth1\r\nJan 18 13:13:59 eltonoverip dhcpd: DHCPACK on 10.19.1.60 to f0:bf:97:dd:6a:a6 via eth1\r\nJan 18 13:14:03 eltonoverip dhcpd: DHCPINFORM from 10.19.1.60 via eth1: not authoritative for subnet 10.19.1.0\r\nJan 18 13:14:06 eltonoverip dhcpd: DHCPINFORM from 10.19.1.60 via eth1: not authoritative for subnet 10.19.1.0\r\n<\/code>\r\n<\/pre>\n<p>The Fix: I added <code>authoritative;<\/code> to the DHCP config file <code>\/etc\/dhcp\/dhcpd.conf<\/code><\/p>\n<p>Basically, the configuration looks like the following:<\/p>\n<pre>\r\n<code>\r\nsubnet 10.19.1.0 netmask 255.255.255.0 {\r\n  option domain-name-servers 10.19.1.1;\r\n  #option routers 10.19.1.1; #temporary network, no routing needed\r\n  range 10.19.1.101 10.19.1.149;\r\n  default-lease-time 1800;\r\n  max-lease-time 1800;\r\n  authoritative;\r\n\r\n  host laptop_name {\r\n    hardware ethernet f0:bf:97:ee:8a:b9;\r\n    fixed-address 10.19.1.60;\r\n  }\r\n\r\n}\r\n<\/code>\r\n<\/pre>\n<p>Note that, this has no effect on devices with a statically configured IP address (rogue or not), since they do not make a DHCP request.  Now that we have the server set as the authoritative server for that subnet, the server will respond a <em>DHCP NACK<\/em> message and prompt clients who request an IP address outside of the scope or range to do a <em>DHCP discover<\/em>.<\/p>\n<p>The example configuration above includes a DHCP reservation, in case you need your DHCP server assign an IP address for a specific client.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Running ISC DHCP server in Debian, I stumbled upon the following log messages while looking for something entirely different: Jan 18 13:13:45 eltonoverip dhcpd: DHCPRELEASE of 10.19.1.60 from f0:bf:97:dd:6a:a6 via eth1 (not found) Jan 18 13:13:59 eltonoverip dhcpd: DHCPDISCOVER from f0:bf:97:dd:6a:a6 via eth1 Jan 18 13:13:59 eltonoverip dhcpd: DHCPOFFER on 10.19.1.60 to f0:bf:97:dd:6a:a6 via eth1 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3,2],"tags":[],"class_list":["post-165","post","type-post","status-publish","format-standard","hentry","category-debian","category-linux"],"_links":{"self":[{"href":"https:\/\/eltonoverip.com\/blog\/wp-json\/wp\/v2\/posts\/165","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/eltonoverip.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/eltonoverip.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/eltonoverip.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/eltonoverip.com\/blog\/wp-json\/wp\/v2\/comments?post=165"}],"version-history":[{"count":12,"href":"https:\/\/eltonoverip.com\/blog\/wp-json\/wp\/v2\/posts\/165\/revisions"}],"predecessor-version":[{"id":450,"href":"https:\/\/eltonoverip.com\/blog\/wp-json\/wp\/v2\/posts\/165\/revisions\/450"}],"wp:attachment":[{"href":"https:\/\/eltonoverip.com\/blog\/wp-json\/wp\/v2\/media?parent=165"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/eltonoverip.com\/blog\/wp-json\/wp\/v2\/categories?post=165"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/eltonoverip.com\/blog\/wp-json\/wp\/v2\/tags?post=165"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}