ホームページ  >  記事  >  バックエンド開発  >  Python を使用した Cisco オートメーション

Python を使用した Cisco オートメーション

WBOY
WBOYオリジナル
2024-09-07 14:32:17855ブラウズ

Automatización de Cisco con Python

Cisco ルーターやスイッチなどのネットワーク デバイスの自動化は、SSH 接続を簡単に処理するように設計された Netmiko ライブラリを備えた Python を使用して簡単に実現できます。以下に、Cisco デバイスの構成を表示し、VLAN の作成と構成を自動化するための 2 つの基本的なスクリプトを示します。

1. Cisco デバイス (ルーター) の構成を表示するスクリプト:

from netmiko import ConnectHandler
ssh=ConnectHandler(
    device_type="cisco_ios",
    host="192.168.0.10",
    port=22,
    username="cisco",
    password="cisco"
)
out=ssh.send_command("show run")
print(ssh.find_prompt())
print("show run:\n"+out)

操作:

  • Netmiko インポート: SSH 接続を処理するために ConnectHandler クラスがインポートされます。
  • SSH 接続: Cisco デバイスの IP、ポート、資格情報を使用して、接続が作成されます。
  • コマンドの実行: show run コマンドは、デバイスの現在の設定を取得するために送信されます。
  • プロンプトの印刷: デバイスのプロンプトが印刷され、接続がまだアクティブであることが示されます。
  • 構成の表示: コマンド出力が印刷され、実行中の構成が示されます。

このスクリプトは、Cisco デバイス上で自動化された方法で簡単な構成クエリを実行する場合に役立ちます。

2. IP アドレスを作成、構成し、VLAN に割り当てるスクリプト:

from netmiko import ConnectHandler

ssh = ConnectHandler(
    device_type="cisco_ios",
    host="192.168.10.2",
    port=22,
    username="womar1",
    password="womar"
)
ssh.enable()
comandos = [
    "hostname uwu",
    "vlan 10",
    "interface vlan 10",
    "ip address 192.168.2.1 255.255.255.0",
    "no shutdown",
    'interface range fa0/1 - 5',  # Corrección aquí
    "switchport mode access",
    'switchport access vlan 10',
    "vlan 20",
    "interface vlan 20",
    "ip address 192.168.3.1 255.255.255.0",
    "no shutdown",
    'interface range fa0/6 - 10',  # Corrección aquí
    "switchport mode access",
    'switchport access vlan 20',
    "vlan 10",
    "interface vlan 30",
    "ip address 192.168.4.1 255.255.255.0",
    "no shutdown",
    'interface range fa0/11 - 15',  # Corrección aquí
    "switchport mode access",
    'switchport access vlan 30',
    "vlan 10",
    "interface vlan 40",
    "ip address 192.168.5.1 255.255.255.0",
    "no shutdown",
    'interface range fa0/16 - 20',  # Corrección aquí
    "switchport mode access",
    'switchport access vlan 40',
    "vlan 50",
    "interface vlan 50",
    "ip address 192.168.200.1 255.255.240.0",
    "no shutdown",
    'interface range fa0/21 - 22',  # Corrección aquí
    "switchport mode access",
    'switchport access vlan 50',



]
ssh.send_config_set(comandos)
configuracion = ssh.send_command("show run")
comands = ssh.find_prompt()

print(comands)
print("show run:\n" + configuracion)

操作:

  • 接続と特権モード: SSH 接続が確立され、ssh.enable() で特権モードに切り替えられます。
  • コマンド リスト: いくつかの VLAN が作成され、インターフェイスと IP アドレスがこれらの VLAN に割り当てられ、ポートがスイッチポート モード アクセスで設定されます。
  • 設定アプリケーション: コマンドは ssh.send_config_set() で一括送信されます。
  • 設定の検証: show run コマンドを使用して、デバイスの現在の設定を取得します。
  • 結果の印刷: デバイスのプロンプトと結果の構成が印刷されます。

このスクリプトは、VLAN の構成を自動化し、インターフェイスに IP を割り当てるのに最適で、複雑なネットワークの管理を迅速かつ効率的に容易にします。

必要なリソース:
Python を使用して Cisco デバイスの設定の自動化を開始する前に、適切な環境があることを確認することが重要です。ここでは、必要なリソースとツールについて詳しく説明します:

1. Python とライブラリのインストール

システムには Python 3.6 以降がインストールされている必要があります。まだお持ちでない場合は、オペレーティング システムに応じて簡単にインストールできます。

自動化された方法で Cisco デバイスと対話するために、ルーターやスイッチへの SSH 接続を容易にする Python ライブラリである Netmiko を使用します。

  • Netmiko: SSH 経由でネットワーク デバイス (ルーターやスイッチなど) に接続するために使用するメイン ライブラリです。
  • Paramiko: Netmiko は、Python の SSH クライアントであるこのライブラリに依存しています。
  • PIP: Python パッケージ マネージャーであり、ライブラリをインストールするために必要です。

2.ライブラリのインストール

Netmiko とその依存関係 (Paramiko を含む) をインストールするには、ターミナルで次のコマンドを実行します。

pip install netmiko

このコマンドは、Netmiko を必要な依存関係とともにダウンロードしてインストールします。完了したら、次のコマンドを使用して、すべてが正しくインストールされたことを確認できます。

pip list

これにより、インストールされているすべてのライブラリが表示され、その中に netmiko と paramiko が表示されるはずです。

3. Cisco デバイスへの SSH アクセス

インストールされたライブラリに加えて、Cisco デバイス (ルーターまたはスイッチ) が SSH 接続を受け入れるように設定されていることを確認する必要があります。以下は、アクセスを有効にするための重要なポイントです:

a) Cisco デバイスで SSH を有効にします:

configure terminal
ip domain-name cisco.local
crypto key generate rsa
username cisco privilege 15 secret cisco
line vty 0 4
transport input ssh
login local
exit

b) 認証情報と IP を確認します:

  • 正しい資格情報 (ユーザー名とパスワード) を持っていること、および Python スクリプトを実行するマシンからデバイスの IP アドレスにアクセスできることを確認してください。

これらの構成により、Python を使用して Cisco デバイス上でスクリプトを実行し、タスクを自動化する準備が整いました。

結論

適切なリソース (Cisco デバイスで有効な Python、Netmiko、SSH) と必要なライブラリがインストールされていれば、Python を使用してネットワーク デバイスの構成と管理の自動化を開始する準備が整います。 Netmiko を使用すると、これらのデバイスへの接続とコマンドの実行が簡単になり、反復的なタスクが簡素化され、ネットワーク管理の効率が向上します。

以上がPython を使用した Cisco オートメーションの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。