18. Подключение к оборудованию#

В этом разделе рассматривается как подключиться к оборудованию по протоколам:

  • SSH

  • Telnet

В Python есть несколько модулей, которые позволяют подключаться к оборудованию и выполнять команды:

  • pexpect - это реализация expect на Python

    • этот модуль позволяет работать с любой интерактивной сессией: ssh, telnet, sftp и др.

    • кроме того, он позволяет выполнять различные команды в ОС (это можно делать и с помощью других модулей)

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

  • telnetlib - этот модуль позволяет подключаться по Telnet

    • в версии 1.0 netmiko также появилась поддержка Telnet, поэтому, если netmiko поддерживает то оборудование, которое используется у вас, удобней будет использовать его

  • paramiko - это модуль, который позволяет подключаться по SSHv2

    • он более удобен в использовании, чем pexpect, но с более узкой функциональностью (поддерживает только SSH)

  • netmiko - это модуль, который упрощает использование paramiko для сетевых устройств

    • netmiko это «обертка» вокруг paramiko, которая ориентирована на работу с сетевым оборудованием

  • scrapli - это модуль, который позволяет подключаться к сетевому оборудованию используя Telnet, SSH или NETCONF.

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

Параметры, которые используются в разделе:

  • пользователь: cisco

  • пароль: cisco

  • пароль на режим enable: cisco

  • SSH версии 2

  • IP-адреса: 192.168.100.1, 192.168.100.2, 192.168.100.3