Это старая версия документа.
Internet IPoE
Предоставление некоммутируемых услуг Internet
Контроль доступа и нарезка трафика
При включении сессии выполняется правило указанное в конфигурационном файле (config.pl) $conf{INTERNET_IPOE_START} при завершении $conf{INTERNET_IPOE_STOP}. Система данным командам передаёт следующие атрибуты
%IP | IP адрес клиента |
%MASK | битная маска (32,24) |
%NUM | номер правила ($conf{INTERNET_IPOE_FIRST_RULE} + (PORT или последняя цифра IP адреса) ) |
%LOGIN | Логин |
%SPEED_IN | входящая скорость |
%SPEED_OUT | исходящая скорость |
а также переменные окружения
NAS_IP_ADDRESS | IP адрес сервера доступа |
NAS_MNG_USER | Пользователь для управления сервером доступа |
NAS_MNG_IP_PORT | IP:PORT управления сервером доступа |
NAS_ID | Номер сервера доступа |
NAS_TYPE | Тип сервера доступа |
В качестве шейпера удобно использовать /usr/abills/libexec/linkupdown.
- Пример правила открытия доступа
abills/libexec/config.pl
$conf{INTERNET_IPOE_START}='SUDO=/usr/local/bin/sudo; CMD="${SUDO} /usr/abills/libexec/linkupdown ipn up getif %LOGIN %IP %DEBUG > /dev/null 2>&1"; if [ "${NAS_TYPE}" = "mikrotik" ]; then CMD="/usr/abills/libexec/linkupdown mikrotik up - %LOGIN %IP NAS_HOST=${NAS_MNG_IP_PORT} NAS_ADMIN=${NAS_MNG_USER}"; elif [ "${NAS_MNG_IP_PORT}" != "" ]; then CMD="/usr/bin/ssh -o StrictHostKeyChecking=no -i /usr/abills/Certs/id_rsa.${NAS_MNG_USER} ${NAS_MNG_USER}@${NAS_MNG_IP_PORT} \"${CMD}\""; fi; eval "${CMD}"'; $conf{INTERNET_IPOE_STOP}='SUDO=/usr/local/bin/sudo; CMD="${SUDO} /usr/abills/libexec/linkupdown ipn down getif %LOGIN %IP %DEBUG > /dev/null 2>&1"; if [ "${NAS_TYPE}" = "mikrotik" ]; then CMD="/usr/abills/libexec/linkupdown mikrotik down - %LOGIN %IP NAS_HOST=${NAS_MNG_IP_PORT} NAS_ADMIN=${NAS_MNG_USER}"; elif [ "${NAS_MNG_IP_PORT}" != "" ]; then CMD="/usr/bin/ssh -o StrictHostKeyChecking=no -i /usr/abills/Certs/id_rsa.${NAS_MNG_USER} ${NAS_MNG_USER}@${NAS_MNG_IP_PORT} \"${CMD}\""; fi; eval "${CMD}"';
Для типа сервера - mikrotik-dhcp:
$conf{INTERNET_IPOE_START_RULE}='SUDO=/usr/local/bin/sudo; CMD="${SUDO} /usr/abills/libexec/linkupdown ipn up getif %LOGIN %IP %DEBUG > /dev/null 2>&1"; if [ "${NAS_TYPE}" = "mikrotik_dhcp" ]; then CMD="/usr/abills/libexec/linkupdown mikrotik up - %LOGIN %IP NAS_HOST=${NAS_MNG_IP_PORT} NAS_ADMIN=${NAS_MNG_USER}"; elif [ "${NAS_MNG_IP_PORT}" != "" ]; then CMD="/usr/bin/ssh -o StrictHostKeyChecking=no -i /usr/abills/Certs/id_rsa.${NAS_MNG_USER} ${NAS_MNG_USER}@${NAS_MNG_IP_PORT} \"${CMD}\""; fi; eval "${CMD}"'; $conf{INTERNET_IPOE_STOP_RULE}='SUDO=/usr/local/bin/sudo; CMD="${SUDO} /usr/abills/libexec/linkupdown ipn down getif %LOGIN %IP %DEBUG > /dev/null 2>&1"; if [ "${NAS_TYPE}" = "mikrotik_dhcp" ]; then CMD="/usr/abills/libexec/linkupdown mikrotik down - %LOGIN %IP NAS_HOST=${NAS_MNG_IP_PORT} NAS_ADMIN=${NAS_MNG_USER}"; elif [ "${NAS_MNG_IP_PORT}" != "" ]; then CMD="/usr/bin/ssh -o StrictHostKeyChecking=no -i /usr/abills/Certs/id_rsa.${NAS_MNG_USER} ${NAS_MNG_USER}@${NAS_MNG_IP_PORT} \"${CMD}\""; fi; eval "${CMD}"';
Также внизу указано настройка дополнительных параметров для разных операционных систем и удалённых серверов доступа