Jump to content

Recommended Posts

Posted (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 by simpl3x
Posted
В 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

  • 11 months later...
Posted

Реализовал скрипт авторегистрации Ону на олте через телнет

 

<?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);

?> 

 

 

Трафик в дефолтном влане. 

Posted

/некропостинг mode

 

В 16.02.2018 в 17:41, simpl3x сказал:

есть ли возможность на ZTE C320 зарегистрировать ONU без первоначальной привязки ее MAC

Если регистрировать по серийнику, то можно прописать хоть 1, хоть 100 ONU сразу со всеми настройками.

Posted

Я честно гвооря не ставил перед собой цели делать текст читабельным.

 

Я бы с удовольствием воспользовался SNMP вместо этого telnet костылинга. Но увы нигде никакой инфы.

  • 4 weeks later...
Posted

Нервы не выдерживают)

Абсолютно никакой инфы как забрать 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."

 

Posted

@petro_drozd в условиях отсутствия мибов я делал так. делает snmpwalk по всему дереву, затем меняете что вам нужно (ну т.е. добиваетесь изменения мак-таблицы), затем делаете walk ещё раз и делаете diff. да, вылезет куча мусора в виде счётчиков, но всё равно, в целом такой подход очень неплохо работает

Posted

может я ошибаюсь, но фишка в том, что не все оиды доступны по snmpwalk.

 

тем более недоступны значения write и всякие хитрые маневры типа "прочитать x, затем записать y"

Posted

у меня в биллинг интегрирована работа с bdcom 3310 

1. опрашиваю сигнал онушек

2. оправшиваю mac адреса за онушками для автоматической привязки онушки к пользователю

3. удаляю онушки с олта когда они переходят в другую ветку.

 

С ZTE C320 возникла проблема с регистрацией ону.

Она решилась хитровыделанным скриптом, в котором есть Telnet часть, которую я заменяю на snmp.

 

итого.

1. сигналы с ону - вроде как доступны.

2. таблица mac - найдена.

3. регистрация по snmp 

 

Posted

Короче 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 ));
}

 

  • 1 month later...
Posted
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

 

 

она становится зарегистрированной, но неизвестно как применить профили.

 

 

  • 1 year later...
Posted (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 by petro_drozd
  • 2 months later...
  • 5 months later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...
На сайте используются файлы cookie и сервисы аналитики для корректной работы форума и улучшения качества обслуживания. Продолжая использовать сайт, вы соглашаетесь с использованием файлов cookie и с Политикой конфиденциальности.