From owner-freebsd-questions@FreeBSD.ORG Thu May 4 03:45:23 2006 Return-Path: X-Original-To: freebsd-questions@freebsd.org Delivered-To: freebsd-questions@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id E763516A404 for ; Thu, 4 May 2006 03:45:22 +0000 (UTC) (envelope-from MTaylor@bytecraft.com.au) Received: from wolf.bytecraft.au.com (wolf.bytecraft.au.com [203.39.118.1]) by mx1.FreeBSD.org (Postfix) with ESMTP id 6C28E43D48 for ; Thu, 4 May 2006 03:45:21 +0000 (GMT) (envelope-from MTaylor@bytecraft.com.au) Received: from localhost (localhost [127.0.0.1]) by wolf.bytecraft.au.com (8.12.11/8.12.11) with ESMTP id k443illM006928; Thu, 4 May 2006 13:44:47 +1000 (EST) (envelope-from MTaylor@bytecraft.com.au) Received: from wolf.bytecraft.au.com ([127.0.0.1]) by localhost (wolf.bytecraft.au.com [127.0.0.1]) (amavisd-new, port 10024) with LMTP id 06351-04; Thu, 4 May 2006 03:44:46 +0000 (GMT) Received: from svmarshal.bytecraft.au.com ([10.0.0.4]) by wolf.bytecraft.au.com (8.12.11/8.12.11) with ESMTP id k443igq2006923; Thu, 4 May 2006 13:44:42 +1000 (EST) (envelope-from MTaylor@bytecraft.com.au) Received: from svmailmel.bytecraft.internal (Not Verified[10.0.0.24]) by svmarshal.bytecraft.au.com with MailMarshal (v5, 0, 3, 78) id ; Thu, 04 May 2006 13:44:42 +1000 Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable X-MimeOLE: Produced By Microsoft Exchange V6.5.7226.0 Date: Thu, 4 May 2006 13:44:41 +1000 Message-ID: <04E232FDCD9FBE43857F7066CAD3C0F117C856@svmailmel.bytecraft.internal> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: Getting DHCP to use resolv.conf? AN ANSWER Thread-Index: AcZvFYGk3yewxc0gTCaJCMPmgTAHXgAFmR2w From: "Murray Taylor" To: Cc: freebsd-questions Subject: RE: Getting DHCP to use resolv.conf? AN ANSWER X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 04 May 2006 03:45:23 -0000 > -----Original Message----- > From: fbsd [mailto:fbsd@a1poweruser.com]=20 > Sent: Thursday, 4 May 2006 10:56 AM > To: Murray Taylor > Cc: freebsd-questions > Subject: RE: Getting DHCP to use resolv.conf? AN ANSWER >=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 > > > > > > 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=20 > > 6.0 system. > > I am also using the built in dhclient that comes with the base=20 > > install. > > Could you post the isc_dhclient-script so I can compare it=20 > to the one=20 > > that comes with the base install for differences that may=20 > cause this=20 > > behavior? > > Any other help would be appreciated. > > > > > > When this script runs the logger statements do not create=20 > any message=20 > > in the targeted log files. > > IF I execute the same logger statements from the command line they=20 > > 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=20 > email from the=20 > > command line it works fine, but when used in the script I get these=20 > > 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=20 > found, required=20 > > 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 ############# #=20 > > This script will propagate to dhcpd the changed dns servers ip #=20 > > address which dhcp-client puts in resolv.conf. > > # > > # In dhcpd.conf replace the "option domain-name-servers" line with=20 > > this # # include "/etc/dhcpd.name-servers"; # # Script=20 > uses the dhcpc=20 > > 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 #=20 > > and restart dhcp to reread dhcpd.conf containing new ISP dns ip=20 > > addresses. > > # > > # logging event and sending email to user root is optional. > > # > > # Note: All LAN machines using dhcpd will not get new ISP dns ip #=20 > > addresses until they reboot or their lease comes up for > renewal. > > # > > # Each of the following lines must be one long line. IE: no wrap=20 > > around > > > #################################################################### > > > > # load my_domain_name_servers variable with ISP dns ip=20 > addresses from=20 > > dhcpc my_domain_name_servers=3D`echo $new_domain_name_servers=20 > | sed -e=20 > > 's/ /, /g'` > > > > # Create single line in file to be included in dhcpd.conf=20 > echo "option=20 > > domain-name-servers $my_domain_name_servers ;" >=20 > > /etc/dhcpd.name-servers.tmp > > > > # See if different from what production file contains cmp -s=20 > > /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=20 > > changed. > > # Write message to /var/log/dhcpd.log to document event. > > logger -p local1.warning -t dhclient Your ISP DNS IP addresses=20 > > 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=20 > > your #ISP changed the IP address of their DNS servers. > > 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=20 > the new ISP=20 > > dns #ip addresses until they reboot or their lease comes up for=20 > > renewal. > > #EOF > > fi > > rm -f /etc/dhcpd.name-servers.tmp > > ############### End of refresh dhcpd dns ip script=20 > > ################### >=20 > The script I sent are operational on FBSD 4.11 with the=20 > enter/exit-hooks scripts that are part of the base install. > NB Dont forget I run the ipf firewall rewrite rules script=20 > manually as root when my IP number changes, but the DHCP ->=20 > resolv.conf is automatic via exit-hooks >=20 > The scripts are always called by dhclient, what I put in them=20 > is what I attached. >=20 > And I am also using Postfix ... As far as I remenber pcre is=20 > only needed by Postfix if you use pcre: regular=20 > expression type files in main.cf. If you use=20 > regexp: then pcre is not used. >=20 >=20 > Murray Taylor >=20 > --------------------------------------------------------------- >=20 > Murry > The only difference between us is I am running FreeBSD 6.0. &=20 > you 4.11. > I had another exit-hooks script that worked fine when I was=20 > running all the versions in 4.x series. > Currents tests show that even the IF statement in the script=20 > 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. >=20 > I believe the recorder directives were added to the /etc/rc.d=20 > boot process as part of version 5.0 development series and=20 > the build in dhclient boot process was over looked so it no=20 > longer is getting executed at the time when all the resources=20 > it needs are active yet. Hmm... seems odd - does dhclient itself work upon boot ?? Do you get an IP address?=20 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=20 #!/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...=20 /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@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.***