simpl3x Posted February 16, 2018 (edited) · Report post есть ли возможность на ZTE C320 реализовать некий аналог, как это сделано на BDCOM3310: epon onu-config-template default ... cmd-sequence 5 epon onu all-port ctc vlan mode tag %1 ... ! interface EPON0/1 epon pre-config-template default binded-onu-llid 64 param 2064 ... epon pre-config-template default binded-onu-llid 1 param 2001 ! т.е. зарегистрировать ONU без первоначальной привязки ее MAC, и подсунуть ей первоначальный конфиг. в идеале с входящими параметрами, которые статически заданы на OLT Edited February 16, 2018 by simpl3x Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
itadakimas Posted February 19, 2018 · Report post В 16.02.2018 в 19:41, simpl3x сказал: есть ли возможность на ZTE C320 реализовать некий аналог, как это сделано на BDCOM3310: epon onu-config-template default ... cmd-sequence 5 epon onu all-port ctc vlan mode tag %1 ... ! interface EPON0/1 epon pre-config-template default binded-onu-llid 64 param 2064 ... epon pre-config-template default binded-onu-llid 1 param 2001 ! т.е. зарегистрировать ONU без первоначальной привязки ее MAC, и подсунуть ей первоначальный конфиг. в идеале с входящими параметрами, которые статически заданы на OLT Добрый день. Исходя из нашего опыта могу сказать, что Huawei и ZTE позиционируют работы своих устройств в связке с NMS(для ZTE Netnaumen). Вся автоматизация делается через NMS Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
petro_drozd Posted February 15, 2019 · Report post Реализовал скрипт авторегистрации Ону на олте через телнет <?php function fgets_u($pStdn) { $pArr = array($pStdn); if (false === ($num_changed_streams = stream_select($pArr, $write = NULL, $except = NULL, 0))) { print("\$ 001 Socket Error : UNABLE TO WATCH STDIN.\n"); return FALSE; } elseif ($num_changed_streams > 0) { return trim(fgets($pStdn, 1024)); } } $olt_port= "2"; $olt_host= "10.0.6.99"; $olt_user = "admin"; $olt_passwd = "admin"; $onu_profile = "LP_ONU-1G"; $onu_type = "ONU_1G"; $fp=pfsockopen("$olt_host",23); echo "Telnet session opening ..."; sleep(1); echo fgets_u ($fp)."\r\n"; echo fgets_u ($fp)."\r\n"; echo fgets_u ($fp)."\r\n"; echo fgets_u ($fp)."\r\n"; /**/ fputs($fp,"$olt_user\r\n"); echo fgets_u ($fp)."\r\n"; fputs($fp,"$olt_passwd\r\n"); sleep(1); echo fgets_u ($fp)."\r\n"; fputs($fp,"\r\n"); echo fgets_u ($fp)."\r\n"; fputs($fp,"configure terminal\r\n"); sleep(1); echo fgets_u ($fp)."\r\n"; echo fgets_u ($fp)."\r\n"; fputs($fp,"\r\n"); fputs($fp,"interface gpon-olt_1/1/$olt_port\r\n"); sleep(1); echo fgets_u ($fp)."\r\n"; echo fgets_u ($fp)."\r\n"; fputs($fp,"\r\n"); echo fgets_u ($fp)."\r\n"; fputs($fp,"show pon onu uncfg\r\n"); sleep(1); echo fgets_u ($fp)."\r\n"; $unreg = fgets_u ($fp); if ($unreg!="%Code 40285 : No related information to show."){ echo $unreg."\r\n"; echo fgets_u ($fp)."\r\n"; fputs($fp,"\r\n"); while ($line= fgets ($fp)) { if (substr ($line,0,4)=="ZXAN"){ break(1); }else{ print ($line."\r\n"); $onu[]= substr($line,41,12); } } }else{ echo $unreg ; } fputs($fp,"show gpon onu baseinfo gpon-olt_1/1/$olt_port\r\n"); sleep(1); echo fgets_u ($fp)."\r\n"; echo fgets_u ($fp)."\r\n"; fputs($fp,"\r\n"); while ($line= fgets ($fp)) { if (substr ($line,0,4)==" --M"){ fputs($fp," \r\n"); } if (substr ($line,0,4)=="ZXAN"){ break(1); }else{ print ($line); $max_onu_reg= substr($line,15,3); } } if (isset($onu)){ foreach ($onu as $sn){ print ($sn."\r\n"); $max_onu_reg=$max_onu_reg+1; fputs($fp,"onu $max_onu_reg type $onu_type sn $sn \r\n"); echo "onu $max_onu_reg type $onu_type sn $sn \r\n"; while ($line= fgets ($fp)) { if (substr ($line,0,4)=="ZXAN"){ break(1); print ($line."\r\n"); }else{ print ($line."\r\n"); } } fputs($fp,"onu $max_onu_reg profile line $onu_profile \r\n"); echo "onu $max_onu_reg profile line $onu_profile \r\n"; while ($line= fgets ($fp)) { if (substr ($line,0,4)=="ZXAN"){ break(1); print ("!!".$line."\r\n"); }else{ print ("--".$line."\r\n"); } } } } sleep(1); fputs($fp,"exit\r\n\r\n"); echo "3".fgets_u ($fp)."\r\n"; echo "4".fgets_u ($fp)."\r\n"; sleep(1); echo "5".fgets_u ($fp)."\r\n"; foreach ($onu as $key=>$value){ $curr_onu= $max_onu_reg+$key; fputs($fp,"pon-onu-mng gpon-onu_1/1/$olt_port:$curr_onu\r\n\r\n"); sleep(1); echo "3".fgets_u ($fp)."\r\n"; echo "3".fgets_u ($fp)."\r\n"; sleep(1); fputs($fp,"service 1 gemport 1 untag\r\n\r\n"); sleep(2); echo "4".fgets_u ($fp)."\r\n"; echo "4".fgets_u ($fp)."\r\n"; echo "4".fgets_u ($fp)."\r\n"; echo "4".fgets_u ($fp)."\r\n"; } echo "Telnet session closing ..."."\r\n"; ; fclose($fp); ?> Трафик в дефолтном влане. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
snark Posted February 17, 2019 · Report post /некропостинг mode В 16.02.2018 в 17:41, simpl3x сказал: есть ли возможность на ZTE C320 зарегистрировать ONU без первоначальной привязки ее MAC Если регистрировать по серийнику, то можно прописать хоть 1, хоть 100 ONU сразу со всеми настройками. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
s.lobanov Posted February 17, 2019 · Report post @petro_drozd откройте для себе expect, код станет куда более читабельным https://linux.die.net/man/1/expect Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
petro_drozd Posted February 17, 2019 · Report post Я честно гвооря не ставил перед собой цели делать текст читабельным. Я бы с удовольствием воспользовался SNMP вместо этого telnet костылинга. Но увы нигде никакой инфы. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
s.lobanov Posted February 17, 2019 · Report post @petro_drozd посмотрите на down.51cto.com, для хуавей там сливают всякое, для zte не искал Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
petro_drozd Posted March 13, 2019 · Report post Нервы не выдерживают) Абсолютно никакой инфы как забрать mac таблицу по snmp Пишут что надо скачать netnumen и встать на него wireshark, но где взять netnumen х.з. Нашел таблицу [define] DEVICE="ZTE 320" [signal] SIGNALMODE="ZTE" SIGINDEX=".1.3.6.1.4.1.3902.1015.1010.1.1.1.29.1.5." MACINDEX=".1.3.6.1.4.1.3902.1015.1010.1.1.1.1.1.4" SIGVALUE="STRING:" MACVALUE="Hex-STRING:" OFFSET="0" OFFSETMODE="none" DOWNVALUE="No Such Instance currently exists at this OID" [misc] CARDOFFSET="1" FDBINDEX=".1.3.6.1.4.1.3902.1015.6.1.3.1.5.1" [vlan] PVID=".1.3.6.1.4.1.3902.1015.1010.1.1.1.19.1.1." ADDUNI=".1.3.6.1.4.1.3902.1015.1010.1.1.1.10.1.1.1." ALLONU="" ALLCARDS=".1.3.6.1.4.1.3902.1015.2.1.1.3.1.4" TRUNK="" ADDPON=".1.3.6.1.4.1.3902.1015.20.4.1.1." [onu_reg] TYPE="EPON" ALLCARDS=".1.3.6.1.4.1.3902.1015.2.1.1.3.1.4" UNCFGLIST=".1.3.6.1.4.1.3902.1015.1010.1.7.14.1.2" EACHLLID=".1.3.6.1.4.1.3902.1015.1010.1.7.4.1.1." Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
s.lobanov Posted March 13, 2019 · Report post @petro_drozd в условиях отсутствия мибов я делал так. делает snmpwalk по всему дереву, затем меняете что вам нужно (ну т.е. добиваетесь изменения мак-таблицы), затем делаете walk ещё раз и делаете diff. да, вылезет куча мусора в виде счётчиков, но всё равно, в целом такой подход очень неплохо работает Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
petro_drozd Posted March 13, 2019 · Report post может я ошибаюсь, но фишка в том, что не все оиды доступны по snmpwalk. тем более недоступны значения write и всякие хитрые маневры типа "прочитать x, затем записать y" Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
s.lobanov Posted March 13, 2019 · Report post @petro_drozd для write - да, для read обычно всё доступно через walk, но бывают нюансы, да, что какая-то ветка не обходится walk-ом, хз специально это делают или бага вам-то что нужно сделать? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
petro_drozd Posted March 13, 2019 · Report post у меня в биллинг интегрирована работа с bdcom 3310 1. опрашиваю сигнал онушек 2. оправшиваю mac адреса за онушками для автоматической привязки онушки к пользователю 3. удаляю онушки с олта когда они переходят в другую ветку. С ZTE C320 возникла проблема с регистрацией ону. Она решилась хитровыделанным скриптом, в котором есть Telnet часть, которую я заменяю на snmp. итого. 1. сигналы с ону - вроде как доступны. 2. таблица mac - найдена. 3. регистрация по snmp Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
petro_drozd Posted March 14, 2019 · Report post Короче 12 часов работы и я его интегрировал. //список онушек $ZTEonuActivePonDiidoid = '.1.3.6.1.4.1.3902.1012.3.28.1.1.2'; //статусы онушек 0-выключена 6-включена $ZTEonuStatusoid =".1.3.6.1.4.1.3902.1012.3.28.2.1.3"; //mac адреса онушек нужно откусить первые 4 символа $ZTEonuIDoid = ".1.3.6.1.4.1.3902.1012.3.28.1.1.5"; //вендор онушки $ZTEonuVendorIDoid = '1.3.6.1.4.1.3902.1012.3.50.11.2.1.1'; //мощща на онушке если больше 30000 $RxPower = ($RxPower-65536)*0.002-30; если меньше 30000 $RxPower = $RxPower*0.002-30; $ZTEopModuleRxPoweroid = '.1.3.6.1.4.1.3902.1012.3.50.12.1.1.10'; // Дистанция вроде как метры $ZTEonuDistanceoid = '.1.3.6.1.4.1.3902.1012.3.11.4.1.2'; // Состояние Меди $ZTEonuUniIfOperStatusoid = '1.3.6.1.4.1.3902.1012.3.50.14.1.1.7'; //Список мак адресов $ZTEifFdbReadByPortMacAddressoid ='.1.3.6.1.4.1.3902.1015.6.1.3.1.5.1'; Функция для поиска Oid для списка мак адресов за онушкой function encode_gponOnuIndex($shelf="0", $slot="0", $port="0", $onu_num="0") { return( (1 << 30) + (($shelf -1 ) << 21 )+ (($slot - 1) << 20 )+ ( ($port - 1) << 16 )+ ( ($onu_num - 1 ) << 8 )); } Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
petro_drozd Posted March 15, 2019 · Report post Нашел как регать через SNMP Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
petro_drozd Posted March 20, 2019 · Report post Есть мибы. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
max1976 Posted March 20, 2019 · Report post 27 минут назад, petro_drozd сказал: Есть мибы. Поделитесь. Спасибо. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
petro_drozd Posted March 20, 2019 · Report post Скинул Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
lumenok Posted March 22, 2019 · Report post Поделитесь мибами, пожалуйста! Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
~AsmodeuS~ Posted May 21, 2019 · Report post On 3/20/2019 at 7:46 PM, petro_drozd said: Есть мибы. Поделитесь мибамы регистрации Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
petro_drozd Posted May 21, 2019 · Report post 1 minute ago, ~AsmodeuS~ said: Поделитесь мибамы регистрации ничего путного пока не получилось. Там есть список незарегистрированных snmpwalk -c xxxx -v2c -On 10.0.6.99 iso.3.6.1.4.1.3902.1012.3.13.3.1.2 .1.3.6.1.4.1.3902.1012.3.13.3.1.2.268503040.1 = Hex-STRING: 5A 54 45 47 C6 75 C0 B6 .1.3.6.1.4.1.3902.1012.3.13.3.1.2.268503040.2 = Hex-STRING: 54 44 54 43 E6 D1 60 E5 .1.3.6.1.4.1.3902.1012.3.13.3.1.2.268503040.3 = Hex-STRING: 45 4C 54 58 79 16 AE 8A вписать незарегистрированную в новый слот snmpset -c xxxx -v2c -On 10.0.6.99 .1.3.6.1.4.1.3902.1012.3.28.1.1.5.268503040.1 x 0x54445443E6D160E5 .1.3.6.1.4.1.3902.1012.3.28.1.1.5.268503040.1 = Hex-STRING: 54 44 54 43 E6 D1 60 E5 она становится зарегистрированной, но неизвестно как применить профили. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
~AsmodeuS~ Posted May 23, 2019 · Report post спасибо Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
petro_drozd Posted August 6, 2020 (edited) · Report post Пытаюсь опять сделать, нашел более менее механизм регистрации, но получается через раз /// включаем создание онушки zxGponOntDevMgmtEntryStatus ROWSTATUS INTEGER {active(1), notInService(2), notReady(3), createAndGo(4), createAndWait(5), destroy(6) } snmpset( $olt_host, $community, ".1.3.6.1.4.1.3902.1012.3.28.1.1.9.".$port_index.".".$max_onu_reg, 'i' , 4); //// переводим в режим zxGponOntRegMode This attribute indicates the onu registration mode. regModeSn:GPON/XGPON -- G.984 G.987 -- 8bytes snmpset( $olt_host, $community, ".1.3.6.1.4.1.3902.1012.3.28.1.1.12.".$port_index.".".$max_onu_reg, 'i' , 1); /// Задаем профиль zxGponOntDevMgmtTypeName snmpset( $olt_host, $community, ".1.3.6.1.4.1.3902.1012.3.28.1.1.1.".$port_index.".".$max_onu_reg, 's' , "ONU_1G"); /// Задаем серийный номер zxGponOntDevMgmtTypeName snmpset( $olt_host, $community, ".1.3.6.1.4.1.3902.1012.3.28.1.1.5.".$port_index.".".$max_onu_reg, 'x' , "0x".$sn); Совершенно не получается создать профили zxGponGemPortEntry, zxGponOntBpInfoEntry Edited August 6, 2020 by petro_drozd Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
petro_drozd Posted October 20, 2020 · Report post А кто-нибудь еще копает мибы? Есть куча моментов, но мне кажется тут будет монолог. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
jackmx Posted April 20, 2021 · Report post Попрошу и себе МИБы, пробую тоже написать авторег Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
petro_drozd Posted April 20, 2021 · Report post Что конкретно вас интересует? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...