>백엔드 개발 >파이썬 튜토리얼 >Python을 사용한 Cisco 자동화

Python을 사용한 Cisco 자동화

WBOY
WBOY원래의
2024-09-07 14:32:17919검색

Automatización de Cisco con Python

SSH 연결을 쉽게 처리하도록 설계된 Netmiko 라이브러리와 함께 Python을 사용하면 Cisco 라우터 및 스위치와 같은 네트워크 장치의 자동화를 쉽게 달성할 수 있습니다. 아래에서는 Cisco 장치의 구성을 보고 VLAN 생성 및 구성을 자동화하는 두 가지 기본 스크립트를 보여줍니다.

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. VLAN에 IP 주소를 생성, 구성 및 할당하는 스크립트:

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.