ddns using client's hostname
Glenn Satchell
glenn.satchell at uniq.com.au
Sun May 16 07:09:50 UTC 2010
On 05/16/10 16:03, dhcp wrote:
> } -----Original Message-----
> } From: dhcp-users-bounces+dhcp=watkins-home.com at lists.isc.org [mailto:dhcp-
> } users-bounces+dhcp=watkins-home.com at lists.isc.org] On Behalf Of Glenn
> } Satchell
> } Sent: Sunday, May 16, 2010 12:28 AM
> } To: Users of ISC DHCP
> } Subject: Re: ddns using client's hostname
> }
> } On 05/16/10 09:20, dhcp wrote:
> }> Hi,
> }>
> }> I have dhcpd working with ddns to my bind9 server. However, I want
> }> usable hostnames and some system don't send a hostname. I want is to use
> }> the clients hostname if one exist (from the client) or make one up if
> }> none exists. I just can't figure out how to do this.
> }>
> }> I can make one up using this:
> }>
> }> ddns-hostname = concat("dhcp-", binary-to-ascii(10, 8, "-",
> }> leased-address));
> }>
> }> But as I said, if the client supplies a hostname I want to use that.
> }>
> }> I know the client's hostname is in the DHCP DHCPDISCOVER message, here
> }> is an example where the hostname is H36372437:
> }>
> }> May 15 19:18:16 linux dhcpd: DHCPDISCOVER from 00:12:f0:ec:e7:c4 via
> } eth0
> }>
> }> May 15 19:18:17 linux dhcpd: DHCPOFFER on 192.168.0.203 to
> }> 00:12:f0:ec:e7:c4 (H36372437) via eth0
> }>
> }> May 15 19:18:17 linux dhcpd: Added new forward map from
> }> dhcp-192-168-0-203.watkins-home.com to 192.168.0.203
> }>
> }> May 15 19:18:17 linux dhcpd: added reverse map from
> }> 203.0.168.192.in-addr.arpa. to dhcp-192-168-0-203.watkins-home.com
> }>
> }> May 15 19:18:17 linux dhcpd: DHCPREQUEST for 192.168.0.203 (192.168.0.2)
> }> from 00:12:f0:ec:e7:c4 (H36372437) via eth0
> }>
> }> May 15 19:18:17 linux dhcpd: DHCPACK on 192.168.0.203 to
> }> 00:12:f0:ec:e7:c4 (H36372437) via eth0
> }>
> }> Thanks for any help.
> }>
> }> Guy
> }
> } You could try pick-first-value(), described in the dhcp-eval man page.
> } option fqdn.hostname and option hostname are described in dhcp-options
> } man page. The dhcpd.conf man page describes the algorithm used by the
> } interim DNS update scheme, which uses options fqdn.hostname and hostname.
> }
> } Perhaps something like this:
> }
> } ddns-hostname = pick-first-value(
> } option fqdn.hostname,
> } option hostname,
> } concat("dhcp-", binary-to-ascii(10, 8, "-", leased-address))
> } );
> }
> } --
> } regards,
> } -glenn
> } --
> } Glenn Satchell | Miss 9: What do you
> } Uniq Advances Pty Ltd, Sydney Australia | do at work Dad?
> } mailto:glenn.satchell at uniq.com.au | Miss 6: He just
> } http://www.uniq.com.au tel:0409-458-580 | types random stuff.
>
> Thanks Glenn,
> I did find a solution and was about to answer my own email when I
> saw your solution. I came up with this:
>
> if exists host-name
> {
> ddns-hostname = lcase (option host-name);
> }
> else
> {
> ddns-hostname = concat("dhcp-", binary-to-ascii(10, 8, "-",
> leased-address));
> }
>
> I tried to use fqdn.hostname and got errors. Not sure why. I think I will
> use your solution and use pick-first-value and try fqdn.hostname again. The
> only thing you missed was lcase. :) I hate upper case hostnames for some
> reason.
>
> Thanks,
> Guy
>
Oh well, if fqdn.hostname doesn't work for some reason you can leave
that line out.
There was no previous mention of lcase() but I was trying to keep the
example as simple as possible. FWIW I prefer all lower case hostnames too :)
--
regards,
-glenn
More information about the dhcp-users
mailing list