Jump to content
Local

dycost

Muggles
  • Content Count

    13
  • Joined

  • Last visited

Community Reputation

0 Обычный

About dycost

  • Rank
    Пролетал Мимо
  • Birthday 02/20/1984

Информация

  • Пол
    Мужчина
  1. нуу... как-то мимо он меня прошел
  2. хм... да, наверное.. ща полез смотреть доки, и действительно, есть возможность опроса свитчей.. давно не читал о нововведения, опробую ка настроение будет) я сначала подумал о модуле Новые маки,
  3. первое комманду, для получения мака, типо такой конструкции: "/usr/local/bin/snmpwalk -c " + name + " -v 2c -Cc " + IP + " " + oid_port + " | grep 'INTEGER: " + PORT +"$'" там фишка, что для разных коммутаторов разные OID'ы последняя парсит данные, что выдал snmpwalk как-то так: list_addr = map(lambda elem: '{0:0>2x}'.format(int(elem)), data.split(".")[-6:]) res = ":".join(list_addr) я просто старый скрипт разбил на 2. понимаю, что надо бы на php переписать, но лень, да и не знаю я php на столько.
  4. не, не помогло( где-то ограничивается глубина рекурсии в вызове процессов из процессов. пришлось переписать так чтобы snmpwalk из php вызывался. $command = shell_exec('/usr/local/www/apache22/data/billing/modules/general/get_mac/get_command.py ' . $_POST['switch_address'] . ' ' . $_POST['switch_port']); $data = shell_exec($command); $mac = shell_exec('/usr/local/www/apache22/data/billing/modules/general/get_mac/parse_mac.py ' . $data); Но гложет любопытство, что же это было? гугл молчалив и таинственен..
  5. В логах апача пусто. Ошибки вообще нет. Просто объект класса popen создается пустой. Про апдейт биллинга я подумал, ибо больше не происходило ничего. PHP, Apache,python не обновлялись и конфиги не правились. Штатный, насколько я помню, требует dhcp на этой же машине, а этим занимается совсем другая железка.
  6. Такая проблема. Был написан модуль для получения mac абонента с порта коммутатора. Модуль перестал работать после обновления биллинга. Обновлялся точно не скажу с какого релиза, ориентировочно 0.8.9 или 0.9.0. Суть вот в чем. Модуль использует скрипт на питоне вызываемый через popen, в принципе весь код вот: if (cfr('GET_MAC')) { $inputs = wf_TextInput('switch_address', __('Enter switch address'), '', true, '10'); $inputs.= wf_TextInput('switch_port', __('Enter switch port'), '', true, '10'); $inputs.= wf_Submit(__('Get')); $form = wf_Form("", 'POST', $inputs, 'glamour'); show_window(__('Get mac address from switch port'), $form); if (isset ($_POST['switch_address'])) { $process = popen(escapeshellcmd('/usr/local/www/apache22/data/billing/modules/general/get_mac/get_mac.py ' . $_POST['switch_address'] . ' ' . $_POST['switch_port']), "r"); $mac = fread($process, 2096); show_window(__('Active mac address: '), $mac); pclose($process); }; } else { show_error(__('Access denied')); } Питон потому, что парсинг на php я не осилил.. из питона вызывается snmpwalk через popen (да, такая вот матрешка), собственно для получения mac. До обновления все работало, и сейчас если выполнить из консоли что-то типа такого: <?php $process = popen(escapeshellcmd('/usr/local/www/apache22/data/billing/modules/general/get_mac/get_mac.py 172.16.0.182 2', "r"); $mac = fread($process, 2096); echo "$mac"; ?> то все работает. При выполнении из биллинга питон не создает процесс-потомок snmpwalk. Какие настройки php или биллинга копать?
  7. Не, рано я радовался, на версии RouterOS v6.22 и RouterOS v6.27 все работает, на RouterOS v5.26 нет. Проверил, на версии 5.26 остался синтаксис address-list (без s на конце)/ Убрал вообще строку address-lists = NULL из /etc/stargazer/system/executer/tpls/dhcp.ini вроде все работает. По идее, правильным было бы разбить настройки dhcp для разных версий ОС, как это сделано для очередей.
  8. Заработало, благодарю.
  9. Вот часть лога, где dhcp параметры обновляются: 2015-03-25 15:59:58 - [Executer] - MikroTik: <<< [21] /ip/dhcp-server/print 2015-03-25 15:59:58 - [Executer] - MikroTik: <<< [15] =.proplist=name 2015-03-25 15:59:58 - [Executer] - MikroTik: <<< [18] ?interface=bridge1 2015-03-25 15:59:58 - [Executer] - MikroTik: >>> [3/3] bytes read. 2015-03-25 15:59:58 - [Executer] - MikroTik: >>> [3, 22]!re 2015-03-25 15:59:58 - [Executer] - MikroTik: >>> [13/13] bytes read. 2015-03-25 15:59:58 - [Executer] - MikroTik: >>> [13, 8]=name=server1 2015-03-25 15:59:58 - [Executer] - MikroTik: >>> [5/5] bytes read. 2015-03-25 15:59:58 - [Executer] - MikroTik: >>> [5, 1]!done 2015-03-25 15:59:58 - [Database] - Debug: Query -> SELECT `mac` FROM nethosts WHERE `ip` = '172.1.102.34' 2015-03-25 15:59:58 - [Database] - Debug: Data -> `mac` is e8:94:f6:d7:b7:67 2015-03-25 15:59:58 - [Executer] - MikroTik: <<< [27] /ip/dhcp-server/lease/print 2015-03-25 15:59:58 - [Executer] - MikroTik: <<< [14] =.proplist=.id 2015-03-25 15:59:58 - [Executer] - MikroTik: <<< [17] ?comment=PopovaUA 2015-03-25 15:59:58 - [Executer] - MikroTik: >>> [3/3] bytes read. 2015-03-25 15:59:58 - [Executer] - MikroTik: >>> [3, 16]!re 2015-03-25 15:59:58 - [Executer] - MikroTik: >>> [7/7] bytes read. 2015-03-25 15:59:58 - [Executer] - MikroTik: >>> [7, 8]=.id=*A 2015-03-25 15:59:58 - [Executer] - MikroTik: >>> [5/5] bytes read. 2015-03-25 15:59:58 - [Executer] - MikroTik: >>> [5, 1]!done 2015-03-25 15:59:58 - [Executer] - MikroTik: <<< [25] /ip/dhcp-server/lease/set 2015-03-25 15:59:58 - [Executer] - MikroTik: <<< [21] =address=172.1.102.34 2015-03-25 15:59:58 - [Executer] - MikroTik: <<< [30] =mac-address=e8:94:f6:d7:b7:67 2015-03-25 15:59:58 - [Executer] - MikroTik: <<< [11] =client-id= 2015-03-25 15:59:58 - [Executer] - MikroTik: <<< [15] =server=server1 2015-03-25 15:59:58 - [Executer] - MikroTik: <<< [12] =rate-limit= 2015-03-25 15:59:58 - [Executer] - MikroTik: <<< [14] =address-list= 2015-03-25 15:59:58 - [Executer] - MikroTik: <<< [20] =lease-time=00:00:00 2015-03-25 15:59:58 - [Executer] - MikroTik: <<< [15] =use-src-mac=no 2015-03-25 15:59:58 - [Executer] - MikroTik: <<< [16] =block-access=no 2015-03-25 15:59:58 - [Executer] - MikroTik: <<< [20] =always-broadcast=no 2015-03-25 15:59:58 - [Executer] - MikroTik: <<< [12] =disabled=no 2015-03-25 15:59:58 - [Executer] - MikroTik: <<< [17] =comment=PopovaUA 2015-03-25 15:59:58 - [Executer] - MikroTik: <<< [7] =.id=*A 2015-03-25 15:59:58 - [Executer] - MikroTik: >>> [5/5] bytes read. 2015-03-25 15:59:58 - [Executer] - MikroTik: >>> [5, 35]!trap 2015-03-25 15:59:58 - [Executer] - MikroTik: >>> [26/26] bytes read. 2015-03-25 15:59:58 - [Executer] - MikroTik: >>> [26, 8]=message=unknown parameter 2015-03-25 15:59:58 - [Executer] - MikroTik: >>> [5/5] bytes read. 2015-03-25 15:59:58 - [Executer] - MikroTik: >>> [5, 1]!done 2015-03-25 15:59:58 - [Executer] - Error: DHCP entry can't be updated, unknown parameter
  10. На примере одного из микротиков: Интерфейс dhcp в микротике -- bridge1 Интерфейс пользователя в биллинге -- bridge1
  11. Насчет изменений в микротике я что-то в сомнении. До версии 6.22 в январе обновление было, до середины февраля точно все работало нормально. Проблема была замечена при вводе в строй нового микротика, arp, очереди и списки доступа на него загрузились, записи dhcp нет. На тот момент версия биллинга была 0.6.3. Тестирование на других микротиках выявило аналогичную проблему, обновление биллинга до 0.6.4 не помогло. Может поможет дополнительная информация. Изначально при смене IP абонента вылетала ошибка в файле api/libs/api.networking.php строка 666. Изучение вышеуказанного файла подсказало, что требуется формат Сеть/CIDR со слешем (ранее просто строковое значение было, для удобства привязки названия к услуге, ошибок не возникало, все работало). Смена на вышеуказанный формат привело к исчезновению ошибки, но обновление dhcp так и не заработало.
  12. Здравствуйте. С некоторых пор перестали обновляться записи dhcp на серверах доступа mikrotik. В логах stargazer при событии OnConnect обнаруживается такая ошибка: Error: DHCP entry can't be updated, unknown parameter Дебаг-режим включен, ничего более подробного в логах нет. ОС: FreeBSD 9.2-RELEASE-p15 Версия ubilling: 0.6.4
×