Показать страницуСсылки сюдаНаверх Эта страница только для чтения. Вы можете посмотреть её исходный текст, но не можете его изменить. Сообщите администратору, если считаете, что это неправильно. <alert type="danger"> * Не рекомендуется устанавливать Accel-PPP на виртуальные машины. Так же рекомендуется отключить на сервере hyperthreding и выставить частоту на максимум </alert> ====== Установка Accel-PPP (Ansible Playbook) на Debian 13 ====== Данный плейбк установливает Accel-PPP и содержит рекомендуемый тюнинг официальной документации https://docs.accel-ppp.org/guides/BRAS_tuning.html ===== 1. Обновление ОС ===== <code bash> apt update -y && apt upgrade -y && reboot </code> ===== 2. Установка пакетов ===== <code bash> apt install -y sudo ansible wget </code> ===== 3. Скачать архив и распаковать playbook ===== <code bash> wget http://setup.2x.mikbill.pro/accel-ppp-setup.tar.gz tar zxf accel-ppp-setup.tar.gz </code> ===== 4. Запуск установки ===== Перейдите в директорию с playbook: <code bash> cd accel-ppp-playbook/ </code> Отредактируйте переменные, заполните актуальные ip и имена интерфейсов: <code bash> nano group_vars/accel_ppp.yml </code> отключить тюнинг udev, если нужно: <code bash> accel_udev_hotplug_tuning: false </code> отключить тюнинг grub, если нужно: <code bash> accel_grub_tuning_enable: false </code> автоматический ребут: <code bash> accel_grub_auto_reboot: false </code> Запустите установку: <code bash> ansible-playbook -i inventory.ini playbook.yml </code> ===== 5. Проверка статуса и логов ===== После установки перезагрузите сервер. Статус сервиса: <code bash> systemctl status accel-ppp </code> Статус интерфейса: <code bash> systemctl status nic-tune@<dev>.service </code> Логи: <code bash> tail /var/log/accel-ppp/emerg.log tail /var/log/accel-ppp/accel-ppp.log </code> Конфиг logrotate: <code bash> /etc/logrotate.d/accel-ppp </code> udev-rules: <code bash> /lib/udev/rules.d/99-systemd.rules /lib/udev/rules.d/80-ifupdown.rules </code> ====== Accel-PPP — ручная сборка и установка на Debian 13 ====== ==== 0) Переменные для Debian 13 ==== <code bash># # Debian 13: export CPACK_TYPE=Debian13 </code> ==== 1) Зависимости ==== <code bash>apt update apt install -y build-essential cmake gcc kmod \ linux-headers-$(uname -r) git \ libpcre2-dev libssl-dev liblua5.1-0-dev </code> ==== 2) Клонирование исходников ==== <code bash>cd /opt git clone https://github.com/accel-ppp/accel-ppp.git accel-ppp-code cd accel-ppp-code git checkout master </code> ==== 3) Сборка и установка .deb ==== <code bash>mkdir -p /opt/accel-ppp-code/build cd /opt/accel-ppp-code/build cmake -DBUILD_IPOE_DRIVER=TRUE -DBUILD_VLAN_MON_DRIVER=TRUE -DRADIUS=TRUE -DSHAPER=TRUE -DLUA=TRUE -DCMAKE_INSTALL_PREFIX=/usr -DKDIR=/usr/src/linux-headers-$(uname -r) -DCPACK_TYPE=${CPACK_TYPE} .. make -j"$(nproc)" cpack -G DEB ls -1 .deb apt install -y ./.deb </code> ==== 4) RADIUS словари ==== <code bash>mkdir -p /etc/accel-ppp/radius cat >/etc/accel-ppp/radius/dictionary.mikbill <<'EOF' ATTRIBUTE DHCP-Router-IP-Address 241 ipaddr ATTRIBUTE DHCP-Mask 242 integer ATTRIBUTE L4-Redirect 243 integer ATTRIBUTE L4-Redirect-ipset 244 string ATTRIBUTE DHCP-Option82 245 octets ATTRIBUTE AccelRemoteId 246 octets ATTRIBUTE AccelCircuitId 247 octets EOF </code> ==== 5) Конфиг accel-ppp и lua ==== === 5.1. Пример /etc/accel-ppp.conf === <code bash>cat >/etc/accel-ppp.conf <<'EOF' [modules] log_file radius shaper sigchld ipoe [core] log-error=/var/log/accel-ppp/core.log thread-count=2 [ipoe] username=lua:macuser lua-file=/etc/accel-ppp.lua lease-time=300 max-lease-time=302 attr-dhcp-client-ip=Framed-IP-Address attr-dhcp-router-ip=DHCP-Router-IP-Address attr-dhcp-mask=DHCP-Mask attr-l4-redirect=L4-Redirect attr-l4-redirect-ipset=L4-Redirect-ipset l4-redirect-ipset=l4 shared=0 ifcfg=1 mode=L2 start=dhcpv4 proto=100 interface=enp0s8 verbose=1 [dns] dns1=4.2.2.2 dns2=8.8.8.8 [radius] dictionary=/usr/share/accel-ppp/radius/dictionary dictionary=/etc/accel-ppp/radius/dictionary.mikbill nas-identifier=Accel-IPoE nas-ip-address=192.168.0.182 server=192.168.0.184,secret,auth-port=1812,acct-port=1813,req-limit=0,fail-time=5 dae-server=0.0.0.0:3799,secret verbose=1 timeout=10 max-try=9 acct-timeout=5 acct-delay-time=0 log-file=/var/log/accel-ppp/radius.log [shaper] attr=Filter-Id ifb=ifb0 up-limiter=htb down-limiter=htb cburst=1375000 r2q=10 quantum=1500 leaf-qdisc=sfq perturb 10 verbose=0 [client-ip-range] disable [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=/var/log/accel-ppp/debug.log copy=1 level=4 [cli] telnet=127.0.0.1:2000 tcp=127.0.0.1:2001 EOF </code> === 5.2. Пример /etc/accel-ppp.lua === <code bash>cat >/etc/accel-ppp.lua <<'EOF' function macuser(pkt) return pkt:hdr('chaddr') end function opt82_v1(pkt) v,b1,b2,b3,b4,b5,b6=string.unpack(pkt:agent_remote_id(),'bbbbbb') return string.format("%02x:%02x:%02x:%02x:%02x:%02x", b1,b2,b3,b4,b5,b6) end function opt82_v2(pkt) if pkt:agent_circuit_id() ~= nil then if string.len(pkt:agent_remote_id()) ~= 0 then v,b1,b2,b3,b4,b5,b6=string.unpack(pkt:agent_remote_id(),'bbbbbb') return string.format("%02x:%02x:%02x:%02x:%02x:%02x", b1,b2,b3,b4,b5,b6) elseif (string.len(pkt:agent_remote_id()) == 0 and string.len(pkt:agent_circuit_id()) ~= 0) then m1=string.sub(pkt:agent_circuit_id(),'-15','-14') m2=string.sub(pkt:agent_circuit_id(),'-13','-12') m3=string.sub(pkt:agent_circuit_id(),'-11','-10') m4=string.sub(pkt:agent_circuit_id(),'-9','-8') m5=string.sub(pkt:agent_circuit_id(),'-7','-6') m6=string.sub(pkt:agent_circuit_id(),'-5','-4') local username=m1..':'..m2..':'..m3..':'..m4..':'..m5..':'..m6 return username end else return pkt:hdr('chaddr') end end EOF </code> ==== 6) Старт accel-ppp ==== <code bash>systemctl daemon-reload systemctl enable --now accel-ppp Быстрая проверка journalctl -u ifb -n 50 --no-pager journalctl -u accel-ppp -n 200 --no-pager tail -n 50 /var/log/accel-ppp/emerg.log </code> billing/howto/accel_install_debian12/13.txt Последнее изменение: 7 нед. назад — vs