Как легко определить IP-адрес сетевого коммутатора из командной строки в Linux?

Вопрос или проблема

Я пытаюсь определить IP-адрес сетевого коммутатора, к которому подключены несколько машин на Linux.

Контекст: Мне нужно знать, в какой физический порт они подключены, чтобы машины могли автоматически определять свое ‘пространственное размещение’ (так как определенный порт жестко подсоединен к конкретному месту).

Обнаружение порта выполняется с помощью SNMP, что работает довольно хорошо, но, очевидно, мне нужен IP-адрес коммутатора.

В данный момент я делаю следующее: запускаю nmap (так себе…) с только сканированием ping на всей подсети (или сканирование telnet, так как на коммутаторе этот порт открыт), а затем проверяю кэш ARP и получаю IP-адрес, проверяя его по MAC-адресу, так как я знаю, какую часть производителя искать.

Вопрос: Есть ли более простой способ (избегая nmap)? Я уже пробовал широковещательную рассылку ARP, но это, похоже, не дает мне записи кэша ARP для коммутатора. Вопросный коммутатор — это IGS-801M от Planet Technology, (шесть) устройств подключены напрямую, между ними нет ничего сетевого.

Коммутатор получает свой IP-адрес через DHCP или даже автоматически назначается (169.x.x.x), статический IP-адрес не является вариантом.

Я также пробовал такие вещи, как traceroute, надеясь, что коммутатор появится как прыжок, но так как он просто (тихо) пересылает данные к шлюзу, он не появится.

Есть идеи?

Вероятно, ваш коммутатор не имеет IP-адреса (как маршрутизатор), и он переключает данные на канальном уровне.

Тем не менее, все еще может быть возможно обнаружить переходы (что, я полагаю, вы хотите), но не с помощью Nmap, который можно считать слишком высокоуровневым, что делает ваш коммутатор невидимым. Возможно, рекомендация этого человека по использованию netdisco может помочь.

Вот руководство ctrl+f для уровня 2, не знаю, может быть, там есть определённый ответ. Не знаю, помешает ли это вашему поиску, если это так.

Вы можете попробовать проследить кабели, но, как мы все знаем, иногда это приводит к огромной фрустрации. Если на коммутаторе включен CDP или LLDP, вы можете использовать это для выяснения.

Я знаю, что Debian включает пакеты для CDP и LLDP, но не уверен насчет других дистрибутивов.

IGS-801M имеет функцию безопасности, поддерживающую L2 до L4. Так что я полагаю, что может быть, у него есть IP-адрес.

  • Отправьте ping на широковещательный IP-адрес текущей сети с ПК. Все ПК настроены по умолчанию так, чтобы не отвечать на широковещательные
    ping-запросы как мера безопасности. Так что единственными ответами, которые вы получите,
    будут от коммутатора (и, возможно, от маршрутизатора, если такой имеется)

ИЛИ

  • Если, как вы сказали, вы знаете OUI часть MAC, проверьте DHCP-сервер на предмет привязок IP.

PS: Вы можете ‘зарезервировать’ IP для MAC-адреса на DHCP-сервере. Сделайте это для MAC коммутатора с IP, который вы сможете запомнить, чтобы впоследствии не проверять каждый раз.

Если этот коммутатор работает на уровне 2, то у него нет IP-адреса. Протокол IP — это уровень 3, вам следует искать, есть ли у коммутатора порт управления (и адрес, чтобы его подключить).

Ответ или решение

Определение IP-адреса сетевого коммутатора из командной строки в Linux может быть непростой задачей, особенно если коммутатор настраивается через DHCP и не имеет статического IP-адреса. Ниже приведены основные подходы, которые могут помочь решить эту задачу.

  1. Использование DHCP-сервера: Самый простой способ – проверить ARP-таблицу на вашем DHCP-сервере, если он есть. DHCP-сервер обычно имеет список всех устройств, которым он выдал IP-адреса, вместе с их MAC-адресами. Вы можете найти MAC-адрес коммутатора, который можно определить по OUI (первые три байта MAC-адреса), используя следующую команду:

    arp -a

    После этого можно сверить MAC-адреса и увидеть, какой IP-адрес был назначен коммутатору.

  2. Использование команд ping и arp: Если вы не имеете доступа к DHCP-серверу, вы можете попробовать отправить широковещательный ping на вашу подсеть. Это может выявить сетевые устройства, включая коммутатор:

    ping -b 255.255.255.255

    После этого проверьте ARP-таблицу:

    arp -a

    Это может отобразить IP-адреса всех устройств, ответивших на широковещательный ping.

  3. Использование SNMP для получения MAC-адресов: Если вы знаете, какой MAC-адрес у коммутатора, а также поддерживаете SNMP, вы можете использовать инструменты как snmpwalk, чтобы получить информацию о подключенных устройствах и их IP-адресах. Например:

    snmpwalk -v 2c -c public <адрес_коммутатора> 1.3.6.1.2.1.4.22.1.2

    Этот запрос вернет список всех связанных IP-адресов и MAC-адресов.

  4. Использование LLDP или CDP: Если ваш коммутатор поддерживает протоколы CDP (Cisco Discovery Protocol) или LLDP (Link Layer Discovery Protocol), вы можете использовать lldpctl или cdpr для получения информации о подключенных устройствах. Например:

    lldpctl

    Это даст вам информацию о соседних устройствах и их MAC-адресах в вашей сети.

  5. Ручная проверка через веб-интерфейс: Если ваш коммутатор имеет графический интерфейс, вы можете подключиться к нему через браузер, используя его IP-адрес, если вы знаете его. Некоторые коммутаторы позволяют вам видеть активные порты и подключенные устройства.

  6. Регистрация IP-адреса на DHCP-сервере: Для предотвращения подобных проблем в будущем, вы можете создать резервирование IP-адреса для MAC-адреса вашего коммутатора на DHCP-сервере. Это обеспечит коммутатору постоянный IP-адрес, что упростит дальнейшие операции.

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

Оцените материал
Добавить комментарий

Капча загружается...