Getting DHCP to use resolv.conf? AN ANSWER
Murray Taylor
MTaylor at bytecraft.com.au
Thu May 4 03:45:23 UTC 2006
> -----Original Message-----
> From: fbsd [mailto:fbsd at a1poweruser.com]
> Sent: Thursday, 4 May 2006 10:56 AM
> To: Murray Taylor
> Cc: freebsd-questions
> Subject: RE: Getting DHCP to use resolv.conf? AN ANSWER
>
> >
> >
> > -----Original Message-----
> > From: owner-freebsd-questions at freebsd.org
> > [mailto:owner-freebsd-questions at freebsd.org]On Behalf Of Murray
> Taylor
> > Sent: Sunday, April 30, 2006 7:56 PM
> > To: Lowell Gilbert
> > Cc: freebsd-questions at freebsd.org
> > Subject: RE: Getting DHCP to use resolv.conf? AN ANSWER
> >
> >
> > Murray.
> >
> > 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 FreeBSD
> > 6.0 system.
> > I am also using the built in dhclient that comes with the base
> > install.
> > Could you post the isc_dhclient-script so I can compare it
> to the one
> > that comes with the base install for differences that may
> cause this
> > behavior?
> > Any other help would be appreciated.
> >
> >
> > When this script runs the logger statements do not create
> any message
> > in the targeted log files.
> > IF I execute the same logger statements from the command line they
> > work as expected.
> > This is the boot time messages with mail code commented out.
> >
> > 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.
> >
> >
> > IF I execute the cat command to issue the notification
> email from the
> > command line it works fine, but when used in the script I get these
> > messages during boot process.
> >
> > "~/.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, 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.
> >
> >
> >
> >
> > #!/bin/sh
> >
> > ############# Start of refresh dhcpd dns ip script ############# #
> > This script will propagate to dhcpd the changed dns servers ip #
> > address which dhcp-client puts in resolv.conf.
> > #
> > # In dhcpd.conf replace the "option domain-name-servers" line with
> > this # # include "/etc/dhcpd.name-servers"; # # Script
> 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
> from temp #
> > and restart dhcp to reread dhcpd.conf containing 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 ip #
> > addresses until they reboot or their lease comes up for
> renewal.
> > #
> > # Each of the following lines must be one long line. IE: no wrap
> > around
> >
> ####################################################################
> >
> > # load my_domain_name_servers variable with ISP dns ip
> addresses from
> > dhcpc my_domain_name_servers=`echo $new_domain_name_servers
> | sed -e
> > 's/ /, /g'`
> >
> > # Create single line in file to be included in dhcpd.conf
> echo "option
> > domain-name-servers $my_domain_name_servers ;" >
> > /etc/dhcpd.name-servers.tmp
> >
> > # See if different from what production file contains cmp -s
> > /etc/dhcpd.name-servers.tmp /etc/dhcpd.name-servers if [ $?
> > -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 addresses
> > changed.
> > # Write message to /var/log/dhcpd.log to document event.
> > logger -p local1.warning -t dhclient Your ISP DNS IP addresses
> > changed.
> >
> > # 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 that
> > your #ISP changed the IP address of their DNS servers.
> > The new values have been #auto updated to dhcpd.conf and dhcp
> > restarted so they are now in effect.
> > #
> > #Note: All LAN machines using dhcpd will not start using
> the new ISP
> > dns #ip addresses until they reboot or their lease comes up for
> > renewal.
> > #EOF
> > fi
> > rm -f /etc/dhcpd.name-servers.tmp
> > ############### End of refresh dhcpd dns ip script
> > ###################
>
> The script I sent are operational on FBSD 4.11 with the
> enter/exit-hooks scripts that are 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
>
> 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
>
> ---------------------------------------------------------------
>
> Murry
> The only difference between us is I am running FreeBSD 6.0. &
> you 4.11.
> I had another exit-hooks script that worked fine when I was
> running all the versions in 4.x series.
> Currents tests show that even the IF statement in the script
> does not work either.
> I think this is turning into looking like a bug in the 6.0 release.
> I jumped from 4.11 to 6.0 doing a fresh install.
> Problem may have been in 5.x series also.
>
> I believe the recorder directives were added to the /etc/rc.d
> boot process as part of version 5.0 development series and
> the build in dhclient boot process was over looked so it no
> longer is getting executed at the time when all the resources
> it needs are active yet.
Hmm... seems odd - does dhclient itself work upon boot ??
Do you get an IP address?
If so then I would think that the dhclient process is functioning
ok, so maybe try and code a _really simple_ enter or exit hook process
like
#!/bin/sh
logger "enter - got it"
make it executable and run it .
This will shove the quoted text into /var/log/messages
(BTW -- an "id 10 T" check...
/etc/dhclient-enter-hooks and /etc/dhclient-exit-hooks
are -rwx-r-xr-x root:wheel arent they ??? )
Apart from all that, I'm out of ideas.
Murray Taylor
Special Projects Engineer
Bytecraft Systems
P: +61 3 8710 2555
F: +61 3 8710 2599
D: +61 3 9238 4275
E: mtaylor at bytecraft.com.au
--
"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."
Albert Einstein
--
---------------------------------------------------------------
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.
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.***
More information about the freebsd-questions
mailing list