Jump to content
Local

Vsevolod

Muggles
  • Content Count

    9
  • Joined

  • Last visited

Community Reputation

0 Обычный

About Vsevolod

  • Rank
    Пролетал Мимо
  1. Разобрался, перенес скипты и папки docs в старгейзер. Просто реально этого нигде в документации не нашел.
  2. Подскажите , пожалуйста, после обновления микротика до 6.45.6 перестал автаризовываться старгейзер, в самом убиллинге все отлично - в разделе Сервера доступа (NAS) показываются расширенные настройки микротика и подтягиваются все данные. А вот сам старгейзер: 2019-10-19 13:33:28 - [Ubilling] - OnConnect started for user `1558511444`: 2019-10-19 13:33:32 - [Executer] - Error: Cannot establish connection with MikroTik! 2019-10-19 13:33:32 - [Ubilling] - QC: 2, elapsed time: 3.281 sec. в скрипте /api/libs/api.routeros.php вижу новый метод обращения по API: if ($UseNewConnMode) { $this->write('/login', false); $this->write('=name=' . $username, false); $this->write('=password=' . $password); $response = $this->read(false); if ($response[0] == '!done') { $this->connected = true; break; } } else { $this->write('/login'); $response = $this->read(false); if (isset($response[0]) && $response[0] == '!done') { if (preg_match_all('/[^=]+/i', $response[1], $matches)) { if ($matches[0][0] == 'ret' && strlen($matches[0][1]) == 32) { $this->write('/login', false); $this->write('=name=' . $username, false); $this->write('=response=00' . md5(chr(0) . $password . pack('H*', $matches[0][1]))); $response = $this->read(false); if ($response[0] == '!done') { $this->connected = true; break; } } } } } в скрипте самого executer-а старый метод: private function connect() { for ($ATTEMPT = 1; $ATTEMPT <= $this->config['attempts']; $ATTEMPT++) { $this->connected = FALSE; $this->log->message(__CLASS__, 'Connection attempt #' . $ATTEMPT . ' to ' . $this->parameters['ip'] . ':' . $this->config['api_port'] . '...', "api"); if ( $this->socket = @fsockopen($this->parameters['ip'], $this->config['api_port'], $this->error_no, $this->error_str, $this->config['timeout']) ) { socket_set_timeout($this->socket, $this->config['timeout']); $this->write('/login'); $RESPONSE = $this->read(FALSE); if ( $RESPONSE[0] == '!done' ) { if ( preg_match_all('/[^=]+/i', $RESPONSE[1], $MATCHES) ) { if ( $MATCHES[0][0] == 'ret' && strlen($MATCHES[0][1]) == 32 ) { $this->write('/login', FALSE); $this->write('=name=' . $this->options['username'], FALSE); $this->write('=response=00' . md5(chr(0) . $this->options['password'] . pack('H*', $MATCHES[0][1]))); $RESPONSE = $this->read(FALSE); if ( $RESPONSE[0] == '!done' ) { $this->connected = TRUE; break; } } } } Переделываю точб-в точь как в /api/libs/api.routeros.php и глухо. Подскажите что сделать нужно еще или может кто-то использует уже старгейзер с новым методом API для микротика - покажите вашу функцию connect в старгейзере.
  3. Все получилось, спасибо!
  4. по бгп приходит около 90К префиксов. Сделать бы как-нибудь для isp1 и isp3 отдельные routes tables с дефолтом на каждого, но чтоб сначала смотрело в main таблицу на наличие маршрутов приходящих по бгп.
  5. нет, это не домашние интернеты
  6. ничего не анонсим, у нас нет своих сетей, каждый провайдер выделил по сеточке своей, в них и натим...А как оно должно работать? Если вы по бгп ничего не шлете, то и ездить к вам ничего не будет, это же элементарно. Простите, мы им анонсим их же сеть, которую они нам выделили, но если бы и не анонсили они статик роут этой сеточки просто прописали в нашу сторону и всё...
  7. ничего не анонсим, у нас нет своих сетей, каждый провайдер выделил по сеточке своей, в них и натим...
  8. Добрый день! Имеется mikrotik ССR 1036, заведено 3 провайдера, один из которых (isp2) отдает по bgp n-ое количество префиксов. Также есть 2 абонентские сети ( 172.18.0.0/22, 10.0.0.0/22). Нужно чтоб первая сеть (172.18.0.0/22) ходила через isp2, если маршрут приходит по bgp, если же не приходит то уходила в isp1, и также со второй (10.0.0.0/22) - чтоб уходила в isp2, если маршрут приходит по bgp, если же не приходит то уходила в isp3. Подскажите, пожалуйста, реализацию.
×