static clients: how log hostnames and create lease entries?

Frantisek Hanzlik franta at hanzlici.cz
Sun Jan 3 03:44:51 UTC 2010


Frantisek Hanzlik wrote:
> Simon Hobson wrote:
>> Frantisek Hanzlik wrote:
>>
>>> I there some way how, for host declarations with static addresses, do:
>>>
>>> 1) log client hostname (which client sent in DHCPREQUEST or DHCPDISCOVER
>>> as option 12 ) ?
>>>
>>> 2) so that they appear in lease file ?
>>
>> I don't think so.
>>
>> However, if you converted to use reserved leases then the clients get
>> 'real' leases which go through the normal lifecycle, appear in the
>> leases file, and get DNS updates/deletes etc - the only difference from
>> a normal lease being that a reserved lease will never be re-allocated to
>> another client. I think you need version 4 for this functionality, and I
>> don't know how well it's documented. I believe you need to manually add
>> "reserved" as a keyword in an existing lease (or create a new skeleton
>> lease with this) to uset he feature - and of course, that means stopping
>> the server while you edit the leases file.
>
>
> For now I have solved (but not sure when it's optimal) point 1) with
> custom logging defined in global section as this:
>
> ----
> on commit {
> if (static){set isst = "static";} else {set isst = "dynamic";}
> log (info, concat (
> "COMMIT IP,", binary-to-ascii (10,8,".",leased-address),
> ",MAC,", suffix (concat ("0", substring(binary-to-ascii (16, 8, ":",
> hardware), 2, 17)),17),
> ",hostname,", option host-name,
> ",host-decl-name,", pick-first-value(host-decl-name, "(none)"),
> ",dhcp-client-identifier,",
> pick-first-value(binary-to-ascii(16,8,"",option dhcp-client-identifier),
> "(none)"),
> ",vendor-class-identifier,", pick-first-value(option
> vendor-class-identifier, "(none)"),
> ",agent.remote,", pick-first-value(option agent.remote-id, "(none)"),
> ",agent.circuit,", pick-first-value(option agent.circuit-id, "(none)"),
> ",leasetime,", binary-to-ascii (10,32,"",encode-int (lease-time,32)),
> ",asstype,", isst
> )
> );
> }
>
> This produces (in addition to usual) log items as:
>
> Dec 26 23:29:56 ns dhcpd: COMMIT
> IP,192.168.1.250,MAC,00:20:ed:72:fb:5f,hostname,q,host-decl-name,janusa,dhcp-client-identifier,1020ed72fb5f,vendor-class-identifier,MSFT
> 5.0,agent.remote,(none),agent.circuit,(none),leasetime,216000,asstype,static
>
>
> which is quite sufficient for me.

No, it seems as this "on commit" event do not catch dhcpd BOOTREPLY events.
They must be pulled out of "/var/log/messages" separatelly, right?

Fr. Hanzlik


> This don't need any additional requirements, but it not solve point 2).
> I have DHCP v4.0 or 4.1 servers (Fedora 10 - Fedora 12 machines), but
> manually edit lease file seems little crazy for me.
> "infinite-is-reserved On" dhcpd.conf statement isn't answer, because
> as far as I understand man page, client itself must request infinite
> lease time - which isn't realistic.
> dhcpd.leases man page in addition to "reserved" mention also "bootp"
> flag, but again without any details.
>
> Then, I still not know, when there is any elegant way how put fixed
> address hosts to dhcpd.leases file. I do not need any dyndns updates etc.
>
> Any advice?
>
> Thanks, Franta Hanzlík



More information about the dhcp-users mailing list