How to update accel-ppp

I will give an example of updating the accel-ppp, the commands need to be executed as root user.

First, see the current version of accel-ppp:

accel-cmd -V

Make a copy of the dictionary, if you previously made your own changes to it:

cp /usr/local/share/accel-ppp/radius/dictionary /usr/local/share/accel-ppp/radius/dictionary_copy

Or we will indicate in the configuration the path to our dictionary and be sure to indicate the standard dictionary:

[radius]
dictionary=/usr/local/share/accel-ppp/radius/dictionary
dictionary=/etc/accel-ppp.dictionary

The file /etc/accel-ppp.conf after accel-ppp is usually left untouched, but just in case we make a backup copy:

cp /etc/accel-ppp.conf /etc/accel-ppp_`date +%Y-%m-%d`_backup.conf

Rename the old source directory accel-ppp (it may still come in handy):

mv /opt/accel-ppp-code /opt/accel-ppp-code_old

Download the new source code accel-ppp:

cd /opt/
git clone git://git.code.sf.net/p/accel-ppp/code accel-ppp-code

If we stop accel-ppp and use a watchdog, we comment it out or turn it off so that it does not start.

Stop accel-ppp:

telnet 127.0.0.1 2000
shutdown hard

I noticed in Ubuntu that systemd-resolved can slow down the termination of sessions, so let’s stop it:

top
systemctl stop systemd-resolved

We are waiting for the completion of the sessions.
In extreme cases, you can stop like this:

service accel-ppp stop
killall -9 accel-pppd

Unload modules:

modprobe -r ipoe
modprobe -r vlan_mon

Make sure that there are no ipoe interfaces left (when accel-ppp is turned off, even with kill, they should not be):

ip a | grep ipoe
ifconfig | grep ipoe

If accel-ppp will be installed in another directory, then delete the old files:

which accel-pppd
which accel-cmd
find / -name ipoe.ko
rm /dir/file

You can also perform the update while accel-ppp is running, and then restart everything.

Continue the installation as I described in this article – Accel-ppp installation

You can look at the date of some files to make sure that accel-ppp is installed:

ls -lah /usr/local/share/accel-ppp/radius/dictionary
ls -lah /usr/share/accel-ppp/radius/dictionary
ls -lah /usr/local/share/accel-ppp/radius/
ls -lah /usr/local/bin/accel-cmd
ls -lah /usr/local/sbin/accel-pppd
ls -lah /usr/local/lib64/accel-ppp/
ls -lah /lib/modules/`uname -r`/kernel/net/ipoe.ko
ls -lah /lib/modules/`uname -r`/kernel/net/vlan_mon.ko

After successful installation of the new version of accel-ppp, we will load the modules and return the dictionary:

mv /usr/local/share/accel-ppp/radius/dictionary_copy /usr/local/share/accel-ppp/radius/dictionary

Run accel-ppp:

modprobe ipoe
modprobe vlan_mon
sudo chmod +x /etc/init.d/accel-ppp
systemctl daemon-reload
systemctl start accel-ppp.service

Check the current version:

accel-cmd -V

Make sure the modules are compiled for the current kernel version:

uname -a
modinfo ipoe
modinfo vlan_mon

Is done.

I would like to note that new versions of acel-ppp use new versions of libraries, which, for example, are newer than those in Ubuntu 16, which can cause problems, so I recommend installing acel-ppp on new operating systems, on older systems, you can try from source (not a package).

See also my article:
How to reserve accel-ppp (balancing)

Leave a comment

Leave a Reply