Thường thì các ứng dụng sử dụng địa chỉ IP để và nhận dữ liệu. Tuy nhiên, việc chuyển tiếp dữ liệu trực chủ yếu diễn ra qua địa chỉ MAC ở lớp 2 trong mô hình OSI. Vậy làm thế nào mà bộ chuyển mạch nhận được địa chỉ MAC từ địa chỉ IP để có thể xác định chính xác thiết bị đích. Đây chính là nhờ giao thức Address Resolution Protocol hay ARP. Nó có chức năng dịch địa chỉ IP sang địa chỉ MAC. Trong bài viết này, ta sẽ đi tìm hiểu chi tiết về giao thức này và cách nó hoạt động!

Giao thức ARP là gì?

Giao thức Address Resolution Protocol (ARP) là một giao thức trong mô hình mạng TCP/IP được sử dụng để chuyển đổi địa chỉ IP (Internet Protocol) của một thiết bị mạng với địa chỉ MAC (Media Access Control) tương ứng trên mạng cục bộ.

Khi một thiết bị cần gửi dữ liệu đến một địa chỉ IP khác trên cùng mạng cục bộ, nó sẽ sử dụng ARP để xác định địa chỉ MAC của thiết bị đó. Nếu thông tin này đã được lưu trữ trong bảng ARP của thiết bị gửi, nó có thể sử dụng trực tiếp. Nếu không, thiết bị sẽ gửi một yêu cầu ARP broadcast (truyền tải đến tất cả các thiết bị trong mạng) để hỏi về địa chỉ MAC của địa chỉ IP cần đến. Thiết bị với địa chỉ IP đó sẽ phản hồi với địa chỉ MAC của mình, và sau đó, thông tin này sẽ được lưu trữ trong bảng ARP của thiết bị gửi để sử dụng trong các truy vấn sau.

Các loại ARP

Có nhiều loại ARP được sử dụng trong từng trường hợp riêng biệt:

  1. ARP (Address Resolution Protocol): Đây là phiên bản cơ bản của ARP, được sử dụng để ánh xạ địa chỉ IP sang địa chỉ MAC trong mạng cục bộ.
  2. RARP (Reverse Address Resolution Protocol): Ngược lại với ARP, RARP được sử dụng để ánh xạ địa chỉ MAC sang địa chỉ IP. Ban đầu, RARP được thiết kế để hỗ trợ các thiết bị không có khả năng cấu hình địa chỉ IP.
  3. InARP (Inverse ARP): Được sử dụng trong mạng ATM (Asynchronous Transfer Mode) để ánh xạ địa chỉ ATM đến địa chỉ IP và ngược lại.
  4. Proxy ARP: Trong trường hợp này, một thiết bị (thường là router) sẽ trả lời yêu cầu ARP thay vì thiết bị đích. Nó được sử dụng khi một thiết bị không biết đến địa chỉ MAC của một thiết bị khác trong mạng.

Cách giao thức ARP hoạt động

ARP hoạt động như thế nào

Khi một thiết bị muốn gửi dữ liệu đến một thiết bị khác trên internet, nó bắt đầu bằng việc gửi một yêu cầu ARP broadcast trên mạng nguồn để xác định địa chỉ MAC của thiết bị đích.

Gói tin ARP được chuyển tiếp đến lớp mạng (Network Layer – Layer 3 OSI), nơi ID mạng của gói tin được kiểm tra với ID mạng của địa chỉ IP đích. Nếu chúng khớp nhau, thiết bị đích phản hồi với địa chỉ MAC của mình. Nếu không khớp, gói tin được chuyển tiếp đến gateway của mạng, và quá trình này tiếp tục qua các thiết bị mạng cho đến khi gói tin đến được thiết bị đích cuối cùng.

Sau khi xác định địa chỉ MAC của thiết bị đích, thông tin này được lưu trữ trong bảng ARP của thiết bị nguồn để sử dụng trong các giao tiếp sau. Bảng ARP còn có khả năng tự động xóa thông tin sau một khoảng thời gian, được gọi là ARP Cache Timeout.

Yêu cầu ARP là quá trình broadcast gửi đi để kiểm tra địa chỉ MAC của thiết bị đích, trong khi phản hồi ARP là một gói tin unicast được trả về từ thiết bị đích với địa chỉ MAC tương ứng. Các trường hợp sử dụng ARP khác nhau bao gồm khi thiết bị nguồn là máy chủ muốn gửi dữ liệu đến máy chủ khác trên cùng mạng, hoặc khi nó là router nhận một datagram và cần xác định địa chỉ MAC của router tiếp theo trong quá trình truyền dữ liệu giữa các mạng.

Ví dụ minh họa

Để hiểu rõ ràng nhất, ta sẽ đi vào một ví dụ thực tế mô tả cách mà giao thức ARP hoạt động. Hãy quan sát hình ảnh dưới đây:

ví dụ minh họa ARP

Theo hình trên, nếu máy chủ A muốn kết nối với máy B. Lúc này A đã biết địa chỉ IP của B nhưng không có thông tin địa chỉ MAC của B. Do đó, máy A sẽ gửi một yêu cầu ARP để tìm địa chỉ MAC của B.

Bộ chuyển mạch nhận được yêu cầu ARP và chuyển tiếp nó lên tất cả các cổng của mình trừ cổng nhận được yêu cầu. Bởi vì yêu cầu ARP là một Broadcast.

Máy chủ B nhận được yêu cầu ARP và sẽ trả lời bằng yêu cầu bằng địa chỉ MAC của mình. Lúc này, máy A đã có đủ thông tin để gửi lưu lượng tới máy B.

Vấn đề ARP Spoofing

ARP Spoofing (còn được biết đến với tên gọi ARP Poisoning) là một kỹ thuật tấn công mạng mà kẻ tấn công gửi thông điệp ARP giả mạo (spoofed ARP packets) đến các thiết bị trong mạng, nhằm làm giả mạo hoặc phá vỡ bảng chuyển đổi địa chỉ IP – địa chỉ MAC trong các thiết bị khác nhau trong mạng.

Tấn công ARP

Quy trình hoạt động của ARP Spoofing thường như sau:

  1. Người tấn công gửi ARP reply giả mạo: Kẻ tấn công gửi một số gói tin ARP reply đến các thiết bị trong mạng, giả mạo thông tin ánh xạ địa chỉ MAC của một thiết bị khác, thường là gateway hoặc máy chủ DNS.
  2. Bảng ARP của thiết bị bị làm giả mạo: Các thiết bị trong mạng cập nhật bảng ARP của mình với thông tin giả mạo từ ARP reply nhận được.
  3. Chuyển hướng gói tin: Khi bảng ARP bị làm giả mạo, các gói tin được chuyển hướng thông qua thiết bị của kẻ tấn công thay vì đi đến địa chỉ MAC thực sự của thiết bị đích.
  4. Kiểm soát và đánh cắp dữ liệu: Kẻ tấn công có thể kiểm soát, theo dõi hoặc thậm chí đánh cắp dữ liệu do việc chuyển hướng lưu lượng thông qua máy chủ của họ.

ARP Spoofing có thể dẫn đến nhiều hậu quả nghiêm trọng như đánh cắp thông tin nhạy cảm, thay đổi lưu lượng mạng, và thậm chí gây ra các cuộc tấn công Man-in-the-Middle (MITM) nếu kẻ tấn công có khả năng theo dõi và can thiệp vào giao tiếp giữa các thiết bị trong mạng.

Để ngăn chặn vấn đề này, ta có thể sử dụng các biện pháp như port security, hoặc sử dụng các giao thức an toàn như ARP spoofing prevention protocols.

Mong rằng qua bài viết này bạn đã hiểu rõ về cách thức giao thức ARP hoạt động qua ví dụ thực tế! Nếu có thắc mắc, hãy để lại dưới phần bình luận để mình trả lời nhanh chóng!

Thông Tin Về Tác Giả

Tổng Biên Tập at Thiết Bị Mạng Giá Rẻ | Website | + posts

Nguyễn Thành Hợp là một chuyên gia về lĩnh vực thiết bị mạng, viễn thông gần 10 năm kinh nghiệm với nhiều chứng chỉ chất lượng như CCNA 200-301, CCNP, CCDA, CCDP,... do Cisco cung cấp. Sở thích cá nhân là khám phá những kiến thức mới mẻ về công nghệ nói chung và đặc biệt là liên quan đến lĩnh vực mạng!