Karfax Опубліковано: 18 травня, 2021 Опубліковано: 18 травня, 2021 Добавлю: activate = 1 deactivate = 2 .1.3.6.1.4.1.2011.6.128.1.1.2.46.1.1 и тут еще много чего https://github.com/nocproject/noc/blob/master/cmibs/huawei_xpon_mib.py
vlad5503 Опубліковано: 20 травня, 2021 Опубліковано: 20 травня, 2021 Karfax, спасибо. Хорошая расшифровка параметров.
Alex210 Опубліковано: 3 червня, 2021 Опубліковано: 3 червня, 2021 Здравствуйте! Продолжаю осваивать взаимодействие с OLT по SNMP. На данный момент удалось: Получить всю необходимую информацию об ONU Найти MAC-адреса за ONU Привязать ONU Установить native-vlan ethernet-порту Осталась нерешенной одна задача - привязать ONU к сервис-порту. Тут описано как это сделать, только не хватает oid-ов ((( Многочасовые поиски по гуглу пока не увенчались успехом... Может у кого-то есть наработки по данному вопросу?)
Alex210 Опубліковано: 4 червня, 2021 Опубліковано: 4 червня, 2021 16 часов назад, Alex210 сказал: Здравствуйте! Продолжаю осваивать взаимодействие с OLT по SNMP. На данный момент удалось: Получить всю необходимую информацию об ONU Найти MAC-адреса за ONU Привязать ONU Установить native-vlan ethernet-порту Осталась нерешенной одна задача - привязать ONU к сервис-порту. Тут описано как это сделать, только не хватает oid-ов ((( Многочасовые поиски по гуглу пока не увенчались успехом... Может у кого-то есть наработки по данному вопросу?) oid-ы нашёл) 1.3.6.1.4.1.2011.5.14.5.2.1.2.$service_port i 0 1.3.6.1.4.1.2011.5.14.5.2.1.3.$service_port i 10 // slot 1.3.6.1.4.1.2011.5.14.5.2.1.4.$service_port i 6 // pon 1.3.6.1.4.1.2011.5.14.5.2.1.5.$service_port i 4 // ont 1.3.6.1.4.1.2011.5.14.5.2.1.6.$service_port i 11 // gem 1.3.6.1.4.1.2011.5.14.5.2.1.7.$service_port i 4 // 4 - gpon, 6 - epon 1.3.6.1.4.1.2011.5.14.5.2.1.8.$service_port i 100 // vlan 1.3.6.1.4.1.2011.5.14.5.2.1.11.$service_port i 1 1.3.6.1.4.1.2011.5.14.5.2.1.12.$service_port i 100 // user-vlan тут это описано, но ещё на первой строчке возникает ошибка(( Предполагаю, что сначала нужно создать сервис-порт, но как это сделать - вопрос....
dnserg Опубліковано: 4 червня, 2021 Опубліковано: 4 червня, 2021 <?php namespace App; use App\Jobs\OLTAddServicePort; use DivineOmega\SSHConnection\SSHConnection; use Mockery\Exception; use SNMP; class HuaweilOLT { const GPON_ONU_QTY_IN_INTERFACE = '1.3.6.1.4.1.2011.6.128.1.1.2.21.1.16'; const EPON_ONU_QTY_IN_INTERFACE = '1.3.6.1.4.1.2011.6.128.1.1.2.31.1.12'; const GPON_OPTICS_TX_POWER_IN_INTERFACE = '1.3.6.1.4.1.2011.6.128.1.1.2.23.1.4'; const EPON_OPTICS_TX_POWER_IN_INTERFACE = '1.3.6.1.4.1.2011.6.128.1.1.2.33.1.4'; const GPON_ONT_UNREGISTERED = '1.3.6.1.4.1.2011.6.128.1.1.2.48.1.2'; const EPON_ONT_UNREGISTERED = '1.3.6.1.4.1.2011.6.128.1.1.2.58.1.2'; const GPON_ONT_REGISTERED_IN_INTERFACE = '1.3.6.1.4.1.2011.6.128.1.1.2.43.1.3.%s'; const EPON_ONT_REGISTERED_IN_INTERFACE = '1.3.6.1.4.1.2011.6.128.1.1.2.53.1.3.%s'; const GPON_ONT_DESCRIPTION = '1.3.6.1.4.1.2011.6.128.1.1.2.43.1.9.%s.%s'; const EPON_ONT_DESCRIPTION = '1.3.6.1.4.1.2011.6.128.1.1.2.53.1.9.%s.%s'; const GPON_ONT_DESCRIPTION_INTERFACE = '1.3.6.1.4.1.2011.6.128.1.1.2.43.1.9.%s'; const EPON_ONT_DESCRIPTION_INTERFACE = '1.3.6.1.4.1.2011.6.128.1.1.2.53.1.9.%s'; const GPON_ONT_SIGNALS_INTERFACE = '1.3.6.1.4.1.2011.6.128.1.1.2.51.1.4.%s'; const ONT_SIGNALS_INTERFACE = '1.3.6.1.4.1.2011.6.128.1.1.2.104.1.5.%s'; const ONT_CONFIGURED_STRING = 'configured'; const GPON_ONT_STATUS = '1.3.6.1.4.1.2011.6.128.1.1.2.46.1.15.%s.%s'; // 1 - online , 2 - offline const ONT_STATUS = '1.3.6.1.4.1.2011.6.128.1.1.2.57.1.15.%s.%s'; // 1 - online , 2 - offline const GPON_ONT_SIGNAL = '1.3.6.1.4.1.2011.6.128.1.1.2.51.1.4.%s.%s'; const ONT_SIGNAL = '1.3.6.1.4.1.2011.6.128.1.1.2.104.1.5.%s.%s'; const GPON_ONT_DISTANCE = '1.3.6.1.4.1.2011.6.128.1.1.2.46.1.20.%s.%s'; const ONT_DISTANCE = '1.3.6.1.4.1.2011.6.128.1.1.2.57.1.19.%s.%s'; const GPON_ONT_DOWN_CAUSE = '1.3.6.1.4.1.2011.6.128.1.1.2.46.1.24.%s.%s'; // 13 - power , 2 - оптика const ONT_DOWN_CAUSE = '1.3.6.1.4.1.2011.6.128.1.1.2.57.1.25.%s.%s'; // 13 - power , 2 - оптика const GPON_ONT_SOFT_VERSION = '1.3.6.1.4.1.2011.6.128.1.1.2.45.1.1.%s.%s'; const ONT_SOFT_VERSION = '1.3.6.1.4.1.2011.6.128.1.1.2.55.1.5.%s.%s'; /* @var $snmpSession SNMP */ private $snmpSession; /* @var $sshSession SSHConnection */ // private $sshSession; /* @var $sshSession PHPTelnet */ private $telnetSession; /* @var $telnetLog string[] */ private $telnetLog; public function __construct() { $snmpSession = new \SNMP(\SNMP::VERSION_2c, '192.168.101.18', 'comunity'); $snmpSession->oid_increasing_check = FALSE; $this->snmpSession = $snmpSession; } private function getSnmpValue($oid) { $parts = explode(': ', $this->snmpSession->get($oid)); if (strpos($parts[0], 'Hex-STRING') === 0) { return hex2bin(trim(str_replace(' ', '', str_replace('00', '', $parts[1])))); } return trim($parts[1]); } public function getOntDataByInterfaceOntId($ifIndex, $ontId) { $interface = $this->decode_ifIndex($ifIndex); switch ($interface['type']) { case 'epon': $oidStatus = vsprintf(self::ONT_STATUS, [$ifIndex, $ontId]); $oidSignal = vsprintf(self::ONT_SIGNAL, [$ifIndex, $ontId]); $oidDistance = vsprintf(self::ONT_DISTANCE, [$ifIndex, $ontId]); $oidDownCause = vsprintf(self::ONT_DOWN_CAUSE, [$ifIndex, $ontId]); $oidSoftVersion = vsprintf(self::ONT_SOFT_VERSION, [$ifIndex, $ontId]); $ifaceUrl = route('eponPort', ['ifIndex' => $ifIndex]); break; case 'gpon': $oidStatus = vsprintf(self::GPON_ONT_STATUS, [$ifIndex, $ontId]); $oidSignal = vsprintf(self::GPON_ONT_SIGNAL, [$ifIndex, $ontId]); $oidDistance = vsprintf(self::GPON_ONT_DISTANCE, [$ifIndex, $ontId]); $oidDownCause = vsprintf(self::GPON_ONT_DOWN_CAUSE, [$ifIndex, $ontId]); $oidSoftVersion = vsprintf(self::GPON_ONT_SOFT_VERSION, [$ifIndex, $ontId]); $ifaceUrl = route('gponPort', ['ifIndex' => $ifIndex]); break; } return [ 'ifaceUrl' => $ifaceUrl, 'status' => $this->getSnmpValue($oidStatus), 'softVersion' => $this->getSnmpValue($oidSoftVersion), 'signal' => $this->getSnmpValue($oidSignal), 'distance' => $this->getSnmpValue($oidDistance), 'downCause' => $this->getSnmpValue($oidDownCause), 'interface' => "{$interface['type']} {$interface['shelf']}/{$interface['slot']}/{$interface['port']} {$ontId}", ]; } public function getONTsQuantityInInterfaces($type = 'epon') { $result = []; switch ($type) { case 'epon': $oid = self::EPON_ONU_QTY_IN_INTERFACE; break; case 'gpon': $oid = self::GPON_ONU_QTY_IN_INTERFACE; break; } try { $response = $this->snmpSession->walk($oid); if (is_array($response)) { foreach ($response as $key=>$value) { preg_match('/.([\d]+)$/', $key, $portRegexpResult); $result[$portRegexpResult[1]] = (int)(str_replace('INTEGER: ', '', trim($value))); } } } catch (\Exception $e) {} return $result; } public function getPONTxPowerInInterfaces($type = 'epon') { $result = []; switch ($type) { case 'epon': $oid = self::EPON_OPTICS_TX_POWER_IN_INTERFACE; break; case 'gpon': $oid = self::GPON_OPTICS_TX_POWER_IN_INTERFACE; break; } try { $response = $this->snmpSession->walk($oid); if (is_array($response)) { foreach ($response as $key=>$value) { preg_match('/.([\d]+)$/', $key, $portRegexpResult); $result[$portRegexpResult[1]] = (int)(str_replace('INTEGER: ', '', trim($value)))/100; } } } catch (\Exception $e) {} return $result; } public function getUnregisteredOnts() { $result = []; try { $response_epon = $this->snmpSession->walk(self::EPON_ONT_UNREGISTERED); if (is_array($response_epon)) { foreach ($response_epon as $key=>$value) { preg_match('/.([\d]+).([\d]+)$/', $key, $portRegexpResult); $result[$portRegexpResult[1]][$portRegexpResult[2]] = str_replace(' ', ':', str_replace('Hex-STRING: ', '', trim($value))); } } } catch (\Exception $e) {} try { $response_gpon = $this->snmpSession->walk(self::GPON_ONT_UNREGISTERED); if (is_array($response_gpon)) { foreach ($response_gpon as $key=>$value) { preg_match('/.([\d]+).([\d]+)$/', $key, $portRegexpResult); $result[$portRegexpResult[1]][$portRegexpResult[2]] = str_replace(' ', '', str_replace('Hex-STRING: ', '', trim($value))); } } } catch (\Exception $e) {} return $result; } public function getOntsSignalsInInterface($ifIndex) { $interface = $this->decode_ifIndex($ifIndex); $result = []; switch ($interface['type']) { case 'epon': $oid = vsprintf(self::ONT_SIGNALS_INTERFACE, [$ifIndex]); break; case 'gpon': $oid = vsprintf(self::GPON_ONT_SIGNALS_INTERFACE, [$ifIndex]); break; } try { $response = $this->snmpSession->walk($oid); if (is_array($response)) { foreach ($response as $key=>$value) { preg_match('/.([\d]+)$/', $key, $portRegexpResult); $result[$portRegexpResult[1]] = (int)(str_replace('INTEGER: ', '', trim($value)))/100; } } } catch (\Exception $e) {} return $result; } public function getRegisteredOntsInInterface($ifIndex) { $interface = $this->decode_ifIndex($ifIndex); $result = []; switch ($interface['type']) { case 'epon': $oid = vsprintf(self::EPON_ONT_REGISTERED_IN_INTERFACE, [$ifIndex]); try { $response = $this->snmpSession->walk($oid); if (is_array($response)) { foreach ($response as $key=>$value) { preg_match('/.([\d]+)$/', $key, $portRegexpResult); $result[$ifIndex][$portRegexpResult[1]] = strtolower(str_replace(' ', ':', str_replace('Hex-STRING: ', '', trim($value)))); } } } catch (\Exception $e) {} break; case 'gpon': $oid = vsprintf(self::GPON_ONT_REGISTERED_IN_INTERFACE, [$ifIndex]); try { $response = $this->snmpSession->walk($oid); if (is_array($response)) { foreach ($response as $key=>$value) { preg_match('/.([\d]+)$/', $key, $portRegexpResult); $result[$ifIndex][$portRegexpResult[1]] = $this->valueToSerial($value); } } } catch (\Exception $e) {} break; } return $result; } private function valueToSerial($value) { if (strpos($value, 'Hex-STRING') !== false) { return strtolower(str_replace(' ', '', str_replace('Hex-STRING: ', '', trim($value)))); } if (strpos($value, 'STRING') !== false) { return bin2hex(str_replace('"', '', str_replace('STRING: ', '', trim($value)))); } return $value; } public function confirmOntsInInterface($ifIndex) { $interface = $this->decode_ifIndex($ifIndex); $this->telnetCheckSession(); $result[] = $this->telnetSession->doCommand("config\n"); sleep(1); $result[] = $this->telnetSession->doCommand("interface {$interface['type']} {$interface['shelf']}/{$interface['slot']}\n"); sleep(1); switch ($interface['type']) { case 'epon': $result[] = $this->telnetSession->doCommand("ont confirm {$interface['port']} all mac-auth oam ont-lineprofile-name ftth ont-srvprofile-name ftth\n"); break; case 'gpon': $result[] = $this->telnetSession->doCommand("ont confirm {$interface['port']} all sn-auth omci ont-lineprofile-name ftth ont-srvprofile-name ftth\n"); break; } sleep(1); $result[] = $this->telnetSession->doCommand("\n"); sleep(1); $result[] = $this->telnetSession->doCommand("quit\n"); return $result; } public function getOntsUnconfiguredInInterface($ifIndex) { $interface = $this->decode_ifIndex($ifIndex); $result = []; switch ($interface['type']) { case 'epon': $oid = vsprintf(self::EPON_ONT_DESCRIPTION_INTERFACE, [$ifIndex]); break; case 'gpon': $oid = vsprintf(self::GPON_ONT_DESCRIPTION_INTERFACE, [$ifIndex]); break; } try { $response = $this->snmpSession->walk($oid); if (is_array($response)) { foreach ($response as $key=>$value) { preg_match('/.([\d]+)$/', $key, $ontRegexpResult); switch ($interface['type']) { case 'epon': $checkOid = "1.3.6.1.4.1.2011.6.128.1.1.2.81.1.5.{$ifIndex}.{$ontRegexpResult[1]}.1"; break; case 'gpon': $checkOid = "1.3.6.1.4.1.2011.6.128.1.1.2.62.1.7.{$ifIndex}.{$ontRegexpResult[1]}.1"; break; } $checkResult = $this->snmpSession->get($checkOid); if (!strpos($checkResult, '4094')) { $result[$ifIndex][] = $ontRegexpResult[1]; } } } } catch (\Exception $e) {} return $result; } public function createOntsServicePortsInInterface($ifIndex) { $result = []; $interface = $this->decode_ifIndex($ifIndex); $this->telnetCheckSession(); $unconfiguredOnts = $this->getOntsUnconfiguredInInterface($ifIndex); if ($unconfiguredOnts) { $result[] = $this->telnetSession->doCommand("config\n"); sleep(2); foreach ($unconfiguredOnts[$ifIndex] as $ontId) { $vlan = $interface['slot'] . ($interface['port'] > 9 ? $interface['port'] - 10 : $interface['port']); $result[] = $this->telnetSession->doCommand("service-port vlan {$vlan} port {$interface['shelf']}/{$interface['slot']}/{$interface['port']} ont {$ontId} eth 1-4 multi-service user-vlan untagged\n"); sleep(2); $result[] = $this->telnetSession->doCommand("\n"); sleep(2); switch ($interface['type']) { case 'epon': $checkOid = "1.3.6.1.4.1.2011.6.128.1.1.2.81.1.5.{$ifIndex}.{$ontId}.1"; break; case 'gpon': $checkOid = "1.3.6.1.4.1.2011.6.128.1.1.2.62.1.7.{$ifIndex}.{$ontId}.1"; break; } $checkResult = $this->snmpSession->get($checkOid); if (!strpos($checkResult, '4094')) { OLTAddServicePort::dispatch($ifIndex, $ontId); } else { $this->setOntDescriptionAsConfigured($ifIndex, $ontId); } } $result[] = $this->telnetSession->doCommand("quit\n"); } return $result; } public function createOntsServicePortsInInterfaceOnt($ifIndex, $ontId) { $result = []; $interface = $this->decode_ifIndex($ifIndex); $this->telnetCheckSession(); $result[] = $this->telnetSession->doCommand("config\n"); sleep(2); $vlan = $interface['slot'] . ($interface['slot'] > 9 ? $interface['slot'] - 10 : $interface['slot']); $result[] = $this->telnetSession->doCommand("service-port vlan {$vlan} port {$interface['shelf']}/{$interface['slot']}/{$interface['port']} ont {$ontId} eth 1 multi-service user-vlan untagged\n"); sleep(2); $result[] = $this->telnetSession->doCommand("\n"); sleep(2); switch ($interface['type']) { case 'epon': $checkOid = "1.3.6.1.4.1.2011.6.128.1.1.2.81.1.5.{$ifIndex}.{$ontId}.1"; break; case 'gpon': $checkOid = "1.3.6.1.4.1.2011.6.128.1.1.2.62.1.7.{$ifIndex}.{$ontId}.1"; break; } $checkResult = $this->snmpSession->get($checkOid); if (!strpos($checkResult, '4094')) { OLTAddServicePort::dispatch($ifIndex, $ontId); } else { $this->setOntDescriptionAsConfigured($ifIndex, $ontId); } $result[] = $this->telnetSession->doCommand("quit\n"); return $result; } public function setOntDescriptionAsConfigured($ifIndex, $ontId) { $this->setOntDescription($ifIndex, $ontId, self::ONT_CONFIGURED_STRING); } public function setOntDescription($ifIndex, $ontId, $description) { $interface = $this->decode_ifIndex($ifIndex); switch ($interface['type']) { case 'epon': $oid = vsprintf(self::EPON_ONT_DESCRIPTION, [$ifIndex, $ontId]); break; case 'gpon': $oid = vsprintf(self::GPON_ONT_DESCRIPTION, [$ifIndex, $ontId]); break; } $this->snmpSession->set($oid, 's', $description); } public function deleteOntsInInterface($ifIndex) { $interface = $this->decode_ifIndex($ifIndex); $ontQuantity= $this->getONTsQuantityInInterfaces($interface['type']); if ($ontQuantity[$ifIndex] == 0) { return true; } $this->telnetCheckSession(); $this->telnetExecCommands([ "undo service-port port {$interface['shelf']}/{$interface['slot']}/{$interface['port']}", "", "y", "interface {$interface['type']} {$interface['shelf']}/{$interface['slot']}", "ont delete {$interface['port']} all", "y", "quit" ], true); } // private function checkSSHSession() { // if ($this->sshSession instanceof SSHConnection) { // return true; // } // $this->makeSSHSession(); // } // // private function makeSSHSession() { // $this->sshSession = (new SSHConnection()) // ->to('192.168.101.18') // ->onPort(22) // ->as('login') // ->withPassword('password') // // ->withPrivateKey($privateKeyPath) // ->connect(); // } // public function ssh() { // $this->checkSSHSession(); //// $command = $this->sshSession->run("quit"); // $command = $this->sshSession->run("display system sys-info\n"); //// $command = $this->sshSession->run("enable\n"); //// $this->sshSession->run("config\n"); //// $command = $this->sshSession->run("display system sys-info"); // // dd($command->getOutput()); // 'Hello World' // dd($command->getRawError()); // } private function telnetCheckSession() { if ($this->telnetSession instanceof PHPTelnet) { return true; } $this->telnetMakeSession(); } private function telnetMakeSession() { $this->telnetSession = new PHPTelnet(); $this->telnetSession->connect('192.168.101.18', 'user', 'pass'); $this->telnetSession->doCommand("enable\n"); } public function telnetCloseSession() { if ($this->telnetSession instanceof PHPTelnet) { $this->telnetSession->disconnect(); } } public function telnetExecCommands($commands = [], $isConfiguration = true) { $this->telnetCheckSession(); if ($isConfiguration) { $this->telnetLog[] = $this->telnetSession->doCommand("config\n"); sleep(2); } foreach ($commands as $command) { $this->telnetLog[] = $this->telnetSession->doCommand("{$command}\n"); sleep(2); } if ($isConfiguration) { $this->telnetLog[] = $this->telnetSession->doCommand("quit\n"); sleep(2); } } public function telnetGetLog() { return $this->telnetLog; } public static function decode_ifIndex($ifIndex) { $board_type = ( $ifIndex & bindec('11111110000000000000000000000000') ) >> 25 ; switch($board_type) { case 126: $port_type="epon"; $shelf_no = ( $ifIndex & bindec('00000001111110000000000000000000') ) >> 19 ; $slot_no = ( $ifIndex & bindec('00000000000001111110000000000000') ) >> 13 ; $port_no = ( $ifIndex & bindec('00000000000000000001111100000000') ) >> 8 ; return(array("type"=>$port_type,"shelf"=>$shelf_no,"slot"=>$slot_no,"port"=>$port_no)); break; case 125: $port_type = "gpon"; $shelf_no = ( $ifIndex & bindec('00000001111110000000000000000000') ) >> 19 ; $slot_no = ( $ifIndex & bindec('00000000000001111110000000000000') ) >> 13 ; $port_no = ( $ifIndex & bindec('00000000000000000001111100000000') ) >> 8 ; return(array("type"=>$port_type,"shelf"=>$shelf_no,"slot"=>$slot_no,"port"=>$port_no)); break; } } } Может кому понадобиться
andr1y Опубліковано: 5 червня, 2021 Опубліковано: 5 червня, 2021 В 03.06.2021 в 17:16, Alex210 сказал: Здравствуйте! Продолжаю осваивать взаимодействие с OLT по SNMP. На данный момент удалось: Получить всю необходимую информацию об ONU Найти MAC-адреса за ONU Привязать ONU Установить native-vlan ethernet-порту Осталась нерешенной одна задача - привязать ONU к сервис-порту. Тут описано как это сделать, только не хватает oid-ов ((( Многочасовые поиски по гуглу пока не увенчались успехом... Может у кого-то есть наработки по данному вопросу?) Як вам вдалося "Найти MAC-адреса за ONU" по SNMP ? Ми таке тільки через телнет можемо отримувати.
vlad5503 Опубліковано: 7 червня, 2021 Опубліковано: 7 червня, 2021 Andr1y, можно так найти серийник: 1.3.6.1.4.1.2011.6.128.1.1.2.43.1.3. 1.3.6.1.4.1.2011.6.128.1.1.2.43.1.3.$port.$id Тут ранее я сам этот вопрос поднимал и мне тут помогли ещё расшифровать некоторые "кривые" серийники. Почитайте.
Alex210 Опубліковано: 7 червня, 2021 Опубліковано: 7 червня, 2021 В 05.06.2021 в 21:28, andr1y сказал: Як вам вдалося "Найти MAC-адреса за ONU" по SNMP ? Ми таке тільки через телнет можемо отримувати. Тут описано как это сделать по SNMP
lololo Опубліковано: 23 вересня, 2021 Опубліковано: 23 вересня, 2021 В 07.06.2021 в 08:10, Alex210 сказал: Тут описано как это сделать по SNMP К сожалению у меня ни на одном из OLT-ов (5683,5603,5608) mib-ов, которые применяются в данном мануале, нет. Может быть , от версии зависит... Все, что есть: 1.3.6.1.4.1.2011.6.103.1.1.2.0 = INTEGER: 1 .1.3.6.1.4.1.2011.6.103.1.1.3.0 = INTEGER: 0 .1.3.6.1.4.1.2011.6.103.1.1.7.0 = "" .1.3.6.1.4.1.2011.6.103.2.1.1.0 = INTEGER: 1 .1.3.6.1.4.1.2011.6.103.2.1.3.0 = INTEGER: 5 .1.3.6.1.4.1.2011.6.103.4.1.1.1.2.1 = Hex-STRING: 00 17 00 00 00 04 00 00 00 3F 00 01 00 04 01 00 01 01 00 02 00 01 00 .1.3.6.1.4.1.2011.6.103.4.1.1.1.2.2 = Hex-STRING: 00 18 00 00 00 01 01 00 01 00 02 01 00 00 02 00 01 01 00 03 00 02 00 14 .1.3.6.1.4.1.2011.6.103.4.1.1.1.2.3 = Hex-STRING: 00 18 00 00 00 01 01 00 01 00 02 01 00 00 02 00 01 01 00 03 00 02 00 0A .1.3.6.1.4.1.2011.6.103.4.1.1.1.2.4 = Hex-STRING: 00 30 00 00 00 01 01 00 01 00 1A 01 00 01 01 01 02 01 03 01 04 01 05 01 06 01 07 01 08 01 09 01 0A 01 0B 01 0C 00 02 00 01 01 00 03 00 02 02 58 .1.3.6.1.4.1.2011.6.103.4.1.1.1.2.5 = Hex-STRING: 00 1D 00 00 00 04 00 00 07 FF 00 01 00 04 01 00 01 01 00 02 00 01 01 00 03 00 02 00 0A .1.3.6.1.4.1.2011.6.103.4.1.1.1.2.6 = Hex-STRING: 00 18 00 00 00 01 01 00 01 00 02 01 FF 00 02 00 01 01 00 03 00 02 00 78 .1.3.6.1.4.1.2011.6.103.4.1.1.1.2.7 = Hex-STRING: 00 18 00 00 00 01 01 00 01 00 02 01 00 00 02 00 01 01 00 03 00 02 00 1E Соответственно, ничего не работает, начиная с первого же mib. Error in packet. Reason: Unknown Error Failed object: SNMPv2-SMI::enterprises.2011.6.103.4.1.2.1.2.2
Alex210 Опубліковано: 23 вересня, 2021 Опубліковано: 23 вересня, 2021 55 минут назад, lololo сказал: К сожалению у меня ни на одном из OLT-ов (5683,5603,5608) mib-ов, которые применяются в данном мануале, нет. Может быть , от версии зависит... Все, что есть: 1.3.6.1.4.1.2011.6.103.1.1.2.0 = INTEGER: 1 .1.3.6.1.4.1.2011.6.103.1.1.3.0 = INTEGER: 0 .1.3.6.1.4.1.2011.6.103.1.1.7.0 = "" .1.3.6.1.4.1.2011.6.103.2.1.1.0 = INTEGER: 1 .1.3.6.1.4.1.2011.6.103.2.1.3.0 = INTEGER: 5 .1.3.6.1.4.1.2011.6.103.4.1.1.1.2.1 = Hex-STRING: 00 17 00 00 00 04 00 00 00 3F 00 01 00 04 01 00 01 01 00 02 00 01 00 .1.3.6.1.4.1.2011.6.103.4.1.1.1.2.2 = Hex-STRING: 00 18 00 00 00 01 01 00 01 00 02 01 00 00 02 00 01 01 00 03 00 02 00 14 .1.3.6.1.4.1.2011.6.103.4.1.1.1.2.3 = Hex-STRING: 00 18 00 00 00 01 01 00 01 00 02 01 00 00 02 00 01 01 00 03 00 02 00 0A .1.3.6.1.4.1.2011.6.103.4.1.1.1.2.4 = Hex-STRING: 00 30 00 00 00 01 01 00 01 00 1A 01 00 01 01 01 02 01 03 01 04 01 05 01 06 01 07 01 08 01 09 01 0A 01 0B 01 0C 00 02 00 01 01 00 03 00 02 02 58 .1.3.6.1.4.1.2011.6.103.4.1.1.1.2.5 = Hex-STRING: 00 1D 00 00 00 04 00 00 07 FF 00 01 00 04 01 00 01 01 00 02 00 01 01 00 03 00 02 00 0A .1.3.6.1.4.1.2011.6.103.4.1.1.1.2.6 = Hex-STRING: 00 18 00 00 00 01 01 00 01 00 02 01 FF 00 02 00 01 01 00 03 00 02 00 78 .1.3.6.1.4.1.2011.6.103.4.1.1.1.2.7 = Hex-STRING: 00 18 00 00 00 01 01 00 01 00 02 01 00 00 02 00 01 01 00 03 00 02 00 1E Соответственно, ничего не работает, начиная с первого же mib. Error in packet. Reason: Unknown Error Failed object: SNMPv2-SMI::enterprises.2011.6.103.4.1.2.1.2.2 У нас на 5683,5603,5608 работает. Эти oid-ы для установки (snmpset) задачи запроса: 1.3.6.1.4.1.2011.6.103.4.1.2.1.2.2 1.3.6.1.4.1.2011.6.103.4.1.2.1.3.2 1.3.6.1.4.1.2011.6.103.4.1.2.1.4.2 Дальше ждём 4-6 секунд но не позже 20 секунд и делаем snmpget 1.3.6.1.4.1.2011.6.103.4.1.3.1.2.2.0 1.3.6.1.4.1.2011.6.103.4.1.3.1.3.2.0 1.3.6.1.4.1.2011.6.103.4.1.3.1.4.2.0
vlad5503 Опубліковано: 24 вересня, 2021 Опубліковано: 24 вересня, 2021 (відредаговано) 17 часов назад, lololo сказал: К сожалению у меня ни на одном из OLT-ов (5683,5603,5608) mib-ов, которые применяются в данном мануале, нет. Может быть , от версии зависит... Все, что есть: 1.3.6.1.4.1.2011.6.103.1.1.2.0 = INTEGER: 1 .1.3.6.1.4.1.2011.6.103.1.1.3.0 = INTEGER: 0 .1.3.6.1.4.1.2011.6.103.1.1.7.0 = "" .1.3.6.1.4.1.2011.6.103.2.1.1.0 = INTEGER: 1 .1.3.6.1.4.1.2011.6.103.2.1.3.0 = INTEGER: 5 .1.3.6.1.4.1.2011.6.103.4.1.1.1.2.1 = Hex-STRING: 00 17 00 00 00 04 00 00 00 3F 00 01 00 04 01 00 01 01 00 02 00 01 00 .1.3.6.1.4.1.2011.6.103.4.1.1.1.2.2 = Hex-STRING: 00 18 00 00 00 01 01 00 01 00 02 01 00 00 02 00 01 01 00 03 00 02 00 14 .1.3.6.1.4.1.2011.6.103.4.1.1.1.2.3 = Hex-STRING: 00 18 00 00 00 01 01 00 01 00 02 01 00 00 02 00 01 01 00 03 00 02 00 0A .1.3.6.1.4.1.2011.6.103.4.1.1.1.2.4 = Hex-STRING: 00 30 00 00 00 01 01 00 01 00 1A 01 00 01 01 01 02 01 03 01 04 01 05 01 06 01 07 01 08 01 09 01 0A 01 0B 01 0C 00 02 00 01 01 00 03 00 02 02 58 .1.3.6.1.4.1.2011.6.103.4.1.1.1.2.5 = Hex-STRING: 00 1D 00 00 00 04 00 00 07 FF 00 01 00 04 01 00 01 01 00 02 00 01 01 00 03 00 02 00 0A .1.3.6.1.4.1.2011.6.103.4.1.1.1.2.6 = Hex-STRING: 00 18 00 00 00 01 01 00 01 00 02 01 FF 00 02 00 01 01 00 03 00 02 00 78 .1.3.6.1.4.1.2011.6.103.4.1.1.1.2.7 = Hex-STRING: 00 18 00 00 00 01 01 00 01 00 02 01 00 00 02 00 01 01 00 03 00 02 00 1E Соответственно, ничего не работает, начиная с первого же mib. Error in packet. Reason: Unknown Error Failed object: SNMPv2-SMI::enterprises.2011.6.103.4.1.2.1.2.2 Мы когда купили 5683 поискали мануал. Вначале подключились по телнету через СОМ порт. Настроили IP. Потом перешли на snmp и после нескольких пробных запросов получили в ответ порядка 80 тысяч записей кодов оидо/мибов. И начали изучение их. Долго мучительно, с ошибками, но то что нам надо было для управления мы нашли. Так что и у Вас должно все получиться. Например Вы должный увидеть такое - 2011.6.106.1.1.0 = IpAddress: 192.168.1.1 Который меняете на свой и который должен быть доступен далее для управления. И да.. самое интересное, что для СОМ порта там требуется цисковский кабель. Но Вы сами можете его сделать из простого СОМ-а и дешевле будет раз в 500 ))) Відредаговано 24 вересня, 2021 vlad5503 Добавление сведений
lololo Опубліковано: 24 вересня, 2021 Опубліковано: 24 вересня, 2021 17 часов назад, Alex210 сказал: У нас на 5683,5603,5608 работает. Эти oid-ы для установки (snmpset) задачи запроса: 1.3.6.1.4.1.2011.6.103.4.1.2.1.2.2 1.3.6.1.4.1.2011.6.103.4.1.2.1.3.2 1.3.6.1.4.1.2011.6.103.4.1.2.1.4.2 Дальше ждём 4-6 секунд но не позже 20 секунд и делаем snmpget 1.3.6.1.4.1.2011.6.103.4.1.3.1.2.2.0 1.3.6.1.4.1.2011.6.103.4.1.3.1.3.2.0 1.3.6.1.4.1.2011.6.103.4.1.3.1.4.2.0 Это ясно, что это не для чтения. НО, тем не менее, на первом же запросе к ....4.1.2.1.2.2 - ошибка. snmpset -v2c -c write_community 10.201.*.* 1.3.6.1.4.1.2011.6.103.4.1.2.1.2.2 i 4 Error in packet. Reason: Unknown Error Failed object: SNMPv2-SMI::enterprises.2011.6.103.4.1.2.1.2.2
Alex210 Опубліковано: 24 вересня, 2021 Опубліковано: 24 вересня, 2021 36 минут назад, lololo сказал: Это ясно, что это не для чтения. НО, тем не менее, на первом же запросе к ....4.1.2.1.2.2 - ошибка. snmpset -v2c -c write_community 10.201.*.* 1.3.6.1.4.1.2011.6.103.4.1.2.1.2.2 i 4 Error in packet. Reason: Unknown Error Failed object: SNMPv2-SMI::enterprises.2011.6.103.4.1.2.1.2.2 Могу предположить что все три oid-а нужно выполнить за одну snmpset
lololo Опубліковано: 24 вересня, 2021 Опубліковано: 24 вересня, 2021 1 минуту назад, Alex210 сказал: Могу предположить что все три oid-а нужно выполнить за одну snmpset С этого начинал. Результат аналогичный. Потом уже стал пытаться по одной. snmpset -v2c -c write_community 10.202.*.* 1.3.6.1.4.1.2011.6.103.4.1.2.1.2.2 i 4 1.3.6.1.4.1.2011.6.103.4.1.2.1.3.2 x "00 0B 01 00 00 05 00 07 06 00 06" 1.3.6.1.4.1.2011.6.103.4.1.2.1.4.2 i 4 Error in packet. Reason: Unknown Error Failed object: SNMPv2-SMI::enterprises.2011.6.103.4.1.2.1.2.2
Alex210 Опубліковано: 24 вересня, 2021 Опубліковано: 24 вересня, 2021 1 час назад, lololo сказал: С этого начинал. Результат аналогичный. Потом уже стал пытаться по одной. snmpset -v2c -c write_community 10.202.*.* 1.3.6.1.4.1.2011.6.103.4.1.2.1.2.2 i 4 1.3.6.1.4.1.2011.6.103.4.1.2.1.3.2 x "00 0B 01 00 00 05 00 07 06 00 06" 1.3.6.1.4.1.2011.6.103.4.1.2.1.4.2 i 4 Error in packet. Reason: Unknown Error Failed object: SNMPv2-SMI::enterprises.2011.6.103.4.1.2.1.2.2 Я делаю по сервис-порту, значение на PHP получаю так: '000A01070004' . str_pad(dechex($service_port), 8, '0', STR_PAD_LEFT); 1
xaoc_nsk Опубліковано: 29 грудня, 2021 Опубліковано: 29 грудня, 2021 День добрый, коллеги. Кто то пробовал по snmp реализовать команду bind ip service-port X 10.x.x.x очень удобная фишка, пользуемся пока через консоль. Можно до 10 ip адресов задавать на клиентском сервис порту и только с этих адресов он может взаимодействовать с сетью, что исключает подмены и пр. ( бывают умники)
xaoc_nsk Опубліковано: 29 грудня, 2021 Опубліковано: 29 грудня, 2021 к примеру NMPv2-SMI::enterprises.2011.5.14.3.2.1.3.8.0 = IpAddress: 10.28.0.77 это вывод уже назначенного ip на сервис port (-1) т.е на 7 сервис порт. 0 при этом это просто id записи. заменить тут не выходит, в принципе и из консоли тоже самое, можно только удалить и создать новый. а по snmpset ошибка при попытке добавления Error in packet. Reason: Unknown Error Failed object: iso.3.6.1.4.1.2011.5.14.3.2.1.3.8.0 удаление по snmp работает, методом подбора нашел NMPv2-SMI::enterprises.2011.5.14.3.2.1.4.8.0 i 6 Хотел скачать ems, чтобы поснифить команды, но не выйдет, хоть и серийники зарегистрировал) без подтверждения конторы ничего не получится скачать, а железки продавались реселлерами
pashaumka Опубліковано: 15 лютого, 2022 Опубліковано: 15 лютого, 2022 В 23.01.2020 в 14:23, Aleksandrs сказал: ответ от Хуавея как через snmp посмотреть мак за онт display mac addres by port..docx IT WORKS!
i_destr Опубліковано: 5 травня, 2022 Опубліковано: 5 травня, 2022 Колеги, вітаю Підкажіть, будь ласка, як можна за допомогою SNMP зареєструвати ONU GEPON (не GPON) на шасі? Через cli формат команд наступний: interface epon 0/1 ont add 4 2 mac-auth XXXX-XXXX-XXXX oam ont-lineprofile-id 10 ont-srvprofile-id 100 desc "USERLOGIN" За аналогією з реєстрацією GPON пробував наступну команду, але отримую помилку snmpset -v2c -c private 10.1.1.2 \ 1.3.6.1.4.1.2011.6.128.1.1.2.53.1.2.4227867648 i 3 \ #авторизація за MAC(3) 1.3.6.1.4.1.2011.6.128.1.1.2.53.1.3.4227867648 x 0xXXXXXXXXXXXX \ #MAC-адреса ONU 1.3.6.1.4.1.2011.6.128.1.1.2.53.1.6.4227867648 i 1 \ #management mode oam(1) 1.3.6.1.4.1.2011.6.128.1.1.2.53.1.7.4227867648 s LINEPROFILE_NAME \ #назва лінійного профілю 1.3.6.1.4.1.2011.6.128.1.1.2.53.1.8.4227867648 s SERVICEPROFILE_NAME \ #назва сервісного профілю 1.3.6.1.4.1.2011.6.128.1.1.2.53.1.9.4227867648 s USERLOGIN \ #description 1.3.6.1.4.1.2011.6.128.1.1.2.53.1.10.4227867648 i 4 # entry status CreateAndGo(4) Помилка наступна: Error in packet. Reason: noCreation (That table does not support row creation or that object can not ever be created) Failed object: SNMPv2-SMI::enterprises.2011.6.128.1.1.2.53.1.2.4227867648 Допоможіть, будь ласка Дякую
i_destr Опубліковано: 5 травня, 2022 Опубліковано: 5 травня, 2022 (відредаговано) З цим розібрався, забув додати номер ONT, тобто OIDи мають бути такі: snmpset -v2c -c private 10.1.1.2 \ 1.3.6.1.4.1.2011.6.128.1.1.2.53.1.2.4227867648.2 i 3 \ #авторизація за MAC(3) 1.3.6.1.4.1.2011.6.128.1.1.2.53.1.3.4227867648.2 x 0xXXXXXXXXXXXX \ #MAC-адреса ONU 1.3.6.1.4.1.2011.6.128.1.1.2.53.1.6.4227867648.2 i 1 \ #management mode oam(1) 1.3.6.1.4.1.2011.6.128.1.1.2.53.1.7.4227867648.2 s LINEPROFILE_NAME \ #назва лінійного профілю 1.3.6.1.4.1.2011.6.128.1.1.2.53.1.8.4227867648.2 s SERVICEPROFILE_NAME \ #назва сервісного профілю 1.3.6.1.4.1.2011.6.128.1.1.2.53.1.9.4227867648.2 s USERLOGIN \ #description 1.3.6.1.4.1.2011.6.128.1.1.2.53.1.10.4227867648.2 i 4 # entry status CreateAndGo(4) Тепер проблема з default native vlan, команда так само не відпрацьовує cli: ont port native-vlan 4 2 eth 1 vlan 10 snmp: snmpset -v2c -c vem5jeb9 10.10.240.3 \ 1.3.6.1.4.1.2011.6.128.1.1.2.81.1.5.4227867648.2.1 i 10 Error in packet. Reason: noCreation (That table does not support row creation or that object can not ever be created) Failed object: SNMPv2-SMI::enterprises.2011.6.128.1.1.2.81.1.5.4227867648.2.1 UPD Розібрався, дякую. Для зацікавлених - потрібно ставити затримку між створенням ONT та налаштуванням vlan на eth, поставив 5 сек - все запрацювало Відредаговано 5 травня, 2022 i_destr 2
splinter1989 Опубліковано: 13 червня, 2022 Опубліковано: 13 червня, 2022 (відредаговано) Добрий день. Дякую всім в гілці, дуже дагато цінної інформації! Підкажіть, будь ласвка, чи знайшли Ви змогу витягнути клієнтські мак адреси на Huawei ma5600T по SNMP? Буду дуже вдячний за допомогу. P.S. Написав і побачив що вище є файлик з інструкцією. Сорі... Відредаговано 13 червня, 2022 splinter1989 Не помітив відповідь в гілці вище
pashaumka Опубліковано: 13 червня, 2022 Опубліковано: 13 червня, 2022 6 часов назад, splinter1989 сказал: Добрий день. Дякую всім в гілці, дуже дагато цінної інформації! Підкажіть, будь ласвка, чи знайшли Ви змогу витягнути клієнтські мак адреси на Huawei ma5600T по SNMP? Буду дуже вдячний за допомогу. P.S. Написав і побачив що вище є файлик з інструкцією. Сорі... Там есть немного "танцев с бубном".....
splinter1989 Опубліковано: 14 червня, 2022 Опубліковано: 14 червня, 2022 16 часов назад, pashaumka сказал: Там есть немного "танцев с бубном"..... В мене, нажаль, поки не вийшло(((. set проходить а get пусто : пише що нема такого оід.
vlad5503 Опубліковано: 14 червня, 2022 Опубліковано: 14 червня, 2022 I make a request like this: snmpwalk -v2c -c "user" "IP" 1.3.6.1.4.1.2011.6.128.1.1.2.46.1.21.numer_optic_port.ID_ONU The answer will be like this: SNMPv2-SMI::enterprises.2011.6.128.1.1.2.46.1.21.numer_optic_port.ID_ONU = INTEGER: 3
splinter1989 Опубліковано: 14 червня, 2022 Опубліковано: 14 червня, 2022 4 минуты назад, vlad5503 сказал: I make a request like this: snmpwalk -v2c -c "user" "IP" 1.3.6.1.4.1.2011.6.128.1.1.2.46.1.21.numer_optic_port.ID_ONU The answer will be like this: SNMPv2-SMI::enterprises.2011.6.128.1.1.2.46.1.21.numer_optic_port.ID_ONU = INTEGER: 3 hwGponDeviceOntControlMacCount Це ви отримуєте кількість маків за ont. А я пробую самі маки вмтягнути...
Рекомендованные сообщения
Создайте аккаунт или войдите в него для комментирования
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйтесь для получения аккаунта. Это просто!
Зарегистрировать аккаунтВхід
Уже зарегистрированы? Войдите здесь.
Войти сейчас