Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 4 May 2006 10:05:42 +1000
From:      "Murray Taylor" <MTaylor@bytecraft.com.au>
To:        <fbsd@a1poweruser.com>
Cc:        freebsd-questions <freebsd-questions@freebsd.org>
Subject:   RE: Getting DHCP to use resolv.conf? AN ANSWER
Message-ID:  <04E232FDCD9FBE43857F7066CAD3C0F117C83E@svmailmel.bytecraft.internal>

next in thread | raw e-mail | index | archive | help
> -----Original Message-----
> From: fbsd [mailto:fbsd@a1poweruser.com]=20
> Sent: Wednesday, 3 May 2006 10:36 PM
> To: Murray Taylor
> Subject: RE: Getting DHCP to use resolv.conf? AN ANSWER
>=20
>=20
> > -----Original Message-----
> > From: owner-freebsd-questions@freebsd.org
> > [mailto:owner-freebsd-questions@freebsd.org] On Behalf Of Lowell=20
> > Gilbert
> > Sent: Friday, 28 April 2006 11:09 PM
> > To: fbsd@a1poweruser.com
> > Cc: freebsd-questions@freebsd.org
> > Subject: Re: Getting DHCP to use resolv.conf?
> >
> > "fbsd" <fbsd@a1poweruser.com> writes:
> >
> > > Does anyone have a script that does this, that they can share?
> >
> > It will be pretty similar to the script I posted recently=20
> for updating=20
> > your local named's forwarders list automatically.
> > [Which is another approach to the same problem, and will generally=20
> > perform better.]
> >
> > >
> > > -----Original Message-----
> > > From: owner-freebsd-questions@freebsd.org
> > > [mailto:owner-freebsd-questions@freebsd.org]On Behalf Of Bill
> Moran
> > > Sent: Wednesday, April 26, 2006 5:06 PM
> > > To: Telting
> > > Cc: freebsd-questions@freebsd.org
> > > Subject: Re: Getting DHCP to use resolv.conf?
> > >
> > >
> > > On Wed, 26 Apr 2006 13:56:57 -0700
> > > Telting <telting@comcast.net> wrote:
> > >
> > > > I would like to know how I can propagate the dns servers which
> the
> > > dhcp
> > > > client puts in resolv.conf to dhcpd.  I only see how I can
> only
> > > > explicitly list a domain server with "option
> domain-name-servers".
> > > How
> > > > do I propogate non static dns servers?
> > >
> > > Write a script to updated the dhcpd.conf file when resolv.conf=20
> > > changes.  dhclient allows you to create hooks that
> > automagically run a
> > > script of your choosing when a new lease is obtained.
> > >
> > > Or you could search the list archives for when this exact
> > question was
> > > asked a few weeks ago.
> > >
> > > --
> > > Bill Moran
> > > Collaborative Fusion Inc.
> >
> >
> >
> >man dhclient-script
> >
> >and my enter and exit scripts below from my home boxen
> >
> >
> >NB I use ddclient from ports to update dns stuff at dyndns.org and
> the
> >example.com should be replaced with your domain name in the
> enter-hooks
> >script.
> >
> >These are not totally automatic in what they do, as I prefer to
> 'see and
> >know' certain changes from my ISP so that is the reason for the
> email
> >setup....
> >
> >Murray Taylor
> >
>=20
>=20
> -----Original Message-----
> From: owner-freebsd-questions@freebsd.org
> [mailto:owner-freebsd-questions@freebsd.org]On Behalf Of Murray Taylor
> Sent: Sunday, April 30, 2006 7:56 PM
> To: Lowell Gilbert
> Cc: freebsd-questions@freebsd.org
> Subject: RE: Getting DHCP to use resolv.conf? AN ANSWER
>=20
>=20
> Murray.
>=20
> Using your scripts as a example I coded the following script.
> I can not get the notification logger and email to function.
> I am running postfix launched by the sendmail wrappers on a=20
> FreeBSD 6.0 system.
> I am also using the built in dhclient that comes with the=20
> base install.
> Could you post the isc_dhclient-script so I can compare it to=20
> the one that comes with the base install for differences that=20
> may cause this behavior?
> Any other help would be appreciated.
>=20
>=20
> When this script runs the logger statements do not create any=20
> message in the targeted log files.
> IF I execute the same logger statements from the command line=20
> they work as expected.
> This is the boot time messages with mail code commented out.
>=20
> dc0: link state changed to DOWN
> dc0: no link ....dc0: link state changed to UP  got link
> dc0: link state changed to DOWN
> DHCPREQUEST on dc0 to 255.255.255.255 port 67
> dc0: link state changed to UP
> DHCPACK from 10.0.10.2
> dc0: link state changed to DOWN
> bound to 10.0.10.4 -- renewal in 43200 seconds.
>=20
>=20
> IF I execute the cat command to issue the notification email=20
> from the command line it works fine, but when used in the=20
> script I get these messages during boot process.
>=20
> "~/.mailrc": No match.
> DHCPREQUEST on dc0 to 255.255.255.255 port 67
> /libexec/ld-elf.so.1: Shared object "libpcre.so.0" not found,=20
> required by "send-mail"
> dc0: link state changed to UP
> DHCPREQUEST on dc0 to 255.255.255.255 port 67 DHCPACK from 10.0.10.2
> dc0: link state changed to DOWN
> bound to 10.0.10.4 -- renewal in 43200 seconds.
>=20
>=20
>=20
>=20
> #!/bin/sh
>=20
> #############  Start of refresh dhcpd dns ip script=20
> ############# # This script will propagate to dhcpd the=20
> changed dns servers ip # address which dhcp-client puts in=20
> resolv.conf.
> #
> # In dhcpd.conf replace the "option domain-name-servers" line=20
> with this # #  include "/etc/dhcpd.name-servers"; # # Script=20
> uses the dhcpc variables to build temp line in dhcpd format.
> # Then compare temp content to production content.
> # If different replace production content with new content=20
> from temp # and restart dhcp to reread dhcpd.conf containing=20
> new ISP dns ip addresses.
> #
> # logging event and sending email to user root is optional.
> #
> # Note: All LAN machines using dhcpd will not get new ISP dns=20
> ip # addresses until they reboot or their lease comes up for renewal.
> #
> # Each of the following lines must be one long line. IE: no=20
> wrap around=20
> ####################################################################
>=20
> # load my_domain_name_servers variable with ISP dns ip=20
> addresses from dhcpc my_domain_name_servers=3D`echo=20
> $new_domain_name_servers | sed -e 's/ /, /g'`
>=20
> # Create single line in file to be included in dhcpd.conf=20
> echo "option domain-name-servers $my_domain_name_servers ;" >=20
> /etc/dhcpd.name-servers.tmp
>=20
> # See if different from what production file contains cmp -s=20
> /etc/dhcpd.name-servers.tmp /etc/dhcpd.name-servers if [ $?=20
> -gt 0 ]; then
>   # move the new file into place
>   mv /etc/dhcpd.name-servers.tmp /etc/dhcpd.name-servers
>   # restart dhcp using whatever is appropriate for your platform
>   #service dhcpd restart
>   #/usr/local/etc/rc.d/isc-dhcpd.sh restart -q
>   # Write message to /var/log/dhcpc.log to document event.
>   logger -p user.warning -t dhclient Your ISP DNS IP=20
> addresses changed.
>   # Write message to /var/log/dhcpd.log to document event.
>   logger -p local1.warning -t dhclient Your ISP DNS IP=20
> addresses changed.
>=20
>   # Send notification email to root user. This can wrap to next line.
> #  cat << EOF | mail -s "dhcp client changed ISP DNS IP addresses"
> root
> #The dhclient-exit-hook script was invoked and has determined=20
> that your #ISP changed the IP address of their DNS servers.=20
> The new values have been #auto updated to dhcpd.conf and dhcp=20
> restarted so they are now in effect.
> #
> #Note: All LAN machines using dhcpd will not start using the=20
> new ISP dns #ip addresses until they reboot or their lease=20
> comes up for renewal.
> #EOF
> fi
> rm -f /etc/dhcpd.name-servers.tmp
> ###############  End of refresh dhcpd dns ip script=20
> ###################

The script I sent are operational on FBSD 4.11
with the enter/exit-hooks scripts that are=20
part of the base install.
NB Dont forget I run the ipf firewall rewrite rules script manually as
root
when my IP number changes, but the DHCP -> resolv.conf is automatic
via exit-hooks
=20
The scripts are always called by dhclient, what I put in them
is what I attached.

And I am also using Postfix ... As far as I remenber pcre is only
needed by Postfix if you use pcre:<check-file> regular expression
type files in main.cf. If you use regexp:<check-file> then pcre is not
used.


Murray Taylor

Special Projects Engineer
Bytecraft Systems

P: +61 3 8710 2555
F: +61 3 8710 2599
D: +61 3 9238 4275
E: mtaylor@bytecraft.com.au=20

--
"Any intelligent fool can make things bigger and more complex... It
takes a
touch of genius - and a lot of courage to move in the opposite
direction."
=20 Albert Einstein=20
--=20
---------------------------------------------------------------
The information transmitted in this e-mail is for the exclusive
use of the intended addressee and may contain confidential
and/or privileged material. Any review, re-transmission,
dissemination or other use of it, or the taking of any action
in reliance upon this information by persons and/or entities
other than the intended recipient is prohibited. If you
received this in error, please inform the sender and/or
addressee immediately and delete the material.=20

E-mails may not be secure, may contain computer viruses and
may be corrupted in transmission. Please carefully check this
e-mail (and any attachment) accordingly. No warranties are
given and no liability is accepted for any loss or damage
caused by such matters.
---------------------------------------------------------------

***This Email has been scanned for Viruses by MailMarshal.***



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?04E232FDCD9FBE43857F7066CAD3C0F117C83E>