Bạn đã bao giờ tò mò về cách máy tính xác định địa chỉ MAC của một thiết bị dựa trên địa chỉ IP chưa? Đó chính là nhờ vào giao thức ARP và lệnh arp. Hãy cùng Vietnix tìm hiểu về lệnh arp trong Linux và các ứng dụng thực tế của lệnh này ngay sau đây.
Lệnh arp trong Linux là gì?
Lệnh arp trong Linux là một lệnh dùng để quản lý bảng ánh xạ địa chỉ IP và MAC. Bảng này lưu trữ thông tin về sự tương ứng giữa địa chỉ IP (Internet Protocol) và địa chỉ MAC (Media Access Control) của các thiết bị mạng trên cùng một mạng.
Ngoài ra, bạn cũng có thể tham khảo các câu lệnh trong Linux cơ bản khác để hiểu chi tiết hơn về điều hành.
Cú pháp cơ bản của lệnh arp
Cú pháp của lệnh arp trong Linux như sau:
arp [OPTION]... [HOSTNAME/IP ADDRESS]
Lưu ý
- OPTION: Bạn có thể sử dụng một hoặc nhiều tùy chọn cùng lúc.
- HOSTNAME/IP ADDRESS: Bạn được yêu cầu cung cấp hostname hoặc địa chỉ IP. Tuy nhiên, bạn không thể cung cấp nhiều hostname hoặc địa chỉ IP cùng lúc.
5 tùy chọn sử dụng lệnh arp
Để khám phá đầy đủ các tùy chọn của lệnh arp, bạn có thể sử dụng lệnh man trong terminal. Lệnh này sẽ hiển thị trang hướng dẫn chi tiết về arp:
man arp
Tuỳ chọn | Mô tả |
---|---|
-a | Hiển thị tất cả các mục trong bộ nhớ cache ARP. |
-v hoặc –verbose | Kích hoạt chế độ hiển thị chi tiết (Verbose Mode). |
-n hoặc –numeric | Hiển thị output dưới dạng số. |
-d | Xóa host. |
-H hoặc `–hw-type` | Chỉ định giao thức mạng. |
Cách thức hoạt động của lệnh arp
Lệnh arp trên Linux giúp máy tính hiểu được địa chỉ mạng của nhau. Giống như một cuốn sổ ghi chép, giúp máy tính nhớ địa chỉ IP và địa chỉ MAC của các thiết bị kết nối cùng mạng. Khi máy tính muốn gửi dữ liệu cho máy tính khác, hệ thống của máy sẽ hỏi arp để biết địa chỉ MAC của máy tính đích.
Nếu arp
đã biết địa chỉ MAC, lệnh sẽ cho máy tính gửi dữ liệu ngay. Nếu không, arp
sẽ giúp máy tính tìm địa chỉ MAC và lưu lại để sử dụng lần sau.
Lệnh arp hỗ trợ người dùng với các tính năng:
- Xem nội dung cache ARP: Giúp bạn biết được hệ thống đang lưu trữ thông tin ánh xạ của những địa chỉ IP nào.
- Thêm/xóa mục trong cache ARP: Cho phép bạn tự động thêm hoặc xóa thông tin ánh xạ giữa địa chỉ IP và địa chỉ MAC.
- Xóa toàn bộ cache ARP: Buộc hệ thống phải thực hiện lại quá trình phân giải địa chỉ khi cần thiết.
Nhờ khả năng quản lý cache ARP, lệnh arp
trở thành công cụ hữu ích trong việc chẩn đoán và xử lý sự cố kết nối mạng.
7 ví dụ thực tế về lệnh arp trong Linux
Ví dụ 1: Hiển thị địa chỉ IP và địa chỉ MAC
Trong ví dụ đầu tiên, chúng ta sẽ kiểm tra bộ nhớ cache ARP để xem tất cả các mục IP và địa chỉ MAC tương ứng. Để in địa chỉ IP và địa chỉ MAC tương ứng, hãy thực hiện các bước sau:
Bước 1: Mở terminal trên Ubuntu.
Bước 2: Nhập lệnh sau và nhấn Enter:
arp
Giải thích kết quả:
Trong kết quả, bạn sẽ thấy 5 cột sau:
- Address: Địa chỉ IP hoặc hostname của các thiết bị trên mạng LAN.
- HWtype: Loại giao thức mạng được sử dụng (thường là “ether” cho Ethernet).
- HWaddress: Địa chỉ MAC của các thiết bị.
- Flags Mask: Loại mục nhập trong bộ nhớ cache ARP. Có thể là “C” (được học động), “M” (được nhập thủ công) hoặc “P” (được xuất bản).
- Iface: Tên của giao diện mạng.
Hình ảnh bên dưới hiển thị tất cả các cột từ kết quả.
Ví dụ 2: Hiển thị tất cả các host trong cache ARP
Lệnh arp
trong Linux mặc định sẽ hiển thị tất cả các host hiện tại. Tuy nhiên, bạn có thể sử dụng tùy chọn -a
để hiển thị tất cả các host trên mạng LAN.
arp -a
Lưu ý
Output của lệnh arp -a không có tiêu đề cột. Đầu tiên, bạn sẽ thấy tên máy chủ. Nếu tên máy chủ không khả dụng, bạn sẽ thấy dấu hỏi (“?”). Sau đó, bạn sẽ thấy địa chỉ IP, địa chỉ MAC, loại giao thức (HWtype) và giao diện mạng tương ứng.
Ví dụ 3: Kích hoạt chế độ chi tiết (Verbose Mode)
Để kích hoạt chế độ chi tiết trong lệnh arp trong Linux, bạn hãy sử dụng lệnh sau:
arp -v
Kết quả: Ngoài thông tin cơ bản, bạn sẽ thấy thêm một dòng ở cuối hiển thị Entries, Skipped và Found. Trong đó:
- Entries: Số lượng mục được nhập trong bộ nhớ cache
ARP
. - Skipped: Số lượng mục được nhập bị bỏ qua bởi lệnh
arp
. - Found: Số lượng mục được nhập được xử lý bởi lệnh
arp
.
Ví dụ 4: Hiển thị thông tin Entries dưới dạng số
Khi kết hợp tùy chọn -n
với lệnh arp thì địa chỉ IP và địa chỉ MAC sẽ được hiển thị dưới dạng số, thay vì hostname. Bạn hãy sử dụng lệnh sau:
arp -n
Lưu ý
- Lệnh arp -n chỉ hiển thị thông tin hiện có trong cache ARP.
- Nếu địa chỉ MAC chưa được phân giải, bạn sẽ thấy địa chỉ IP thay thế.
Nếu bạn đã sử dụng lệnh arp
trong các ví dụ trước, bạn có thể nhận thấy tên máy chủ là “_gateway
“. Tuy nhiên, khi sử dụng arp -n
, bạn chỉ thấy địa chỉ IP tương ứng. Bạn có thể kiểm tra điều này bằng cách so sánh địa chỉ MAC.
Ví dụ 5: Xóa 1 host bằng lệnh arp trong Linux
Bạn có thể xóa 1 host cụ thể khỏi cache ARP bằng việc sử dụng tuỳ chọn -d
với lệnh arp
trong Linux. Các bước thực hiện như sau:
Bước 1: Chạy lệnh sau để hiển thị danh sách tất cả các host:
arp
Bước 2: Tiến hành xóa 1 host cụ thể. Ví dụ, bạn muốn xoá host có địa chỉ IP là 192.168.0.54 thì bạn sử dụng lệnh sau:
sudo arp -d 192.168.0.54
Bước 3: Kiểm tra lại danh sách host bằng lệnh arp một lần nữa. Lúc này, host có địa chỉ IP 192.168.0.54 sẽ không còn xuất hiện trong danh sách.
Ví dụ 6: Hiển thị thông tin của một địa chỉ IP cụ thể
Để xem thông tin của một địa chỉ IP cụ thể, bạn chỉ cần thêm địa chỉ IP đó vào sau lệnh arp -a
.
Ví dụ:
arp -a 192.168.0.217
Lệnh này sẽ chỉ hiển thị thông tin của host có địa chỉ IP 192.168.0.217.
- Địa chỉ MAC là một địa chỉ duy nhất được gán cho mỗi card mạng.
- Để sử dụng lệnh này, bạn cần quyền truy cập vào mạng.
- Nếu bạn không biết địa chỉ IP của máy tính, bạn có thể tìm hiểu bằng các cách khác.
Ví dụ 7: Hiển thị host theo loại giao thức mạng
Tùy chọn -H
trong lệnh arp
cho phép bạn lọc danh sách host theo loại giao thức mạng.
Ví dụ: Để hiển thị tất cả các host sử dụng giao thức Ethernet, bạn sử dụng lệnh sau:
arp -H ether
Câu hỏi thường gặp
Có thể sử dụng lệnh arp
để tấn công mạng không?
Có thể. Dòng lệnh có nhiều lỗ hổng để kẻ gian lợi dụng trong việc thực hiện các cuộc tấn công mạng. Bạn cần đề phòng với những biện pháp như:
– Sử dụng địa chỉ IP tĩnh
– Cấu hình firewall
– Sử dụng các công cụ phát hiện và ngăn chặn tấn công
– Cập nhật phần mềm
Có thể sử dụng lệnh arp để thay đổi địa chỉ MAC của một thiết bị không?
Câu trả lời là không. Vì vốn dĩ bản chất lệnh arp chỉ làm việc với thông tin đã có trong bảng ARP và không có quyền hạn để thay đổi cấu hình phần cứng của thiết bị.
Lời kết
Bài viết đã giới thiệu về lệnh arp và các ứng dụng thực tế trong việc quản lý cache ARP trên hệ thống Linux. Hy vọng những thông tin này sẽ giúp bạn sử dụng lệnh arp trong Linux một cách hiệu quả để giải quyết các vấn đề liên quan đến mạng và giao thức ARP.