preloader
ARP چیست ؟

ARP چیست ؟

مدت زمان مطالعه: نام نویسنده: کیارش شماعی تاریخ انتشار: ۱۳ خرداد ۱۳۹۸

ARPچیست ؟

پروتکل ARP یا Address Resolution protocol یک پروتکل لایه دو است، که کار آن به دست آوردن آدرس لایه دو یا همان آدرس فیزیکی مقصد که معروف به MAC می باشد از روی آدرس لایه سه ای یعنی IP است.

فرض کنید کامپیوتر A که IP آن ۱۹۲٫۱۶۸٫۱٫۱۰۰/۲۴ می باشد قصد دارد بسته ای به کامپیوتر B که IP آن برابر با ۱۹۲٫۱۶۸٫۱٫۲۰۰/۲۴ می باشد ارسال کند ، آدرس فیزیکی یا همان MAC Address کامپیوتر A برابر با AA.AA.AA.AA.AA.AA است و هنگام تشکیل بسته در لایه دو نیاز به Destination-MAC یا همان آدرس MAC مقصد دارد در ابتدا کامپیوتر A به جدول ARP خود که معروف به ARP Cache یا ARP Table است نگاه می کند که در این جدول آدرس های IP با آدرس های MAC متناظر یا Bind شده اند ، یعنی Mac ادرسی برای این IP آدرس موجود است.

کامپیوتر ها به کمک این جدول می توانند بسته های خود را کامل کرده و ارسال کنند.

حال اگر کامپیوتر A هیچ اطلاعی از آدرس MAC کامپیوتر B نداشته باشد یعنی در جدول خود آدرس MAC کامپیوتر B را نداشته باشد باید چه کند؟

جواب ساده است ، باید درخواست ARP ارسال کند و خواستار آدرس MAC کامپیوتر B شود.

پس یک بار دیگر با هم مرور می کنیم :

کامپیوتر A برای ارسال بسته به کامپیوتر B آدرس IP آن یعنی ۱۹۲٫۱۶۸٫۱٫۲۰۰ را دارد ولی آدرس MAC کامپیوتر B را ندارد و هیچ فریمی تا کامل نشدن آن ارسال نمی شود پس کامپیوتر A نگاهی به جدول ARP خود می کند تا آدرس MAC کامپیوتر B با آدرس IP برابر با ۱۹۲٫۱۶۸٫۱٫۲۰۰ را پیدا کند در صورت داشتن آن ، فریم را کامل کرده و ارسال می کند و در صورت نداشتن آن باید به کمک پروتکل ARP درخواست خود را در شبکه ارسال کند.

کامپیوتر A قبل از ارسال بسته به کامپیوتر B باید ARP بزند که این بسته ARP به صورت Broadcast در شبکه پخش می شود تا آن کامپیوتری که آدرس آن ۱۹۲٫۱۶۸٫۱٫۲۰۰ است آدرس مک خود را به ما جواب (Reply) دهد.

ARP دو مرحله دارد : مرحله اول ARP Request و مرحله دوم ARP Reply

مرحله اول :

این مرحله معروف به Who has می باشد ، این فریم به صورت Broadcast است زیرا ما نمی دانیم که مقصد کجای شبکه است و به شکل زیر است.

ARP Table

ARP table

Source-mac

آدرس مک فرستنده که در مثال ما آدرس مک کامپیوتر A است.

Destination-mac

آدرس مک گیرنده که در بسته های ARP Request از نوع Broadcast است.

Type
اشاره می کند در لایه بالایی یعنی لایه سه ، بسته چه چیزی را حمل میکند که در بسته های ARP ، پروتکل لایه سه ما ARP است و Ethertype آن برابر با ۰x0806 است.

Sender-mac

آدرس مک ای که ARP Request را ارسال می کند.

Sender-IP

آدرس IP کسی که ARP می زند.

Target-IP

به صورت خیلی عامیانه یعنی دنبال آدرس مک این IP هستم که در مثال ما کامپیوتر A دنبال مک کامپیوتر B با آدرس ۱۹۲٫۱۶۸٫۱٫۲۰۰ است.

Target-mac

۰۰٫۰۰٫۰۰٫۰۰٫۰۰٫۰۰ یعنی من مک را ندارم.

حال این بسته به سوئیچ می رسد و سوئیچ این بسته را بر روی تمامی پورت های خود فوروارد میکند چون نوع این بسته برادکست می باشد .

تمامی کامپیوتر های متصل به سوئیچ این بسته را دریافت می کنند و شروع به باز کردن و تحلیل بسته از لایه پایین یعنی هدر Ethernet می کنند و چون مقصد بسته برادکست است ، بسته را در لایه بالاتر یعنی هدر ARP بررسی می کنند و با نگاه کردن به قسمت Target-IP متوجه می شوند که آیا این بسته به دنبال مک آنها است یا خیر.

تمامی کامپیوتر ها بسته ARP را دور می ریزند به غیر از کامپیوتر B که آدرس IP آن ۱۹۲٫۱۶۸٫۱٫۲۰۰ است و با Target-IP داخل بسته برابر است، ابتدا کامپیوتر B آدرس مک کامپیوتر A را در جدول ARP خود یادداشت می کند و حال باید جواب ARP Request ای که کامپیوتر A ارسال کرده را بدهد که به آن ARP Reply می گویند.

مرحله دو :

در این مرحله ARP Reply به فرستنده Request به صورت Unicast ارسال می شود که به شکل زیر است.

ARP table

ARP table

همان طور که مشاهده می کنید بسته های ARP Reply به صورت Unicast است.

وقتی این بسته به سوئیچ می رسد ، سوئیچ این بسته را فقط روی پورتی که متصل به کامپیوتر A است فوروارد می کند و بسته به کامپیوتر A می رسد و حال کامپیوتر A آدرس مک کامپیوتر B را دارد و در جدول ARP خود یادداشت می کند.

بعد از این که ARP کار خود را تمام کرد حال کامپیوتر A و کامیپوتر B می توانند به یکدیگر بسته ارسال کنند زیرا هر دو کامپیوتر از آدرس های MAC یکدیگر خبر دارند و در جدول ARP خود یادداشت کرده اند.

نکته : وقتی مقصد کامپیوتر A در لایه سه خارج از شبکه باشد یعنی مقصد بسته ها خارج از شبکه ۱۹۲٫۱۶۸٫۱٫۰/۲۴ باشد ، باید بسته به روتر یا Gateway برسد زیرا روتر می تواند بسته ها را روت کند و برای این که در یک بستر Ethernet بسته از کامپیوتر A به روتر برسد کامپیوتر A باید در قسمت Destination-mac بسته ها ، آدرس مک روتر را قرار دهد و اگر آدرس مک روتر یا GW را نداشته باشد باید GW خود را ARP بزند.

نکته : پروتکل ARP به شدت آسیب پذیر است یعنی Attacker ها با استفاده از ضعف این پروتکل به راحتی می توانند صدمات سنگینی وارد کنند ، به طور مثال فرض کنید Attacker خود را به جای روتر قرار دهد و آدرس مک خود را به عنوان آدرس مک روتر به کامپیوتر A ارسال کند و کامپیوتر A در تمام بسته های خود آدرس مک مقصد را آدرس مک Attacker قرار می دهد و تمامی بسته های ارسالی کامپیوتر A با اینترنت از Attacker عبور می کند که به این تهاجم MITM یا همان Man in the middle می گویند و Attacker به راحتی می تواند از اطلاعات شما سو استفاده کند.

به حملاتی که Attacker آدرس مک خود را جعل می کند به اصطلاح ARP Spoofing می گویند که به راحتی با ابزار های مانند Arpspoof و Ethercap در کالی امکان پذیر است.

برای مصون ماندن از این حملات باید از مکانیزم های امنیتی مانند DAI در سوئیچ استفاده کرد.

GARP چیست؟

وقتی شما آدرس IP خود را عوض می کنید ، ARP Table تمامی کامپیوتر های دیگر به اصطلاح بیات هست و باید آپدیت شود ، در این هنگام کامپیوتری که آدرس IP خود را عوض کرده GARP ارسال می کند در این بسته ARP ، کامپیوتر آدرس IP خود را ARP می زند تا جدول بقیه را آپدیت کند.

این اتفاق زمانی که کارت شبکه فعال شده و یا آدرس IP از DHCP Server دریافت می کند نیز می افتد تا از Duplicate IP جلوگیری کند که البته Attacker ها از این قابلیت استفاده می کنند برای حملات ARP Spoofing .

دیدگاه خود را برای ما ارسال کنید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

هیچ دیدگاهی به ثبت نرسیده است.