Xin chào ! Nếu đây là lần đầu tiên bạn đến với diễn đàn, xin vui lòng danh ra một phút bấm vào đây để đăng kí và tham gia thảo luận cùng VnPro.
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Lab Dùng ngôn ngữ Python và thư viện Netmiko để thực hiện truy cập SSH vào Cisco router

    Lab 2 – Dùng ngôn ngữ Python và thư viện Netmiko để thực hiện truy cập SSH vào Cisco router
    1. Sơ đồ mạng:
    Click image for larger version

Name:	dataurl210260.png
Views:	36
Size:	32.8 KB
ID:	437255
    Hình1.1: Sơ đồ bài Lab
    1. Mô tả :
    • Sơ đồ bài thực hành gồm 1 Router và 1 PC được đấu nối với nhau như hình 1.1.
    • Trên sơ đồ này, học viên thực hiện cấu hình SSH bằng ngôn ngữ Python.
    • Máy PC phải đáp ứng yêu cầu đã cài đặt trạm làm việc cho developer.
    1. Yêu cầu:
    • Học viên thực hiện đấu nối thiết bị, thực hiện một số cấu hình cơ bản trên Router như đặt hostname, password console, đặt địa chỉ IP như hình vẽ.
    • Cài đặt thư viện Netmiko trên máy tính.
    • Thực hiện cấu hình cho phép SSH trên Router.
    • Viết code bằng Python thực hiện yêu cầu:
    • [*=2]Kết nối SSH tới Router thành công. [*=2]Thực hiện cấu hình tạo Vlan, đặt địa chỉ IP cho interface Vlan từ 10-30 với IP:172.16.x.0/24 (x là số vlan). [*=2]Hiển thị kết quả.
    1. Các bước thực hiện :
    Bước 1 : Cài đặt thư viện Netmiko.
    Từ PC bấm tổ hợp phím Windows + R , cmd ( yêu cầu internet )
    Nâng cấp thư viện Pip:

    python –m pip install --upgrade pip

    Click image for larger version

Name:	dataurl210262.png
Views:	20
Size:	49.8 KB
ID:	437257
    Cài đặt thư viện Netmiko :

    pip install netmiko –-user
    Hoặc pip3 install netmiko –-user đối với Python 3

    Click image for larger version

Name:	dataurl210263.png
Views:	20
Size:	1.3 KB
ID:	437256
    Kết quả :
    Click image for larger version

Name:	dataurl210264.png
Views:	18
Size:	111.6 KB
ID:	437258

    Bước 2 : Kết nối và cấu hình cơ bản.
    Đặt IP interface vlan 1
    Switch#configure terminal
    Switch(config)#interface vlan 1
    Switch(config-if)#ip address 192.168.1.1 255.255.255.0
    Switch(config-if)#no shutdown
    Đặt IP cho PC
    Bước 3 : Thực hiện cấu hình cho phép truy cập SSH trên Router.
    Switch#configure terminal
    Switch(config)#username admin password 123
    Switch(config)#ip domain-name 192.168.1.1
    Switch(config)#enable password vnpro
    Switch(config)#line vty 0 4
    Switch(config-line)#login local
    Switch(config-line)#transport input ssh
    Switch(config-line)#exit
    Switch(config)#crypto key generate rsa module 1024
    Switch(config)#ip ssh version 2
    Bước 4 : Viết chương trình
    Vào phần mềm Atom, tạo new file Netmiko.py và save C:\python
    Đầu tiền, từ thư viên Netmiko import ConnectHandler và khai báo thông tín Switch dưới dạng từ điển
    from netmiko import ConnectHandler #import hàm ConnectHandler từ thư viện Netmiko
    SW1 = { #Tạo Dict SW1 bao gồm các thuộc tính
    'device_type':'cisco_ios', #Nếu dùng thiết bị Cisco để cisco_ios
    'ip':'192.168.1.1', #ip của SW
    'username':'admin', #Tên truy cập SSH vào Switch
    'password':'123', password truy cập SSH vào Switch
    'secret':'password', #secret là enable password của Switch
    }
    Lưu ý: các thuộc tính trên phải để chính xác như trên
    Tiếp theo, truyền từ điển SW1 vào hàm ConnectHandler và vào mode enable
    net_connect = ConnectHandler(**SW1) #tạo kết nối đến SW1
    net_connect.enable() #tạo kết nối vào mode enable
    Vì SW1 có dạng là từ điển nên chúng ta cần truyền vào hàm ConnectHandler dưới dạng **SW1.
    Tạo vòng lặp for để tạo Vlan từ 10-30
    for n in range (10,31): #n bắt đầu từ 0 nền để tạo vlan 10-30 cần cho chạy từ 10-31
    taoVlan= ['vlan ' + str(n)] #vì n thuộc kiểu int nên cần ép kiểu về
    #kiểu string
    ipVlan=['int vlan '+str(n),'ip add 172.16.'+str(n)+'.1 255.255.255.0','no shutdown']
    net_connect.send_config_set(taoVlan)
    net_connect.send_config_set(ipVlan)
    Để tạo vlan trên switch ta sử dụng câu lệnh:
    • vlan 10
    • vlan 11
    • vlan 30
    Chúng ta sẽ tạo ra 1 mảng taoVlan=[‘vlan ‘ + str(n)] trong đó n di chuyển từ 10-30
    Để đặt IP cho interface Vlan ta sử dụng câu lệnh:
    • interface vlan 10
      ip add 172.16.10.1 255.255.255.0
      no shutdown
    • Interface vlan 30
      ip add 172.16.30.1 255.255.255.0
      no shutdown
    Chúng ta sẽ tạo 1 mảng ipVlan=['int vlan '+str(n),'ip add 172.16.'+str(n)+'.1 255.255.255.0','no shutdown']. Trong đó n chạy từ 10-30
    Sau đó, gửi 2 mảng taoVlan và ipVlan bằng send_config_set, in kết quả ra màn hình
    Để kiểm tra kết quả trên switch ta dùng câu lệnh “show ip interface brief | include Vlanđể truyền câu lệnh đó đến Switch ta dùng send_config_command(‘show ip interface brief | include Vlan’)
    File Netmiko.py của chúng ta sẽ như sau
    from netmiko import ConnectHandler
    SW1 = {
    'device_type':'cisco_ios',
    'ip':'192.168.1.1',
    'username':'admin',
    'password':'123',
    'secret':'password',
    }
    net_connect = ConnectHandler(**SW1)
    net_connect.enable()
    for n in range (10,31):
    taoVlan= ['vlan ' + str(n)]
    ipVlan=['int vlan '+str(n),'ip add 172.16.'+str(n)+'.1 255.255.255.0','no shutdown']
    output = net_connect.send_config_set(taoVlan)
    output = net_connect.send_config_set(ipVlan)
    output = net_connect.send_command('show ip interface brief | include Vlan')
    print(output)
    Kiểm tra:
    Vào command line, thực hiện lệnh:
    cd C:\python
    python Netmiko.py
    Kết quả: trả về các interface vlan đã tạo là thành công

Working...
X