Перейти до

BDCOM 3310p необходим oid для управления вланами


crazik

Рекомендованные сообщения

Добрый день, необходимо управление олтом через snmp а точнее управление вланом на виртуальном порту ону (epon onu port 1 ctc vlan mode tag VID ). 

Ссылка на сообщение
Поделиться на других сайтах

if ($_POST['v_new']!=$vlan) {
        $vlan_set = snmp2_set($ip, $rw, "1.3.6.1.4.1.3320.101.12.1.1.3.$key_onu.$port", i, $_POST['v_new']);
                    if ($vlan_set) {
                        echo "<center><h3>vlan успешно прописан!!</center></h3><br>";
                        $write=snmp2_set($ip, $rw, "1.3.6.1.4.1.3320.20.15.1.1.0", i, "1");
                        if ($write){
                            echo "<center><h3>Сохранено!!!</center></h3><br>";
                        }
                        
                    }
                    
    }
                        else {
                            echo "<center><h3>vlan остался неизменным!!!</center></h3>";
                        }

 

У мене так працює

Ссылка на сообщение
Поделиться на других сайтах

$key_onu - epon0/1:13(для примера)

$port. - 1 или 2 или 3 или 4 ( в зависимости от типа ОНУ)

Значения переменных получаем после опроса ОЛТа по SNMP протоколу...

Відредаговано ua.feldsher
Ссылка на сообщение
Поделиться на других сайтах

Опросил олт по снмп и к сожелению не нашел часть оида которая за порт отвечает 

 System Bootstrap, Version 0.3.4,  Build 29333.

бело бы здорово если бы вы приложили пример оида. за раннее благодарен.

Ссылка на сообщение
Поделиться на других сайтах

<?php header('Content-type: text/html; charset=utf-8')?>
<?php
session_start();
include_once("db_connect.php");
include_once 'session.php';
include_once("var.php");
?>
<html>
<head>
    <title>PON</title>
    <style>
    .zebraRow {
        background-color: #c0c0c0;
    }
    </style>
</head>
<body>
<?php
//print_r($_GET);
$ip_olt=$_GET['ip'];

function _submit() {
      window.open('','new_win','width=400,height=600,location=no,toolbar=no,menubar=no,status=no,scrollbars=yes,resizable=yes');
  }
$Array_descr = snmprealwalk($ip_olt, $ro, "ifDescr");
echo "BDCOMM - ".$ip_olt;
echo "<br>";
if(count($Array_descr)>0) {
    
            foreach($Array_descr as $key => $type) {
    
                            $key = str_replace("IF-MIB::ifDescr.", "", $key);
                            $type = trim(str_replace("STRING: ", "", $type));
                            
                            //$id_onu = strtok($key, ":");
                            $olt = strtok($type, ":");
//print_r($id_onu);
                                if(preg_match("#:#", $type)){
                                $active="";
                                    $opt_level_up = snmpget($ip_olt, $ro, "enterprises.3320.101.10.5.1.5.$key");
                                    $opt_level_up = trim(str_replace("INTEGER: ", "", $opt_level_up)/10);
/*$key_onu=$key;
echo ($opt_level_up)." POrt ".$key;
echo "<br>";
*/
                                    $mac_onu = snmpget($ip_olt, $ro, "enterprises.3320.101.10.4.1.1.$key");
                                    $mac_onu = str_replace(" ", ":", strtolower(trim(str_replace("Hex-STRING: ", "", $mac_onu))));
                                    
                                    $active = snmpget($ip_olt, $ro, "1.3.6.1.4.1.3320.101.10.1.1.26.$key");
                                    $active = str_replace(" ", ":", strtolower(trim(str_replace("INTEGER: ", "", $active))));

                                    $descr = snmpget($ip_olt, $ro, "mib-2.31.1.1.1.18.$key");
                                    $descr = str_replace(" ", ":", strtolower(trim(str_replace("STRING: ", "_", $descr))));

                                    $Array_ports="";
                                    $Array_ports_="";
                                    $Array_ports__="";
                                    $Array_ports = snmprealwalk($ip_olt, $ro, "enterprises.3320.101.12.1.1.8.$key");
                    
                                        foreach($Array_ports as $key_ => $state) {
                                            $port = str_replace("SNMPv2-SMI::enterprises.3320.101.12.1.1.8.$key.", "", $key_);
                                            $Array_state=explode(":", $state);
                                            $state = trim($Array_state[1]);

                                            if($state == 1 ){ $state="up"; }
                                            if($state == 2 ){ $state="down"; }
                                                $Array_ports__[]= $port." : ".$state;
                                        }

                                                //if(count($Array_ports__)>0){
                                                    //$Array_olt[$olt][$mac_onu]['ports'] = implode("<br>", $Array_ports__);
                                                    $Array_olt[$olt][$mac_onu]['ports'] = $Array_ports__[0];
                                                //}
                                    $Array_olt[$olt][$mac_onu]['key_onu'] = $key;
                                    $Array_olt[$olt][$mac_onu]['type'] = $type;
                                    $Array_olt[$olt][$mac_onu]['level_up'] = $opt_level_up;
                                    $Array_olt[$olt][$mac_onu]['active'] = $active;
                                    $Array_olt[$olt][$mac_onu]['descr'] = $descr;
                                    
                            }
            }    

            ksort($Array_olt);
            echo "<form action=”onu.php” id=”form1”></form>";

            print("<br><br><center><table border='0' cellpadding='0' cellspacing='1' width='90%'>");
            print("<tr class=head bgcolor=#ffffc0>
             <td ><strong>EPON №</strong></td>
             <td ><strong>Имя ONU</strong></td>
             <td ><strong>Описание</strong></td>
             <td ><strong>Mac ONU</strong></td>
             <td ><strong>Уровень пр., db</strong></td>
             <td ><strong>На карте...</strong></td>
             </tr>");

            foreach($Array_olt as $key => $type)

            {
                $olt = $key;
                $ports="";
                    foreach($type as $key1 => $type1)
                    {
                        $mac_onu = $key1;
                        $level_up = $type1['level_up'];
                        $type = $type1['type'];
                        $active = $type1['active'];
                        $ports = $type1['ports'];
                        //$d = $type1['descr'];
                        $key_onu = $type1['key_onu'];
                        $n++;

                        $query="SELECT descr FROM pon WHERE mac_onu='$mac_onu'";
                        $res=mysql_query($query);
                        $itog=mysql_fetch_assoc($res);
                            $d = $itog['descr'];

                                if(($olt!=$old_olt)&&($n!=1)) {

                                print("<tr class=head bgcolor=#ffffc0><td>Всего: $m</td>");
                                $m=0;
                                print("<tr height=40><td colspan=5></td></tr>");
                                }

                                $m++;

                                    if ($level_up == 0) {
                                                $colorfont="red";
                                                $lable="ONU не подключена!";
                                                        
                                                    } elseif ($level_up <= -25) {

                                                        $lable="Плохой сигнал!!!";
                                                        $colorfont="blue";

                                                    } else  {

                                                        $colorfont="green";
                                                        $lable="Сигнал в пределах нормы!";
                                                       

                                                    }                

                                    
                                

                        $cssClass="normalRow";

                                if($n % 2 == 0) {
                                    $cssClass = "zebraRow";
                                }
                        
                        echo "
                        <tr class=$cssClass>
                        <td><a href='edit_onu.php?epon=$olt&epon_onu=$type&mac_onu=$mac_onu&key_onu=$key_onu&descr=$d&ip=$ip_olt&port=$port' target='_blank'>$olt</td>
                        <td>$type</td>
                        <td>$d</td>
                        <td>$mac_onu</td>
                        <td><font color=$colorfont><b> ".$level_up." db</b> <br/>".$lable."</td>
                        <td nowrap align='left'>
                        ";
                                $query="SELECT lat FROM pon WHERE mac_onu='$mac_onu'";
                                $res=mysql_query($query);
                                $itog=mysql_fetch_assoc($res);
                                    $lat = $itog['lat'];
                                        //echo $lat;# code...
            
                                        if ($lat == 0) {
                                                    echo "<a href='location.php?&olt=$ip_olt&mac=$mac_onu&lat=$lat&descr=$d'><img src='pic/red.png' height=\"50\"";

                                        } else {
                                                    echo "<img src='pic/green.png' height=\"50\"";
                                        }
            

                            //if(($active==1)||($active==3)){ print("$ports"); }else{}


                                echo "</td><td><a href='onu.php?epon=$type&mac_onu=$mac_onu& key_onu=$key_onu&descr=$d&ip=$ip_olt&port=$port' target='_blank'><img src='pic/view.png' width=\"60\"></a>
                                
                                </td></tr>    ";

                                $old_olt=$olt;

            //echo "$old_olt";<a href='onu.php?mac_onu=$mac_onu& key_onu=$key_onu&descr=$d&ip=$ip_olt' target='_blank'><img src='pic/editButton.png' height=\"50\"></a>
                    }
            }




print("<tr class=head bgcolor=#ffffc0><td>Всего: $m</td>");
print("</table></center>");
}

?>

</body>
</html>

Опрашивает ОЛТ, и строит таблицу с уровнями сигалов...

Ссылка на сообщение
Поделиться на других сайтах

Спасибо большое, с кодом разобрался, вы мне очень помогли!

может у вас есть оид на выполнения данной команды epon bind-onu mac xxxx.xxxx.xxxx lid для привязки ону к олту

Ссылка на сообщение
Поделиться на других сайтах

@@ua.feldsher, можно пользоватся pastebin.com

а то код тяжело так читать, ну или хотя бы засунуть в секцию code 

 

 

 

может у вас есть оид на выполнения данной команды epon bind-onu mac xxxx.xxxx.xxxx lid для привязки ону к олту

а зачем такие извращения?

я лично цепляю темплейт, который выдает онушке влан, скажем 4001

потом, когда на онушке уже есть влан - его можно переназначить на другой влан, который нужен вам

заодно в 4001 можно запустить гостевой дхцп, с которого будет доступ скажем на биллинг, что бы зарегать абонента и выдать нужный влан 

 

вот как пример, я делаю в убиллинге

вот оиды для бдкома

Ссылка на сообщение
Поделиться на других сайтах

@@ua.feldsher, можно пользоватся pastebin.com

а то код тяжело так читать, ну или хотя бы засунуть в секцию code 

 

 

 

Извините. Я не задумывался над этим. В дальнейшем буду учитывть. Кстати, только сейчас заметил секцию "код".

Ссылка на сообщение
Поделиться на других сайтах
Опубліковано: (відредаговано)

у нас задача стоит следующая: Есть партия ону она добавляется в базу биллинга. в момент подключения выбраная ону должна через биллинг  биндится на определенный олт .для этого и нужен оид для команды epon bind-onu mac xxxx.xxxx.xxxx lid

Відредаговано crazik
Ссылка на сообщение
Поделиться на других сайтах
  • 2 weeks later...

Костыль конечно, но все же:

- пишем темплейт для добавления новых ОНУ в определенный ВЛАН(гостевой)

- дергаем скриптом - проверяем не появилась ли новая ОНУ во  влане

-сравниваем с базой, и согласно условий

-$vlan_set = snmp2_set($ip, $rw, "1.3.6.1.4.1.3320.101.12.1.1.3.$key_onu.$port", i, $_POST['v_new']);

Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Вхід

Уже зарегистрированы? Войдите здесь.

Войти сейчас
  • Зараз на сторінці   0 користувачів

    Немає користувачів, що переглядають цю сторінку.

  • Схожий контент

    • Від Axel K
      Вітаю спільноту!
      Є пон мережа на BDCOM p3310d. Задача розмістити точки доступу UNIFI.
      При налаштуванні самих точок підключених до роутера проблем не виникло.
      При підключенні напряму до ону точка іп отримує, на пінг відповідає, але в додатку не з'являється і при підключенні до вайфай іп клієнту не видає.
      Прошу підказки.
    • Від Futura
      Подскажите пожалуйста, кто сталкивался, будут ли проблемы?
      Построили небольшой н/п, абоненты получились на удалении 19000-21000 м. с уровнями -17...-25 все на ONU BDCOM. 
      OLT BDCOM P3616-2TE (10.1.0F Build 74816), SFP модули С++.
    • Від Dolik
      Після переходу на GPON вивільнились кілька OLT на 4 порти та на 8.
      Всі голови укомплектовані UPS на 12в від Proline

    • Від ~AsmodeuS~
      PON  панель
       
       
    • Від grapefruit
      Можливо хтось має оіди для BDCOM P3310B 
      LastDeregTime
      LastDeregReason
      Absenttime
      Помітив, що з P3310С не співпадають
×
×
  • Створити нове...