/*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===*/
Tìm thiết bị đang gắng vào port nào trên local switch khi biết địa chỉ IP của nó
(Điều kiện là thiết bị cisco cần kết nối đã được cấu hình SSH)
Câu lệnh chính dùng trong bài:
- show arp <ip cần tìm>
- show mac address-table address <địa chỉ mac cần tìm>
'''
import netmiko # import thư viện netmiko
# Thông tin thiết bị cần SSH vào (định nghĩa dictionnary)
Sw_1 = {
"host":"192.168.0.1",
"username":"admin",
"password":"admin1234@core",
"device_type":"cisco_ios"
}
print("Connecting to a host: " + Sw_1["host"] + "...\n") # Hiển thị thông báo kết nối tới
# dùng hàm ConnectHandler trong thư viện netmiko để kết nối với Sw_1 với các thông tin đã định nghĩa trong dictionnary
net_connect = netmiko.ConnectHandler(**Sw_1)
ip_addr = "192.168.0.101" # địa chỉ ip cần tìm
net_connect.send_command("ping" + " " + ip_addr) # ping địa chỉ IP cần kiểm tra để switch cập nhật vào bảng MAC
show_arp = "show arp" + " " + ip_addr
show_arp = net_connect.send_command(show_arp) # thực hiện lênh show arp với chính IP cần tìm
# In ra dòng thứ nhì trong chuỗi
# print (show_arp.splitlines()[1])
# lấy dòng thứ nhì và phân ra từng cụm
fields = show_arp.splitlines()[1].split()
# lấy cụm thứ 4 (là địa chỉ MAC) tính từ trái sang, sau đó sẽ thực hiện lệnh show mac với MAC này
mac_addr = fields[3]
# print (mac_addr)
show_mac_addr = "show mac address-table address" + " " + mac_addr
show_mac_addr = net_connect.send_command(show_mac_addr) # thực hiện lệnh show
print ("*" * 20 + "KET QUA" + "*" * 20)
print(show_mac_addr)
Kết quả:
Connecting to a host:
192.168.0.1...
********************KET QUA********************
Mac Address Table
-------------------------------------------
Vlan Mac Address Type
Ports
---- ----------- --------
-----
1
0050.7966.6807
DYNAMIC Et0/0
Total Mac Addresses for this criterion: 1
[Finished in 8.8s]
Kết quả cho chúng ta thấy IP 192.168.0.101 được kết nối vào port
Et0/0 của switch
192.168.0.1
2. Thực hiện trên Juniper - JunOS
Chuẩn bị (cấu hình trên Juniper switch ):
cli
set date 202104151020.30
configure
set system host-name R1-EX3400-24P
set system login message "===Đây là Switch R1-EX3400-24P==="
set system domain-name 8.8.8.8
set system time-zone GMT+7
set system root-authentication plain-text-password
set system login user admin class super-user authentication
plain-text-password
Noted: nhớ nhập password bạn muốn đặt và xác nhận lại password theo hướng dẫn
của thiết bị
Enable telnet và SSH trên switch
set system service telnet
set system service SSH
commit
Đặt tạo vlan-11, đặt ip cho vlan 11, gán port ge-1/0/0 và ge-1/0/1 vào vlan 11
set vlans vlan-11 vlan-id 11
set interfaces irb unit 11 family inet address 192.168.0.11/24
set vlans vlan-11 l3-interface irb.11
set interfaces ge-1/0/1 unit 0 family ethernet-switching interface-mode access
set interfaces ge-1/0/1 unit 0 family ethernet-switching vlan members vlan-11
set interfaces ge-1/0/0 unit 0 family ethernet-switching interface-mode access
set interfaces ge-1/0/0 unit 0 family ethernet-switching vlan members vlan-11
Noted: Lab Juniper mình làm trên thiết bị thật, nên port sẽ không giống như hình ở trên
Code:
'''
Tìm thiết bị đang gắng vào port nào trên local switch khi biết địa chỉ IP của nó
(Điều kiện là thiết bị Juniper cần kết nối đã được cấu hình SSH)
Câu lệnh chính dùng trong bài:
- show arp hostname <ip cần tìm>
- show ethernet-switching table <địa chỉ mac cần tìm>
'''
import netmiko # import thư viện netmiko
# Thông tin thiết bị cần SSH vào (định nghĩa dictionnary)
Sw_1 = {
"host":"192.168.0.1",
"username":"admin",
"password":"admin1234@core",
"device_type":"juniper_junos"
}
print("Connecting to a host: " + Sw_1["host"] + "...\n") # Hiển thị thông báo kết nối tới
# dùng hàm ConnectHandler trong thư viện netmiko để kết nối với Sw_1 với các thông tin đã định nghĩa trong dictionnary
net_connect = netmiko.ConnectHandler(**Sw_1)
ip_addr = "192.168.0.101" # địa chỉ ip cần tìm
net_connect.send_command("ping" + " " + ip_addr + " " + "count 4") # ping (ping 4 gói) địa chỉ IP cần kiểm tra để switch cập nhật vào bảng MAC
show_arp = "show arp" + " " + "hostname" + " " + ip_addr
show_arp = net_connect.send_command(show_arp) # thực hiện lênh show arp với chính IP cần tìm
# print (show_arp)
# In ra dòng thứ nhì trong chuỗi
# print (show_arp.splitlines()[1])
# lấy dòng thứ nhì và phân ra từng cụm
fields = show_arp.splitlines()[1].split()
# lấy cụm đầu tiên (là địa chỉ MAC) tính từ trái sang
mac_addr = fields[0]
# print (mac_addr)
show_mac_addr = "show ethernet-switching table" + " " + mac_addr
show_mac_addr = net_connect.send_command(show_mac_addr) # thực hiện lệnh show
print ("*" * 20 + "KET QUA" + "*" * 20)
print(show_mac_addr)
Kết quả:
Connecting to a host: 192.168.0.1...
********************KET QUA********************
MAC flags (S - static MAC, D - dynamic MAC, L - locally learned, P -
Persistent static, C - Control MAC
SE - statistics enabled, NM - non
configured MAC, R - remote PE MAC, O - ovsdb MAC)
Ethernet switching table : 87 entries, 87 learned
Routing instance : default-switch
Vlan
MAC MAC
Age Logical
NH RTR
name
address flags
interface
Index ID
vlan-11 d4:f5:ef:09:c0:1e D
- ge-1/0/0.0
0 0
[Finished in 13.1s]
Thiết bị có IP 192.168.0.101 được nối vào port ge-1/0/0 của switch 192.168.0.1
Thực hiện lưu cấu hình hiện tại vào file có tên 2021-04-27_IP127.246.cfg
exit
Thoát khỏi mode config
file list
Liệt kê/xem các file cấu hình mà mình tự lưu đã lưu trong thiết bị
2. Copy File Config Từ Switch Đến TFTP
Commands
Diễn Giải
start shell
Khởi động shell trên Junos
cd /var/home/admin
Chuyển dấu nhắc lệnh vào đường dẫn /var/home/admin
ls
Liệt kê (nhằm mục đích chọn file để copy) các file có trong đường dẫn /var/home/admin
tftp
Khởi động tftp client trên switch
connect 125.234.103.242
Kết nối đến TFTP server có địa chỉ IP là 125.234.103.242
put 2021-04-27_IP127.246.cfg
Đẩy file 2021-04-27_IP127.246.cfg (là file vừa tạo ra ở phần 1) lên TFTP server
^D%
Nhấn phím Ctrl + D để disconnect khỏi TFTP server
exit
Thoát chế độ shell trên switch
Chúng ta cũng có thể copy các file cấu hình hiện tại trên switch lên TFTP
Commands/File List
Diễn Giải
file list /config/
Hiển thị các file config của switch
juniper.conf.gz
Là file cấu hình đang active trên switch
juniper.conf.1.gz
Nếu chúng ta rollback thì nội dung của file juniper.conf.gz sẽ được thay bằng nội dung của file juniper.conf.1.gz
3. Copy File Từ TFTP Vào Switch
Commands
Diễn Giải
start shell
Khởi động shell trên Junos
tftp 125.234.103.242
Kết nối vào tftp có địa chỉ ip tftp 125.234.103.242
get 2021-04-27_IP127.246.cfg.txt
Copy file 2021-04-27_IP127.246.cfg.txt từ TFTP về switch
quit
Disconnect khỏi TFTP server
exit
Thoát chế độ shell trên switch
4. Backup Cấu Hình Tự Động
Juniper cho phép sao lưu cấu hình tự động thông qua FTP, HTTP, SCP sau mỗi lần chúng ta lưu cấu hình (commit). Tên file tạo ra theo định dạng là hostname+time
system {
archival {
configuration {
transfer-on-commit;
archive-sites {
"ftp://username@<IP address of FTP server>" password <password>;
1. Lệnh Cat 2. Lệnh Head 3. Lệnh Tail 4. Lệnh Less 5. Lệnh
More
Nội Dung:
1. Lệnh Cat: Dùng để đọc, và xem nội dung của file
Command
Giải Thích
cat /etc/passwd
Hiển thị nội dung file passwd
cat -n /etc/passwd
Hiển thị số dòng và nội dung file passwd
cat file1.txt file2.txt
Nối nội dung file1.txt, file2.txt và hiển thị ra màn hình
cat file1.txt file2.txt > file12.txt
Nội dung của file1.txt và file2.txt sẽ được copy vào file12.txt
cat file1.txt >> file12.txt
Nếu file12.txt có nội dung rồi thì nội dung file1.txt sẽ được chèn vào
dưới của nội dung file12.txt
cat > file.txt
Tạo ra file.txt và nội dung cho phép nhập từ bàn phím. Nhấn Ctrl + D để
kết nhập dữ liệu
2. Lệnh Head: Hiển thị các dòng đầu tiên của file, mặc định hiển
thị 10 dòng đầu tiên, tuy nhiên chúng ta có thể tùy chọn thay đổi các tham
biến được
Command
Giải Thích
head /etc/passwd
Hiển thị 10 dòng đầu tiên của file passwd
head -5 /etc/passwd
Hiển thị 5 dòng đầu tiên của file passwd
head -v /etc/passwd
Hiển thị 10 dòng đầu tiên của file passwd và có hiển thị tiêu đề
head -c 20 /etc/passwd
Hiển thị ra 20 byte(20 ký tự) đầu tiên của file
3. Lệnh Tail: Tương tự head, tuy nhiên tail hiển thị các dòng cuối cùng
của file.
Command
Giải Thích
tail -5 /etc/passwd
Hiển thị 5 dòng cuối cùng của file passwd
tail -c 20 /etc/passwd
Hiển thị ra 20 byte(20 ký tự) cuối của file
tail -f logfile.txt
Hiển thị 10 dòng cuối cùng của file. Thường áp dụng để xem các file log của hệ thống, nhấn Crtl + C để thoát.
4. Lệnh Less: Với các file lớn nếu dùng lệnh cat để xem nội dung thì tốt rất nhiều bộ nhớ sẽ làm ảnh hưởng đến hệ thống. Với less giúp chúng ta xem 1 phần nội dung của file và chúng ta có thể chuyển chuyển lên xuống để xem nội dung toàn bộ file.
Cú pháp:
less /etc/passwd
Các file thường sử dụng trong lệnh less:
Space: Hiển thị nội dung trang kế tiếp (trang dưới)
b: Hiển thị nội dung trang trên
G: Hiển thị trang cuối cùng
g: Hiển thị trang đầu tiên
/{chuỗi cần tìm}: Tìm kiếm nội dung
?{chuỗi cần tìm}: Tìm kiếm nội dung
v: Cho phép chỉnh sửa nội dung file hiện tại
q: Thoát
5. Lệnh More: Dùng để mở file và tương tác, tuy nhiên với lệnh more chúng ta KHÔNG thể cuộn lên trang trước như less.