Giao thức phân giải địa chỉ ARP là gì?
Giao thức phân giải địa chỉ ARP (Address Resolution Protocol) là một giao thức kết nối một địa chỉ IP với một server vật lý (còn gọi là địa chỉ MAC – Media access control – ở trong các mạng LAN). Trong đó, địa chỉ IP luôn thay đổi, còn địa chỉ MAC thì thường cố định.
Quá trình mapping (ánh xạ) này có vai trò rất quan trọng. Bởi vì độ dài của địa chỉ IP và MAC khác nhau, nên nó cần phải được phiên dịch lại để các hệ thống có thể nhận ra nhau. Hiện nay, địa chỉ IP phổ biến nhất là IP version 4 (IPv4). Một địa chỉ IP có độ dài 48 bit, trong khi đó độ dài của MAC là 32 bit. Và ARP chính là giao thức có nhiệm vụ phiên dịch địa chỉ 32-bit thành 48-bit, và ngược lại.
Có một mô hình mạng gọi là OSI (Open Systems Interconection – Kết nối hệ thống mở). Mô hình này được phát triển lần đầu từ cuối những năm 1970, nó sử dụng nhiều lớp để người dùng có thể quan sát những gì đang xảy ra với các hệ thống mạng cụ thể. Việc này đặc biệt hữu ích trong việc xác định những lớp gây ảnh hưởng đến ứng dụng, thiết bị, hoặc xác định các phần mềm được cài đặt ở trên mạng… Hoặc thậm chí có thể xác định người đang chịu quản lý một lớp nào đó.
Địa chỉ MAC còn được gọi là lớp liên kết dữ liệu. Lớp này có nhiệm vụ thiết lập và hủy bỏ kết nối giữa hai thiết bị được kết nối vật lý với nhau, nhằm truyền dữ liệu. Địa chỉ IP còn được biết đến dưới cái tên lớp mạng. Đây là lớp chịu trách nhiệm chuyển tiếp các gói dữ liệu thông qua nhiều router khác nhau. Còn ARP sẽ hoạt động giữa các lớp này. Vậy cách hoạt động của ARP là gì?
Giao thức ARP hoạt động như thế nào?
Ở lớp mạng, khi nguồn muốn tìm đến địa chỉ MAC của thiết bị đích, nó sẽ tìm địa chỉ MAC (Địa chỉ vật lý) ở trong ARP cache hoặc bảng ARP trước. Nếu địa chỉ này có ở trong đó, nó sẽ sử dụng địa chỉ MAC ở đó để thực hiện giao tiếp. Bên cạnh đó, nếu người dùng muốn xem ARP cache của mình (trong Windows), hãy mở Command Prompt rồi nhập arp -a
. Một bảng ARP sẽ hiện ra như sau:
Nếu địa chỉ MAC không có ở trong bảng ARP, thiết bị nguồn sẽ tạo một thông báo ARP Request. Thông báo này bao gồm địa chỉ MAC và IP của nguồn, còn địa chỉ MAC và IP sẽ được bỏ trống vì nguồn vẫn đang tìm kiếm địa chỉ này.
Sender's MAC Address 00-11-0a-78-45-AD
Sender's IP Address 192.16.10.104
Target's MAC Address 00-00-00-00-00-00
Target's IP Address 192.16.20.204
Sau đó, thiết bị nguồn sẽ gửi ARP request đến mạng cục bộ.
Tất cả thiết bị khác trong mạng LAN đều sẽ nhận được thông báo này. Bây giờ, tất cả thiết bị sẽ so sánh địa chỉ IP của đích với địa chỉ IP của chính nó. Nếu địa chỉ IP của đích khớp với IP của thiết bị, nó sẽ gửi một thông báo ARP Reply. Ngược lại, nếu địa chỉ IP không khớp với nhau, thiết bị sẽ drop packet đó.
Các thiết bị có địa chỉ IP khớp với IP đích sẽ trả lời và gửi một thông báo ARP Reply. Thông báo này sẽ bao gồm địa chỉ MAC của thiết bị đó. Sau đó, thiết bị đích sẽ cập nhật bảng ARP rồi lưu trữ địa chỉ MAC của nguồn để giao tiếp. Tiếp đến, nguồn sẽ trở thành đích cho thiết bị này và tin nhắn ARP Reply sẽ được gửi đi.
Sender's MAC Address 00-11-0a-78-45-AA
Sender's IP Address 192.16.20.204
Target's MAC Address 00-11-0a-78-45-AD
Target's IP Address 192.16.10.104
Thông báo ARP thuộc loại unicast, và không thể được truyền đi vì nguồn gửi ARP Reply đến dích biết địa chỉ MAC của thiết bị nguồn.
Khi nguồn nhận được ARP reply, nó sẽ biết được địa chỉ MAC đích và cập nhật ARP cache. Bây giờ, các packet có thể được gửi dưới dạng địa chỉ MAC đích của nguồn.
Các loại ARP
Vậy cách phân loại giao thức ARP là gì? ARP được phân thành 4 loại chính:
- Proxy ARP
- Gratuitous ARP
- Reverse ARP
- Inverse ARP
Proxy ARP
Trong phương pháp Proxy ARP, các thiết bị Layer 3 có thể phản hồi các ARP request. Loại ARP này được cấu hình sao cho router sẽ phản hồi địa chỉ IP đích, và ánh xạ địa chỉ MAC đến địa chỉ IP đích và người gửi khi nó đến được đích.
Gratuitous ARP
Gratuitous ARP là một loại ARP request khác của host. Loại request này giúp mạng có thể xác định các địa chỉ IP bị trùng lặp. Do đó, khi router hay switch gửi ARP request để lấy địa chỉ IP, nó sẽ không nhận được phản hồi ARP nào. Vì vậy cũng không có node nào có thể sử dụng địa chỉ IP được cấp cho router hay swictch đó.
Reverse ARP (RARP)
Reverse ARP (RARP) là một loại giao thức ARP được hệ thống client trong LAN sử dụng để yêu cầu địa chỉ IPv4 của nó từ bảng ARP router. Quản trị viên mạng chủ yếu tạo một bảng trong bộ gateway-router, giúp xác định địa chỉ MAC đến IP cụ thể.
Inverse ARP (InARP)
InARP là một loại ARP dùng để tìm địa chỉ IP của các node từ địa chỉ lớp liên kết dữ liệu. InARP được sử dụng rộng rãi cho các rơ-le frame mạng ATM, trong đó địa chỉ mạch ảo Lớp 2 thu được từ việc signal của Layer 2.
Tại sao giao thức ARP lại quan trọng?
Vậy lý do sử dụng của giao thức ARP là gì? Vì sao nó lại quan trọng đến thế? ARP là một giao thức có vai trò to lớn, vì địa chỉ phần mềm (địa chỉ IP) của host hay máy tính kết nối với mạng cần phải được phiên dịch thành địa chỉ phần cứng (tức là địa chỉ MAC). Nếu không có ARP, host sẽ không thể tìm ra địa chỉ phần cứng của host khác. Mạng LAN sẽ giữ một bảng hay directory ánh xạ địa chỉ IP đến địa chỉ MAC của các thiết bị khác nhau. Trong đó bao gồm cả các endpoint lẫn router trên mạng đó.
Bảng hoặc directory này không được duy trì bởi người dùng hay admin mạng. Thay vào đó, giao thức ARP sẽ tạo ra các entry. Nếu thiết bị của người dùng không biết địa chỉ phần cứng của host đích, thiết bị sẽ gửi một thông báo đến tất cả host trên mạng để tìm địa chỉ này. Khi host đích thích hợp biết được request, nó sẽ phản hồi bằng địa chỉ phần cứng của nó. Địa chỉ này sau đó sẽ được lưu trữ trong bảng hay directory của ARP.
Ví dụ về giao thức ARP
Các thông báo ARP Request và ARP Reply có thể được capture. Sau đây là một ví dụ về các thông báo ARP Request được capture để minh họa cách hoạt động của ARP là gì. Ta có thể thấy rằng địa chỉ MAC ở ví dụ dưới được bỏ trống (00:00:00:00:00:00).
Thông báo request sẽ chứa nhiều trường khác nhau như:
- Loại phần cứng – Chỉ định phần cứng được sử dụng trong quá trình tuyền thông báo ARP. Loại phần cứng chủ yếu là Ethernet.
- Loại giao thức – một con số được gán cho từng giao thức, ở đây là giao thức IPv4: 2048 (hay 0x0800 trong hệ Hexa).
- Kích thước giao thức – độ dài địa chỉ IPv4 (ở đây là 4 byte).
- Opcode – xác định bản chất của thông báo ARP. Trong đó, 1 là ARP Request, còn ARP Reply là 0.
- Địa chỉ IP nguồn – ở đây là 10.10.10.2
- Địa chỉ IP đích – ở đây là 10.10.10.1
- Địa chỉ MAC nguồn – trong ví dụ này là 00:1a:6b:6c:0c:cc
Tiếp đến, một thông báo ARP Reply được capture. Tin nhắn phản hồi sẽ chứa địa chỉ MAC mà nguồn yêu cầu. Địa chỉ MAC 00:1d:09:f0:92:ab được gửi ở trong thông báo ARP Reply.
Ưu điểm của giao thức ARP
Vậy ưu điểm của giao thức ARP là gì?
- Trước hết, với giao thức ARP, các địa chỉ MAC có thể dễ dàng được tìm thấy nếu người dùng đã biết được địa chỉ IP của cùng hệ thống.
- Các end node không nên được cấu hình để “biết” các địa chỉ MAC. Chúng sẽ được tìm thấy khi cần thiết.
- Mục đích của ARP là enable mọi host trên mạng cho phép người dùng tạo một ánh xạ giữa địa chỉ IP và địa chỉ vật lý.
- Tập hợp các ánh xạ hoặc bảng được lưu trữ trong host được gọi là bảng ARP hay ARP cache.
Giao thức ARP là một giao thức bảo mật có độ an toàn cao và được sử dụng rất nhiều. Vietnix hy vọng bạn có thể biết rõ về cách hoạt động của giao thức ARP trong bài viết này cũng như việc áp dụng các kiến thức hữu ích này vào việc bảo mật thông tin.