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

    PPPoE reconenction fix - mpd fix ($100)

    Scheduled Pinned Locked Moved Expired/Withdrawn Bounties
    243 Posts 24 Posters 195.0k 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.
    • w0wW
      w0w
      last edited by

      My friend suggested me to modify his old SQL check script, so it would be

      ppp-linkdown

      
      #!/bin/sh
      if [ -f /tmp/$1up ] && [ -f /conf/$1.log ]; then
              seconds=$((`date -j +%s` - `/usr/bin/stat -f %m /tmp/$1up`))
              /usr/local/sbin/ppp-log-uptime.sh $seconds $1 &
      fi
      if [ "$3" != "" ]; then
      	echo "Removing states from $3" | logger -t ppp-linkdown
      	/sbin/pfctl -k 0.0.0.0/0 -k $3/32
      	/sbin/pfctl -k $3/32
      	pfctl -K $3/32
      fi
      if [ "$4" != "" ]; then
      	echo "Removing states to $4" | logger -t ppp-linkdown
      	/sbin/pfctl -b 0.0.0.0/32 -b $4/32
      
      	if [ -f "/tmp/${interface}_defaultgw" ]; then
      		route delete default $4
      	fi
      
      fi
      # delete the node just in case mpd cannot do that
      /usr/sbin/ngctl shutdown $1:
      if [ -f "/var/etc/nameserver_$1" ]; then
      	# Remove old entries
      	for nameserver in `cat /var/etc/nameserver_$1`; do
      		/sbin/route delete $nameserver >/dev/null 2>&1
      	done
      	/bin/rm -f /var/etc/nameserver_$1
      fi
      # Do not remove gateway used during filter reload.
      /bin/rm -f /tmp/$1_router
      /bin/rm -f /tmp/$1up
      /bin/rm -f /tmp/$1_ip
      /usr/local/sbin/pfSctl -c 'service reload dns'
      ifconfig em0 down
      ifconfig em0 up
      
      #initiate reboot if PPPoE reconnection fails.
      
      PID=`ps auxww | grep shutdown | grep -v grep | awk '{ print $2 }'`
      if  ps auxww | grep -e shutdown | grep -v grep > /dev/null ; then
      	echo "shutdown running on PID $PID"
      	else
      	echo "starting shutdown/reboot of pfsense"
      	shutdown -r +10
      fi
      
      

      Tested OK!

      ppp-linkup

      #!/bin/sh
      
      # let the configuration system know that the ip has changed.
      /bin/echo $4 > /tmp/$1_router
      /bin/echo $3 > /tmp/$1_ip
      /usr/bin/touch /tmp/$1up
      
      ALLOWOVERRIDE=`/usr/bin/grep dnsallowoverride /conf/config.xml | /usr/bin/wc -l`
      if [ $ALLOWOVERRIDE -gt 0 ]; then
      	# write nameservers to file
      	if [ $6 = "dns1" ]; then
      		echo $7 > /var/etc/nameserver_$1
      		/sbin/route change $7 $4
      	fi
      
      	if [ $8 = "dns2" ]; then
      		echo $9 >> /var/etc/nameserver_$1
      		/sbin/route change $9 $4
      	fi
      	/usr/local/sbin/pfSctl -c 'service reload dns'
      	/bin/sleep 1
      fi
      
      /usr/local/sbin/pfSctl -c "interface newip $1"
      pkill shutdown
      exit 0
      
      
      1 Reply Last reply Reply Quote 0
      • w0wW
        w0w
        last edited by

        Please use 'shutdown -r +5' instead of 'shutdown -r +10'
        I've found that it is impossible to kill the shutdown process if using +10 (10 minutes).
        When tested I've used less then 5 minutes delay.

        
        [2.1-DEVELOPMENT][root@pfhacom.xxxnetxxx]/root(326):                                                            
        *** System shutdown message from root@pfhacom.xxxnetxxx ***
        System going down in 10 minutes
        
        [2.1-DEVELOPMENT][root@pfhacom.xxxnetxxx]/root(327): ps auxww | grep shutdown | grep -v grep  
         root    2293  0.0  0.1  3316  1124  ??  I
        ``` ~~after "pkill shutdown"
        
        

        ps auxww | grep shutdown | grep -v grep
        root   25185  0.0  0.1  3316  1124  ??  S

        
        *** System shutdown message from root@pfhacom.xxxnetxxx ***
        System going down in 5 minutes
        
        I can kill the process by pkill shutdown. WTF? What am I doing wrong?
        
        If I start shutdown -r +10 or any number in console, I can always kill it.~~~~
        1 Reply Last reply Reply Quote 0
        • X
          xbipin
          last edited by

          i havent tried this as yet, will do so soon

          1 Reply Last reply Reply Quote 0
          • T
            TimAtHome
            last edited by

            After suffering from very similar logs and lots of googling I found a cure (well a cause) for me anyway.

            If the router came up after pfSense (if it was powered off then on again), pfSense would not connect to it no matter what unless you power cycled it again or yanked the cable. What I found was happening was when the link first came up pfSense would grab the ip address from the router using DHCP and start sending its pppoe requests to it (producing the same logs about connecting posted earlier), it would never log in. Pulling the cable, waiting a bit then plugging it back in would then log in straight away.

            What was happening was the first ip address it obtained from the router was a local 'admin' address (in my case 192.168.2.10), the router would then connect to whatever destination and sync, it would then change it's ip address to the correct WAN IP (In my case 217.155..), but as the link status stayed as 'up' pfSense would not grab the new ip address and keep sending it's pppoe junk to the original 192.168.2.10 address. No amount of ifconfig up/down would shift it.

            The solution to my problem was just to disable the DHCP server in the router as it isn't required anyway (admin access can be got using a static ip). Now I can power on/off router or pull/reconnect cable and pfSense picks up the status and the correct ip address straight away with no rebooting or anything.

            I hope this is of use to someone as googling this issue picks this post as the top one.

            1 Reply Last reply Reply Quote 0
            • w0wW
              w0w
              last edited by

              I'd just like to say that I have no problem with reconnection on the latest 2.1 versions based on freebsd 8.3 and new MPD version

              1 Reply Last reply Reply Quote 0
              • X
                xbipin
                last edited by

                i also got sick and tired of this issue but currently im using w0w's hack but the strange thing is after i implemented it, the rotuer is supposed to restart in a specific time if pppoe reconnection fails and i have set this to 3 mins so almost about 2:50 mins pppoe doesnt reconnect and when its about to reboot, it just reconencts magically.
                i tried removing that hack but then it would reconnect in hours also.

                i hope some of the developers read this and posted some code change such that u can use DHCP as well as pppoe reconnects also if dhcp was the main issue

                1 Reply Last reply Reply Quote 0
                • w0wW
                  w0w
                  last edited by

                  xbipin
                  looks like
                  "ifconfig em0 down
                  ifconfig em0 up"
                  works but delayed.

                  Actually I've written another one startup script

                  
                  #!/bin/sh
                  IP=`/usr/bin/netstat -rn | /usr/bin/grep 'default' | /usr/bin/awk '{ print $2}'`
                  /sbin/ping -c 2 $IP > /dev/null
                  if [ $? != 0 ] ; then
                  /sbin/ifconfig em0 down
                  /sbin/ifconfig em0 up
                      if  /bin/ps auxww | /usr/bin/grep -e shutdown | /usr/bin/grep -v grep > /dev/null ; then
                  	echo "shutdown running"
                  	else
                  	echo "starting shutdown/reboot of pfsense"
                  	/sbin/shutdown -r +5
                  fi
                      fi
                  
                  

                  I've named it "ppp_force_linkup.sh" in the /usr/bin/ (Don't forget to change access to the file via WinSCP - properties - Octal: 0755 aka rwxr-xr-x  )

                  Next I've downloaded config and edited:

                  /usr/local/sbin/expiretable -v -t 3600 sshlockout
                  
                  -------------------------------------inserted code begin-----------------------------------------------------------
                  		 <minute>*/30</minute>
                  			<hour>*</hour>
                  			<mday>*</mday>
                  			<month>*</month>
                  			<wday>*</wday>
                  			<who>root</who>
                  			<command></command>/usr/bin/nice -n20 /usr/bin/ppp_force_linkup.sh 
                  -------------------------------------inserted code end-----------------------------------------------------------
                  		 <minute>1</minute>
                  			<hour>1</hour>
                  			<mday>*</mday>
                  			<month>*</month>
                  			<wday>*</wday>
                  			<who>root</who>
                  			<command></command>/usr/bin/nice -n20 /etc/rc.dyndns.update 
                  		 <minute>*/60</minute>
                  			<hour>*</hour>
                  			<mday>*</mday>
                  			<month>*</month>
                  			<wday>*</wday> 
                  

                  Every 30 min script looks for current getaway IP, pings it and if no success then it restarts the  link and reboot is sheduled. if you are using previously modded ppp-linkup and ppp connection is established in that time, then sheduled reboot is canceled as it should be.
                  All those mods are needed only for the 2.0x branch, I think, this script was made for those situations, when PC is rebooted but no PPPoE link established for some reason or mpd runned into "stuck" mode or somethin else…
                  Even having this script enabled, I've got situation when getaway ping was OK but pinging any internet server
                  was failed (ISP problem, actually)

                  So may be it's better to ping some www.google.com instead of pinging ISP getaway
                  something like that:
                  delete
                  IP=/usr/bin/netstat -rn | /usr/bin/grep 'default' | /usr/bin/awk '{ print $2}'
                  /sbin/ping -c 2 $IP > /dev/null

                  and
                  write only
                  /sbin/ping -c 2 www.google.com > /dev/null

                  But if it is ISP problem, then reboot does not help, so I've preffered to ping ISP getaway

                  xbipin
                  Have you tried new 2.1 builds already? My reconnection bug is gone completely.
                  [2.1-BETA0][root@pfhacom.xxxnetxxx]/root(1): mpd5 -v
                  Version 5.6 (root@base-8_3-i386.builders.pfsense.org 21:22  6-Aug-2012)
                  works great for me.
                  I am not sure about other things as it is BETA0 :)
                  At least you can try, don't forget to backup your config or do full backup.
                  Before update don't forget to select the update source in "System: Firmware: Updater Settings"
                  http://snapshots.pfsense.org/FreeBSD_RELENG_8_3/i386/pfSense_HEAD/.updaters
                  and check also
                  "Allow auto-update firmware images with a missing or invalid digital signature to be used." and
                  "After updating, sync with the following repository/branch before reboot." (branch: master and repository url: git://github.com/bsdperimeter/pfsense.git )

                  Good luck :)

                  1 Reply Last reply Reply Quote 0
                  • X
                    xbipin
                    last edited by

                    thanks w0w, actually the first script works which u gave earlier so ill stick to that for now, i was planning to move to 2.1 but problem is its too early for that as it seems there r still many bugs in the core system functionality so ill wait a bit its its more stable

                    things i need to work properly r
                    upnp
                    dhcp
                    static arp
                    traffic shaper
                    limiter
                    pppoe
                    openvpn client
                    accesspoint
                    aliases
                    NAT
                    firewall rules

                    1 Reply Last reply Reply Quote 0
                    • w0wW
                      w0w
                      last edited by

                      I hope stable release coming mid-October.
                      Currently
                      upnp - OK for me
                      dhcp - OK on LAN
                      static arp - OK
                      traffic shaper - fixed some time ago, OK
                      limiter - may be :)
                      pppoe - OK
                      openvpn client - don't know
                      accesspoint - don't know
                      aliases - OK
                      NAT - OK (IPV4)
                      firewall rules -  OK

                      1 Reply Last reply Reply Quote 0
                      • X
                        xbipin
                        last edited by

                        im on 2.1 and the problem still persists, can u provide some patch like u did for 2.0.1

                        1 Reply Last reply Reply Quote 0
                        • w0wW
                          w0w
                          last edited by

                          That's strange, xbipin, that the problem still persists.. try to add only
                          ifconfig em0 down
                          ifconfig em0 up
                          those to the ppp-linkdown and look what is happening
                          or just do the full modification similar to old version

                          1 Reply Last reply Reply Quote 0
                          • X
                            xbipin
                            last edited by

                            ill try the old patch u gave on this and let u know.

                            i dont think the mpd etc has changed from 2.0.1 to 2.1 thats y the problem persists

                            1 Reply Last reply Reply Quote 0
                            • X
                              xbipin
                              last edited by

                              the old hack still works except some errors popup during boot saying itnerface vr1 not available or something like that but it connects eventually and even if i reset my isp modem or unplug cable etc still manages to connect within 3 mins

                              1 Reply Last reply Reply Quote 0
                              • w0wW
                                w0w
                                last edited by

                                from 2.0.x to 2.1 there is changed freebsd version from 8.1 to 8.3 and mpd is also 5.6 compiled in august.

                                1 Reply Last reply Reply Quote 0
                                • X
                                  xbipin
                                  last edited by

                                  but still doesnt solve my issue

                                  1 Reply Last reply Reply Quote 0
                                  • F
                                    flipmoo
                                    last edited by

                                    im running into the same issue here.
                                    i just switched to pfSense to get WANFailover.
                                    i have 2 WANs, 16MBit DSL and 50MBit VDSL

                                    after initioal install everything is running right. For testing i powered off the VDSL Modem, Gateway is recognized as down, WAN Failover goes to DSL connection.
                                    BUT after repowering the VDSL connection (Telekom) no automatic reconnect. Not even a manual reconnect. The Interface does not get any IP information, though the status is connected…
                                    now i just run with my slow conenction.

                                    i tryed 386 and amd64 version and also 2.0.1 and 2.1
                                    seeing that this issue exists for a long time now, i doubt that pfSense is the product of my choice. It looks very prommising, but essentials like the PPPoE connect just need to work properly!

                                    I hope that the Developers give it a fast try of fixing, so i can stay with this firewall/router distribution.

                                    thx in advance

                                    1 Reply Last reply Reply Quote 0
                                    • X
                                      xbipin
                                      last edited by

                                      actually its not a pfsense issue but some incompatibility with mpd and the pppoe server by the isp which has some security feature enabled and it seems many isp run the same hardware thats y more ppl will have the same issue sooner or later.

                                      u can try the first patch posted by wow as i use that and works as of now to fix it temporarily.

                                      i wonder how the local routers in my region reconnect fine without issues, actually all of them, only pfsense has this issue

                                      1 Reply Last reply Reply Quote 0
                                      • F
                                        flipmoo
                                        last edited by

                                        yeah… even the cheapest ones are doin it right... kinda disappointing.
                                        allright.. i gonna try that, though i am very unexperanced with bsd and coding in genaral :(

                                        thx for the quick advice!

                                        1 Reply Last reply Reply Quote 0
                                        • F
                                          flipmoo
                                          last edited by

                                          thx xbipin, the reconnect works now.
                                          but my failover is not working anymore.. do i need to reconfigure that competely?

                                          1 Reply Last reply Reply Quote 0
                                          • F
                                            flipmoo
                                            last edited by

                                            actually… i just powerdowned the VDSL modem again and it doesnt come up again...
                                            it worked the first time as i rebooted the pfSense (which didnt help before)

                                            damn...

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post
                                            Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.