Тестировали:
Ubuntu 18
Ubuntu 20
Code Block |
---|
language | bash |
---|
title | Обновляем пакеты: |
---|
|
apt-get update |
...
Выполняем компоновку, указывая следующие параметры.
Параметр | Описание |
---|
-DBUILD_IPOE_DRIVER=TRUE | Данная опция позволяет включить в сборку модуль ядра IPoE. Этот модуль необходим, если вы хотите использовать IPoE в режиме общего интерфейса. |
-DBUILD_VLAN_MON_DRIVER=TRUE | Включает в сборку драйвер позволяющий создавать vlan интерфейсы анализирую заголовки IP пакетов. (Доступен для соединений IPoE и PPPoE). |
-DKDIR=/usr/src/linux-headers-`uname -r` | Задает путь к директории исходного кода ядра Linux. Необходим для построения модулей ядра PPTP, IPOE, VLAN-MON (версия вашего ядра может отличаться, смотреть uname -r). |
-DCMAKE_INSTALL_PREFIX=/usr/local | Задает путь для установки accel-ppp. |
Code Block |
---|
language | bash |
---|
title | Подключаем модуль в системе: |
---|
|
cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DKDIR=/usr/src/linux-headers-`uname -r` -DRADIUS=TRUE -DSHAPER=TRUE -DLOG_PGSQL=FALSE -DLUA=TRUE -DBUILD_IPOE_DRIVER=TRUE -DBUILD_VLAN_MON_DRIVER=TRUE -DCPACK_TYPE=Ubuntu20 -DCMAKE_BUILD_TYPE=Release .. |
...
Code Block |
---|
language | bash |
---|
title | Установка драйвера: |
---|
|
cp ./drivers/ipoe/driver/ipoe.ko /lib/modules/`uname -r`/kernel/net
depmod -a
cp ./drivers/vlan_mon/driver/vlan_mon.ko /lib/modules/`uname -r`/kernel/net
depmod -a |
Настройка accel-ppp.conf :
Code Blockinfo |
---|
language | bash |
---|
title | /etc/accel-ppp.conftitle | Важно, обратите внимание : |
---|
|
Перед настройкой, убедитесь что имена интерфейсов в системе соответствуют именам интерфейсов в конфигурационном файле. Документация по переменным https://docs.accel-ppp.org/configuration/modules.html |
Code Block |
---|
language | bash |
---|
title | /etc/accel-ppp.conf |
---|
collapse | true |
---|
|
[modules]
#path=/usr/local/lib/accel-ppp
log_file
#log_tcp
#log_pgsql
pptp
pppoe
#l2tp
auth_mschap_v2
#auth_mschap_v1
#auth_chap_md5
#auth_pap
radius
#ippool
sigchld
pppd_compat
shaper
#chap-secrets
[core]
log-error=/var/log/accel-ppp/core.log
thread-count=4
[ppp]
verbose=1
min-mtu=1000
mtu=1492
mru=1492
#ccp=0
#sid-case=upper
#check-ip=0
#single-session=replace
#mppe=require
[lcp]
echo-interval=30
echo-failure=3
[pptp]
echo-interval=30
verbose=1
[pppoe]
# Интерфейсы на которых запущен pppoe сервер ( должны быть соответственно подняты интерфейсы)
interface=eth1
interface=vlan2
interface=vlan3
interface=vlan4
#ac-name=xxx
#service-name=yyy
#pado-delay=0
#pado-delay=0,100:100,200:200,-1:500
#ifname-in-sid=called-sid
#tr101=1
verbose=1
#[l2tp]
#dictionary=/usr/local/share/accel-ppp/l2tp/dictionary
#hello-interval=60
#timeout=60
#rtimeout=5
#retransmit=5
#host-name=accel-ppp
#verbose=1
[dns]
dns1=10.0.0.10
#dns2=172.16.1.1
[radius]
dictionary=/usr/local/share/accel-ppp/radius/dictionary
nas-identifier=accel-ppp
nas-ip-address=127.0.0.1
gw-ip-address=10.0.0.10
auth-server=127.0.0.1:1812,secretpass
acct-server=127.0.0.1:1813,secretpass
dae-server=127.0.0.1:3799,secretpass
verbose=1
#timeout=3
#max-try=3
#acct-timeout=120
#acct-delay-time=0
[client-ip-range]
10.0.0.0/8 # Указать диапазоны раздаваемые клиентам в (по DHCP или вручную).
# ВАЖНО: они не должны пересекатся с пулами PPPOE или PPTP сервера доступа.
#[ip-pool]
#gw-ip-address=192.168.0.1
#192.168.0.2-255
#192.168.1.1-255
#192.168.2.1-255
#192.168.3.1-255
#192.168.4.0/24
[log]
log-file=/var/log/accel-ppp/accel-ppp.log
log-emerg=/var/log/accel-ppp/emerg.log
log-fail-file=/var/log/accel-ppp/auth-fail.log
#log-debug=/dev/stdout
#log-tcp=127.0.0.1:3000
copy=1
#color=1
#per-user-dir=per_user
#per-session-dir=per_session
#per-session=1
level=3
#log-tcp=127.0.0.1:3000
#[log-pgsql]
#conninfo=user=log
#log-table=log
[pppd-compat]
#ip-pre-up=/etc/ppp/ip-pre-up
#ip-up=/etc/ppp/ip-up
#ip-down=/etc/ppp/ip-down
#ip-change=/etc/ppp/ip-change
radattr-prefix=/var/run/radattr
verbose=1
#[chap-secrets]
#gw-ip-address=192.168.100.1
#chap-secrets=/etc/ppp/chap-secrets
[[shaper] ]
#attr=Filter-Id
#down-burst-factor=0.1
#up-burst-factor=1.0
#latency=50
attr-down=PPPD-Downstream-Speed-Limit
attr-up=PPPD-Upstream-Speed-Limit
[cli]
telnet=127.0.0.1:2000
password=secretpass
tcp=127.0.0.1:2001 |
...
Code Block |
---|
language | bash |
---|
title | /usr/local/share/accel-ppp/radius/dictionary |
---|
collapse | true |
---|
|
$INCLUDE dictionary.rfc2865
$INCLUDE dictionary.rfc2866
$INCLUDE dictionary.rfc2867
$INCLUDE dictionary.rfc2868
$INCLUDE dictionary.rfc2869
$INCLUDE dictionary.rfc3576
$INCLUDE dictionary.rfc3580
$INCLUDE dictionary.rfc4072
$INCLUDE dictionary.rfc4372
$INCLUDE dictionary.rfc5176
$INCLUDE dictionary.microsoft
$INCLUDE dictionary.cisco
# Limit session traffic
ATTRIBUTE DHCP-Router-IP-Address 241 ipaddr
ATTRIBUTE SessionDHCP-Octets-LimitMask 227 integer
# What to assume as limit - 0 in+out, 1 in, 2 out, 3 max(in,out)242 integer
ATTRIBUTE Octets-Direction 228 integer
# Connection Speed Limit
ATTRIBUTE PPPD-Upstream-Speed-Limit 230L4-Redirect 243 integer
ATTRIBUTE PPPDL4-Downstream-Speed-Limit 231 integerRedirect-ipset 244 string
ATTRIBUTE PPPD-Upstream-Speed-Limit-1 232 integerDHCP-Option82 245 octets
ATTRIBUTE PPPDAccel-DownstreamAgent-Speed-Limit-1 233 integerCircuit-Id 246 octets
ATTRIBUTE PPPDAccel-UpstreamAgent-Speed-Limit-2 234 integer
ATTRIBUTE PPPD-Downstream-Speed-Limit-2 235 integer
ATTRIBUTE PPPD-Upstream-Speed-Limit-3 236 integer
ATTRIBUTE PPPD-Downstream-Speed-Limit-3 237 integer
ATTRIBUTE Acct-Interim-Interval 85 integer
ATTRIBUTE Acct-Input-Gigawords 52 integer
ATTRIBUTE Acct-Output-Gigawords 53 integer |
Code Block |
---|
language | bash |
---|
title | Отключить ip_gre |
---|
|
modprobe -r ip_gre
vim /etc/modprobe.d/blacklist.conf
blacklist ip_gre |
Code Block |
---|
language | bash |
---|
title | Добавить в автозагрузку драйвера |
---|
|
vim /etc/modules
pptp
pppoe |
Code Block |
---|
language | bash |
---|
title | Cоздадим скрипт для запуска-остановки accel-ppp |
---|
|
vim /etc/init.d/accel-ppp
chmod +x /etc/init.d/accel-ppp |
Code Block |
---|
|
#!/bin/sh
#/etc/init.d/accel-pppd: set up the accel-ppp server
### BEGIN INIT INFO
# Provides: accel-ppp
# Required-Start: $networking
# Required-Stop: $networking
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
### END INIT INFO
set -e
PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/sbin;
ACCEL_PPTPD=`which accel-pppd`
. /lib/lsb/init-functions
if test -f /etc/default/accel-ppp; then
. /etc/default/accel-ppp
fi
if [ -z $ACCEL_PPPTD_OPTS ]; then
ACCEL_PPTPD_OPTS="-c /etc/accel-ppp.conf"
fi
case "$1" in
startRemote-Id 247 octets
# Limit session traffic
ATTRIBUTE Session-Octets-Limit 227 integer
# What to assume as limit - 0 in+out, 1 in, 2 out, 3 max(in,out)
ATTRIBUTE Octets-Direction 228 integer
# Connection Speed Limit
ATTRIBUTE PPPD-Upstream-Speed-Limit 230 integer
ATTRIBUTE PPPD-Downstream-Speed-Limit 231 integer
ATTRIBUTE PPPD-Upstream-Speed-Limit-1 232 integer
ATTRIBUTE PPPD-Downstream-Speed-Limit-1 233 integer
ATTRIBUTE PPPD-Upstream-Speed-Limit-2 234 integer
ATTRIBUTE PPPD-Downstream-Speed-Limit-2 235 integer
ATTRIBUTE PPPD-Upstream-Speed-Limit-3 236 integer
ATTRIBUTE PPPD-Downstream-Speed-Limit-3 237 integer
ATTRIBUTE Acct-Interim-Interval 85 integer
ATTRIBUTE Acct-Input-Gigawords 52 integer
ATTRIBUTE Acct-Output-Gigawords 53 integer |
Code Block |
---|
language | bash |
---|
title | Отключить ip_gre |
---|
|
modprobe -r ip_gre
vim /etc/modprobe.d/blacklist.conf
blacklist ip_gre |
Code Block |
---|
language | bash |
---|
title | Добавить в автозагрузку драйвера |
---|
|
vim /etc/modules
pptp
pppoe |
Code Block |
---|
language | bash |
---|
title | Cоздадим скрипт для запуска-остановки accel-ppp |
---|
|
vim /etc/init.d/accel-ppp
chmod +x /etc/init.d/accel-ppp |
Code Block |
---|
language | bash |
---|
title | Вставляем в /etc/init.d/accel-ppp |
---|
collapse | true |
---|
|
#!/bin/sh
#/etc/init.d/accel-pppd: set up the accel-ppp server
### BEGIN INIT INFO
# Provides: accel-ppp
# Required-Start: $networking
# Required-Stop: $networking
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
### END INIT INFO
set -e
PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/sbin;
ACCEL_PPTPD=`which accel-pppd`
. /lib/lsb/init-functions
if test -f /etc/default/accel-ppp; then
. /etc/default/accel-ppp
fi
if [ -z $ACCEL_PPPTD_OPTS ]; then
ACCEL_PPTPD_OPTS="-c /etc/accel-ppp.conf"
fi
case "$1" in
start)
log_daemon_msg "Starting accel-ppp server" "accel-pppd"
if start-stop-daemon --start --quiet --oknodo --exec $ACCEL_PPTPD -- -d -p /var/run/accel-pppd.pid $ACCEL_PPTPD_OPTS; then
log_end_msg 0
else
log_end_msg 1
fi
;;
restart)
log_daemon_msg "Restarting accel-ppp server"Starting "accel-ppp server" "accel-pppd"-pppd"
start-stop-daemon --stop --quiet --oknodo --retry 180 --pidfile /var/run/accel-pppd.pid
if start-stop-daemon --start --quiet --oknodo --exec $ACCEL_PPTPD -- -d -p /var/run/accel-pppd.pid $ACCEL_PPTPD_OPTS; then
log_end_msg 0
else
log_end_msg 1
fi
;;
restartstop)
log_daemon_msg "Restarting accel-ppp server" "accel-pppd"
start-stop-daemon --stop --quiet --oknodo --retry 180 --pidfile /var/run/accel-pppd.pid
log_daemon_msg "Stopping accel-ppp server" "accel-pppd"
if start-stop-daemon --startstop --quiet --oknodo --execretry $ACCEL_PPTPD180 --pidfile -d -p /var/run/accel-pppd.pid $ACCEL_PPTPD_OPTS; then
log_end_msg 0
;;
status)
elsedo_status
;;
*)
log_endsuccess_msg 1"Usage: /etc/init.d/accel-ppp {start|stop|status|restart}"
exit 1
fi
;;
esac
stop)
exit 0 |
Code Block |
---|
language | bash |
---|
title | Добавляем в автозагрузку |
---|
|
update-rc.d accel-ppp defaults |
Code Block |
---|
language | bash |
---|
title | Создаем симлинк : |
---|
|
ln log_daemon_msg "Stopping accel-ppp server" "accel-pppd"
-s /usr/share/accel-ppp /usr/local/share/accel-ppp |
Code Block |
---|
language | bash |
---|
title | В словарь Freeradius - /usr/share/freeradius/dictionary добавить такие пары |
---|
|
ATTRIBUTE DHCP-Router-IP-Address 241 ipaddr
ATTRIBUTE DHCP-Mask start-stop-daemon --stop --quiet --oknodo --retry 180 --pidfile /var/run/accel-pppd.pid
242 integer
ATTRIBUTE L4-Redirect log_end_msg 0
243 ;;
status)
integer
ATTRIBUTE L4-Redirect-ipset do_status
;;
*)
244 string
ATTRIBUTE DHCP-Option82 log_success_msg "Usage: /etc/init.d/accel-ppp {start|stop|status|restart}"
245 exit 1
octets
ATTRIBUTE Accel-Agent-Circuit-Id 246 ;;
esac
exit 0 |
Code Block |
---|
language | bash |
---|
title | Добавляем в автозагрузку |
---|
|
update-rc.d accel-ppp defaults |
Code Block |
---|
language | bash |
---|
title | В словарь Freeradius - raddb/dictionary добавить такие пары |
---|
|
# Limit session trafficoctets
ATTRIBUTE Accel-Agent-Remote-Id 247 octets
ATTRIBUTE Session-Octets-Limit 227 integer
# What to assume as limit - 0 in+out, 1 in, 2 out, 3 max(in,out)
ATTRIBUTE Octets-Direction 228 integer
# Connection Speed Limit
ATTRIBUTE PPPD-Upstream-Speed-Limit 230 integer
ATTRIBUTE PPPD-Downstream-Speed-Limit 231 integer
ATTRIBUTE PPPD-Upstream-Speed-Limit-1 232 integer
ATTRIBUTE PPPD-Downstream-Speed-Limit-1 233 integer
ATTRIBUTE PPPD-Upstream-Speed-Limit-2 234 integer
ATTRIBUTE PPPD-Downstream-Speed-Limit-2 235 integer
ATTRIBUTE PPPD-Upstream-Speed-Limit-3 236 integer
ATTRIBUTE PPPD-Downstream-Speed-Limit-3 237 integer
ATTRIBUTE Acct-Interim-Interval 85 integer
ATTRIBUTE Acct-Input-Gigawords 52 integer
ATTRIBUTE Acct-Output-Gigawords 53 integer |
...