/*auto readmore*/ /*auto readmore*/ /* an hien script*/ // an hien password /*an hien ma chuong trinh cong tru */ /*Scrollbox thanh cuon*/ /***Nhung CODE***/ /* dòng xanh dòng trắng */ /* https://cdnjs.com/libraries/prism lay thu vien, can vao ten file ma goi 1. copy link vao vi du:prism-python.min.js 2. ten ngon nua la python */ /*=== New posts ===*/ /*header slider*/ /*=== bai viet lien quan===*/ /*===tabcode===*/

Network Automation #005 - Netmiko Config Changes - OSPF Multiple Areas

Nên xem các bài dưới đây trước khi xem bài này:


Sơ đồ lab:

                  

Yêu Cầu:

Dùng thư viện Netmiko SSH vào các route để cấu hình OSPF đảm bảo mạng hội tụ (tất cả các IP sơ đồ có thể ping thấy nhau)


Chuẩn bị:

  • Đấu nối interface management: Các interface Et0/0 của tất cả các router nối vào lớp mạng 192.168.0.0/24, lớp mạng này chỉ dùng trong việc quản lý thiết bị, không tham gia vào quá trình định tuyến của các router trong sơ đồ mạng.

  • Cấu hình căn bản: trên các router đảm bảo netmiko: 192.168.0.48 có thể ssh vào được các router


Thực hiện:

  • Chuẩn bị file cấu hình mẫu:
R1.txt
interface e0/2
ip address 192.168.14.1 255.255.255.0
no shutdown
exit
interface e0/3
ip address 192.168.13.1 255.255.255.0
no shutdown
exit
interface e0/1
ip address 192.168.123.1 255.255.255.0
no shutdown
exit
interface Lo0
ip address 172.16.1.1 255.255.255.0
no shutdown
exit
!
router ospf 1
router-id 1.1.1.1
exit
!
int rang e0/1 ,e0/3, lo 0
ip ospf 1 are 0
exit
int rang e0/2
ip ospf 1 are 1
exit
end
wri

R2.txt
interface e0/1
ip address 192.168.123.2 255.255.255.0
no shutdown
exit
interface Lo0
ip address 172.16.2.1 255.255.255.0
no shutdown
exit
!
router ospf 1
router-id 2.2.2.2
exit
!
int rang e0/1 
ip ospf 1 are 0
exit
int lo 0
ip ospf 1 are 2
exit
end
wri
R3.txt
interface e0/3
ip address 192.168.13.3 255.255.255.0
no shutdown
exit
interface e0/1
ip address 192.168.123.3 255.255.255.0
no shutdown
exit
interface Lo0
ip address 172.16.3.1 255.255.255.0
no shutdown
exit
!
router ospf 1
router-id 3.3.3.3
exit
!
int rang e0/1 ,e0/3, lo 0
ip ospf 1 are 0
exit
end
wri

R4.txt
interface e0/2
ip address 192.168.14.4 255.255.255.0
no shutdown
exit
interface Lo0
ip address 8.8.8.8 255.255.255.0
no shutdown
exit
!
router ospf 1
router-id 4.4.4.4
exit
!
int rang e0/2
ip ospf 1 are 1
exit
int lo 0
ip ospf 1 are 1
exit
end
wri

  • Code:
from netmiko import ConnectHandler 
'''
Thực hiện import file cấu hình:
- R1.txt vào R1
- R2.txt vào R2
- R3.txt vào R3
- R4.txt vào R4
'''

ios_device = {} 				# định nghĩa dictionnay rỗng
cfg_device = "R1,R2,R3,R4"		# danh sách các Router cần cấu hình
cfg_device = cfg_device.split(",")

def send_config_file(txt):
	
	print(f"Dang ket noi vao IP:'{values[1]}' voi Username: '{values[2]}'")	

	net_connect = ConnectHandler(**ios_device)			# khởi tạo kết nối đến router
	output = net_connect.send_config_from_file(txt) 	# thực hiện import cấu hình vào router
	print(f"Da import file cau hinh:'{txt}' OSPF vao IP: '{values[1]}' thanh cong!")
	print("-" * 80)
	#print(txt)       
      
with open ("device_listOSPF.csv","r") as rfile: 
	keys = rfile.readline().split(",")
	values = rfile.read()
	x = 0  # khởi tạo biến đếm
	for values in values.splitlines(): 
		values = values.split(",") 
		for i in range(1,len(keys)-1,1): 
			ios_device[keys[i]] = values[i]  
		
		send_config_file(cfg_device[x] + ".txt")
		x += 1


  • Kết quả:
C:\python>python Demo.py
Dang ket noi vao IP:'192.168.0.1' voi Username: 'admin'
Da import file cau hinh:'R1.txt' OSPF vao IP: '192.168.0.1' thanh cong!
--------------------------------------------------------------------------------
Dang ket noi vao IP:'192.168.0.2' voi Username: 'admin'
Da import file cau hinh:'R2.txt' OSPF vao IP: '192.168.0.2' thanh cong!
--------------------------------------------------------------------------------
Dang ket noi vao IP:'192.168.0.3' voi Username: 'admin'
Da import file cau hinh:'R3.txt' OSPF vao IP: '192.168.0.3' thanh cong!
--------------------------------------------------------------------------------
Dang ket noi vao IP:'192.168.0.4' voi Username: 'admin'
Da import file cau hinh:'R4.txt' OSPF vao IP: '192.168.0.4' thanh cong!
--------------------------------------------------------------------------------
[Finished in 32.6s]


Các common thường sử dụng trong phương thức netmiko:

  • net_connect.send_command() - Send command down the channel, return output back (pattern based)
  • net_connect.send_command_timing() - Send command down the channel, return output back (timing based)
  • net_connect.send_config_set() - Send configuration commands to remote device
  • net_connect.send_config_from_file() - Send configuration commands loaded from a file
  • net_connect.save_config() - Save the running-config to the startup-config
  • net_connect.enable() - Enter enable mode
  • net_connect.find_prompt() - Return the current router prompt
  • net_connect.commit() - Execute a commit action on Juniper and IOS-XR
  • net_connect.disconnect() - Close the connection
  • net_connect.write_channel() - Low-level write of the channel
  • net_connect.read_channel() - Low-level write of the channel
Xong!



No comments:

Post a Comment

/*header slide*/