Перейти до

Pon Monitor - система мониторинга PON


Рекомендованные сообщения

  • Відповіді 376
  • Створено
  • Остання відповідь

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

Вот решил выдать, кому интересно, собстветнную систему мониторинга PON сети - Pon Monitor. Сделана по аналогии с Poncontrol, но делалась по потребностям инженеров и монтажников.   Возмо

Вот Pon Monitor под BDCOM GP3600-16 Берите кому нужно. Переделка не профессиональная, поэтому берите как есть Pon Monitor.rar

проект живой. Продвигается медленно, так как нет на него пока времени

Posted Images

8 минут назад, romanset сказав:

что может быть, не проходить авторизацию 

настройки в vars.php
что-то не то в таблице users

Ссылка на сообщение
Поделиться на других сайтах
4 часа назад, romanset сказав:
  Відновити прихований контент

image.png.eea17457865f6d5d31691c9dd46bcd45.png

 

 

по виду все ОК, должно работать. Надо смотреть

Ссылка на сообщение
Поделиться на других сайтах

Начал работу на Pon Monitor v.2

Будет существующий функционал, но с измененным кодом, нормальной поддержкой GPON / EPON, больше 9 SFP, кучей других исправленніх мелочей + оповещения в телегу + запросы из телеги (например - в запрос на мак онушки - поиск ее на ОЛТ и выдача ее текущей инфо, полезно когда только подключили ОНУ, не надо ждать и искать ее).

Может еще какие идеи будут?

  • Like 3
Ссылка на сообщение
Поделиться на других сайтах
11 часов назад, VitalyMoiseev сказал:

Начал работу на Pon Monitor v.2

Будет существующий функционал, но с измененным кодом, нормальной поддержкой GPON / EPON, больше 9 SFP, кучей других исправленніх мелочей + оповещения в телегу + запросы из телеги (например - в запрос на мак онушки - поиск ее на ОЛТ и выдача ее текущей инфо, полезно когда только подключили ОНУ, не надо ждать и искать ее).

Может еще какие идеи будут?

Сделать отдельную таблицу, которая ведет статистику маков и айпи на ОНУшке. Вывод онушек, где мак слишком часто меняется. Например, хотим найти онушки, где за онушкой записей маков больше 3 или 5 или 10.

Ссылка на сообщение
Поделиться на других сайтах
35 минут назад, Небесный сказав:

Сделать отдельную таблицу, которая ведет статистику маков и айпи на ОНУшке.

ну, можно снимать ФДБ таблицу с ОЛТ, хранить ее и потом анализировать.

Но таблицу IP??? У нас же монитори ПОН - т.е. L2 свитча, какие IP???

Ссылка на сообщение
Поделиться на других сайтах
4 часа назад, VitalyMoiseev сказал:

ну, можно снимать ФДБ таблицу с ОЛТ, хранить ее и потом анализировать.

Но таблицу IP??? У нас же монитори ПОН - т.е. L2 свитча, какие IP???

Ой, да - туплю. Но, все равно - было бы даже круто и с маками такое сделать.

Відредаговано Небесный
Ссылка на сообщение
Поделиться на других сайтах
21 час назад, VitalyMoiseev сказал:

Начал работу на Pon Monitor v.2

Будет существующий функционал, но с измененным кодом, нормальной поддержкой GPON / EPON, больше 9 SFP, кучей других исправленніх мелочей + оповещения в телегу + запросы из телеги (например - в запрос на мак онушки - поиск ее на ОЛТ и выдача ее текущей инфо, полезно когда только подключили ОНУ, не надо ждать и искать ее).

Может еще какие идеи будут?

Будет ли поддерка не BDCOM оборудования ? V Solution например.

Ссылка на сообщение
Поделиться на других сайтах
21 час назад, VitalyMoiseev сказал:

Начал работу на Pon Monitor v.2

Будет существующий функционал, но с измененным кодом, нормальной поддержкой GPON / EPON, больше 9 SFP, кучей других исправленніх мелочей + оповещения в телегу + запросы из телеги (например - в запрос на мак онушки - поиск ее на ОЛТ и выдача ее текущей инфо, полезно когда только подключили ОНУ, не надо ждать и искать ее). 

Может еще какие идеи будут?

 

Ловить трапы... парсить и оповещать )  + писать все неймспейсами\классами

 

 

Відредаговано pashaumka
Ссылка на сообщение
Поделиться на других сайтах

Еще вопрос такой, при удалении ОЛТа со списка, база онушек очищается?

Есть одна маленькая неприятность, перенес всю ветку с одного ОЛТ на другой. Удалил на ОЛТе онушки, а базе онушки остались с привязкой до старого ОЛТа и его порта. Тоесть, я так понимаю нету web-механизма очистки ветки от онушек. Только лезть в базу и ручками там чистить?

Відредаговано Небесный
Ссылка на сообщение
Поделиться на других сайтах
6 часов назад, Небесный сказав:

а базе онушки остались с привязкой до старого ОЛТа и его порта. Тоесть, я так понимаю нету web-механизма очистки ветки от онушек. Только лезть в базу и ручками там чистить?

ничего чистить не надо. Как только ОНУшка появится на каком-то ОЛТ - она появится в списке уже на новом ОЛТ.

18 часов назад, pashaumka сказав:

Ловить трапы... парсить и оповещать

это врядли. Принимать SNMP трапы - это, здается мне, не для пхп задача.

19 часов назад, pashaumka сказав:

+ писать все неймспейсами\классами

это уж как получится. я ж не программист :)

Ссылка на сообщение
Поделиться на других сайтах

Онушка может поломаться , тогда только один выход лезть  базу.(Было б всетаки не плохо если б была кнопка дерегистраии и сразу удаление с олта и с базы). 

  • Like 1
Ссылка на сообщение
Поделиться на других сайтах
5 часов назад, romanset сказав:

Онушка может поломаться , тогда только один выход лезть  базу.(Было б всетаки не плохо если б была кнопка дерегистраии и сразу удаление с олта и с базы). 

будет список ОНУ, не зарегистрированных ни на одном ОЛТ - в него попадают ОНУ, которых нет на ОЛТ. Точнее - это уже есть

Скрытый текст

image.thumb.png.ebaf0754ef7f02a68dc89460aea10ca1.png

А уже из этого списка можно уже полностью удалить ОНУ и историю ее уровней

В 05.05.2020 в 7:41 PM, FedMast сказав:

Будет ли поддерка не BDCOM оборудования ? V Solution например.

будет "модульная" архитектура, с разными модулями опроса (даже для БДКОМа уже есть несколько вариантов опроса по снмп/телнет), тогда будет намного проще добавить другое оборудование.

Ссылка на сообщение
Поделиться на других сайтах
11 часов назад, VitalyMoiseev сказал:

будет список ОНУ, не зарегистрированных ни на одном ОЛТ - в него попадают ОНУ, которых нет на ОЛТ. Точнее - это уже есть

  Показать содержимое

image.thumb.png.ebaf0754ef7f02a68dc89460aea10ca1.png

А уже из этого списка можно уже полностью удалить ОНУ и историю ее уровней

будет "модульная" архитектура, с разными модулями опроса (даже для БДКОМа уже есть несколько вариантов опроса по снмп/телнет), тогда будет намного проще добавить другое оборудование.

namespace как раз это и дает.

Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, pashaumka сказав:

namespace как раз это и дает.

да? Ну и как namespase поможет в случае, когда, к примеру, на P3608B в принципе отсутствует ОИД, по которому на Р3310B/C получалась FDB таблица с ОНУ? :)

Ссылка на сообщение
Поделиться на других сайтах

когда вы начинаете писать "модулями", вы поймете.))))  

готовьтесь, что вам необходимо будет снимать данные с устройства, преобразовывать в свой промежуточный массив, затем выводить эти данные

 

Эти....


3310B
root@billing:/home/umka# snmpwalk -v2c -cpublic -Cc -On 10.ч.ч.ч .1.3.6.1.4.1.3320.152.1.1.3.36
.1.3.6.1.4.1.3320.152.1.1.3.36.375.128.20.168.124.79.88 = Hex-STRING: 80 14 A8 7C 4F 58 
.1.3.6.1.4.1.3320.152.1.1.3.36.300.124.139.202.133.248.81 = Hex-STRING: 7C 8B CA 85 F8 51 

3608
root@billing:/home/umka# snmpwalk -v2c -cpublic -Cc -On 10.с.с.с .1.3.6.1.4.1.3320.152.1.1.3.36
.1.3.6.1.4.1.3320.152.1.1.3.36.301.164.43.176.250.225.71 = Hex-STRING: A4 2B B0 FA E1 47 
root@billing:/home/umka# 

 

нате!

<?php
namespace devices\switches\vendors\BDCOM;

// .3320.152.1.1.1.ifindex   .vlan.m.a.c.a.d.r = ifIndex        ifFdbReadByPortIndex 
// .3320.152.1.1.2.ifIndex   .vlan.m.a.c.a.d.r = vlan           ifFdbReadByPortVlanID
// .3320.152.1.1.3.ifIndex   .vlan.m.a.c.a.d.r = mac            ifFdbReadByPortMacAddress

class Fdb extends \devices\switches\Fdb  {

        function __construct() {
                //echo "BDCOM Fdb\n";
                // Subclasses initialization
        }

        protected static function parse_fdb_array($ifIndex,$onu_fdb_reply) {
                $mac_count = 0;
                if( count($onu_fdb_reply) == 0 ) return false;
                self::$db_mem_ports_states -> clear_fdb_iface($ifIndex);
                foreach ($onu_fdb_reply as $key => $MacAddress_val){
                        $index = explode('.', $key);
                        $vlan_id=$index[0];
                        $mac=sprintf("%02x:%02x:%02x:%02x:%02x:%02x", $index[1],$index[2],$index[3],$index[4],$index[5],$index[6]);
                        self::$db_mem_ports_states->insert_fdb_entry( $ifIndex, $mac, $vlan_id);
                        $mac_count++;
                }
                return ($mac_count);
        }

        public static function get_epon_fdb_table($__ifIndex) {
                // опрашиваем "ветку дерева"
                // FDB at onu
                // оочень тяжелый запрос!!!!
                self::setTimeout(5);
                self::setRetries(1);
                if( false === ( $onu_fdb_reply = self::snmpQueryAll( ".1.3.6.1.4.1.3320.152.1.1.3.".$__ifIndex, "", -7 ) ) ) {
                    echo "bdcom\fdb::get_epon_fdb_table() :: false<br>\n";
                    return false; 
                }
                return ( self::parse_fdb_array($__ifIndex, $onu_fdb_reply) ); // вернет кол-во маков, найденных на интерфейсе головы 
        }
...
}


Кстати...

<?php

namespace devices\switches\vendors\BDCOM\M_P3600;

class Fdb extends \devices\switches\vendors\BDCOM\Fdb  {

        function __construct() {
                //echo "hello from BDCOM|P3608|Fdb<br>\n";
                // Subclasses initialization
        }
} // class


<?php

namespace devices\switches\vendors\BDCOM\M_P3310B;

class Fdb extends \devices\switches\vendors\BDCOM\Fdb  {

        function __construct() {
                //echo ", Fdb\n";
                // Subclasses initialization
        }

} // class




пустышки......

 

 

Відредаговано pashaumka
Ссылка на сообщение
Поделиться на других сайтах
Опубліковано: (відредаговано)
16 минут назад, pashaumka сказав:

нате!

Эти работают на P3608, но не работают на P3608B :)

Відредаговано VitalyMoiseev
Ссылка на сообщение
Поделиться на других сайтах
3 минуты назад, VitalyMoiseev сказал:

Эти работают на P3608, но не работают на P3608B :)

если не влом - дайте к голове доступ... поищу.. snmp достаточно

Відредаговано pashaumka
Ссылка на сообщение
Поделиться на других сайтах
Только что, pashaumka сказав:

если не влом - дайте к голове доступ... поищу..

Как говорил классик: "Все уже украдено найдено до вас!" (с)

 

Ссылка на сообщение
Поделиться на других сайтах
4 минуты назад, VitalyMoiseev сказал:

Как говорил классик: "Все уже украдено найдено до вас!" (с)

 

появится такая возможность "потискать " железку - допишу )

 

Ссылка на сообщение
Поделиться на других сайтах
13 минут назад, pashaumka сказав:

появится такая возможность "потискать " железку - допишу )

Этот метод работает и на P3310C, но не работает на P3310B.

подозреваю, что и на старых версиях 3600 серии тоже работать не будет.

ЗЫ: железка, к стати, интересная.

Ссылка на сообщение
Поделиться на других сайтах
<?php 

namespace devices\switches\vendors\BDCOM\M_P3608B;

class Fdb extends \devices\switches\vendors\BDCOM\Fdb  {

        function __construct() {
                //echo "hello from BDCOM|P3608B|Fdb<br>\n";
                // Subclasses initialization
        }
         
         
        public static function get_epon_fdb_table($__ifIndex) {
            if( false === ( $fdb_req = self::snmpWrite(".1.3.6.1.4.1.3320.101.9.2.1.0","i",$__ifIndex) ) ) return false;
            // опрашиваем "ветку дерева"
            // FDB at onu
            // оочень тяжелый запрос, ожидаем до 180 секунд
            self::setTimeout(5);
            self::setRetries(1);
            if( false === ( $raw_onu_fdb_reply = self::snmpQueryAll( ".1.3.6.1.4.1.3320.101.9.2.3.1","",-2) ) ) {
                echo "bdcom\fdb::get_epon_fdb_table() :: false<br>\n";
                return false; 
            }
            $onu_fdb_entry=array();
            $cache = array();
            $strings = \common\strings::getInstance();
            foreach($raw_onu_fdb_reply as $key => $value ) {
                $index = explode('.', $key);
                $func_id=$index[0];
                $rec_index=$index[1];
                switch($func_id) {   
                    case "1": continue; break;
                    case "2": $cache[$rec_index] = $value; break;
                    case "3": 
                        $_value = $strings->is_mac_addr(substr(bin2hex($value),0,12));
                        $onu_fdb_entry[$cache[$rec_index]][$_value]="YES";   // оставшемуся парсеру отдать [vlan][m:a:c:a:d:r]="что нибуть" 
                    break;
                    default: break;
                }
            }
            return ( self::parse_fdb_array($__ifIndex, $onu_fdb_reply) ); // вернет кол-во маков, найденных на интерфейсе головы или онушки
        }
}

 

Відредаговано pashaumka
  • Like 1
Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Вхід

Уже зарегистрированы? Войдите здесь.

Войти сейчас
  • Зараз на сторінці   0 користувачів

    Немає користувачів, що переглядають цю сторінку.

  • Схожий контент

    • Від legenda vols
      Всем привет, заезженная тема но приходиться искать по всем уголкам интернета - А именно OID и как их использовать.
      Начнём. 
      для новичков.
      bash 
      set_olt_oids() {
          # Общие для EPON (BDCOM)
          if [[ "$1" =~ ^(P3310|P3310B|P3310C|P3608|P3608B|P3316|P3600-16E|P3608-2TE|P3616-2TE|IEP3310)$ ]]; then
              OID_GET_MAC="1.3.6.1.4.1.3320.101.10.4.1.1"
              OID_VENDOR_ONU="1.3.6.1.4.1.3320.101.10.1.1.1"
              OID_MODEL_ONU="1.3.6.1.4.1.3320.101.10.1.1.2"
              OID_TEMP_ONU="1.3.6.1.4.1.3320.101.10.5.1.2"
              OID_AUNT_ONU_STATUS="SNMPv2-SMI::enterprises.3320.101.10.1.1.26"
              OID_UPTIME_ONU="1.3.6.1.4.1.3320.101.10.1.1.80"
              OID_DIST="1.3.6.1.4.1.3320.101.10.1.1.27"
              OID_IF_MAC10="1.3.6.1.4.1.3320.101.11.1.1.3"
              OID_IFindexmac10="1.3.6.1.4.1.3320.101.11.1.1.1"
              LASTREG_DATE="1.3.6.1.4.1.3320.101.11.1.1.9"
              LASTDEREG_DATE="1.3.6.1.4.1.3320.101.11.1.1.10"
              LASTDEREG_REASON="1.3.6.1.4.1.3320.101.11.1.1.11" 
              OID_ONU_ETH="1.3.6.1.4.1.3320.101.12.1.1.8"
              OID_PORT_INDEX="1.3.6.1.4.1.3320.101.107.1.1" # oid возвращает все индексы ПОН портов, работает не везде
              OID_GEPORT_COUNT="1.3.6.1.4.1.3320.101.10.1.1.12"
              OID_FEPORT_COUNT="1.3.6.1.4.1.3320.101.10.1.1.14"
              OID_REBOOT_ONU="1.3.6.1.4.1.3320.101.10.1.1.29" # snmpset -v2c -c RW IP OID.onuIndex i 0 reboot
              OID_DEL_ONU="SNMPv2-SMI::enterprises.3320.101.11.1.1.2" #.$portID.$mac10" i 0 #mac decimal onu
          fi
          # Общие для GPON
          if [[ "$1" =~ ^(GP3600-08|GP3600-16B|GP3600-08B)$ ]]; then
              ETH_STATUS="1.3.6.1.2.1.2.2.1.8" # статус порта 1 портовая ону
              ETH_STATUS4="1.3.6.1.4.1.3320.10.4.1.1.4" # статус портов 4х портовая ону
              OID_VENDOR_ONU="1.3.6.1.4.1.3320.10.3.1.1.2"
              OID_ADMIN_STATUS="1.3.6.1.4.1.3320.10.4.1.1.3"
              OID_DOWN_REASON="1.3.6.1.4.1.3320.10.3.1.1.35"
              OID_DIST="1.3.6.1.4.1.3320.10.3.1.1.33"
              OID_MODEL_ONU="1.3.6.1.4.1.3320.10.3.1.1.9"
              OID_VENDOR_ONU="1.3.6.1.4.1.3320.10.3.1.1.2"
              OID_REBOOT_ONU="1.3.6.1.4.1.3320.10.3.2.1.4" #snmpset -v2c -c RW IP OID.onuIndex i 1 reboot
              
          fi
          # Уникальные параметры для моделей
          case "$1" in
              # EPON модели
              P3310 | P3310B)
                  OID_RX_ONU="1.3.6.1.4.1.3320.101.10.5.1.6"
                  OID_RX_OLT="1.3.6.1.4.1.3320.9.183.1.1.5"
                  OID_PORT_LIST="1.3.6.1.4.1.3320.101.107.1.1"
                  ;;
              IEP3310)
                  OID_RX_ONU="1.3.6.1.4.1.3320.101.10.5.1.5"
                  OID_RX_OLT="1.3.6.1.4.1.3320.9.183.1.1.5"
                  OID_TX_ONU="1.3.6.1.4.1.3320.101.10.5.1.6"
                  ;;
              P3608 | P3608B | P3310C | P3316 | P3600-16E | P3608-2TE | P3616-2TE)
                  OID_RX_ONU="1.3.6.1.4.1.3320.101.10.5.1.5"
                  OID_RX_OLT="1.3.6.1.4.1.3320.101.108.1.3"
                  OID_TX_ONU="1.3.6.1.4.1.3320.101.10.5.1.6"
                  OID_PORT_LIST="1.3.6.1.4.1.3320.101.107.1.1"
                  ;;
              # GPON модели
              GP3600-08 | GP3600-16B | GP3600-08B | P3600-08E)
                  OID_RX_ONU="1.3.6.1.4.1.3320.10.3.4.1.2"
                  OID_RX_OLT="1.3.6.1.4.1.3320.10.2.3.1.3"
                  OID_TX_ONU="1.3.6.1.4.1.3320.10.3.4.1.3"
                  OID_GET_MAC="1.3.6.1.4.1.3320.10.3.1.1.4"
                  ;;
              *)
                  echo -e "\e[1;91mНеизвестный режим OLT: $1\e[0m"
                  return 1
                  ;;
          esac
          return 0
      }
      что бы было понятно в дальнейшем что за переменные 
      snmp1="snmpwalk -v2c -c паблик стринг"
      snmp2="snmpwalk -v2c -Ouqv -c паблик стринг"
      snmp3="snmpget -v2c -c паблик стринг"
      snmp3q="snmpget -v2c -Ouqv -c паблик стринг"
      snmp4="snmpget -v2c -Ouqv -c приват стринг"
      snmp5="snmpset -v2c -c приват стринг"

      EPON GEPON
      1- OID_GET_MAC="1.3.6.1.4.1.3320.101.10.4.1.1" на бдкомах епон 
      = SNMPv2-SMI::enterprises.3320.101.10.4.1.1.96 = Hex-STRING: A0 94 6A 97 CC 50
      snmp_response=$($snmp3 "$IP" "$OID_GET_MAC.$1" 2>/dev/null | awk -F'Hex-STRING: ' '{print tolower($2)}' | tr -d ' ')
          onu_mac=$(echo "$snmp_response" | sed 's/\(..\)/\1:/g;s/:$//') #Переводим в человеческий вид
          mac10=$(echo "$snmp_response" | awk '{    # Переводим в mac10 дада способов есть миллиард.
              for (i=1; i<=length; i+=2) {
                  printf "%d", strtonum("0x" substr($0, i, 2))
                  if (i + 2 <= length) printf "."
              }
              print ""
          }')

      лучший способ сделать функцию для форматирования снмп запросов в зависимости от типов STRING / HEX-STRING / COUNTER32 и тд тп.

      ifID=$($snmp1 "$IP" "$OID_IF_MAC10" 2>/dev/null | awk -v mac="$mac10" '$0 ~ mac {split($1, arr, "."); print arr[length(arr)-6]; exit}') 


      2 - OID_VENDOR_ONU="1.3.6.1.4.1.3320.101.10.1.1.1"
      тут без лишних слов возвращает вендор онушек 
      SNMPv2-SMI::enterprises.3320.101.10.1.1.1.97 = STRING: "XPON"   если укажем параметр -Oqv  или -Ouqv получим просто "XPON" и надо будет лишь сделать | tr -d ' " '    что бы удалить лапки.

      3 - OID_MODEL_ONU="1.3.6.1.4.1.3320.101.10.1.1.2" аналогично вендорам, получаем модель.

      4- OID_TEMP_ONU="1.3.6.1.4.1.3320.101.10.5.1.2"  - температура ону делим на / 256
      SNMPv2-SMI::enterprises.3320.101.10.5.1.2.17 = INTEGER: 7027  
      temp_onu=$($snmp3q $IP 1.3.6.1.4.1.3320.101.10.5.1.2.$INDEX | awk '{printf "%.2f", $1/265}' 2>/dev/null)

      5 - OID_AUNT_ONU_STATUS="1.3.6.1.4.1.3320.101.10.1.1.26"
      SNMPv2-SMI::enterprises.3320.101.10.1.1.26.276 = INTEGER: 3

      onuAunt_type=$($snmp3q $IP "$OID_AUNT_ONU_STATUS.$INDEX" 2>/dev/null)
          case "$onuAunt_type" in
              0) onuAunt_type_txt="authenticated" ;;
              1) onuAunt_type_txt="registered" ;;
              2) onuAunt_type_txt="deregistered" ;;
              3) onuAunt_type_txt="auto_config" ;;
              4) onuAunt_type_txt="lost" ;;
              *) onuAunt_type_txt="unknown" ;;
          esac

      6 - OID_UPTIME_ONU="1.3.6.1.4.1.3320.101.10.1.1.80" uptime
      SNMPv2-SMI::enterprises.3320.101.10.1.1.80.207 = INTEGER: 290907
      timetick 
      | awk '{h=int($1/3600); m=int(($1%3600)/60); s=$1%60; printf "AliveTime: %dч %dмин %dсек\n", h, m, s}')${reset}"

      7 - OID_DIST="1.3.6.1.4.1.3320.101.10.1.1.27"
      SNMPv2-SMI::enterprises.3320.101.10.1.1.27.149 = INTEGER: 1600
      на епоне в метрах  на гпоне делим на 10

      8 - OID_IF_MAC10="1.3.6.1.4.1.3320.101.11.1.1.3"
      SNMPv2-SMI::enterprises.3320.101.11.1.1.3.14.60.21.18.8.130.175 = Hex-STRING: 3C 15 12 08 82 AF  
      SNMPv2-SMI::enterprises.3320.101.11.1.1.3      .14-PORTINDEX     60.21.18.8.130.175  - MAC10                = Hex-STRING: MAC HEX

      9- OID_IFindexmac10="1.3.6.1.4.1.3320.101.11.1.1.1"
      SNMPv2-SMI::enterprises.3320.101.11.1.1.1.125.60.21.18.6.227.186 = INTEGER: 125
      SNMPv2-SMI::enterprises.3320.101.11.1.1.1.125.60.21.18.6.247.136 = INTEGER: 125
      возвращает PORT INDEX и можно грепнуть по mac10 найти индекс и можно грепнуть через мак10

      10 - LASTREG_DATE="1.3.6.1.4.1.3320.101.11.1.1.9"
      дату отдаёт в хексе. надо декодировать это дело.
      вызов snmp + IP + oid + PORTINDEX + MAC10 
      date_hex=$($snmp1 $IP "$LASTREG_DATE.$IF_INDEX.$mac10" 2>/dev/null | awk -F': ' '{print $2}' | tr -d ' ')
      if [[ -n "$date_hex" ]]; then
              # Преобразуем дату из hex в числовое представление
              data=($(echo "$date_hex" | sed 's/../0x& /g'))
              local year=$((data[0] * 256 + data[1]))
              local month=${data[2]}
              local day=${data[3]}
              local hour=${data[4]}
              local minute=${data[5]}
              local second=${data[6]}


      local formatted_date=$(printf "%04d-%02d-%02d %02d:%02d:%02d" "$year" "$month" "$day" "$hour" "$minute" "$second")


      10 - LASTDEREG_DATE="1.3.6.1.4.1.3320.101.11.1.1.10"
      аналогично 9му оиду.

      11 - LASTDEREG_REASON="1.3.6.1.4.1.3320.101.11.1.1.11" 
      DEREG_STATUS=$($snmp3 $IP "$LASTDEREG_REASON.$IF_INDEX.$mac10" -Oqv 2>/dev/null)
          case "$DEREG_STATUS" in
              2) dereg_status_text="normal";;
              3) dereg_status_text="mpcp-down";;
              4) dereg_status_text="oam-down";;
              5) dereg_status_text="firmware-download";;
              6) dereg_status_text="illegal-mac";;
              7) dereg_status_text="llid-admin-down";;
              😎 dereg_status_text="wire-down";;
              9) dereg_status_text="power-off";;
              255) dereg_status_text="unknown";;
              0) dereg_status_text="Нет данных.";;
              *) dereg_status_text="not found";;
          esac

      есть прикол если онушка autoconfig статус 3 / authenticated статус 0
      там инвертируються 7 и 8  может и от моделей ону зависеть.... 
      7) dereg_status_text="llid-admin-down";;
      😎 dereg_status_text="wire-down";;
      это уже тестами )


      12  -  OID_ONU_ETH="1.3.6.1.4.1.3320.101.12.1.1.8" статус езернет ничего не обычного кроме того что может верно отдать данные с 2-3го раза )
      2 down 1 up 
      там же есть прикол с authenticated autoconfig инвертируется...
      local PORT_COUNT=$($snmp2 "$IP" "$OID_ONU_ETH.$INDEX" | wc -l)
      local ETH_STATUS=$($snmp2 "$IP" "$OID_ONU_ETH.$INDEX.$port" 2>/dev/null)
              [[ "$ETH_STATUS" =~ ^[0-9]+$ ]] || continue  # Проверяем, что ETH_STATUS - это число
              if [[ "$onuAunt_type" == "0" ]]; then
                  STATUS_COLOR=$( [[ "$ETH_STATUS" -eq 2 ]] && echo "UP" || echo "DOWN" )
              else
                  STATUS_COLOR=$( [[ "$ETH_STATUS" -eq 1 ]] && echo "UP" || echo "DOWN" )
              fi

      13 - OID_PORT_INDEX="1.3.6.1.4.1.3320.101.107.1.1" # oid возвращает все индексы ПОН портов, работает не везде.
      14 - OID_GEPORT_COUNT="1.3.6.1.4.1.3320.101.10.1.1.12"   гигабит езернет порты на онушках (кол-во)
      15 - OID_FEPORT_COUNT="1.3.6.1.4.1.3320.101.10.1.1.14"   ФастЕзернет 100мбит аналогично. 
      INTEGER 

      16 - OID_REBOOT_ONU="1.3.6.1.4.1.3320.101.10.1.1.29" # snmpset -v2c -c RW IP OID.onuIndex i 0                                  reboot REBOOT ONU epon snmp
      $snmp5 "$IP" "$OID_REBOOT_ONU.$INDEX" i 0 >/dev/null 2>&1

      17 - delete onu epon  удалить ону бдком снмп 
      OID_DEL_ONU="SNMPv2-SMI::enterprises.3320.101.11.1.1.2"
      $snmp5 "$IP" "$OID_DEL_ONU.$ifID.$mac10" i 0 > /dev/null 2>&1    oid.PORTINDEX.mac10 i 0 
      остальные есть выше там думаю всё понятно.

      SIGNAL LEVELS в зависимости от моделей плат и олтов расписаны 
      все везде одинаково 
      $snmp2 "$IP" "$OID_RX_OLT.$INDEX" 2>/dev/null | awk '{print $NF / 10}')   результат делим на 10.

      epon пакеты, ошибки по портам на онушке.
      broadcasts=$($snmp4 "$IP" "1.3.6.1.4.1.3320.101.12.2.1.16.$INDEX.$port" 2>/dev/null)
      multicasts=$($snmp4 "$IP" "1.3.6.1.4.1.3320.101.12.2.1.17.$INDEX.$port" 2>/dev/null)
      unicasts=$($snmp4 "$IP" "1.3.6.1.4.1.3320.101.12.2.1.18.$INDEX.$port" 2>/dev/null)
      pause=$($snmp4 "$IP" "1.3.6.1.4.1.3320.101.12.2.1.19.$INDEX.$port" 2>/dev/null)
      fcserrs=$($snmp4 "$IP" "1.3.6.1.4.1.3320.101.12.2.1.20.$INDEX.$port" 2>/dev/null )
      oversize=$($snmp4 "$IP" "1.3.6.1.4.1.3320.101.12.2.1.13.$INDEX.$port" 2>/dev/null)
      jabber=$($snmp4 "$IP" "1.3.6.1.4.1.3320.101.12.2.1.14.$INDEX.$port" 2>/dev/null)

      мне бы такое помогло.. а не искать на тонне форумов и сайтов и неделю тыкая snmpwalk и выясняя что и для чего. остального и в инете полно. 
    • Від Amigo
      Продам GEPON ОЛТи BDCOM
      1. BDCOM P3310B (Вживаний) - 6000 грн.
      2. BDCOM P3310C (Вживаний) - 7500 грн.
      3. BDCOM P3310C (Вживаний без вух) - 7000 грн.
      4. BDCOM P3608-2TE (Вживаний) - 20000 грн.
      5. BDCOM P3608-2TE  (Вживаний) - 19000 грн.

    • Від grapefruit
      Доброго вечора, спільното!
      Можливо хтось стикався з завданням,коли потрібно на OLT BDCOM GP3600 по oid визначити час розреєстрування ону. В неті нічого знайти не вдалося, через MIB браузер тоже ніц.
      Якщо підкажете буде дуже вдячний, або хоч підкажіть де шукати.
      Всім гарного вечора)
    • Від alexeya
      Продам OLT ZTE C320. OLT укомплектован блоком живлення PRAM, двома платами GTGH(K00), платою керування SMXA(A31).

      Кожна GTGH-плата, це 16 GPON портів, 16 GPON модулів C++.
      SMXA-плата, це SFP+ (10G) порт, 1 гігабітний комбо порт.

      В наявності 2 одиниці. Один новий, один був у використанні (стан близький до нового)

      Ціна нового - 120000 грн
      Ціна вживаного - 105000 грн

      BDCOM GP-3600-08B куплявся в ДЕПСі в вересні 23 року. В ньому використовувались тільки 3 порти (тобто є тільки 3 GPON SFP модулі). 48к разом з модулями

      ОЛТИ без модулів:
      3310B-2AC - 1штука - 8000
      3310B - 2 штуки - 7500
      3310B + Proline UPS - 1 штука - 8500
      3310D + Proline UPS - 1 штука - 12500
      BDCOM P3600-04 + Proline UPS - 1 штука - 16500
      3616-2TE - 3 штуки - 53к

      Додам вживані EPON С++ модулі по 400 грн за штуку. Або нові по 750 грн за штуку
    • Від alexeya
      Продам оборудование в связи с прекращением деятельности телеком-оператора в Донецкой области.
       
      Eltex MES2324FB в отличном состоянии (8 штук) - 13.000 грн
      Eltex MES5324 (24 SFP+, 4 QSFP) - 62.000 грн
      Extreme Networks X620-16x (16 SFP+) - 42.000 грн
       
      OLT ZTE C320 (GTGH (K00) * 2, PRAM, SMXA (A31) - 32 GPON ports, C++ модули, 10G плата управления. Состояние близкое к новому (был в эксплуатации пол года) - 110.000грн, новый 125.000 грн.
       
      Juniper MX80 (MX5-T upgraded to MX80, 16 subsribers, все лицензии есть), есть 2 штуки. - 1700$
       
      Кабель бухтами (в Павлограде, могу привезти в Днепр или отправка деливери/нп)
      ОКТ-Д(1.0)-2Е1-0,36Ф3,5/0,22Н18-2 — 3000м - 3.5 грн/метр 
      ОКЗ(б2,7)Т-008(7,8 мм) — бухти 3840 и 4000 м - 13 грн/метр
      ОЦБгП-8А1(1х8) 2,7 кН — 2 бухти по 3830 м - 13 грн/метр
       
       
       
























×
×
  • Створити нове...