> -----Original Message----- > From: fbsd [mailto:[EMAIL PROTECTED] > 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: [EMAIL PROTECTED] > > [mailto:[EMAIL PROTECTED] 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 > > > > > > 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: [EMAIL PROTECTED] -- "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.*** _______________________________________________ freebsd-questions@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-questions To unsubscribe, send any mail to "[EMAIL PROTECTED]"