Tìm hiểu về giao thức ARP (Address Resolution Protocol), cách thức hoạt động của ARP

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

  1. HaVNT

    HaVNT New Member

    1. Định nghĩa

    Đầ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.

    upload_2018-3-16_12-1-7.png
    • 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
    2. Nguyên tắc hoạt động
    upload_2018-3-16_12-1-22.png
    1. Source Device Checks Cache : Trong bước này, thiết bị sẽ kiểm tra cache ( bộ đệm ) của mình. Nếu đã có địa chỉ IP đích tương ứng với MAC nào đó rồi thì lập tức chuyển sang bước 9

    2. Source Device Generates ARP Request Message : Bắt đầu khởi tạo gói tin ARP Request với các trường địa chỉ như trên

    3. Source Device Broadcasts ARP Request Message : Thiết bị nguồn quảng bá gói tin ARP Request trên toàn mạng

    4. Local Devices Process ARP Request Message : Các thiết bị trong mạng đều nhận được gói tin ARP Request. Gói tin được xử lý bằng cách các thiết bị đều nhìn vào 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

    5. Destination Device Generates ARP Reply Message : Thiết bị với 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ỉ datalink của mình để đưa vào trường Sender Hardware Address

    6. Destination Device Updates ARP Cache : Thiết bị đích (thiết bị khởi tạo gói tin ARP Reply) đồ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

    7. Destination Device Sends ARP Reply Message : Thiết bị đích bắt đầu gửi gói tin Reply đã được khởi tạo đến thiết bị nguồn. Gói tin reply là gói tin gửi unicast

    8. Source Device Processes ARP Reply Message : Thiết bị nguồn 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 như địa chỉ phần cứng của thiết bị đích

    9. Source Device Updates ARP Cache : Thiết bị nguồn update vào ARP cache của mình giá trị tương ứng giữa địa chỉ network và địa chỉ datalink của thiết bị đích. 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.

    3. ARP Caching

    ARP là một giao thức phân giải địa chỉ động. Quá trình gửi gói tin Request và Reply sẽ tiêu tốn băng thông mạng. Chính vì vậy càng hạn chế tối đa việc gửi gói tin Request và Reply sẽ càng góp phần làm tăng khả năng họat động của mạng. Từ đó sinh ra nhu cầu của ARP Caching

    Quá trình xóa thông tin trong cache

    Ta xét trường hợp bảng cache của một thiết bị A, trong đó có chứa thông tin về thiết bị B trong mạng. Nếu các thông tin trong cache được lưu mãi mãi, sẽ có một số vấn đề như sau xảy ra :

    - Địa chỉ phần cứng thiết vị được thay đổi : Đây là trường hợp khi thiết bị B được thay đổi card mạng hay thiết bị giao tiếp, làm thay đổi địa chỉ MAC của thiết bị. Điều này làm cho các thông tin trong cache của A không còn đúng nữa.

    - Địa chỉ IP của thiết bị được thay đổi : Người quản trị hay nhà cung cấp thay đổi địa chỉ IP của B, cũng làm cho thông tin trong cache của A bị sai lệch.

    - Thiết bị được rút ra khỏi mạng : Khi B được rút ra khỏi mạng nhưng A không được biết, và gây lãng phí về tài nguyên của A để lưu thông tin không cần thiết và tốn thời gian để tìm kiếm.

    Để tránh được những vấn đề này, các thông tin trong dynamic cache sẽ được tự động xóa sau một khoảng thời gian nhất định. Quá trình này được thực hiện một cách hoàn toàn tự động khi sử dụng ARP với khoảng thời gian thường là 10 hoặc 20 phút. Sau một khoảng thời gian nhất định được lưu trong cache , thông tin sẽ được xóa đi. Lần sử dụng sau, thông tin sẽ được update trở lại.

    4. Proxy ARP

    ARP được thiết kế cho các thiết bị nằm trong nội mạng, có tính chất local. Tuy nhiên nếu hai thiết bị A và B bị chia cắt bởi 1 router thì chúng sẽ được coi như là không local với nhau nữa. Khi A muốn gửi thông tin đến B, A sẽ không gửi trực tiếp được đến B theo địa chỉ lớp hai, mà phải gửi qua router và được coi là cách nhau 1 hop ở lớp ba.

    Khác với các trường hợp thông thường, nhiều trường hợp hai thiết bị A và B nằm trên 2 segment vật lý khác nhau nhưng được kết nối qua một router và cùng nằm trong một mạng IP hay một IP subnet. Lúc này A và B sẽ coi nhau có quan hệ local.

    Giả sử ta có tình huống A muốn gửi thông tin cho B. A nghĩ B trong cùng nội mạng và tìm trong bảng ARP cache. A không lưu địa chỉ MAC của B và bắt đầu tiến hành quá trình phân giải địa chỉ. A broadcast gói ARP request trong nội mạng để tìm địa chỉ MAC của B. Sẽ có vấn đề xảy ra : B không cùng nằm trong mạng và sẽ không nhận được gói tin broadcast cũng như router kết nối sẽ không forward gói broadcasr từ A qua B ( router không truyền các gói broadcast ở lớp datalink ).
    upload_2018-3-16_12-1-58.png
    Vì vậy B không bao giờ nhận được request từ A cũng như A sẽ không bao giờ có được địa chỉ MAC của B.

    Hoạt động của Proxy ARP

    Giải pháp cho tình huống này được gọi là ARP proxying hay Proxy ARP. Trong công nghệ này, router nằm giữa 2 mạng local sẽ được cấu hình để đáp ứng các gói tin broadcast gửi từ A thay cho B.
    upload_2018-3-16_12-2-10.png

    Router sẽ không gửi cho A địa chỉ MAC của B, vì dù thế nào A và B cũng nằm trên hai mạng khác nhau và không thể gửi trực tiếp đến nhau được. Thay vào đó router sẽ gửi cho A các địa chỉ MAC của chính router.
    upload_2018-3-16_12-2-30.png
    A sau đó sẽ gửi thông các gói tin cho router, và router sẽ forward sang cho B. Quá trình cũng hoàn toàn diễn ra tương tự khi B muốn gửi thông tin cho A, hay cho bất cứ thiết bị nào mà đích đến của gói tin là một thiết bị ở một mạng khác.
     
  2. tringuyen

    tringuyen Member

    Giao thức phân giải địa chỉ ARP hoạt động như thế nào?

    ARP (Address Resolution Protocol)
    - Giao thức phân giải địa chỉ là giao thức Lớp 2 được sử dụng để dịch địa chỉ IP (lớp 3 trong mô hình OSI) sang địa chỉ MAC (lớp 2 trong mô hình OSI) và được sử dụng khi hai máy trên Mạng Ethernet cục bộ muốn giao tiếp với nhau.

    Tất nhiên, ARP được sử dụng trong các mạng Lớp 2 khác, chẳng hạn như ATM, nhưng cách sử dụng chính của ARP là trên Mạng Ethernet.
    [​IMG]
    Lần đầu tiên Máy tính A muốn liên hệ với Máy tính B, Máy tính A sẽ gửi Yêu cầu ARP (sử dụng gói quảng bá) trên mạng LAN. Gói ARP về cơ bản hỏi như sau “Tôi có địa chỉ IP cho Máy tính B và tôi muốn biết địa chỉ MAC của Máy tính B”.

    Máy tính B nhìn thấy gói quảng bá này và trả lời Máy tính A bằng gói Trả lời ARP chứa địa chỉ MAC của Máy tính B.

    Máy tính A hiện lưu tổ hợp địa chỉ MAC/địa chỉ IP này trong bộ đệm ARP của nó và bắt đầu giao tiếp với Máy tính B.

    Giao tiếp này xảy ra với Địa chỉ MAC Lớp 2 vì hai Máy tính nằm trên cùng một mạng Lớp 2.

    Để hiển thị nội dung của bộ đệm ARP của Máy tính (table), hãy sử dụng “arp-a” trên nền tảng Windows, “arp” trên nền tảng UNIX và “show arp” trên nền tảng Cisco IOS.

    Bây giờ, nếu Máy tính đích không nằm trên cùng mạng con Lớp 3 của Máy tính gốc thì sao? Trong trường hợp này, bộ định tuyến cổng mặc định của Máy tính gốc sẽ trả lời yêu cầu ARP và cung cấp địa chỉ MAC của chính nó để Máy tính gốc sẽ gửi các gói của nó đến cổng mặc định để đến được Máy tính đích.

    Cổng mặc định sẽ lấy các gói và sử dụng định tuyến Lớp 3 để gửi các gói đến đúng giao diện để đến Máy tính đích (tất nhiên các gói có thể đi qua một số bộ định tuyến trước khi đến đích cuối cùng).
     

trang này