<div dir="ltr"><div>Hi All.</div><div><br></div><div><br></div><div>I'm working at a small ISP where we among other access technologies use DOCSIS and every modem receives a ip and download its configuration from tftp based on information the modem gets from dhcp.</div><div><br></div><div>I have been having a problem since upgrading to dhcpd 4.2.4 (Ubuntu 14.04 stock) from dhcpd 3.0.5 (on FreeBSD).</div><div>The problem that occurs is when we make changes to the configuration of dhcpd and restart it the client that should have been affected isn't (other clients that shouldn't be affected remain unaffected) and other normal dhcp operation works as expected.</div><div><br></div><div><br></div><div>Steps taken we take to notice the problem:</div><div><br></div><div>We take a modems mac address (as listed below) and change the class it is associated with (to get the modem to load a different configuration file) and then restart the dhcp server to activate this change.</div><div>Next we restart the modem to force it to make a new dhcp-request and in the dhcp-reply we send the name of the configuration file the modem should download but the modem doesn't download this file, looking at the reply we still see the old filename.</div><div>The only way to force the modem to download the new file is to manually remove all objects associated with the modems mac-address from the dhcpd.leases file (with dhcp-server stoped and using a text editor), then when we have saved the edited dhcpd.leases file,  started dhcpd again and finally restarted the modem again it downloads the correct file.</div><div>If we look inside dhcpd.leases before and after this manual update the modem is associated with one class before and another after.</div><div><br></div><div>Each class has a option set to so that each modem assigned to that class should use a for the class specific configuration file.</div><div>Does anyone know if there a way we can get this working as before again so that what is in dhcpd.conf doesn't get overridden by what's in dhcpd.leases or have any input on the issue?</div><div><br></div><div><br></div><div>In the config-extract below 10.10.10.10 is the tftp-server that serves the modem configuration files and 172.16.x.x is used to represent public addresses.</div><div>There is a section from dhcpd.leases for a modem at the end for reference.</div><div><br></div><div>class "bf83941a-5e71-7628-e049-13413865ccbf" {</div><div>    match option dhcp-client-identifier;</div><div>    filename "<a href="http://8000-800-2.cm">8000-800-2.cm</a>";</div><div>    lease limit 4000;</div><div>}</div><div><br></div><div>class "772d4661-9dd6-5228-3342-6547a59a980b" {</div><div>    match option dhcp-client-identifier;</div><div>    filename "<a href="http://8000-4000-2.cm">8000-4000-2.cm</a>";</div><div>    lease limit 4000;</div><div>}</div><div><br></div><div>class "none-docsis" {</div><div>        match if not (substring (option vendor-class-identifier, 0, 6) = "docsis");</div><div>}</div><div><br></div><div>shared-network DOCSISNET-CABLENETWORK-2-XYZ {</div><div>subnet 192.168.192.0 netmask 255.255.252.0 {</div><div><span class="" style="white-space:pre">     </span>option subnet-mask 255.255.252.0;</div><div><span class="" style="white-space:pre">  </span>option routers 192.168.195.254;</div><div><span class="" style="white-space:pre">    </span>next-server 10.10.10.10;</div><div><span class="" style="white-space:pre">   </span>pool {</div><div><span class="" style="white-space:pre">             </span># Class Pool (START)</div><div><span class="" style="white-space:pre">               </span>allow members of "bf83941a-5e71-7628-e049-13413865ccbf";</div><div><span class="" style="white-space:pre">         </span>allow members of "772d4661-9dd6-5228-3342-6547a59a980b";</div><div><span class="" style="white-space:pre">         </span>allow members of "77e0e1ee-96b0-f6c4-40f8-6abcb23db39d";</div><div><span class="" style="white-space:pre">         </span>allow members of "e9fee5ad-0a10-de2e-82d2-98ec10e7f920";</div><div><span class="" style="white-space:pre">         </span>allow members of "1d66adaf-d85d-fbfd-93b5-7d842d398208";</div><div><span class="" style="white-space:pre">         </span>allow members of "20615bd4-23a5-d873-3f23-65df6a131944";</div><div><span class="" style="white-space:pre">         </span># Class Pool (END)</div><div><span class="" style="white-space:pre">         </span>range 192.168.192.1 192.168.195.250;</div><div><span class="" style="white-space:pre">       </span>}</div><div>}</div><div><br></div><div>subnet 172.16.165.0 netmask 255.255.255.0 {</div><div><span class="" style="white-space:pre">       </span>option subnet-mask 255.255.255.0;</div><div><span class="" style="white-space:pre">  </span>option domain-name "domain.tld";</div><div><span class="" style="white-space:pre"> </span>option routers 172.16.165.254;</div><div><span class="" style="white-space:pre">     </span>pool {</div><div><span class="" style="white-space:pre">             </span>deny members of "docsis";</div><div><span class="" style="white-space:pre">                </span>allow members of "none-docsis";</div><div><span class="" style="white-space:pre">          </span>range 172.16.165.1 172.16.165.253;</div><div><span class="" style="white-space:pre"> </span>}</div><div>log (info, concat("cmts-2-xyz (EuroDOCSIS): CM Mac = ",binary-to-ascii(16, 8, ":", option agent.remote-id), "; CPE IP = ",binary-to-ascii (10, 8, ".", leased-address)));</div><div>}</div><div><br></div><div>}</div><div><br></div><div># Modems with DOCSIS 8/4</div><div>subclass "772d4661-9dd6-5228-3342-6547a59a980b" 1:e4:48:c7:b3:c7:86;</div><div>subclass "772d4661-9dd6-5228-3342-6547a59a980b" 1:00:23:ed:21:dc:01;</div><div>subclass "772d4661-9dd6-5228-3342-6547a59a980b" 1:e4:48:c7:b3:b1:46;</div><div><br></div><div># Modems with DOCSIS 8</div><div>subclass "bf83941a-5e71-7628-e049-13413865ccbf" 1:00:23:ed:21:d5:9a;</div><div>subclass "bf83941a-5e71-7628-e049-13413865ccbf" 1:00:23:ed:21:dc:9f;</div><div>subclass "bf83941a-5e71-7628-e049-13413865ccbf" 1:00:23:ed:9b:0a:d9;</div><div>subclass "bf83941a-5e71-7628-e049-13413865ccbf" 1:00:23:ed:21:d7:99;</div><div><br></div><div><br></div><div><br></div><div>lease 192.168.192.210 {</div><div>  starts 4 2014/10/09 08:55:19;</div><div>  ends 4 2014/10/09 14:55:19;</div><div>  tstp 4 2014/10/09 14:55:19;</div><div>  cltt 4 2014/10/09 08:55:19;</div><div>  binding state active;</div><div>  next binding state free;</div><div>  billing subclass "772d4661-9dd6-5228-3342-6547a59a980b" 01:e4:48:c7:b3:c7:86;</div><div>  hardware ethernet e4:48:c7:b3:c7:86;</div><div>  uid "\001\344H\307\263\307\206";</div><div>  option agent.circuit-id 80:2:4:12;</div><div>  option agent.remote-id e4:48:c7:b3:c7:86;</div><div>  option agent.unknown-9 0:0:11:8b:6:1:4:1:2:3:0;</div><div>}</div><div><br></div><div><br></div><div>/BR,</div><div>Ronnie F</div></div>