Перейти до

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 користувачів

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

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

    • Від Dimension
      Продам голову BDCOM P3310C абсолютно и полностью рабочий, не ремонтировался - 9000 грн
       

    • Від waldemarwood
      Помогите настроить оборудование bdcom gp1704-2f-e как роутер. Сейчас получилось настроить так, что подключаюсь только с одного устройства . Пк для настройки нету, только мак на м1 без нужных портов для подключения. Как включить возможность подключения нескольких устройств?
    • Від Oumpi
      Продам 2 олта
      p3310B 8к
      p3310D 11к

      Не ремонтировались полностью исправные, сняти в связи обновления оборудования.
      На одном менял БП 
      Харьков 
       


    • Від rvkytyk
      P3608-2TE BDCOM
       
      Характеристики P3608-2TE
      Коефіцієнт розгалуження: 1:64
      Uplink порти: 4 x 100/1000Mbps SFP/RJ45 Combo
      Технологія роботи: GEPON
      Кількість PON портів: 8 x GEPON
      Кількість абонентів: до 512
       
      ACL L2/L3/L4: Так
      Flash пам'ять: 16MB
      QoS:  8 черг на порт, 802.1p, ToS, ID порту, DifferSev, WRR, SP, SWRR, шейпінг, класифікація потоків на основі VLAN-ACL
      RMON: Group 1, 2, 3, 9 VLAN: GVRP, PVLAN, VLANStacking (QinQ), 4K активних VLAN
      Агрегація каналів: LACP та балансування навантаження
       
      В наявності 2 шт.
      Ціна 16000 грн/шт.
       



      7f0402e72af6e2ae413e07297ee49c91.pdf
    • Від ikoko
      Вітаю !
      Куплю абонентське обладнання PON P2000-08B, P2000-16B, P2000-24B або щось аналогічне запропонуйте. 
×
×
  • Створити нове...