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