Quá trình arp giữa các máy nằm ở các mạng khác nhau

Giao thức phân giải địa chỉ (Address Resolution Protocol hay ARP) là một giao thức truyền thông được sử dụng để chuyển địa chỉ từ tầng mạng (Internet layer) sang tầng liên kết dữ liệu theo mô hình OSI. Đây là một chức năng quan trọng trong giao thức IP của mạng máy tính. ARP được định nghĩa trong RFC 826 vào năm 1982,[1] là một tiêu chuẩn Internet STD 37.

ARP được sử dụng để từ một địa chỉ mạng (ví dụ một địa chỉ IPv4) tìm ra địa chỉ vật lý như một địa chỉ Ethernet (địa chỉ MAC), hay còn có thể nói là phân giải địa chỉ IP sang địa chỉ máy. ARP đã được thực hiện với nhiều kết hợp của công nghệ mạng và tầng liên kết dữ liệu, như IPv4, Chaosnet,..

Trong mạng máy tính của phiên bản IPv6, chức năng của ARP được cung cấp bởi Neighbor Discovery Protocol (NDP).

Trong mạng Ethernet và WLAN các gói IP không được gửi trực tiếp. Một gói IP được bỏ vào một khung Ethernet, rồi mới được gửi đi. Khung này có một địa chỉ gởi và địa chỉ đích. Các địa chỉ này là địa chỉ MAC của một card mạng. Một card mạng sẽ nhận các khung ethernet mà có địa chỉ đích là địa chỉ MAC của mình. Card này sẽ không lưu ý tới các khung khác. Giao thức ARP được dùng để kết nối giữa địa chỉ MAC và địa chỉ IP. Để làm việc hiệu quả nó có giữ một bảng ARP lưu trữ.[cần dẫn nguồn]

Host to host

Hai máy tính trong một văn phòng (máy tính 1 và máy tính 2) được kết nối với nhau trong một mạng cục bộ (LAN) bằng cáp Ethernet và thiết bị chuyển mạch mạng, không có Gateway hoặc bộ định tuyến đứng giữa. Máy tính 1 có một gói tin để gửi tới Máy tính 2. Thông qua DNS, nó xác định rằng máy tính 2 có địa chỉ IP 192.168.0.55. Để gửi tin nhắn, nó cũng cần địa chỉ MAC của máy tính 2. Đầu tiên, Máy tính 1 sử dụng một bảng ARP lưu trữ để tìm kiếm địa chỉ 192.168.0.55 cho bất kỳ ghi nhận nào hiện có của địa chỉ MAC của Máy tính 2 (00: eb: 24: b2: 05: ac). Nếu địa chỉ MAC được tìm thấy, nó sẽ gửi một khung Ethernet (Frame Ethernet) với địa chỉ đích 00: eb: 24: b2: 05: ac, chứa gói tin IP. Nếu bảng ARP không có kết quả cho 192.168.0.55, Máy tính 1 phải gửi một ARP broadcast (đích FF: FF: FF: FF: FF: FF MAC address), được chấp nhận bởi tất cả các máy tính, yêu cầu địa chỉ 192.168.0.55 trả lời. Máy tính 2 trả lời với địa chỉ MAC và địa chỉ IP của nó. Máy tính 2 có thể ghi một mục vào bảng ARP của nó cho Máy tính 1 để sử dụng trong tương lai. Máy tính 1 lưu trữ các thông tin phản hồi trong bảng ARP của nó và bây giờ có thể gửi gói tin.[2]

Các trường hợp khác

Host to router

Nếu máy tính 1 và máy tính 2 thuộc 2 mạng cục bộ khác nhau. Máy tính 1 sẽ dùng bảng routing để tìm ra địa chỉ IP của router, rồi từ đó tìm ra địa chỉ MAC.

Router to router

Router dùng bảng router để tìm ra địa chỉ IP của router trên cùng LAN, rồi từ đó tìm ra địa chỉ MAC.

Router to host

Trong trường hợp này địa chỉ IP biết được qua địa chỉ IP của điểm đến trên gói gởi, router chỉ cần tìm địa chỉ MAC.

 

Một tân công ARP spoofing thành công cho phép kẻ xâm nhập thực hiện một cuộc tấn công man-in-the-middle attack.

Bởi vì ARP không cung cấp các phương pháp để xác thực các trả lời ARP trên mạng, các hồi đáp ARP có thể đến từ các hệ thống khác hơn cái mà có địa chỉ tầng 2 yêu cầu. Ngoài ra, một host có thể chấp nhận gói ARP Reply mà trước đó không cần phải gửi gói tin ARP Request. Lợi dụng điều này, hacker có thể triển khai các phương thức tấn công như: Man In The Middle, Denial of Service, MAC Flooding. Hiện có nhiều phần mềm để phát hiện và thực hiện các cuộc tấn công giả mạo ARP, mặc dù ARP chính nó không cung cấp bất kỳ phương pháp bảo vệ chống lại các cuộc tấn công như vậy [3].

  1. ^ David C. Plummer (tháng 11 năm 1982). “RFC 826, An Ethernet Address Resolution Protocol -- or -- Converting Network Protocol Addresses to 48.bit Ethernet Address for Transmission on Ethernet Hardware”. Internet Engineering Task Force, Network Working Group.
  2. ^ Chappell, Laura A. and Tittel, Ed. Guide to TCP/IP, Third Edition. Thomson Course Technology, 2007, pp. 115-116.
  3. ^ Steve Gibson (ngày 11 tháng 12 năm 2005). “ARP Cache Poisoning”. GRC.

Lấy từ “https://vi.wikipedia.org/w/index.php?title=Address_Resolution_Protocol&oldid=64116932”

Trang chủ Diễn đàn > Diễn đàn mạng máy tính > Mạng-Network > Basic Network >

Thảo luận trong 'Basic Network' bắt đầu bởi HaVNT, 16/3/18.

(Bạn phải Đăng nhập hoặc Đăng ký để trả lời bài viết.)

Trang chủ Diễn đàn > Diễn đàn mạng máy tính > Mạng-Network > Basic Network >

Quá trình arp giữa các máy nằm ở các mạng khác nhau

Thật khó để tưởng tượng trong thời đại công nghệ thông tin như hiện nay có một ngày nào đó chúng ta phải rời xa internet. Việc kết nối và trao đổi thông tin qua môi trường internet đã trở thành một nhu cầu hàng ngày của mỗi người. Chúng ta cập nhật tin tức thời sự, tin tức về bạn bè người thân từ internet và cũng đưa lên đó không ít thông tin.

Nhưng có khi nào bạn tự hỏi mình rằng các thiết bị của chúng ta khi kết nối vào internet chúng hoạt động như thế nào, làm thế nào để thông tin chúng ta gửi lên đi đến đúng đích, vì sao thông tin chúng ta muốn gửi cho bạn bè không đi đến nhầm máy tính của một người xa lạ nào đó, hay như làm thế nào máy tính của chúng ta biết được rằng gói tin mà nó gửi đi đã không tới được đích để thực hiện việc gửi lại. Bài viết này sẽ giúp các bạn đi tìm phần nào lời giải thích cho những câu hỏi trên.

Giao thức ARP

Đầu tiên chúng ta sẽ tìm hiểu làm thế nào để các máy tính trong một mạng LAN có thể gửi một gói tin đến đúng máy đích mong muốn. Ta đã biết mỗi một máy tính có một card mạng và sở hữu một địa chỉ MAC cố định và duy nhất. Và các card mạng trong một mạng LAN sẽ liên lạc với nhau thông qua địa chỉ này tại tầng Data-link của mô hình OSI.

Bên cạnh đó khi một máy tính được kết nối vào mạng LAN nó cũng được cấp phép một địa chỉ mang tính chất quy ước là IP, sử dụng ở tầng Network của mô hình OSI. Chúng ta hoàn toàn có thể tự thay đổi địa chỉ này theo ý muốn của mình. Bạn có thể hình dung địa chỉ MAC giống như địa chỉ nhà của mình dùng để nhận thư từ bưu phẩm, còn địa chỉ IP giống như tên của mình dùng để xưng hô khi giao tiếp với những người khác vậy.

Vấn đề đặt ra là làm sao để một máy tính A có thể biết được địa chỉ MAC của một máy tính B có địa chỉ IP là 192.168.1.120 để gửi gói tin cho nó? Ta phải có một cơ chế để chuyển đổi các dạng địa chỉ này qua lại với nhau. Từ đó ta có giao thức phân giải địa chỉ: Address Resolution Protocol (ARP). Dưới đây là cấu trúc gói tin sử dụng trong giao thức ARP.

Quá trình arp giữa các máy nằm ở các mạng khác nhau

  • Hardware Type:
    • xác định kiểu bộ giao tiếp phần cứng máy gửi cần biết
    • với giá trị 1 cho Ethernet
  • Protocol Type:
    • Xác định kiểu giao thức địa chỉ cấp cao máy gửi cung cấp
    • Có giá trị 080016 cho giao thức IP
  • HLEN: độ dài địa chỉ vật lý (bit)
  • PLEN: độ dài địa chỉ logic (bit)
    • 1: là một ARP request.
    • 2: là một ARP reply.
    • 3: là một RARP request.
    • 4: là một RARP reply.
  • Sender HA (sender hardware address): địa chỉ MAC của máy gửi
  • Sender Protocol Address: địa chỉ IP máy gửi
  • Target HA (target hardware address): địa chỉ MAC của máy nhận
  • Target Protocol Address: địa chỉ IP máy nhận

Vậy cơ chế hoạt động của ARP ra sao?

Quá trình arp giữa các máy nằm ở các mạng khác nhau

Thử tưởng tượng bạn bước vào một phòng học và biết được rằng có một bạn gái tên Lina đang ở trong đó. Bạn muốn đến ngồi cạnh để trò chuyện nhưng lại không biết bạn ấy ngồi ở đâu. Khi ấy giải pháp đơn giản chúng ta sẽ thực hiện là đứng lên nói cho tất cả mọi người cùng nghe: “xin cho hỏi bạn Lina đang ngồi ở vị trí nào ạ?” Sau khi bạn Lina nghe thấy như vậy sẽ giơ tay cho biết vị trí bạn ấy đang ngồi. Sau khi đã biết vị trí của Lina bạn sẽ lại gần bạn ấy và cuộc trò chuyện bắt đầu.

Trong môi trường mạng LAN cũng như vậy. Và đây là cách hoạt động của ARP.

  • Bước 1: Thiết bị A sẽ kiểm tra cache của mình (giống như quyển sổ danh bạ nơi lưu trữ tham chiếu giữa địa chỉ IP và địa chỉ MAC). Nếu đã có địa chỉ MAC của IP 192.168.1.120 thì lập tức chuyển sang bước 9.
  • Bước 2: Bắt đầu khởi tạo gói tin ARP Request. Nó sẽ gửi một gói tin broadcast đến toàn bộ các máy khác trong mạng với địa chỉ MAC và IP máy gửi là địa chỉ của chính nó, địa chỉ IP máy nhận là 192.168.1.120, và địa chỉ MAC máy nhận là ff:ff:ff:ff:ff:ff.
  • Bước 3: Thiết bị A phân phát gói tin ARP Request trên toàn mạng. Khi switch nhận được gói tin broadcast nó sẽ chuyển gói tin này tới tất cả các máy trong mạng LAN đó.
  • Bước 4: Các thiết bị trong mạng đều nhận được gói tin ARP Request. Máy tính kiểm tra trường địa chỉ Target Protocol Address. Nếu trùng với địa chỉ của mình thì tiếp tục xử lý, nếu không thì hủy gói tin.
  • Bước 5: Thiết bị B có IP trùng với IP trong trường Target Protocol Address sẽ bắt đầu quá trình khởi tạo gói tin ARP Reply bằng cách:
    • lấy các trường Sender Hardware Address và Sender Protocol Address trong gói tin ARP nhận được đưa vào làm Target trong gói tin gửi đi.
    • Đồng thời thiết bị sẽ lấy địa chỉ MAC của mình để đưa vào trường Sender Hardware Address
  • Bước 6: Thiết bị B đồng thời cập nhật bảng ánh xạ địa chỉ IP và MAC của thiết bị nguồn vào bảng ARP cache của mình để giảm bớt thời gian xử lý cho các lần sau (hoạt động cập nhật danh bạ).
  • Bước 7: Thiết bị B bắt đầu gửi gói tin Reply đã được khởi tạo đến thiết bị A.
  • Bước 8: Thiết bị A nhận được gói tin reply và xử lý bằng cách lưu trường Sender Hardware Address trong gói reply vào địa chỉ phần cứng của thiết bị B.
  • Bước 9: Thiết bị A update vào ARP cache của mình giá trị tương ứng giữa địa chỉ IP (địa chỉ network) và địa chỉ MAC (địac chỉ datalink) của thiết bị B. Lần sau sẽ không còn cần tới request.

Như vậy máy A đã biết được địa chỉ MAC của máy B, tương tự như việc chúng ta đã biết địa chỉ cụ thể của ai đó. Và khi A cần gửi một gói tin cho B thì sẽ điền địa chỉ này vào trường Target Hardware Address. Gói tin sẽ được gửi thằng đến B mà không cần gửi đến các máy khác trong mạng LAN nữa.

Giao thức RARP

Định Nghĩa : Giao thức RARP (Reverse Address ResolutionProtocol) hay còn gọi là giao thức phân giải địa chỉ ngược là một giao thức được sử dụng bởi một máy chủ yêu cầu giao thức Internet(IPv4) dùng để xác định địa chỉ IP (địa chỉ logic) từ địa chỉ MAC của thiết bị.

Mục Đích : Sử dụng giao thức RARP để tìm địa chỉ IP (Thực chất là việc ánh xạ cho Host một địa chỉ IP) khi đã biết địa chỉ vật lý (MAC) của Host.

Quá trình arp giữa các máy nằm ở các mạng khác nhau

Qúa trình thực hiện RARP được bắt đầu khi một máy muốn gửi đi một gói tin đến một máy khác, để làm được điều này trước tiên là máy đó phải xác định được địa chỉ IP của mình trong mạng. Như chúng ta đã biết việc gửi gói tin trong cùng một mạng thông qua Switch là dựa vào địa chỉ MAC tuy nhiên để biết được chúng có cùng trong cùng một mạng hay không thì cần xác định IP của mạng đó, RARP làm nhiệm vụ này.

Khi một máy trong mạng cục bộ gửi yêu cầu xác định địa chỉ IP từ cổng của máy chủ ARP (Address Resolution Protocol) thì chúng sẽ kiểm tra tại các bảng hoặc bộ nhớ đệm (Cache) tại đó. Một quản trị mạng (Network Administrator) có trách nhiệm tạo ra bảng tại cổng định hướng của mạng cục bộ này. Bảng này sẽ ánh xạ địa chỉ MAC của máy sang địa chỉ IP tương ứng.

Khái niệm RARP Server: Tất cả ánh xạ giữa địa vật lý (MAC) với địa chỉ logic(IP) của các Hosts được lưu trữ vào tệp cấu hình của một Host nào đó trong mạng. Host này được gọi là RARP Server. Host này đáp ứng tất cả các yêu cầu của RARP Request. Còn tệp cấu hình này nằm trên vùng đĩa cứng của RARP Server.

RARP Client : là một hệ thống máy tính không đĩa (Hosts), nơi phát ra các yêu cầu để xác định IP của Host với đầu vào là địa chỉ MAC.

Hoạt động:

  • Khi một hệ thống không đĩa khởi động, nó phát đi một gói tin Broadcast yêu cầu RARP với địa chỉ MAC của nó. Gói tin này được nhận bởi tất cả các Hosts trong mạng. Khi RARP Server nhận được gói tin này nó nhìn lên địa chỉ MAC trong tệp cấu hình và xác định địa chỉ IP tương ứng. Sau đó nó gửi địa chỉ IP trong gói trả lời tin RARP (RARP Reply) và chỉ gửi từ một Host đến Host đích cần tới vì vậy gọi là gói Unicast. Hệ thống không đĩa ban đầu nhận được gói tin này và có được địa chỉ IP.
  • Một gói tin RARP Request thường được được tạo ra trong quá trình khởi động của Host. Khi RARP Server nhận được gói RARPRequest, nó thực hiện các bước sau.
    • Địa chỉ MAC trong gói tin yêu cầu được tìm kiếm trong tệp cấu hình, và được ánh xạ sang địa chỉ IP tương ứng .
    • Nếu việc ánh xạ không tìm thấy thì gói tin sẽ bị loại.
    • Nếu việc ánh được tìm thấy, một gói tin RARP Reply được tạo ra với địa chỉ MAC và IP của máy nguồn. Sau đó gói này được gửi trả lại Host mà đã đưa ra gói RARP Request.
  • Lúc này khi Host nhận được RARP Reply, nó nhận được địa chỉ IP từ gói tin RARP ban đầu và hoàn tất quá trình khởi động (Boot), địa chỉ IP được sử dụng để giao tiếp với các Hosts khác trong mạng cho đến khi nó khởi động lại.

Một số đặc điểm của giao thức RARP:

  • Giao thức này xuất hiện đầu tiên trong việc giải quyết nhiệm vụ ánh xạ từ địa chỉ vật lý sang địa chỉ logic.
  • Sử dụng trong các hệ thống không có đĩa (DisklessWorkstation).
  • Sử dụng nhiều trong các mạng LAN qui mô nhỏ, đặc biệt là trong mạng Ethernet .
  • Hiện tại RARP không còn sử dụng nữa mà đã thay thế bằng giao thức khác đó là BOOTP và DHCP. Chúng ta sẽ cùng tìm hiểu những giao thức này trong bài viết sau.
  • RARP cùng với ARP nằm trên lớp DataLink Layer của mô hình OSI .