simpl3x Posted February 16, 2018 Posted February 16, 2018 (edited) есть ли возможность на 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
itadakimas Posted February 19, 2018 Posted February 19, 2018 В 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
petro_drozd Posted February 15, 2019 Posted February 15, 2019 Реализовал скрипт авторегистрации Ону на олте через телнет <?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
snark Posted February 17, 2019 Posted February 17, 2019 /некропостинг mode В 16.02.2018 в 17:41, simpl3x сказал: есть ли возможность на ZTE C320 зарегистрировать ONU без первоначальной привязки ее MAC Если регистрировать по серийнику, то можно прописать хоть 1, хоть 100 ONU сразу со всеми настройками. Вставить ник Quote
s.lobanov Posted February 17, 2019 Posted February 17, 2019 @petro_drozd откройте для себе expect, код станет куда более читабельным https://linux.die.net/man/1/expect Вставить ник Quote
petro_drozd Posted February 17, 2019 Posted February 17, 2019 Я честно гвооря не ставил перед собой цели делать текст читабельным. Я бы с удовольствием воспользовался SNMP вместо этого telnet костылинга. Но увы нигде никакой инфы. Вставить ник Quote
s.lobanov Posted February 17, 2019 Posted February 17, 2019 @petro_drozd посмотрите на down.51cto.com, для хуавей там сливают всякое, для zte не искал Вставить ник Quote
petro_drozd Posted March 13, 2019 Posted March 13, 2019 Нервы не выдерживают) Абсолютно никакой инфы как забрать 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
s.lobanov Posted March 13, 2019 Posted March 13, 2019 @petro_drozd в условиях отсутствия мибов я делал так. делает snmpwalk по всему дереву, затем меняете что вам нужно (ну т.е. добиваетесь изменения мак-таблицы), затем делаете walk ещё раз и делаете diff. да, вылезет куча мусора в виде счётчиков, но всё равно, в целом такой подход очень неплохо работает Вставить ник Quote
petro_drozd Posted March 13, 2019 Posted March 13, 2019 может я ошибаюсь, но фишка в том, что не все оиды доступны по snmpwalk. тем более недоступны значения write и всякие хитрые маневры типа "прочитать x, затем записать y" Вставить ник Quote
s.lobanov Posted March 13, 2019 Posted March 13, 2019 @petro_drozd для write - да, для read обычно всё доступно через walk, но бывают нюансы, да, что какая-то ветка не обходится walk-ом, хз специально это делают или бага вам-то что нужно сделать? Вставить ник Quote
petro_drozd Posted March 13, 2019 Posted March 13, 2019 у меня в биллинг интегрирована работа с bdcom 3310 1. опрашиваю сигнал онушек 2. оправшиваю mac адреса за онушками для автоматической привязки онушки к пользователю 3. удаляю онушки с олта когда они переходят в другую ветку. С ZTE C320 возникла проблема с регистрацией ону. Она решилась хитровыделанным скриптом, в котором есть Telnet часть, которую я заменяю на snmp. итого. 1. сигналы с ону - вроде как доступны. 2. таблица mac - найдена. 3. регистрация по snmp Вставить ник Quote
petro_drozd Posted March 14, 2019 Posted March 14, 2019 Короче 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
petro_drozd Posted March 15, 2019 Posted March 15, 2019 Нашел как регать через SNMP Вставить ник Quote
max1976 Posted March 20, 2019 Posted March 20, 2019 27 минут назад, petro_drozd сказал: Есть мибы. Поделитесь. Спасибо. Вставить ник Quote
lumenok Posted March 22, 2019 Posted March 22, 2019 Поделитесь мибами, пожалуйста! Вставить ник Quote
~AsmodeuS~ Posted May 21, 2019 Posted May 21, 2019 On 3/20/2019 at 7:46 PM, petro_drozd said: Есть мибы. Поделитесь мибамы регистрации Вставить ник Quote
petro_drozd Posted May 21, 2019 Posted May 21, 2019 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
petro_drozd Posted August 6, 2020 Posted August 6, 2020 (edited) Пытаюсь опять сделать, нашел более менее механизм регистрации, но получается через раз /// включаем создание онушки 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
petro_drozd Posted October 20, 2020 Posted October 20, 2020 А кто-нибудь еще копает мибы? Есть куча моментов, но мне кажется тут будет монолог. Вставить ник Quote
jackmx Posted April 20, 2021 Posted April 20, 2021 Попрошу и себе МИБы, пробую тоже написать авторег Вставить ник Quote
petro_drozd Posted April 20, 2021 Posted April 20, 2021 Что конкретно вас интересует? Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.