Имея доступ только по ssh, определите, является ли устройство маршрутизатором или коммутатором (Cisco и Juniper)

В нашей сети есть несколько устройств Cisco и Juniper, которые мне нужны для написания скрипта Python, чтобы определить, что это: коммутаторы или маршрутизаторы.

У меня есть доступ SSH, поэтому я могу show version и проанализируйте "JUNOS" или "Cisco", чтобы выяснить поставщика. Но я не знаю, как узнать, является ли устройство маршрутизатором, коммутатором или чем-то еще.

Спасибо за помощь!

3 ответа

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

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

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

На устройстве Cisco можно проанализировать возможности устройства с помощью CDP (см. На устройстве cisco, как вы показываете эти возможности?), Однако в вашей сети может быть отключен CDP.

Лучше всего было бы проверить, присутствуют ли интерфейсы Vlan (имеется в виду коммутируемое устройство) и существуют ли интерфейсы типа fastEthernet X/X/X (вероятно, маршрутизатор с возможностью коммутации).

Используя эти два факта, вы получите достаточно точное представление о том, что это за устройство, но оно специфично для Cisco.

Вы также можете использовать навигатор функций Cisco / ссылку Juniper для создания обнаружения с использованием названия модели (если вы знаете, какие устройства у вас в сети, в большинстве случаев у вас ограниченное количество моделей), что будет более точным, но специфично для вашей сети.

Преимущество состоит в том, что на этот раз он является общим и не относится только к одному бренду, и нет риска ошибочного обнаружения.

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

Есть много способов сделать это.

Мой первый выбор будет SNMP, даже если вам нужно попробовать несколько строк. Звонки быстрее и менее уязвимы для различий в версии кода. Вы можете скачать бесплатную копию солнечного ветра и закончить менее чем за час. Сценарий взаимодействия SNMP также намного проще, чем ssh/cli.

Далее я бы использовал какую-то ожидаемую оболочку. Я неравнодушен к Perl, потому что он более стабилен и лучше документирован. Вы также можете написать ожидаемый скрипт и вызвать его из python.

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

Другие вопросы по тегам