LAB: Viết chương trình dùng ngôn ngữ Python và thư viện Netmiko để thực hiện truy cập SSH vào thiết bị mạng Cisco router -

LAB: Viết chương trình dùng ngôn ngữ Python và thư viện Netmiko để thực hiện truy cập SSH vào thiết bị mạng Cisco router -

LAB: Viết chương trình dùng ngôn ngữ Python và thư viện Netmiko để thực hiện truy cập SSH vào thiết bị mạng Cisco router -

LAB: Viết chương trình dùng ngôn ngữ Python và thư viện Netmiko để thực hiện truy cập SSH vào thiết bị mạng Cisco router -

LAB: Viết chương trình dùng ngôn ngữ Python và thư viện Netmiko để thực hiện truy cập SSH vào thiết bị mạng Cisco router -
LAB: Viết chương trình dùng ngôn ngữ Python và thư viện Netmiko để thực hiện truy cập SSH vào thiết bị mạng Cisco router -
(028) 35124257 - 0933 427 079

LAB: Viết chương trình dùng ngôn ngữ Python và thư viện Netmiko để thực hiện truy cập SSH vào thiết bị mạng Cisco router

17-03-2022

Sơ đồ mạng bài lab.

  1. Các bước thực hiện thực hiện bài lab:

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:

Cài đặt thư viện Netmiko:

 

(pip3 install netmiko - -user đối với Python 3)

Kết quả:

Bước 2 : Kết nối và cấu hình cơ bản và SSH cho thiết bị.

a) Cấu hình Router

  • Cấu hình cấp IP cho router

Switch#configure terminal

Switch(config)#hostname R1

R1 (config)# int e0/0

R1(config-if)# ip address dhcp

R1(config-if)# no shutdown

R1(config-if)#exit
  • Thực hiện cấu hình cho phép truy cập SSH trên Router.

R1#configure  terminal

R1 (config)#username admin password cisco

R1 (config)#ip domain-name vnpro.org

R1 (config)#enable password vnpro

R1 (config)#line vty 0 4

R1 (config-line)# login local

R1 (config-line)# transport input ssh

R1 (config-line)#exit

R1 (config)#ip ssh version 2

R1 (config)#crypto key generate rsa

1024

b) Cấu hình Switch

  • Cấu hình cấp IP cho router

Switch#configure terminal

Switch(config)#hostname SW1

SW1 (config)# int e0/0

SW1 (config-if)# no switchport

SW1 (config-if)# ip address dhcp

SW1 (config-if)# no shutdown

SW1 (config-if)#exit

  • Thực hiện cấu hình cho phép truy cập SSH trên Switch.

SW1 #configure  terminal

SW1 (config)#username admin password cisco

SW1 (config)#ip domain-name vnpro.org

SW1 (config)#enable password vnpro

SW1 (config)#line vty 0 4

SW1 (config-line)# login local

SW1 (config-line)# transport input ssh

SW1 (config-line)#exit

SW1 (config)#ip ssh version 2

SW1 (config)#crypto key generate rsa

1024

Bước 4 : Viết chương trình Python.

a) Chương trình Python cho Router tạo loopback

Vào phần mềm Visual Studio Code, tạo new file Netmiko.py và save mục bài làm C:\python

Đầu tiền, từ thư viên Netmiko import ConnectHandler và khai báo thông tin Router dưới dạng dict.

from netmiko import ConnectHandler          #import hàm ConnectHandler từ thư viện Netmiko

R1 = {                                                            #Tạo Dict R1 bao gồm các thuộc tính như sau

'device_type':'cisco_ios’,                               #device_type nếu dùng thiết bị Cisco để cisco_ios

'ip':'10.215.26.252',                                        #ip của R1 khi được cấp dhcp

'username':'admin',                                         #username là tên truy cập SSH vào R1

'password':’cisco’,                                          #password là password truy cập SSH vào R1

'secret':'vnpro',                                                #secret là enable password của R1

}                                                                

Lưu ý: các thuộc tính trên phải để chính xác như trên

Tiếp theo, truyền thư viện(dict) R1 vào hàm ConnectHandler và vào mode enable

net_connect = ConnectHandler(**R1)     #tạo kết nối đến R1

net_connect.enable()                                 #tạo kết nối vào mode enable

Vì R1 có dạng là thư viên(dict) nên chúng ta cần truyền vào hàm ConnectHandler dưới dạng **R1.

Dùng vòng lặp For để ta tạo ra 5 loopback cùng 1 lúc trên Router.

for n in range (1,6): 

    output = net_connect.send_config_set(

                             [f'int lo{i}',      #dòng lệnh tạo loopback

                              f'ip add 192.168.{i}.1 255.255.255.0 ']     #đặt ip cho loopback

                              #để có thể chạy ta cần phải ép kiểu I bằng cách thêm f trước câu lệnh.

)  

     print(output)

Sau khi chạy kết quả sẻ hiển thị như sau:

Để kiểm tra xem mình đã tạo được các loopback chưa:

out = net_connect.send_command('show ip int bri')  

print(out)

Kết quả:

b) Chương trình Python cho Router tạo vlan

Để tạo vlan trên switch ta sử dụng câu lệnh:

  • vlan 10
  • vlan 20
  • Vlan 50

Cũng tương tự như Router ta phải khai báo thông tín Switch dưới dạng dict

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 như sau

'device_type':'cisco_ios’,                               #device_type nếu dùng thiết bị Cisco để cisco_ios

'ip':'10.215.26.249',                                        #ip của SW1 khi được cấp dhcp

'username':'admin',                                         #username là tên truy cập SSH vào SW1

'password':’cisco’,                                          #password là password truy cập SSH vào SW1

'secret':'vnpro',                                                #secret là enable password của SW1

}                                                                

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

Dùng dòng for để tạo 5 vlan cho switch.

tenvlan = ['kythuat','kinhdoanh','ketoan','giamdoc','nhansu']

dem = 10

for i in tenvlan:

        output = net_connect.send_config_set([f"vlan {dem}",f"name {i}"])

print(output)

        dem+=10

Kết quả sẽ hiển thị khi tạo vlan:

 

 

 

 

 

 

Để kiểm tra kết quả trên switch ta dùng câu lệnh “sh ip int br | i Vlan” để truyền câu lệnh đó đến Switch ta dùng send_config_command(‘sh ip int br | i Vlan’)

out = net_connect.send_command('show vlan')  

print(out)

File Netmiko_router.py của chúng ta sẽ như sau:

from netmiko import ConnectHandler

 

R2 = {

    'device_type':"cisco_ios",

    "ip": "10.215.26.252",

    'username':"cisco",

    'password':'cisco',

    'secret':'vnpro'

 

}

 

net_connect= ConnectHandler(**R2)

print(net_connect.enable())

 

for i in range(1,6):

    output = net_connect.send_config_set([f'int lo{i}', f'ip add 192.168.{i}.1 255.255.255.0 '])

    print(output)

 

out = net_connect.send_command('show ip int bri')

print(out)

File Netmiko_Switch.py của chúng ta sẽ như sau:

from netmiko import ConnectHandler

 

SW1 = {

    'device_type':"cisco_ios",

    "ip": "10.215.26.254",

    'username':"cisco",

    'password':'cisco',

    'secret':'vnpro'

 

}

 

net_connect= ConnectHandler(**SW1)

print(net_connect.enable())

 

tenvlan = ['kythuat','kinhdoanh','ketoan','giamdoc','nhansu']

dem = 10

for i in tenvlan:

    output = net_connect.send_config_set([f"vlan {dem}",f"name {i}"])

    print(output)

    dem+=10

 

out = net_connect.send_command('show vlan')

print(out)


FORM ĐĂNG KÝ MUA HÀNG
Đặt hàng
icon-cart
0