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
Hình1.1: Sơ đồ bài Lab
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
Cài đặt thư viện Netmiko :
pip install netmiko –-user
Hoặc 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.
Đặt IP interface vlan 1
Đặ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.
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
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
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
Để tạo vlan trên switch ta sử dụng câu lệnh:
Để đặt IP cho interface Vlan ta sử dụng câu lệnh:
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
Kiểm tra:
Vào command line, thực hiện lệnh:
Kết quả: trả về các interface vlan đã tạo là thành công
- Sơ đồ mạng:
Hình1.1: Sơ đồ bài Lab
- 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.
- 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ả.
- Các bước thực hiện :
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
Cài đặt thư viện Netmiko :
pip install netmiko –-user
Hoặc 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.
Đặ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 |
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 |
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 } |
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 |
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) |
- vlan 10
- vlan 11
- …
- vlan 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
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) |
Vào command line, thực hiện lệnh:
| cd C:\python python Netmiko.py |