Gateway not coming back online
-
Hi all,
I have the following setup, which all works.
https://cacoo.com/diagrams/pcvGRJOtuSVhmBbY/view
I can browse the internet etc no problems.
My connection is very flaky (soon to add the additional modems) and is often reconnecting.
Pfsense correctly shows the gatway as offline when the modem looses connection, but when the connection returns, I can browse the internet as before, but the gateway shows as offline.
I can get it to come back by editing the gateway and pressing save.I'm running 2.0-RELEASE (amd64) built on Tue Sep 13 17:05:32 EDT 2011.
What am I doing wrong?
cheers
Tim -
I have the same problem and didn't find a solution yet. :(
-
Same issue. The apinger is working incorrectly when one of WANs disconnected. When it is back online, it's still reporting that WAN is offline.
Temporarily resolved this problem by restarting apinger every 5 minutes by cron. -
Can you give us a clue how to do that, I have the same problem.
-
I've never been able to provide the necessary information to get this issue fix, but there is some ways to reduce the impact.
1. If you only have one wan connection
system -> routing -> edit -> enable Disable Gateway Monitoring2. Kill apinger and start apinger
Install the cron package
/bin/pkill apinger
a second later
/usr/local/sbin/apinger -c /var/etc/apinger.conf3.Part of this script can be used to only restart apinger if it's down
#!/bin/sh # ###### Modem & apinger monitor script for pfSense ######## # # # - Restart modem if connection is down # # - Restart apinger if modem connection is ok but apinger # # status says it's down # # - Kill phone states if frozen # # - Kill phone states if they use the wrong connection # # # ############################################################ << Copyright Copyright (C) 2011 Perry Mason crazypark2 (at) yahoo.dk All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1\. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2\. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Copyright monitorip='8.8.4.4' wanip='192.168.0.100' wan2ip='192.168.101.100' wan2gateway='192.168.101.1' local_voip_ip='192.168.44.100' provider_voip_ip='87.54.25.133' usbswitch='ugen0.2' attempt_file=/tmp/atempt.status off_switch_file=/tmp/offswitch.status # Write phone states to file /sbin/pfctl -s state | grep $local_voip_ip > /tmp/statetmp.status # Make sure apinger is running correctly awkrepley2=`awk '/'$monitorip'/ && /down/ {print "down"}' /tmp/apinger.status` if [ "${awkrepley2}" = "down" ]; then # Determent if connection is down or apinger has exit ping -c2 $monitorip if [ $? != 0 ]; then echo "WAN2 Connection Unavailable, $monitorip Doesn't Answer To Ping Request." | logger # Switch off modem in a sanely approach [ ! -f "$attempt_file" ] && attempt=4 || attempt=$(cat "$attempt_file") [ ! -f "$off_switch_file" ] && off_switch=3 || off_switch=$(cat "$off_switch_file") echo "If this value $attempt is bigger then this value $off_switch switch off modem" | logger attempt2=$(($attempt > $off_switch)) if [ $attempt2 = 1 ];then off_switch2=$(($off_switch * 2)) echo $off_switch2 > "$off_switch_file" echo "Restarting modem" | logger /usr/sbin/usbconfig -d $usbswitch power_off sleep 15 /usr/sbin/usbconfig -d $usbswitch power_on #sleep 9 #echo "ssssssssstart" | logger #need_pid=$(cat "/var/run/apinger.pid") #echo "pid nr $need_pid" | logger #truss -p $need_pid -o /tmp/truss\ $need_pid.out & tcpdump -ni vr0 -w /tmp/$need_pid.pcap & sleep 90 #/bin/pkill truss #/bin/pkill tcpdump #echo "eeeeeeeeend" | logger else attempt3=$(($attempt + 1)) echo $attempt3 > "$attempt_file" fi else echo "Apinger marks WAN2 down but connection is available, so restart apinger" | logger /bin/pkill apinger sleep 1 /usr/local/sbin/apinger -c /var/etc/apinger.conf [ -f "$attempt_file" ] && rm -f "$attempt_file" [ -f "$off_switch_file" ] && rm -f "$off_switch_file" echo "some files deleted" | logger sleep 30 /usr/local/sbin/pfSctl -c 'filter reload' sleep 1 /sbin/pfctl -k $local_voip_ip -k $provider_voip_ip fi else # Kill VOIP phone states if in wrong state awkrepley3=`awk '/'$wan2ip'/ && /'$provider_voip_ip'/ && /SINGLE/ {print "down"}' /tmp/statetmp.status` if [ "${awkrepley3}" = "down" ] ; then /sbin/pfctl -k $local_voip_ip -k $provider_voip_ip echo "states frozen kill them" | logger fi # If WAN2 has recoved but VOIP states still uses WAN connection then kill them awkrepley4=`awk '/'$wanip'/ && /'$provider_voip_ip'/ {print "down"}' /tmp/statetmp.status` if [ "${awkrepley4}" = "down" ] ; then # fix to redmine ticket #1508 didn't change so filter reload is still needed /usr/local/sbin/pfSctl -c 'filter reload' sleep 1 /sbin/pfctl -k $local_voip_ip -k $provider_voip_ip echo "WAN2 is running again kill voip states" | logger fi fi