رئیس قوه قضائیه: فضای مجازی در هیچ کشوری به صورت آزاد و رها نیست
رئیس قوه قضائیه، کاهش محدودیتهای برخی از شبکههای اجتماعی که برای ملت و کشور شامل…
۲۹ آبان ۱۴۰۳
۲۱ خرداد ۱۴۰۱
زمان مطالعه : ۸ دقیقه
تاریخ بهروزرسانی: ۲۴ خرداد ۱۴۰۲
در این مطلب میخوانید
تبادل اطلاعات بین رایانهها در یک شبکه، از طریق آدرس IP و آدرس MAC آنها اتفاق میافتد. گاهی اوقات پیش میآید که آدرس IP کامپیوتر مقصد در دسترس است ولی آدرس MAC آن مشخص نیست. پروتکل ARP وظیفه پیدا کردن آدرس MAC یک دستگاه را با استفاده از آدرس IP آن برعهده دارد. در این مطلب به توضیح پروتکل ARP میپردازیم و کاربردها و مزایا و معایب آن را بررسی میکنیم.
ARP مخفف عبارت Address Resolution Protocol و یکی از مهمترین پروتکلهای لایه شبکه است. این پروتکل آدرس منطقی ۳۲ بیتی یا همان IP Address یک دستگاه موجود در شبکه LAN را دریافت میکند و آدرس فیزیکی ۴۸ بیتی یا همان MAC Address مربوط به آن را تحویل میدهد. همچنین این پروتکل دارای یک حافظه Cache است که لیستی از آدرسهای IP دستگاههای موجود در شبکه در آن قرار دارد و از طریق این لیست اقدام به پیدا کردن آدرس MAC یک دستگاه میکند.
برای برقراری ارتباط بین دستگاههای موجود در یک شبکه، داشتن آدرس MAC دستگاه مقصد، امری ضروری است. اینجاست که پروتکل ARP وارد عمل میشود و آدرس IP را به آدرس MAC تبدیل میکند.
فرض کنید کامپیوتر مبدأ با آدرس IP و آدرس MAC مشخص قصد ارسال یک بسته به کامپیوتر مقصد را دارد که آدرس IP آن مشخص و آدرس MAC آن نامشخص است. در ابتدا کامپیوتر مبدأ به جدول ARP خود که به ARP Cache یا ARP Table معروف است رجوع میکند. در این جدول آدرسهای MAC مربوط به هر آدرس IP در مقابل آن نوشته شده است. اگر آدرس MAC مربوط به آدرس IP کامپیوتر مقصد در این لیست قرار داشت، آن را برداشته و در جای خود قرار میدهد و بسته را به کامپیوتر مورد نظر ارسال میکند. اما اگر آدرس MAC کامپیوتر مقصد در این لیست قرار نداشت پروتکل ARP وارد عمل میشود و یک درخواست بین کامپیوترهای موجود در شبکه ارسال میکند و آدرس MAC کامپیوتر مقصد را درخواست میکند. این درخواست بین کامپیوترهای موجود در شبکه پخش میشود و کامپیوتری که آدرس IP آن مطابق با آدرس IP کامپیوتر مقصد باشد درخواست را دریافت میکند و آدرس MAC خود را بهعنوان جواب به پروتکل ARP میدهد. حالا که تمام فاکتورهای لازم برای ارسال یک بسته بین دو کامپیوتر مشخص شده است، بسته بین کامپیوترها منتقل میشود.
شاید این سوال در ذهن شما ایجاد شده باشد که وقتی آدرس IP کامپیوتر مقصد را میدانیم دیگر چه نیازی به داشتن آدرس MAC آن داریم. در این قسمت به این سوال که نشاندهنده کاربرد پروتکل ARP است جواب میدهیم.
آدرس IP برای هر دستگاه یک مقدار پویا است که در طول عمر آن دستگاه ممکن است چندین بار تغییر کند. اما آدرس MAC برای هر دستگاه همواره مقدار ثابت و منحصر به فردی است. به عبارت دیگر ممکن است دو دستگاه دارای آدرس IP یکسانی باشند ولی به هیچ وجه امکان ندارد که دارای آدرس MAC یکسان باشد.
از طرف دیگر مسیریابی کامپیوتر مقصد با استفاده از آدرس IP سریعتر و آسانتر اتفاق میافتد ولی استفاده از آدرس MAC برای این کار، دشوار است.
با توجه به مواردی که در بالا به آنها اشاره کردیم میتوان نتیجه گرفت که برای ارسال یک بسته بین دو کامپیوتر همزمان به هر دو آدرس IP و آدرس MAC نیاز داریم که آدرس MAC را تنها با استفاده از پروتکل ARP میتوانیم به دست آوریم. پس نتیجه میگیریم این پروتکل در جا به جایی بستهها بین دو سیستم بسیار مهم و کاربردی است.
پروتکل ARP از ساختار پیام نسبتا سادهای استفاده میکند. این پیام شامل فیلدی برای نوع پیام و آدرس لایه دوم و آدرس لایه سوم شبکه است. ساختار کلی پیامهای ARP شامل مواردی است که در ادامه این موارد را نام برده و معرفی میکنیم.
برای عملکرد درست IPها، وجود پروتکل ARP لازم و ضروری است. این پروتکل وظیفه شناخت و تشخیص مک آدرس را دارد. آدرس IP برای هر دستگاهی مقداری پویا است و در طول عمر دستگاه ممکن است چندین بار تغییر کند؛ ولی آدرس MAC برای هر دستگاه مقدار ثابتی خواهد بود.
اما پروتکل RARP کاملا برعکس پروتکل ARP بوده و اگر دستگاهی آدرس IP را نداند نمیتواند از ARP استفاده کند. پس بدون داشتن آدرس IP، دستگاه قادر نخواهد بود که ای ار پی را درخواست دهد و پاسخی هم دریافت نمیکند. راهحل رفع این مشکل نیز این خواهد بود که به گره اجازه میدهد با آدرس MAC پیغامی روی شبکه ارسال کند که در ازای آن یک آدرس آی پی را دریافت میکند.
در پروتکل RARP، آدرس فیزیکی گرفته میشود و آدرس IP مورد نظر برگردانده میشود. همچنین با این پروتکل، آدرسهای فیزیکی ماشینهای مختلف را به شکل فراگیری روی شبکه پخش میکند و آدرس آیپی یک دستگاه را در تصویر حافظه جاسازی خواهد کرد. بهطور کلی در پروتکل ARP فرآیند انتقال در شبکههای محلی با داشتن MAC آدرس گیرنده پیام را مستقیم به مبدأ ارسال میکند و در شبکههای سراسری این آدرس گیرنده در Gate Node ذخیره میشود.
پس در موقع ارسال، سیستم مبدأ چه در شبکههای سراسری و چه در شبکههای محلی باید آدرس فیزیکی گیرنده را داشته باشد. به کمک پیام درخواست از طریق پروتکل ARP میتوان MAC آدرس مقصد را به دست آورد.
همانطور که قبلا هم گفتیم پروتکل ARP وظیفه تبدیل IP به MAC Address را دارد که این پیادهسازی در روتر میکروتیک از طریق Broadcasting در داخل شبکه صورت میگیرد. با فرستادن Broadcasting به داخل شبکه که همه کامپیوترها آن را دارند آدرس IP ارسال شده و در پاسخ، آدرس مک را ارسال میکند. در نهایت این فرآیند با در اختیار داشتن این آدرس به کامپیوتری که به مک آدرس نیاز داشته ارسال میشود و آن را کامل خواهد کرد.
برای کاهش ترافیک و همچنین کاهش تعداد Broadcastingها جدول ARP Table طراحی شده که وقتی هر پیغام Broadcasting ارسال و آدرس MAC مورد نظر در سیستم مشخص میشود، آدرس IP و MAC در آن نگهداری خواهد شد. تمام سیستمهایی که در یک شبکه کار میکنند این جدول را دارند و از آن استفاده خواهند کرد. برای مشاهده ARP Table در میکروتیک باید وارد منوی IP شده و با انتخاب گزینه ARP پنجرهای برایتان باز خواهد شد.
این جدول آدرس IP و MACهای همه سیستمهایی که بهنوعی با میکروتیک در ارتباط هستند را نمایش میدهد و میتوان فهمید این دستگاهها از طریق کدام Interface به میکروتیک وصل شدهاند. وقتی دو کامپیوتر در یک شبکه به یکدیگر متصل شوند فوری آدرس آیپی و مک یکدیگر را به ARP Table اضافه میکنند. برای Attack زدن به شبکه، پروتکل ARP یکی از حفرههایی است که به وسیله آن میتوان این کار را انجام داد.
به عنوان مثال اگر یک سیستم برای سیستم دیگر که فقط آدرس آیپی دارد اطلاعات ارسال کند باید کامپیوتر اول در ابتدا NetID مربوط به IP کامپیوتر دوم را مورد بررسی قرار داده و در صورت یکسان بودن به سراغ ARP Table خود برود. سپس آدرس مک سیستم دوم را در آن جستوجو کند و اگر هیچ آدرسی از سیستم اول در آن ثبت نشده باشد یک پیغام Broadcasting را ارسال میکند.