Найдите хост в сети


11

Каков наилучший метод определения местоположения конкретной рабочей станции в VLAN?

Иногда мне нужно сделать это, если IP-адрес рабочей станции обнаруживается в ACL Deny

  1. использование торрента
  2. Высокая пропускная способность (Top Talkers)
  3. Фырканье

    То, как я делаю это сейчас,

    • Вход в основной коммутатор в той же VLAN
    • Пингуйте IP-адрес,
    • Получить MAC из таблицы ARP
    • Поиск MAC-адреса, чтобы увидеть, с какого коммутатора он был извлечен
    • войдите в систему с этим переключателем, промыть и повторять, пока я не найду рабочую станцию

иногда это может потребовать подключения к ~ 7 коммутаторам, в этой сети есть определенные проблемы, с которыми я ничего не могу сделать в данный момент. Огромные VLAN (/ 16) с несколькими сотнями пользователей в каждой VLAN

во всем магазине Cisco с минимальным бюджетом на использование коммутаторов Cisco должен быть более эффективный способ отслеживания хост-машин?

РЕДАКТИРОВАТЬ: добавить дополнительную информацию

В частности, я ищу порт коммутатора, к которому подключен пользователь? также немного истории было бы здорово .. потому что мой подход работает только тогда, когда пользователь все еще подключен, и не имеет значения, когда я просматриваю журналы утром, но устройство больше не подключено.

Нет центрального DNS или Active Directory, это как гостевая сеть, где предоставляется только доступ в Интернет. Я стараюсь обеспечить некоторое управление и немного безопасности.

Я попытался "show ip dhcp binding | inc", это дает мне странный MAC-адрес (с 2 дополнительными символами), который не является MAC-адресом связанного устройства, я еще не рассматривал это, но ARP точен, и я больше обеспокоен с поиском порта коммутатора, к которому подключен нарушитель.

надеюсь, что это дает некоторые разъяснения


2
Относительно вашего "show ip dhcp binding | inc": дополнительные символы спереди - это тип носителя. Если вы удалите первые два символа, вы останетесь с клиентом MAC. Представления из двух цифр приведены в таблице 2: freesoft.org/CIE/RFC/1700/24.htm
some_guy_long_gone

@legioxi, это предполагает, что устройство само идентифицировалось с использованием MAC. Если он использовал строку, это может быть тем, что показывает сервер.
Рикки Бим

Ответы:


13

Взгляните на трассировщик Layer2 (для cisco) .. Кстати, Cdp должен быть запущен ...

Router# traceroute mac 0000.0201.0601 0000.0201.0201
Source 0000.0201.0601 found on con6[WS-C2950G-24-EI] (2.2.6.6)
con6 (2.2.6.6) :Fa0/1 => Fa0/3
con5                 (2.2.5.5        )  :    Fa0/3 => Gi0/1
con1                 (2.2.1.1        )  :    Gi0/1 => Gi0/2
con2                 (2.2.2.2        )  :    Gi0/2 => Fa0/1
Destination 0000.0201.0201 found on con2[WS-C3550-24] (2.2.2.2)
Layer 2 trace completed
Router# 
Router# traceroute mac 0001.0000.0204 0001.0000.0304 detail 
Source 0001.0000.0204 found on VAYU[WS-C6509] (2.1.1.10)
1 VAYU / WS-C6509 / 2.1.1.10 :
                Gi6/1 [full, 1000M] => Po100 [auto, auto]
2 PANI / WS-C6509 / 2.1.1.12 :
                Po100 [auto, auto] => Po110 [auto, auto]
3 BUMI / WS-C6509 / 2.1.1.13 :
                Po110 [auto, auto] => Po120 [auto, auto]
4 AGNI / WS-C6509 / 2.1.1.11 :
                Po120 [auto, auto] => Gi8/12 [full, 1000M] Destination 0001.0000.0304 
found on AGNI[WS-C6509] (2.1.1.11) Layer 2 trace completed.
Router# 

Это удивительно, я сейчас играю с этим. Именно то, что я искал
hyussuf

9

Мы используем плагин mactrack на Cacti, чтобы делать такие вещи. Работает довольно хорошо, исторические данные также доступны.

Пока таблицы ARP и MAC-адресов доступны через SNMP, это работает. Единственная небольшая проблема, с которой мы столкнулись, - это когда уровень 3 для сайта является ASA. Мы только обошли это, потянув таблицу ARP через скрипты и сгенерировав файл arpwatch , так как mactrack это поддерживает.

Пример скриншота из нашей настройки: введите описание изображения здесь

Imgurl ссылка: http://i.imgur.com/h9JQVkC.png


Ницца! Может быть, лучше подбросить большую картинку на imgur или что-то еще. Я не могу видеть большую часть этого вообще. :-)
Джон Дженсен

@JohnJensen Да, это просто обмен стеками с уменьшением картинки, она загружена в полном размере. Попробуйте открыть изображение в другой вкладке, например «Щелкните правой кнопкой мыши - откройте изображение в новой вкладке в Chrome». В любом случае добавлю ссылку на ответ.
Стефан Радованович

7

Есть несколько способов сделать это по дешевке (упражнения по исследованиям и / или внедрению я оставлю на ваше усмотрение).

  1. Есть сценарий, который регистрируется на каждом из ваших периферийных устройств и извлекает из них таблицы MAC-адресов. Вы захотите исключить магистральные интерфейсы для этого, но было бы тривиально создать хеш (или dict для вас, питонистов), с ключами, являющимися граничными переключателями, и значениями, являющимися другим хешем, который в основном "mac.addr -> interface ». Это избавит вас от необходимости гоняться за MAC-адресами на ваших пограничных коммутаторах, что, по-видимому, является большей частью трудозатрат. Я могу рекомендовать использовать Perl Net::Appliance::Sessionили Python, exscriptчтобы это произошло (предполагается, что у вас есть доступ к * NIX).

  2. Используйте SNMP для запроса этих данных, что исключит необходимость подлинного входа сценария в коммутаторы и выполнения команд. Вы самостоятельно ищите MIB для таблиц MAC-адресов, но вот поиск Google, чтобы вы начали .

  3. Если вы работаете только в Windows, вы можете использовать SecureCRT или TeraTerm, чтобы настроить макросы для «полуавтоматизации» этого для вас, но мой опыт работы с любым из них очень ограничен, поэтому YMMV.

Надеюсь, что это дает вам некоторые идеи.


6

Мне нравится иметь скрипт, который захватывает show arpи show cam dynвыводит каждые 15 минут, я использую метку времени, term exec prompt timestampчтобы у нас была грубая корреляция для времен. Затем я добавляю все выходные данные переключателя в файл ... один файл на переключатель в день.

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

Поиск хостов становится довольно простым упражнением grep, если вы знаете топологию ... Застрял в windows без grep? Используйте Cygwin ...


2

Почему бы не упростить задачу и не выполнить nslookup для IP-адреса, получить имя хоста из DNS и использовать имя хоста для поиска компьютера через список активов или базу данных управления? Или, если у вас нет обратной настройки DNS, вы можете войти на сервер DHCP, чтобы получить имя хоста.

Я знаю, что это не метод Cisco / CLI, но он должен работать, если ваши пользователи назначены компьютерам 1-1. Если вас много к 1, вы можете использовать инструменты Windows / Linux, чтобы узнать текущего пользователя компьютера.


Я не думаю, что hyussuf пытается выяснить, кто находится на компьютере - так как это Network Engineering, и, исходя из приведенного им примера, я предполагаю, что он пытается определить, к какому физическому порту подключено устройство, и это устройство может не всегда быть рабочей станцией.
Mark

Правда, не только это, но это своего рода гостевая сеть, единственная услуга, которую мы предоставляем, это интернет, смесь BYOD и небольших компаний, требующих доступ в интернет для выполнения своей работы. технически провайдер в удаленном месте со всеми видами пользователей. Маршрутизаторы cisco - это мои dhcp-серверы. Когда я смотрю на информацию о привязке, MAC совершенно не прав, он даже имеет дополнительные 2 символа, которые еще не рассматривали это.
Hyussuf

Также моя главная цель - найти порт коммутатора, который нарушил работу, и отключить или «выключить» ... Я извиняюсь, не могу понять, как перейти на новую линию
hyussuf

Вы можете обновить вопрос с более подробной информацией из двух комментариев, которые вы опубликовали на мой ответ. Определенно хорошая информация, чтобы помочь с ответами.
some_guy_long_gone

2

Вы делаете это так же, как я сделал бы это вручную.

Существует программное обеспечение, которое сделает для вас ручные шаги. Инструмент, включенный в SolarWinds Engineering Toolkit, подойдет, хотя, к сожалению, это не дешево. Я уверен, что есть другие альтернативы.

Если вам не хватает промежуточного решения или какой-либо работы со сценариями, взгляните на команды SNMP, введенные в этом ответе, чтобы понять, как вы можете создать сценарий из системы с клиентом CLI SNMP.

Отредактировано, чтобы добавить: я предполагаю, что ваше «промыть и повторить» не включает пинг и еще много чего по пути. После того, как вы определили MAC-адрес, вы можете просто выполнить sh mac addr | в #### (пропадают угловые скобки)


правильно, ping только один раз, "show mac add | inc ####", несколько раз смешанный с некоторым соседом show cdp
hyussuf

Я сообщу, что у меня есть доступ как к Engineering Toolkit, так и к трекеру пользовательских устройств ( solarwinds.com/user-device-tracker.aspx ), и в 99% случаев я вхожу в систему на коммутаторах и просто выполняю их. вручную. По общему признанию это редко, я должен идти 7 глубоко, но это только работает.
Mark

Мой SNMP-фу не силен, но эта связь очень интересна и дала мне некоторые идеи.
Hyussuf

1

Вы спрашиваете две вещи.
1. Найдите MAC в своей сети - я советую создать скрипт (php) и использовать SNMP для запроса всех таблиц MAC-адресов, чтобы получить коммутатор / порт, где расположен IP / MAC-адрес.

2. Использование вашего монитора (использование торрента, высокая пропускная способность (Top Talkers), предупреждение Snort) - используйте решение как ntop для мониторинга потоков в вашей сети. Я использовал это давно и был великолепен.


1

Просто предложение ... если у вас есть какая-то активная проверка системного журнала, которая может инициировать определенные события, вы можете написать сценарий для поиска SNMP IP на каждом коммутаторе, чтобы знать, где он был примерно в то время, когда происходит событие.

(извините, я не могу найти точные OID)

Редактировать: ссылка « Использование SNMP для поиска номера порта по MAC-адресу на коммутаторе Catalyst » Я забыл о трюке comm @ vlan . Существует множество таблиц для пинга, чтобы найти всю информацию, необходимую человеку. :-(


1

switchmap - это еще один инструмент, который можно использовать для отслеживания того, какой mac-адрес находится позади какого-либо switchport (среди прочего).


1

Я использовал netdisco для сбора этой информации. Это позволит запрашивать базу данных с именем хоста, IP-адресом, MAC-адресом и т. Д. И возвращать коммутатор и порт коммутатора. Это будет делать и другие полезные вещи.


-3

Вы можете найти эту ссылку полезной

http://arunrkaushik.blogspot.com/2007/10/traceroute-mac-ip.html


Как правило, в Net Eng SE считается правильным включить основные детали вашего ответа и предоставить ссылку на справочные материалы, если это необходимо. (Потому что «ссылочная гниль» означает, что в конечном итоге URL никуда не денется.)
Крейг Константин
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.