kf72 Опубликовано 19 сентября, 2010 · Жалоба строили сеть как попало, не подписанные кабели втыкали в гирлянды неуправляемых коммутаторов доступа. пришло время разгребать. путь для решения - установить управляемый коммутатор, "засечь" все мак адреса, сделать соответствие адрес-порт и кабели подписать. Ставлю управляемый коммутатор, который видит маки. Очень хочется собрать все мак адреса на каждом порту. насколько понял встроенные утилиты показывают только АКТИВНЫЕ в настоящий момент адреса. подскажите куда копать, чтоб собрать базу порт-мак адрес. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
s.lobanov Опубликовано 19 сентября, 2010 · Жалоба Способ 1. Настроить port security(если есть такой функционал), каждую ночь(или раз в час, например) собирать маки. Способ 2. Настроить отправку snmp трапов на событие link updown, ловить трап, как только трап пойман снимать маки с порта, потом через 10 секунд, потом через 100 секунд, через 300 и 1000 секунд(пока загрузят компьютер, пока оттуда придёт первый мак...) Способ 3. Просто с интервалом N минут собирать маки со всех портов, складировать их в базу, потом писать нужные селекты. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
kf72 Опубликовано 19 сентября, 2010 · Жалоба Способ 1. Настроить port security(если есть такой функционал), каждую ночь(или раз в час, например) собирать маки.Способ 2. Настроить отправку snmp трапов на событие link updown, ловить трап, как только трап пойман снимать маки с порта, потом через 10 секунд, потом через 100 секунд, через 300 и 1000 секунд(пока загрузят компьютер, пока оттуда придёт первый мак...) Способ 3. Просто с интервалом N минут собирать маки со всех портов, складировать их в базу, потом писать нужные селекты. Способ 3. чем собирать? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
s.lobanov Опубликовано 19 сентября, 2010 · Жалоба Утилитой snmpwalk, потом грепать, авкать и седить или использовать API для Perl/C/PHP (для php API самое слабенькое, но для сборки маков хватает). Что за свитч у вас?(который управляемый) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
kf72 Опубликовано 19 сентября, 2010 · Жалоба свичи длинки des 3026 3010g сisco 2950 лайткомы для сбора можно будет одну модель "погонять" по всем проблемным домам мм.. под виндой чего нить порекомендуете? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
SokolovS Опубликовано 19 сентября, 2010 · Жалоба У нас на perl написано по варианту 3, потому как работает практически для всех L2 коммутаторов. В итоге строится интерактивная карта (уровень отображения задается) через модуль PEAR::Image_GraphViz. Обновляется раз в 6 часов, этого достаточно. для php API самое слабенькое, но для сборки маков хватаетОно не слабое, оно вполне стандартное, но перебирать кучу свичей по очереди это ж сколько времени займет. Поточности там нет :( Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
s.lobanov Опубликовано 19 сентября, 2010 · Жалоба У нас на perl написано по варианту 3, потому как работает практически для всех L2 коммутаторов. В итоге строится интерактивная карта (уровень отображения задается) через модуль PEAR::Image_GraphViz. Обновляется раз в 6 часов, этого достаточно. для php API самое слабенькое, но для сборки маков хватаетОно не слабое, оно вполне стандартное, но перебирать кучу свичей по очереди это ж сколько времени займет. Поточности там нет :( Оно слабое, нет возможности задания опций(отображать в численном виде или буквенном и прочего), нет bulk get, нет set на сразу несколько оидов. Это требуется редко и мало кому, поэтому и не реализовано Проблему с поточностью я решаю запуская несколько php-скриптов одновременно башевских скриптом, первый обрабатывает хосты, номер которых равен 0 по модулю N, второй - 1 по модулю N и т.д. (где N-число одновременно запускаемых скриптов). свичи длинки des 3026 3010g сisco 2950 лайткомыдля сбора можно будет одну модель "погонять" по всем проблемным домам мм.. под виндой чего нить порекомендуете? по длинку сюда http://webdev.dlink.ru/technical/faq_hub_switch_106.php по cisco вам сюда http://www.cisco.com/en/US/tech/tk648/tk36...99.shtml#topic3 Под виндой есть тот же Perl/C/PHP и есть тот же самый snmpwalk(можно скачать .exe). Всё равно вам придётся писать/заказывать какой-то скриптик, под какую ОС не суть в данном случае Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
kf72 Опубликовано 19 сентября, 2010 · Жалоба Под виндой есть тот же Perl/C/PHP и есть тот же самый snmpwalk(можно скачать .exe). Всё равно вам придётся писать/заказывать какой-то скриптик, под какую ОС не суть в данном случаекогда-то на delphi писал. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
s.lobanov Опубликовано 19 сентября, 2010 · Жалоба Ну пишите на delphi, если найдёте к этому поделию компонент(вроде так называется?) для работы с snmp Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
SokolovS Опубликовано 19 сентября, 2010 · Жалоба У нас на perl написано по варианту 3, потому как работает практически для всех L2 коммутаторов. В итоге строится интерактивная карта (уровень отображения задается) через модуль PEAR::Image_GraphViz. Обновляется раз в 6 часов, этого достаточно. для php API самое слабенькое, но для сборки маков хватаетОно не слабое, оно вполне стандартное, но перебирать кучу свичей по очереди это ж сколько времени займет. Поточности там нет :( Оно слабое, нет возможности задания опций(отображать в численном виде или буквенном и прочего), нет bulk get, нет set на сразу несколько оидов. Это требуется редко и мало кому, поэтому и не реализовано Проблему с поточностью я решаю запуская несколько php-скриптов одновременно башевских скриптом, первый обрабатывает хосты, номер которых равен 0 по модулю N, второй - 1 по модулю N и т.д. (где N-число одновременно запускаемых скриптов). Знаю этот способ :) Зачем так извращаетесь, есть же perl с Net::SNMP и non-blocking режимом, там все по человечески. А насчет bulk и множественного set, так это же все реализовано на тех же функция get, getnext, set их достаточно для того чтобы в PHP реализовать тоже самое, понятно что писать придется но кода там минимум :) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
s.lobanov Опубликовано 19 сентября, 2010 · Жалоба Ну не пишу я на Perl, не люблю птичьи языки, ну да ладно, это моя сугубо личная проблема. Лучше скажите как с помощью php-шной snmpset (snmp2_set) изобразить вот такое: snmpset -c comm -v2c host oid1 i 1 oid2 i 2 Т.е. как запихнуть два сета в ОДИН snmp-запрос? (по сути в один udp-пакет). Просто существует оборудование, которое настраивается только таким образом(вероятно это сделано для просты отслеживания консистентности запросов) Да и с булком тоже не ясно, т.е. как одним запросом опросить сразу несколько значений? (два гета это совсем другое) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
SokolovS Опубликовано 19 сентября, 2010 (изменено) · Жалоба Ну не пишу я на Perl, не люблю птичьи языки, ну да ладно, это моя сугубо личная проблема.Да, синтаксис там не очень :) Но плюс в том что можно писать так как нравится, я например тоже пишу на перле в Си-подобном стиле, не используя неявных переменных и.т.д. Было даже такое, что кусок кода из perl, копировал в PHP без изменений )) Лучше скажите как с помощью php-шной snmpset (snmp2_set) изобразить вот такое: snmpset -c comm -v2c host oid1 i 1 oid2 i 2 Т.е. как запихнуть два сета в ОДИН snmp-запрос? (по сути в один udp-пакет). Просто существует оборудование, которое настраивается только таким образом(вероятно это сделано для просты отслеживания консистентности запросов) Да и с булком тоже не ясно, т.е. как одним запросом опросить сразу несколько значений? (два гета это совсем другое) Да, такое не сделать :( Там в принципе нет понятия сессии, каждый запрос изолирован. Только если дорабатывать модуль, он ведь NET-SNMP использует, а значит может обладать всеми возможностями консольных утилит.Для винды есть COM компонент, но это не тру путь )) Изменено 19 сентября, 2010 пользователем SokolovS Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Konstantin Klimchev Опубликовано 19 сентября, 2010 · Жалоба строили сеть как попало, не подписанные кабели втыкали в гирлянды неуправляемых коммутаторов доступа.пришло время разгребать. путь для решения - установить управляемый коммутатор, "засечь" все мак адреса, сделать соответствие адрес-порт и кабели подписать. Ставлю управляемый коммутатор, который видит маки. Очень хочется собрать все мак адреса на каждом порту. насколько понял встроенные утилиты показывают только АКТИВНЫЕ в настоящий момент адреса. подскажите куда копать, чтоб собрать базу порт-мак адрес. у нас скрипт на ruby с периодичность раз в пол-часа обходит все "доступа" и снимает маки с портов. Реально - пару килобайт кода. Потом наше специфическое делает, но... у вас пока не стоит такой задачи, как я понял. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
karyon Опубликовано 19 сентября, 2010 (изменено) · Жалоба Чего извращатся? на длинках (и на 3026 в том числе) есть ф-ция mac_notification config mac_notification ports 1-24 state enable достаточно настроить прием snmp trap'oв на компьютере в snmptrapd.conf traphandle DES3026-L2MGMT-MIB::swL2macNotification /path_to_script/mac_notif.trap mac_notif.trap - по примерам, его задача разбить трап на параметры ----мой вариант-------------------------------------------------------- #!/bin/sh read host read ip vars= while read oid val do if [ "$vars" = "" ] then vars="$oid = $val" else vars="$vars, $oid = $val" fi done DATE=`/bin/date +"%Y-%m-%d %H:%M:%S"` MAC=`/bin/echo $vars|/usr/bin/awk '{print $10 ":" $11 ":" $12 ":" $13 ":" $14 ":" $15}'` PORT_HEX=`/bin/echo $vars|/usr/bin/awk '{print $19}'` PORT=`/bin/echo $((0x$PORT_HEX))` /bin/echo $DATE $host $PORT $MAC >>/tmp/mac_notif ----------------------------------------------------------------------- потом сидим и ждем когда пользователи появятся на портах, когда нужно - смотрим /tmp/mac_notif Изменено 19 сентября, 2010 пользователем karyon Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
aspid77 Опубликовано 20 сентября, 2010 (изменено) · Жалоба строили сеть как попало, не подписанные кабели втыкали в гирлянды неуправляемых коммутаторов доступа.пришло время разгребать. путь для решения - установить управляемый коммутатор, "засечь" все мак адреса, сделать соответствие адрес-порт и кабели подписать. Ставлю управляемый коммутатор, который видит маки. Очень хочется собрать все мак адреса на каждом порту. насколько понял встроенные утилиты показывают только АКТИВНЫЕ в настоящий момент адреса. подскажите куда копать, чтоб собрать базу порт-мак адрес. А сеть какая плоская????или поделенная уже??? если все компы в одной сети сидят)) то проще некуда, не нада заморачиваться со свичом. На машине с виндами ставиться програмулинка вот отсюда http://netcp.narod.ru/ , и она самостоятельно все соберет. Проверено работает без проблем и информация достоверная. НО есть одно но....... увидит все устройства только в одном сегменте. Изменено 20 сентября, 2010 пользователем aspid77 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
terrible Опубликовано 20 сентября, 2010 · Жалоба karyon, а я всё думал, кто первый выскажется про mac_notification :) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
SokolovS Опубликовано 20 сентября, 2010 · Жалоба karyon, а я всё думал, кто первый выскажется про mac_notification :)Писали практически в первом посте про трапы, суть одна и та же. Правда тут сразу мак сваливается.Минус - не во всем оборудовании есть! Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
s.lobanov Опубликовано 20 сентября, 2010 · Жалоба karyon, а я всё думал, кто первый выскажется про mac_notification :)Писали практически в первом посте про трапы, суть одна и та же. Правда тут сразу мак сваливается.Минус - не во всем оборудовании есть! Я подозревал, что длинка есть mac notification, но поскольку сам с длинками не работаю(всего один свитчик случайно стоит на переферии), то дал более универсальные решения. Кстати, чтоб правильно работал скрипт товарища karyon, нужно запускать snmptrapd с такими же ключами что и у него, иначе awk будет не то вырезать из строки. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ilya Evseev Опубликовано 23 сентября, 2010 · Жалоба Способ 1. Настроить port security(если есть такой функционал), Способ 3. Просто с интервалом N минут собирать маки со всех портов, складировать их в базу, потом писать нужные селекты.Способ 3. чем собирать? http://forum.nag.ru/forum/index.php?showtopic=54023Написано на Перле... ;-)) Эксплуатируется на сети из десятков тысяч хомячков и нескольких тысяч коммутаторов. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Gloom Опубликовано 23 сентября, 2010 · Жалоба cisco 2950 switchport port-security switchport port-security maximum 132 switchport port-security violation restrict switchport port-security mac-address sticky на каждом абонентском порту, ставин на месяц (а вдруг кто в отпуск уехал, или компутер поломался), собираем все маки, защищаемся от подмены мак адрессов + собираем базу по всем колхозным (неизвестным нам) свичам. через месяц сливаем то что получилось и разбираем... нет необходимости бегать на свитч по снмп постоянно... Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
peektoseen Опубликовано 26 марта, 2012 (изменено) · Жалоба Не буду плодить темы, спрошу тут. Может есть у кого нибудь скрипт-обработчик трапов mac_notification от d-link? Желательно на perl. Никак не могу найти мак в трапах. Смотрю wireshark'ом v2c трапы, впритык не вижу маков. Изменено 26 марта, 2012 пользователем peektoseen Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
bos9 Опубликовано 26 марта, 2012 · Жалоба Никак не могу найти мак в трапах. Смотрю wireshark'ом v2c трапы, впритык не вижу маков. они там вроде в десятичном виде Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
s.lobanov Опубликовано 26 марта, 2012 · Жалоба .pcap файл выкладывайте Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Negator Опубликовано 26 марта, 2012 · Жалоба http://dlink.ru/ru/faq/62/193.html Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
peektoseen Опубликовано 27 марта, 2012 (изменено) · Жалоба .pcap файл выкладывайте http://dl.dropbox.com/u/4219452/trapdump.pcap http://dlink.ru/ru/faq/62/193.html Это я тоже видел, но в пакете такого нет. В файле выше трап от DES-3526, на 24-ом порту появляется MAC 00-1e-58-30-bb-12, порт вижу где, но мака в пакете нет. Изменено 27 марта, 2012 пользователем peektoseen Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...