Jump to content
Калькуляторы

ZTE C320 конфигурация ONU через профили

есть ли возможность на 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

Share this post


Link to post
Share on other sites

В 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

Share this post


Link to post
Share on other sites

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

 

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

?> 

 

 

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

Share this post


Link to post
Share on other sites

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

 

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

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

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

Share this post


Link to post
Share on other sites

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

 

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

Share this post


Link to post
Share on other sites

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

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

 

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

 

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

Share this post


Link to post
Share on other sites

@petro_drozd для write - да, для read обычно всё доступно через walk, но бывают нюансы, да, что какая-то ветка не обходится walk-ом, хз специально это делают или бага

вам-то что нужно сделать?

Share this post


Link to post
Share on other sites

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

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

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

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

 

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

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

 

итого.

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

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

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

 

Share this post


Link to post
Share on other sites

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

 

Share this post


Link to post
Share on other sites

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

 

 

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

 

 

Share this post


Link to post
Share on other sites

Пытаюсь опять сделать,  нашел более менее механизм регистрации, но получается через раз

 

/// включаем создание онушки   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

Share this post


Link to post
Share on other sites

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.