Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Здесь вы можете найти ответы на самые часто задаваемые вопросы.
Версия FAQ: 26.12.2018

Table of Contents

Общие вопросы

Как получить справку по функциям веб интерфейса?

Можно нажать кнопку подсказки и получить информацию по открытой странице интерфейса

Почему https запросы не редиректятся на страницу заглушки?

https запросы отличаются от http тем, что сначала устанавливается шифрованное соединение точка точка, а только потом идёт трафик. Если абонент пытается установить шифрованное соединение с google.com то, соответственно, при предложении установить соединение с сайтом rogakopyta.com браузер откинет соединение как невалидное или как попытку подмены соединения.

Почему для вебинтерфейса используется порт 9443?

9443 порт используется для более гибкой схемы фильтрации трафика. Например: на 80 порту сайт провайдера, а на 9443 билинг закрытый с интернета 9443 - должен быть шифрованным, Если для сервисов нужен не шифрованный порт используйте 8443.

Примеры конфигурации в /usr/abills/misc/apache/

Anchor
Первичная диагностика
Первичная диагностика
Первичная диагностика

Если у вас ошибка, проблема, неправильная работа программы в *nix, первым делом смотрим логи. в отдельном окне (сессии, панели tmux | screen):

Code Block
languagebash
 tail -f -10 xxx/xxx/xxx

где xxx/xxx/xxx - файл лога программы, которая неправильно работает.

  • /var/log/httpd/abills-error.log - лог Web-сервера (Возможно у Вас лог в другом месте, если не придерживались инструкции);

  • /var/log/accel-ppp/accel-ppp.log - лог accel-ppp;

  • /var/log/radius.log - лог freeradius (Рекомендуется запускать радиус в режиме отладки radiusd -X);

  • /var/log/mpd.log - лог mpd.

После повторяем действия, которые приводят к ошибке (запуск, подключение и т.д.).

Смотрим лог, если непонятная ошибка, копируем часть строки ошибки, делаем поиск по wiki (строка поиска сверху в правом углу).

Если ничего не найдено, делаем поиск по форуму или в Google.

Обрыв сессий 1-го числа в 00:00:00

Билиинг завершает учётный период.

При подключении абонента система передаёт также параметр максимальной длинны сессии, она должна быть не дольше, чем до конца месяца.

Для отключения данной функции можно внести в радиус пары сервера доступа (Настройка>Сервер доступа).

Code Block
languagebash
!Session-Timeout=0

После внесения изминений нужно перезагрузить RADIUS.

После этого можно посмотреть в RADIUS Access-Response пару Session-Timeout  она должна или отсутсвовать или  количество секунд не совпадать с концом месяца.

Правило будет действовать только на сессии которые поднялись после перезагрузки RADIUS

Чтобы использовать большие буквы в логине

/usr/abills/libexec/config.pl

Code Block
languagebash
$conf{USERNAMEREGEXP}="^[A-Za-z0-9_][A-za-z0-9_-]*\$";

Обнуление пароля администратора

MySQL:

Code Block
languagebash
UPDATE admins SET password=ENCODE('new_pass', 'test12345678901234567890') WHERE aid=1;  

где test12345678901234567890  - переменная config.pl:$conf{secretkey}.

Как перевести интерфейс с cp1251 на другую кодировку.

Пример перевода Unicode
/usr/abills/libexec/config.pl

Code Block
languagebash
$conf{dbcharset}='utf8'; 

$conf{MAIL_CHARSET}='utf8'; 
$conf{default_language}='russian'; 
$conf{default_charset}='utf-8'; 

Перекодировка словарей

Code Block
languagebash
!/bin/sh 

ICONV="iconv"; 
BASE_CHARSET="cp1251"; 
OUTPUT_CHARSET="utf8"; 

Convert lang files 
${FIND} ${WRKSRC}/language -name "*.pl" -type f -exec ${ICONV}  -f${BASE_CHARSET} -t${OUTPUT_CHARSET} {} -o{}.bak `mv {}.bak {}` \; 

Convert modules lang files 
${FIND} ${WRKSRC}/language -name "lng*.pl" -type f -exec ${ICONV} -f${BASE_CHARSET} -t${OUTPUT_CHARSET} {} -o{}.bak `mv {}.bak {}` \; 

Проблемы с отображением кириллицы?

Если у вас не отображаются символы кириллицы - это значит что нужно изменить кодировку текста. Изменение кодировки выполняется через меню Настройка>SQL Commander>Tables

В данном списке таблиц найти нужную и нажать кнопку Показать.  В таблице с результатом найти нужное поле и через кнопку Изменить заменить в поле Collation, например latin1_swedish_ci на utf8_general_ci для отображения кириллицы, нажать кнопку Изменить.


Маскарадинг

Linux

Проверяем наличие вкомпилированной поддержки

Code Block
languagebash
sysctl net.ipv4.conf.all.forwarding
net.ipv4.conf.all.forwarding = 1

Если не включён включаем

Code Block
languagebash
sysctl -w net.ipv4.conf.all.forwarding=1  

Включаем маскарадинг

Code Block
languagebash
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to-source your_real_ip

192.168.0.0/24 - ваша внутренняя сеть
your_real_ip - IP, через который все будет ходить

FreeBSD

Собрать ядро с опциями

Code Block
languagebash
options IPFIREWALL
options DUMMYNET

/etc/rc.conf

Code Block
languagebash
gateway_enable="YES" 
firewall_enable="YES" 
firewall_type="OPEN" 
natd_enable="YES"
natd_interface="fxp0" 
natd_flags=""

fxp0 - инерфейс смотрящий в мир.
Перезапуск сетевых сервисов

Code Block
languagebash
/etc/netstart

Как загрузить бекап в базу?

Code Block
languagebash
cd abills/backup
gzip -d backup_file.tgz 
mysql -D abills < backup_file


Возможности

Как анализировать логи из удалённого NAS?

В конфигурационном файле прописать команду отображения файла с удалённого хоста.
Например

Code Block
languagebash
$conf{SHARING_APACHE_ERROR_LOG}='cat /usr/local/apache2/logs/error_log';

заменить на

Code Block
languagebash
$conf{SHARING_APACHE_ERROR_LOG}='ssh  -o StrictHostKeyChecking=no '.
   ' -i /usr/Certs/id_rsa.asm asm@remote.host '.
   ' "cat /usr/local/apache2/logs/error_log" |';

На основном сервере создайте сертификат для пользователя удалённого NAS (в данном случае asm)

Code Block
languagebash
/usr/abills/misc/certs_create.sh ssh asm

и поместите публичный ключ /usr/abills/Certs/id_rsa.asm.pub в файл /home/asm/.ssh/authorized_keys на удалённом сервере.

Нужно учитывать, что если у Вас очень большой файл логов, то желательно вместо команды 'cat' использовать 'tail -1000

Таким же способом можно выполнять команды на удалённом NAS.

Можно ли всем NAS'ам дать один блок адресов?

Да, можно.
Чтобы один пул раздавался между несколькими серверами доступа нужно настроить ospf между ними и маршрутизатором.

Activation / Expire

  • Activation - Дата активизации аккаунта. Если значения не равно 0000-00-00, то пользователя будет пускать только в том случае, если дата подключения равна или больше даты активизации.

  • Expire - дата окончания работы аккаунта. Если поле не равно 0000-00-00, то пользователя будет пускать только до даты окончания.

Абонплата

В системе предусмотрено два вида абонплаты: дневнаямесячная. Для снятия абон. платы Вам нужно в /etc/crontab внести 

Code Block
languagebash
1     0      *    *     *   root    /usr/abills/libexec/periodic daily
1     1      *    *     *   root    /usr/abills/libexec/periodic monthly 
  1. Дневная - снимается каждый день.

  2. Месячная - снимается раз в месяц. Абонплата снимается каждого месяца 1 числа.

Если в поле Activation указанное значение не равно 0000-00-00, то абонплата снимается через 31 день после указанной даты и, после снятия денег, устанавливается в текущую дату.

Как отключить снятие средств первого января и включить пятого числа за первое января?

Перед первым января комментируете в /etc/crontab периодические процессы списания.

Code Block
languagebash
#1     0      *    *     *   root    /usr/abills/libexec/periodic daily
#1     1      *    *     *   root    /usr/abills/libexec/periodic monthly

5 января запускаете периодические процессы с консоли указав дату списания

Code Block
languagebash
/usr/abills/libexec/periodic daily DATE='2018-01-01'
/usr/abills/libexec/periodic monthly DATE='2018-01-01'

Если используется распределенная абон. плата периодические процессы нужно запустить за все дни от первого до пятого числа, включая пятое.

Запуск изменения тарифов 1 числа.

Code Block
languagebash
/usr/abills/libexec/periodic daily SHEDULE=1

Почему при снятии денег периодиком в журнале Cписания отображается текущая дата и время 00:00:00?

Абон. плата снимается в начале учётного периода (в начале месяца или в начале дня при месячной распределённой), поэтому время отображено 00:00:00.

Для просмотра фактической даты снятия денег периодиком можно в журнале Списания через кнопку "..." (Extra fields) добавить параметр Списания Регистрация.

Несъемный минимум (Credit Tresshold)

Несъемный минимум при подключении по DialUp и VPN.

Установка и настройка

Веб интерфейс ошибка 500?

Если возникли проблемы с работой веб интерфейса, смотрите лог веб-сервера

Code Block
languagebash
/var/log/httpd/abills-error.log

Failed binding to auth address * port 1812 bound to server default: Address already in use

Уже запущена одна копия RADIUS сервера. завершите ее и попробуйте снова


Code Block
titlerestart radius
# посмотреть запущенную копию
ps ax | grep radius

8661 pts/5    S+     0:00 radiusd

# Убить RADIUS  процесс
 kill -9 8661 

# запустить RADIUS

radiusd -X

После перезагрузки сервера доступа сессии все еще висят в биллинге?

Если сервер доступа был перезагружен аномально (выключение света), то биллинг не получает запросов от NAS о завершении сессий, и сессии продолжают висеть в журнале активных сессий (Online). Данные сессии биллинг самостоятельно сбросит через 3 Alive периода. Чтобы избежать данной ситуации можно воспользоваться утилитой autozh.pl установив её в автозагрузку сервера доступа. Данная утилита после запуска сервера будет отправлять неактивные сессии в zap.

FreeBSD. Не стартует Radius + rlm_perl при старте системы?

В файле /usr/local/etc/rc.d/radiusd нужно поменять

Code Block
languagebash
REQUIRE: NETWORKING SERVERS

на

Code Block
languagebash
REQUIRE: NETWORKING SERVERS apache22 mysql

DEBIAN. Первый заход в админку - Account Disabled or Not exist?

У Вас не установлен apache mod_rewrite

Code Block
languagebash
a2enmod rewrite
/etc/init.d/apache2 force-reload

Кажется настроил, но никто не может подключиться?

  • Посмотрите в журнал подключений  Отчёт> Internet>ОшибкаInternet>Последнее подключение, если заполняется список ошибок можно посмотреть тут Ошибки подключения клиентов. Если записи не появляются переходите к следующему пункту поиска неисправностей.

  • Запустите радиус в режиме отладки radiusd -X.

При подключении абонента должны появляться запросы авторизации примерно такого вида

Code Block
languagebash
rad_recv: Access-Request packet from host 127.0.0.1:25296, id=74, length=167
  NAS-Port-Type = Ethernet
  Acct-Session-Id = 7299999-vlan62-2
  Service-Type = Framed-User
  User-Password = "123456"
  Tunnel-Client-Endpoint = b8:00:5a:14:30:d5
  Tunnel-Client-Auth-Id = 80fb-06c4-9058
  NAS-IP-Address = 127.0.0.1
  NAS-Port-Id = vlan62
  ADSL-Agent-Remote-Id = 80fb-06c4-9058
  Tunnel-Medium-Type = IEEE-802
  Calling-Station-Id = b8:00:5a:14:30:d5
  Framed-Protocol = PPP
  User-Name = test
  NAS-Port = 2
  mpd-link = vlan62-2

Если никакие данные не поступают, значит сервер доступа был настроен не корректно или на нём не прописаны данные авторизации через Radius.

Если данные поступают, но в биллинге Вы их не видите, значит не корректно настроен RADIUS.

  • скорее всего секция raddb/sites-enabled/ . В данном каталоге должен быть только файл abills_default

Радиус показывает такой ответ

Code Block
languagebash
Ignoring request to authentication address * port 1812 from unknown client 192.168.0.109 port 22777

сервер доступа c IP 192.168.0.109 не заведён в raddb/clients.conf.


MPD

Code Block
languagebash
/var/log/mpd.log

Mikrotik

Code Block
languagebash
В Winbox  пункт **Log**

Accel-IPoE

Code Block
languagebash
/var/log/accel-ppp

Подключил словарь к радиусу, но радиус все равно не видит параметров?

После $INCLUDE разделитель табуляция.

При подключении к серверу, после стадии проверки данных юзера идёт обрыв соединения, хотя в логе abills.log пишет всё ок

'03:46:27 LOG_INFO: AUTH [myrka] NAS: 3 (192.168.10.1) GT: 0.24659'

  1. Если используете Exppp или стандартный FreeBSD ppp проверьте лог /var/log/ppp.log. Скорее всего установлен NAS exppp, а в radius словарь не внесены для него атрибуты. см. Exppp

ExPPP Трафик не считается как Ext_in, EXT_out

Посмотреть передаётся ли информация о подсетях для exppp
/var/log/ppp.log

Code Block
languagebash
Apr 16 11:18:55 nacho ppp[66019]: Phase:  IP table '/usr/abills/cgi-bin/admin/nets/7.nets'

ExPPP + poptop не работает MAC авторизация.

Установка PopTop 
Все операции проводим от пользователя root. 

Code Block
languagebash
cd /usr/ports/net/poptop/ 
make patch 

Копируем патч (http://www.opennet.ru/soft/vpn/pptpctrl.patch) в каталог: /usr/ports/net/poptop/work/poptop-1.1.4/ и далее:

Code Block
languagebash
cd /usr/ports/net/poptop/work/poptop-1.1.4 
patch < pptpctrl.patch 


Code Block
languagebash
Hmm... Looks like a new-style context diff to me... 
The text leading up to this was: 
-------------------------- 
|*** pptpctrl.c.orig Wed Jul 16 14:51:40 2003 
|--- pptpctrl.c Mon Jul 14 15:51:35 2003 
-------------------------- 
Patching file pptpctrl.c using Plan A... 
Hunk #1 succeeded at 388. 
done 


Code Block
languagebash
cd ../.. 
make install 
make clean 
cp /usr/local/etc/pptpd.conf.sample /usr/local/etc/pptpd.conf 
mv /usr/local/etc/rc.d/pptpd.sh.sample /usr/local/etc/rc.d/pptpd.s

И запускаем poptop

Code Block
languagebash
/usr/local/etc/rc.d/pptpd.sh start

MPD + Windows XP рваный пинг

Code Block
languagebash
set pptp disable windowing 

Cisco не понимает Session-Timeout

В конфигурации обязательно должна присутствовать строка такого вида без изменений

Code Block
languagebash
aaa authorization network default group radius if-authenticated

Зависла сессия

Мониторинг>Интернет+

(Z) - ZapЗакончить зависшую сессию и посчитать деньги

FreeBSD Поднятие скорости шейпера DUMMYNET

/etc/sysctl.conf

net.inet.ip.fw.enable=1 логическая (булева) переменная (значения 0 и 1). - показывает, включено ли использование firewall в текущий момент. Позволяет включать и выключать firewall в любой момент времени.

Code Block
languagebash
net.inet.ip.fw.autoinc_step

Целочисленная переменная. Задает шаг автоматического превращения номеров правил firewall при вводе без принудительного указания номера

Code Block
languagebash
net.inet.ip.fw.verbose 
net.inet.ip.fw.verbose_limit

Аналогичны соответствующим опциям ядра

Code Block
languagebash
net.inet.ip.fw.one_pass 

Логическая переменная. При ее установки в 0 пакет, выходящий из dummynet, продолжит свое путешествие по правилам firewall. В противном случае pipe действует, как allow. Значение по умолчанию - 1.

Code Block
languagebash
net.inet.ip.dummynet.hash_size=1024 

Целочисленная переменная. Соответствует размеру хэш-таблицы, используемой dummynet для хранения очередей. Увеличение этого значение ускоряет работу dummynet при большом количестве очередей, естественно, в обмен на оперативную память. Значение по умолчанию - 64.

Code Block
languagebash
net.inet.ip.dummynet.expire 

Логическая переменная. При установке в 1 очереди dummynet удаляются через некоторое время после того, как через них перестали «бегать» пакеты. В противном случае, очереди удаляются только при нехватке памяти для размещения новых. Значение по умолчанию - 1. Имеет смысл выставлять в 0, если Ваш сервер обслуживает несколько крупных потребителей трафика, постоянно находящихся в режиме on-line - в этом случае кратковременное прекращение активности потребителя не должно вызывать удаления его очереди, чтобы не тратить времени на ее создание заново при появлении потребителя. В случае множества мелких потребителей, подключающихся и отключающихся от сети на длительный срок имеет смысл освобождать ресурсы, чтобы ускорить работу dummynet за счет меньшей таблицы очередей.

net.inet.ip.dummynet.io_fast=1 режим шейпинга вместо эмуляции медленного соединения

Code Block
languagebash
net.inet.ip.dummynet.max_chain_len=1024

Целочисленная переменная, значение по умолчанию - 16. Количество очередей, способных одновременно храниться в одной ячейке хэш-таблицы. При превышении этого значение пустые очереди удаляются. (или те, которым меньше всего повезло).

Code Block
languagebash
net.inet.ip.fastforwarding=1


Code Block
languagebash
net.inet.ip.fw.dyn_keepalive 

Булева переменная. Заставляет генерировать «поддерживающие» пакеты (keep-alive) для tcp-соединений, обрабатываемых динамическими правилами keep-state. Установка в 1 понижает вероятность прерывания tcp-соединения по таймауту, но генерирует лишний трафик. Значение по умолчанию - 1.

Code Block
languagebash
net.inet.ip.fw.dyn_max 

Целочисленная переменная. Максимальное количество одновременно существующих динамических правил. Значение по умолчанию - 8192.

Проверка активности PPTP и PPPOE

PPTP

Code Block
languagebash
tcpdump -i em0 port 1723

PPPOE

Code Block
languagebash
tcpdump -i em0 -n not ip

или

Code Block
languagebash
tcpdump -i em0 -n ether proto 0x8863 '||' ether proto 0x8864

Internal server error

Internal Server Error

«The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, you@example.com and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.»

В большинстве случаев корни такой ошибки надо искать в логах апача.

Code Block
languagebash
/var/log/httpd/abills-error.log


Ошибки

RADIUS ошибки INBYTE OUTBYTE

Code Block
titleRADIUS ERROR
(132) perl: ERROR: Failed to create pair - Invalid vendor name in attribute name "OUTBYTE2"
(132) perl: ERROR: &request:OUTBYTE2 = $RAD_REQUEST{'OUTBYTE2'} -> '0'
(132) perl: ERROR: Failed to create pair - Invalid vendor name in attribute name "INTERIUM_OUTBYTE"
(132) perl: ERROR: &request:INTERIUM_OUTBYTE = $RAD_REQUEST{'INTERIUM_OUTBYTE'} -> '0'
(132) perl: ERROR: Failed to create pair - Invalid vendor name in attribute name "INTERIUM_INBYTE2"
(132) perl: ERROR: &request:INTERIUM_INBYTE2 = $RAD_REQUEST{'INTERIUM_INBYTE2'} -> '0'
(132) perl: ERROR: Failed to create pair - Invalid vendor name in attribute name "INBYTE2"
(132) perl: ERROR: &request:INBYTE2 = $RAD_REQUEST{'INBYTE2'} -> '0'
(132) perl: ERROR: Failed to create pair - Invalid vendor name in attribute name "INTERIUM_INBYTE"
(132) perl: ERROR: &request:INTERIUM_INBYTE = $RAD_REQUEST{'INTERIUM_INBYTE'} -> '0'
(132) perl: ERROR: Failed to create pair - Invalid vendor name in attribute name "OUTBYTE"
(132) perl: ERROR: &request:OUTBYTE = $RAD_REQUEST{'OUTBYTE'} -> '0' 

Так как биллинг использует свои внутрение переменные, которых нет в словарях, для акаунтинга радиус выдает предупреждение что их не понимает. На это не стоит обращать внимание.

Не отображаются ошибки подключения в 0.7 версии биллинга

В 0.7 версии были изменены конфигурационные файлы Freeradius. Обновите их,

Code Block
languagebash
cp /usr/abills/misc/freeradius/v2/default_rlm_perl /usr/local/etc/raddb/sites-enabled/abills_default

перезагрузить радиус.

ngctl: recv msg: No buffer space available

Есть некоторые моменты, которые следует учесть, если ваш сервер имеет большое количество соединений. Например, можно столкнуться с ситуацией, когда при выводе команды ngctl list будет выдаваться No buffer space available. Чтобы этого избежать следует добавить в /boot/loader.conf:

Code Block
languagebash
kern.ipc.nmbclusters=16384
kern.ipc.maxsockets=16384
net.graph.maxalloc=2048
kern.maxusers=512
kern.ipc.maxpipekva=32000000

в /etc/sysctl.conf:

Code Block
languagebash
net.graph.maxdgram=128000
net.graph.recvspace=128000

Обрыв сессии ровно через 00:37:30 минут

В этом виноват протокол передачи данных, у него это в голове зашито, что если данные не идут, то что бы не портить ничего, отключать интерфейс, это проверка на существование канала связи между пользователем и сервером и, если сервер видит, что трафик туда вообще не идет за определенный промежуток времени, он вешает трубку, если идет, то он оставляет все как есть.

В детализации сессии для таких сессий есть причина сброса указывается User-Request 
см. также Статистика

Linux pppd. rc_avpair_new: unknown attribute 48

В логе:

Code Block
languagebash
Aug 30 17:00:45 zeus pppd[14334]: rc_avpair_new: unknown attribute 48
Aug 30 17:00:45 zeus pppd[14334]: rc_avpair_new: unknown attribute 47

Не является критической ошибкой.
radiusclient не знает атрибуты:

Code Block
languagebash
ATTRIBUTE       Acct-Input-Packets      47      integer
ATTRIBUTE       Acct-Output-Packets     48      integer  

Добавляем в /etc/radiusclient/dictionary

Code Block
languagebash
INCLUDE        /etc/radiusclient/dictionary.merit  

Linux pppd. При достижении сессии 4 Gb статистика трафика обнуляется

Это ошибка в pppd версии 2.4.4
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=475122

Исправляется обновлением а также патч 1 или патч 2 на Ваш выбор

Добавляем в /etc/radiusclient/dictionary

Code Block
languagebash
ATTRIBUTE      Acct-Input-Gigawords    52      integer
ATTRIBUTE      Acct-Output-Gigawords   53      integer  

Linux pppd. Произвольный сброс сессии

Лог:

Code Block
languagebash
Dec 26 13:48:19 abills-access-srv pppd[9032]: rcvd [LCP TermReq id=0xb "&\37777777647o\37777777774\000<\37777777715t\000\000\000\000"]
Dec 26 13:48:19 abills-access-srv pppd[9032]: LCP terminated by peer (&M-'oM-|^@<M-Mt^@^@^@^@)
Dec 26 13:48:19 abills-access-srv pppd[9032]: sent [LCP TermAck id=0xb]

Скорее всего IP-адрес VPN шлюза и IP-адрес Windows совпадает, клиенту выдаётся тот же адрес что и адрес шлюза.

Linux pppd. Проходит PAP авторизация не проходит CHAP

В логе:

Code Block
languagebash
Dec 19 13:18:16 IRONVM pppd[3543]: rc_avpair_new: unknown attribute 60

Связано с тем, что radiusclient не передаёт параметр CHAP-Challenge
Добавляем в /etc/radiusclient/dictionary

Code Block
languagebash
ATTRIBUTE       CHAP-Challenge          60      string

Linux pppd. Не видно трафика в Мониторинг>Интернет+ (Не приходят Alive)

Проверить  Настройка>Сервер доступа  {выбрать нужный сервер через кнопку Карандаш, смотреть поле Alive}

Добавляем в /etc/radiusclient/dictionary на сервере доступа

ATTRIBUTE Acct-Interim-Interval 85 integer

Code Block
languagebash
ATTRIBUTE Session-Octets-Limit 227 integer 
ATTRIBUTE Octets-Direction 228 integer 

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 

Mikrotik - Пользователи логинятся и не попадают в биллинг

Разработчики Mikrotik признали эту проблему и исправили её в 2.9.34

Максимальное время 838:59:59

http://bugs.mysql.com/bug.php?id=11655

Table './abills/payments' is marked as crashed and should be repaired

или в /var/log/httpd/abills-error.log

Code Block
languagebash
[Fri Sep 07 15:45:27 2007] [error] [client 195.114.96.64] DBD::mysql::db do 
failed: Table './abills/web_online' is marked as crashed and should be repaired 
at ../../Abills/mysql//main.pm line 114.

У вас по какой то причине повреждена таблица web_online и надо её починить.

Code Block
languagebash
/usr/local/etc/rc.d/mysql-server stop
myisamchk -r /var/db/mysql/abills/*.MYI
/usr/local/etc/rc.d/mysql-server start

Можно пробовать и без остановки сервера БД, но может не починится полностью.

Восстановление InnoDB

Симптомы

1. В логе сервера Apache показывается следующее сообщение об ошибке:

Code Block
languagebash
MySQL query failed: Incorrect information in file: './abills/users.frm'  

2. При работе mysqldump и mysqlcheck появляется сообщение о несуществующей таблице (для проверки используйте учетную запись администратора MySQL):

Code Block
languagebash
~# mysqlcheck -uadmin -p****** db_example
db_example.BackupTasks
error    : Can't find file: 'payments.MYD' (errno: 2)

3. Невозможно выполнить запрос таблицы с оператором «SELECT»:

Code Block
languagebash
mysql> select * from payments.misc;
ERROR 1033 (HY000): Incorrect information in file: './abills/payments.frm' 

4. Таблица не может быть восстановлена, так как ядро InnoDB не поддерживает восстановление.

Code Block
languagebash
mysql> repair table payments;
+-------------------------+--------+----------+---------------------------------------------------------+
| Table                   | Op     | Msg_type | Msg_text                                                |
+-------------------------+--------+----------+---------------------------------------------------------+
| abills.payments         | repair | note     | The storage engine for the table doesn't support repair |
+-------------------------+--------+----------+---------------------------------------------------------+

Причина

Повреждения InnoDB часто связаны с неисправностью оборудования. Сохранение поврежденных страниц происходит в результате сбоев питания или повреждений памяти. Также эта проблема может возникать, если вы храните базы данных InnoDB в сетевом хранилище (NAS).

Решение

Существует несколько способов восстановить MySQL:

I. Принудительное восстановление InnoDB

  1. Остановите mysqld и сохраните резервную копию всех файлов, расположенных в папке /var/lib/mysql/:

    Code Block
    languagebash
    /etc/init.d/mysqld stop
    mkdir /root/mysql_backup
    cp -fpr /var/lib/mysql/* /root/mysql_backup/


  2. Добавьте опцию innodb_force_recovery в раздел [mysqld] в /etc/my.cnf. Эта опция позволит вам запустить mysqld и создать дамп базы данных.

    Code Block
    languagebash
     /etc/my.cnf
    [mysqld]
    innodb_force_recovery = 4


    Info

    Вы можете увеличить эту опцию до 5 или 6 - пока не получите оптимальный дамп.



  3. Запустите службу mysqld:

    Code Block
    languagebash
    /etc/init.d/mysqld start


  4. Создайте дамп всех баз данных:

    Code Block
    languagebash
    mysqldump -u root -A > /root/dumpall.sql

    Если при создании дампа возникла следующая ошибка:

    Code Block
    languagebash
    Incorrect information in file: './psa/APSApplicationItems.frm' when using LOCK TABLES"`

    Увеличьте значение innodb_force_recovery и повторите попытку. Если вы не можете создать дамп баз данных, попробуйте использовать способ II (скопировать содержимое таблицы) или III (восстановить из резервной копии).

  5. Остановите mysqld и удалите поврежденные данные:


    Code Block
    languagebash
    /etc/init.d/mysqld stop
    rm -rf /var/lib/mysql/*


  6. Удалите опцию innodb_force_recovery из файла /etc/my.cnf и запустите mysqld:


    Code Block
    languagebash
    /etc/init.d/mysqld start

    В результате этого будет восстановлена главная база данных «mysql» и движок баз данных InnoDB.

  7. Восстановите базы данных из дампа:


    Code Block
    languagebash
    mysql -uadmin -p`cat /etc/psa/.psa.shadow` < dumpall.sql



II. Копирование содержимого таблицы

  1. Остановите mysqld и сохраните резервную копию всех файлов, расположенных в папке /var/lib/mysql/:

    Code Block
    languagebash
    /etc/init.d/mysqld stop
    mkdir /root/mysql_backup
    cp -r /var/lib/mysql/* /root/mysql_backup/


  2. Добавьте опцию innodb_force_recovery в раздел [mysqld] в /etc/my.cnf. Эта опция позволит вам запустить mysqld и создать дамп базы данных.

    Code Block
    languagebash
    /etc/my.cnf
    [mysqld]
    innodb_force_recovery = 1


  3. Попробуйте создать копию:

    Code Block
    languagebash
    CREATE TABLE <новая таблица> LIKE <поврежденная таблица>;
    INSERT INTO <новая таблица> SELECT * FROM <поврежденная таблица>;


  4. Если получилось, удалите поврежденную таблицу и присвойте ее имя новой.


    Code Block
    languagebash
    DROP TABLE <поврежденная таблица>;
    RENAME TABLE <новая таблица> TO <поврежденная таблица>; 


failed: Illegal mix of collations

Code Block
languagebash
[Mon Mar 22 16:39:50 2010] [error] [client 195.250.69.44] DBD::mysql::st execute
 failed: Illegal mix of collations (cp1251_general_ci,IMPLICIT) and (latin1_swed
ish_ci,IMPLICIT) for operation '=' at ../../Abills/mysql//main.pm line 178., ref

CID в PPPOE и в PPTP

В PPTP CID не может принимать значение MAC так как он работает на сеансовом уровне (5-й уровень модели OSI), а PPPOE работает на канальном уровне (2-й уровень модели OSI).

MPD returned 512

Code Block
languagebash
[B-1] system: command "/usr/abills/libexec/linkupdown mpd up ng0 inet 192.168.100.1/32 10.0.0.247 'test' '' '' 
'178.95.37.98'" returned 512

Такая ошибка возникает если команды не обрабатываются mysql-ом. Проверьте МYSQL, и установлены ли модули DBI, DBD.

MPD returned 65280

Code Block
languagebash
[B-2] system: command "/usr/abills/libexec/linkupdown mpd up ng0 inet 192.168.100.1/32 10.0.0.63 'test' '' '' 
'178.93.132.92'" returned 65280

Такая ошибка возникает если МYSQL клиент на НАСе не может связаться с МYSQL сервером. Проверьте или хост МYSQL клиента добавлен в МYSQL сервер.

Mail delivery agent not exists

что это такое ?

Не настроен почтовый сервер и система не может отправить письма. Нужно настроить почтовый сервер.

Ошибки Windows клиента

Ошибка 800:

возникает, когда нет связи с сервером доступа, возможна вследствие:

  1. Отключен сетевой адаптер, проверить можно в разделе панель управления → сетевые подключения;

  2. Физические повреждения на линии или др. проблемы на стороне провайдера (обращайтесь в поддержку);

  3. Коннектор не вставлен в сетевую карту или установлен не плотно;

  4. Сетевая карта не настроена или настроена не правильно.

Ошибка 691:

сервер отказывает в авторизации, возможна вследствие:

  1. нет денег на счету;

  2. неправильное имя пользователя или пароль;

  3. «зависла сессия» вследствие некорректной перезагрузки компьютера, перебоев в энергоснабжении – самоустраняется в течение 5 мин;

  4. на сетевом адаптере прописан некорректный IP-адрес.

Ошибка 619:

Сервер отчуживает подключение:

  1. неправильные настройки безопасности и авторизации, в частности, не отключено шифрование.

Ошибка 629 (PPPoE подключение):

сервер отказывает в авторизации, возможна вследствие:

  1. нет денег на счету;

  2. неправильное имя пользователя или пароль;

  3. «зависла сессия» вследствие некорректной перезагрузки компьютера, перебоев в энергоснабжении – самоустраняется в течение 5 мин;

Ошибка 734 и др:

неправильно настроено подключение либо ограничение файерволла.

Ошибка 735:

ошибка возникает, если в свойствах протокола TCP/IP VPN-соединения жестко прописан IP-адрес.

Решение: зайти в Свойства VPN-соединения (правой кнопкой по значку - Свойства), открыть вкладку Сеть, найти Протокол Интернета TCP/IP, выделить, нажать кнопку Свойства. Отметить пункты «Получить IP-адрес автоматически» и «Получить адрес DNS-сервера автоматически». Нажать ОК. Пробовать подключиться.

Завершение сеанса Lost-Carrier от Lost-Service?

Lost-Carrier - потеря несущей, часто бывает на windows XP при перезагрузке (или просто при разрыве связи между сервером и клиентом) (где-то промежуточный свич выключен).

Суть данного кода завершения - указывает на проблему в транспорте между абонентом и сервером доступа. 

В PPPoE/PPTP существует протокол проверки «жизнеспособности» РРР соединения, которые через определенные интервалы времени (lcp-echo-interval) посылает пакеты, схожие по своей цели с icmp ping, но реализованы специально для туннельных соединений, и называются LCP-пакетами. Так вот, если есть проблемы в обмене подобными пакетами на определенном интервале времени, например, за 60 секунд ни один пакет не вернулся…то система завершит сессию с Lost-Carrier. Например, в Mikrotik этот параметр KeepAlive в свойствах сервера PPPoE/PPTP/L2TP Рекомендуется указывать 30,60,120.(любое из значений).

В IPoE/IPN/HotSpot - схожий алгоритм, его реализация зависит от авторов NAS, и там не используется LCP, так как это спец. протокол для РРР-туннелей, но суть данного кода завершения остается той же, указывает на проблему в транспорте между абонентом и сервером доступа. 

Как писалось выше это проблема транспорта между абонентом и сервером доступа.. Решают ее на месте устраняя источник проблема…это может быть что угодно, любое сетевое устройство от сетевой карты до L3 свича. 

Lost-Service - что то внутри демона (pppoe/pptp) не дает открыть сессию ( то ли ip занят, то ли уже шейпер есть с этим именем, по разному бывает).