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