Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    Auto DHCP Renew not working on WAN (How to fix it)

    Scheduled Pinned Locked Moved General pfSense Questions
    1 Posts 1 Posters 8.1k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • D
      dice81
      last edited by

      This is an update to the script that can be found here:
      http://forum.pfsense.org/index.php/topic,17243.0.html

      For those of you who are nix handicapped like me, installing and activating this script is easy to do via the web interface.
      Go to Diagnostics > Edit file
      Cut & paste the code below, editing the user variables to match your settings.
      Save the file as /usr/local/bin/pingtest.sh (or path/name of your choosing)
      Go to Diagnostics > Command
      Execute the command "chmod +x /usr/local/bin/pingtest.sh" (makes the file executable)
      Go to System > Packages and install the Cron package
      Go to Services > Cron
      Install a new cron with settings "
      /5 * * * * root /usr/local/bin/pingtest.sh" (runs test every 5 minutes)

      If you want to verify the test is running, uncomment (remove the "#") in front the "echo" commands on lines 33 & 37.  Then, use Diagnostics > Edit file to view the contents of /root/pingtest.log.  There should be a log entry every 5 minutes.  Once you're sure it's running, be sure to add the comments back so you don't fill your hard drive with this script's status message.

      Comcast does not like renewing my IP Address on my WAN port so I used the script found here but it would only reboot the firewall it would never just renew the IP Address.

      So I added 2 lines to the Original script
      I found that the dhcp client was not turned back on when you did the down / up with ifconfig. So here it is, figured it might help someone out there  ;)

      
      #!/bin/sh
      
      #=====================================================================
      # pingtest.sh, v1.0.2
      # Created 2009 by Bennett Lee
      # Released to public domain
      # 
      #
      # (1) Attempts to ping several hosts to test connectivity.  After
      #     first successful ping, script exits.
      # (2) If all pings fail, resets interface and retries all pings.
      # (3) If all pings fail again after reset, then reboots pfSense.
      #
      # History
      # 1.0.2   Added turn dhclient on for the interface. (Dice81)
      # 1.0.1   Added delay to ensure interface resets (thx ktims).
      # 1.0.0   Initial release.
      #=====================================================================
      
      #=====================================================================
      # USER SETTINGS
      #
      # Set multiple ping targets separated by space.  Include numeric IPs
      # (e.g., remote office, ISP gateway, etc.) for DNS issues which
      # reboot will not correct.
      ALLDEST="google.com yahoo.com 24.93.40.36 24.93.40.37"
      # Interface to reset, usually your WAN
      BOUNCE=rl0
      # Log file
      LOGFILE=/root/pingtest.log
      #=====================================================================
      
      COUNT=1
      while [ $COUNT -le 2 ]
      do
      
      	for DEST in $ALLDEST
      	do
      		#echo `date +%Y%m%d.%H%M%S` "Pinging $DEST" >> $LOGFILE
      		ping -c1 $DEST >/dev/null 2>/dev/null
      		if [ $? -eq 0 ]
      		then
      			#echo `date +%Y%m%d.%H%M%S` "Ping $DEST OK." >> $LOGFILE
      			exit 0
      		fi
      	done
      
      	if [ $COUNT -le 1 ]
      	then
      		echo `date +%Y%m%d.%H%M%S` "All pings failed. Resetting interface $BOUNCE." >> $LOGFILE
      		/sbin/ifconfig $BOUNCE down
      		# Give interface time to reset before bringing back up
      		sleep 10
      		/sbin/ifconfig $BOUNCE up
      		# Give WAN time to establish connection
      		sleep 20
      		dhclient $BOUNCE
      		sleep 20
      	else
      		echo `date +%Y%m%d.%H%M%S` "All pings failed twice. Rebooting..." >> $LOGFILE
      		/sbin/shutdown -r now >> $LOGFILE
      		exit 1
      	fi
      
      	COUNT=`expr $COUNT + 1`
      done
      
      
      1 Reply Last reply Reply Quote 0
      • First post
        Last post
      Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.