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

Сбор данный Multicast

Цель такова, отслеживать подписку к multicast группе

Какой пользователь, к какой группе, в какое время подписался

 

(не используя middleware) Есть ли какие идеи?

Share this post


Link to post
Share on other sites

Включить debug igmp и отправлять на удалённый syslog?

на сервере трансляции нет функции debug на свичах тоже, нужен альтернативный вариант

Share this post


Link to post
Share on other sites

Включить debug igmp и отправлять на удалённый syslog?

на сервере трансляции нет функции debug на свичах тоже, нужен альтернативный вариант

А что за оборудование в сети стоит, через которое проходит мультикаст? Есть несколько вариантов.

Share this post


Link to post
Share on other sites

А что за оборудование в сети стоит, через которое проходит мультикаст? Есть несколько вариантов.

d-link des-3028, в сеть приходит голый мультикас

Share this post


Link to post
Share on other sites

SiXeD

У вас весь мультикаст по L2 бегает? На 3028 настроен ism? Если есть ism, то вы не увидете всех join-ов и leave-ов выше, а поскольку debug-а нет, то в общем случае никак. Можно ещё периодически забирать таблицу igmp snooping, но тогда быстрые переключения вы не зафиксируете

Share this post


Link to post
Share on other sites

Можно ещё периодически забирать таблицу igmp snooping, но тогда быстрые переключения вы не зафиксируете

Большое спасибо за идею.

Share this post


Link to post
Share on other sites

SiXeD

Ну ещё надо проверить умеют ли эти длинки отдавать таблицу igmp по snmp(а иначе геморройно).

 

Если Вы это делаете ради статистики, то забудьте, абоненты выключают телек и не выключают stb, получается не статистика популярности, а хз что. Когда stb будут интегрированы в телеки, тогда эта задача будет актуальна.

Share this post


Link to post
Share on other sites

У нас не коммерческий юникаст, проигрыватель IPTv Player умеет отсылать статистику по просмотрам на сервер в XML. думаю и на приставки можно прикруть нечто подобное.

Share this post


Link to post
Share on other sites

Всем спасибо, а вот первые наброски мож кому пригодятся

#!/usr/bin/php
<?php

$hb = array("0"=>'0000', "1"=>'0001', "2"=>'0010', "3"=>'0011', "4"=>'0100',"5"=>'0101',"6"=>'0110',"7"=>'0111',"8"=>'1000',"9"=>'1001',"a"=>'1010',"b"=>'1011',"c"=>'1100',"d"=>'1101',"e"=>'1110',"f"=>'1111');
function Sget($ip, $id)  { $community = 'пароль свича';  $sysdesc = @snmpwalk($ip, $community, $id, 100);  return $sysdesc; }
function Sgetoid($ip, $id)  { $community = 'пароль свича';  $sysdesc = @snmpwalkoid($ip, $community, $id, 100000);  return $sysdesc; }


 function Svlan($ip)  { global $hb;
  $count=0;
  $port = Sgetoid($ip, '1.3.6.1.4.1.171.11.63.6.2.7.5.1.4.100');
  foreach ($port as $keys=>$values)
  { $port = ereg_replace(".*SNMPv2-SMI::enterprises.171.11.63.6.2.7.5.1.4.100.","",$keys);
    $res  = strtolower(str_replace(" ","",str_replace('Hex-STRING: ','',$values)));
    if (substr($port, 0, 3)=='224')
       {
       $ports=''; for ($i=0; $i<=strlen($res); $i++) {$ports.=$hb[$res[$i]]; }
       for ($i=0; $i<=48; $i++) if ($ports[$i]=="1")  $result[$i+1][]=$port;
       }
  }
  return $result;
  }




exec("cat /remote_snmp/ip ", $tmp); #фаил с ip свичей
#$tmp[]='ip свича';
foreach($tmp as $key=>$value)
   {
   $vlan[$value]=Svlan($value);
//    break;
   }

print_r($vlan);

?>

 

PS: 250 свичей проходит за 2-3 секунды

Share this post


Link to post
Share on other sites

snmpwalk php-шный очень кривой, лучше его не использовать. вызывайте внешний snmpwalk, а ещё лучше bulkwalk, если оборудование поддерживает.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this