پروتکل ARP چیست؟
ARP یا پروتکل تفکیک آدرس (Address Resolution Protocol)، یک فرآیند شبکهای است که برای تبدیل آدرسهای IP پویا (Dynamic IP) به آدرسهای فیزیکی سختافزاری (MAC Address) دستگاهها در یک شبکه محلی (LAN) استفاده میشود. این پروتکل زمانی کاربرد دارد که یک دستگاه بخواهد با دستگاهی دیگر در شبکه ارتباط برقرار کند، اما تنها آدرس IP آن را دارد. در این صورت، ARP وارد عمل شده و با ارسال یک درخواست در شبکه، آدرس MAC متناظر با IP مورد نظر را شناسایی کرده و اتصال را برقرار میکند.
معنی پروتکل تفکیک آدرس (ARP)
پروتکل تفکیک آدرس یا ARP (Address Resolution Protocol)، یک پروتکل یا روش ارتباطی در شبکههای محلی (LAN) است که وظیفه دارد یک آدرس IP که ممکن است به طور مداوم تغییر کند را به یک آدرس فیزیکی ثابت (MAC Address) متصل کند. آدرس MAC همان آدرس کنترل دسترسی به رسانه (Media Access Control) است که به صورت سختافزاری و یکتا برای هر دستگاه در نظر گرفته میشود.
این فرآیند نگاشت (تطبیق) ضروری است، زیرا طول آدرسهای IP و MAC با یکدیگر متفاوت است و برای اینکه دستگاهها بتوانند همدیگر را شناسایی کنند، نیاز به ترجمهی این آدرسها وجود دارد. در حال حاضر رایجترین نوع آدرس IP، نسخه چهارم آن یا IPv4 است. آدرسهای IPv4 دارای ۳۲ بیت هستند، در حالی که آدرسهای MAC دارای ۴۸ بیت میباشند. بنابراین، ARP وظیفه ترجمه بین آدرس ۳۲ بیتی و ۴۸ بیتی را بر عهده دارد.
مدل شبکهای معروفی به نام مدل OSI (Open Systems Interconnection) وجود دارد که اولین بار در اواخر دهه ۱۹۷۰ توسعه یافت. این مدل از چندین لایه تشکیل شده است و به تیمهای فناوری اطلاعات کمک میکند تا دید بهتری نسبت به وضعیت عملکردی یک سیستم شبکهای داشته باشند. با استفاده از این مدل میتوان تشخیص داد که کدام لایه مربوط به کدام دستگاه، نرمافزار یا عملکرد شبکه است، و در نتیجه مشخص میشود که کدام متخصص IT یا مهندس مسئول آن لایه خاص است.
آدرس MAC مربوط به لایه پیوند داده (Data Link Layer) در مدل OSI است؛ این لایه مسئول ایجاد و پایان دادن به ارتباط بین دو دستگاه متصل فیزیکی است تا انتقال داده صورت گیرد. از سوی دیگر، آدرس IP مربوط به لایه شبکه (Network Layer) است که وظیفهی مسیردهی بستههای اطلاعاتی از طریق روترهای مختلف را بر عهده دارد. پروتکل ARP دقیقاً بین این دو لایه فعالیت میکند و نقش واسط را ایفا مینماید.
ARP چه کاری انجام می دهد و چگونه کار میکند؟
وقتی یک رایانه جدید به یک شبکه محلی (LAN) متصل میشود، یک آدرس IP منحصربهفرد برای شناسایی و برقراری ارتباط دریافت میکند.
بستههای داده به دروازه (Gateway) شبکه میرسند، که قرار است به یک رایانه میزبان خاص ارسال شوند. دروازه (که همان سختافزاری است که امکان انتقال دادهها بین شبکهها را فراهم میکند)، از برنامهی ARP میخواهد تا آدرس MAC متناظر با آدرس IP مورد نظر را پیدا کند. این اطلاعات در کش ARP (ARP Cache) ذخیره میشوند؛ فهرستی از آدرسهای IP و MAC که با یکدیگر جفت شدهاند.
کش ARP به صورت پویا (دینامیک) عمل میکند، اما کاربران یک شبکه میتوانند جدول ARP ایستا (Static ARP Table) نیز تنظیم کنند که شامل نگاشتی دائمی از IPها به MACها باشد.
در تمام سیستمعاملهایی که در شبکههای اترنت مبتنی بر IPv4 فعالیت میکنند، کش ARP وجود دارد. هر بار که دستگاهی میخواهد دادهای را به دستگاه دیگری در همان شبکه محلی ارسال کند، ابتدا کش ARP را بررسی میکند تا ببیند آیا قبلاً ترجمهی آدرس IP به MAC انجام شده یا نه. اگر نگاشت قبلاً انجام شده باشد، نیازی به ارسال درخواست جدید نیست. اما اگر این ترجمه هنوز صورت نگرفته باشد، یک درخواست ARP به شبکه ارسال میشود تا این نگاشت انجام شود.
حجم کش ARP بهصورت طراحیشده محدود است، و آدرسها معمولاً فقط چند دقیقه در کش باقی میمانند و سپس بهطور منظم پاکسازی میشوند تا فضای حافظه آزاد شود. این طراحی نه تنها برای بهینهسازی عملکرد سیستم است، بلکه با اهداف امنیتی و حفظ حریم خصوصی نیز انجام میشود تا از سرقت یا جعل آدرسهای IP توسط مهاجمان سایبری جلوگیری شود. در حالی که آدرس MAC ثابت و سختافزاری است، آدرسهای IP بهطور مداوم بهروزرسانی میشوند.
در فرآیند پاکسازی کش، آدرسهایی که مورد استفاده قرار نگرفتهاند حذف میشوند؛ همچنین دادههایی که به ارتباطات ناموفق با رایانههای خاموش یا غیر متصل مربوط بودهاند نیز حذف خواهند شد.
رابطه پروتکل ARP با DHCP و DNS چیست و این سه چه تفاوتی با یکدیگر دارند؟
ARP یا پروتکل تفکیک آدرس، فرآیندی است که آدرس IP پویا را به آدرس فیزیکی یک دستگاه (MAC Address) متصل میکند. از آنجا که این فرآیند مستقیماً با آدرس IP سر و کار دارد، لازم است نگاهی نیز به چند فناوری مرتبط با IP داشته باشیم.
همانطور که قبلاً اشاره شد، آدرسهای IP به صورت طراحیشده به طور مداوم تغییر میکنند، زیرا این کار باعث افزایش امنیت و حفظ حریم خصوصی کاربران میشود. با این حال، این تغییرات نباید کاملاً تصادفی باشند. باید قوانینی وجود داشته باشد که یک آدرس IP را از یک محدوده مشخص درون شبکه، به صورت منظم و بدون تداخل تخصیص دهد. این قوانین توسط پروتکلی به نام DHCP یا پروتکل پیکربندی میزبان پویا (Dynamic Host Configuration Protocol) کنترل میشود.
DHCP اطمینان میدهد که هر دستگاه در شبکه، یک آدرس IP منحصر بهفرد دریافت کند و از بروز مشکلاتی مانند تخصیص یک IP یکسان به چند دستگاه جلوگیری شود.
آدرسهای IP به عنوان شناسهی دستگاهها در اینترنت بسیار مهم هستند، زیرا برای انجام هرگونه جستجوی اینترنتی به آنها نیاز داریم. کاربران هنگام جستجو در اینترنت از نام دامنهها یا آدرسهای URL (مانند www.example.com) استفاده میکنند که برای انسان قابل فهم است. اما کامپیوترها از آدرس IP استفاده میکنند تا بتوانند این نامهای دامنه را به سرورهای واقعی مرتبط کنند.
برای تبدیل این نامهای خوانا به آدرس IP و برعکس، از سیستمی به نام DNS یا سامانه نام دامنه (Domain Name System) استفاده میشود. DNS همانند دفترچه تلفن اینترنتی عمل میکند و وظیفهاش ترجمه نام دامنهها به آدرسهای IP عددی و بالعکس است.
به طور خلاصه:
-
ARP وظیفه دارد آدرس IP را به آدرس MAC دستگاه نگاشت کند.
-
DHCP وظیفه تخصیص خودکار و منظم آدرسهای IP به دستگاهها را دارد.
-
DNS نامهای دامنه خوانا برای انسان را به آدرسهای IP عددی قابل فهم برای ماشین ترجمه میکند و بالعکس.
این سه فناوری در کنار هم باعث میشوند ارتباط در شبکههای محلی و اینترنت به شکلی روان، امن و سازمانیافته انجام شود.
انواع مختلف ARP کداماند؟
پروتکل ARP نسخهها و کاربردهای متفاوتی دارد که هر کدام برای هدف خاصی طراحی شدهاند. در ادامه به برخی از مهمترین انواع ARP اشاره میکنیم:
Proxy ARP (پروکسی ARP)
در این نوع از ARP، یک دستگاه واسط (پروکسی) در شبکه به جای دستگاه واقعی به درخواست ARP پاسخ میدهد. این پاسخ برای یک آدرس IP است که در همان شبکه محلی وجود ندارد. پروکسی آگاه است که مقصد مورد نظر در کجا قرار دارد و آدرس MAC خود را به عنوان مقصد معرفی میکند تا دادهها به آن برسند و سپس آن را به مقصد واقعی هدایت کند.
Gratuitous ARP (ARP رایگان یا اعلامی)
این نوع ARP بیشتر شبیه یک عملیات مدیریتی است. در آن، یک دستگاه بدون اینکه درخواستی برای ترجمه IP به MAC دریافت کرده باشد، خودش بهصورت داوطلبانه IP و MAC خود را اعلام یا بهروزرسانی میکند. این کار میتواند برای تشخیص آدرسهای تکراری یا اطلاعرسانی به دیگر دستگاهها در مورد تغییرات در آدرس انجام شود.
Reverse ARP (RARP یا ARP معکوس)
در شرایطی که یک دستگاه (مانند کلاینتهای ساده یا دیوایسهای بدون پیکربندی کامل) آدرس IP خود را نمیداند، میتواند از پروتکل RARP برای کشف آن استفاده کند. در این حالت، دستگاه با داشتن آدرس MAC خودش، درخواست ارسال میکند تا سروری در شبکه، آدرس IP مربوط به آن را برگرداند.
Inverse ARP (IARP یا ARP معکوس با مسیر برعکس)
برخلاف ARP معمولی که از IP برای یافتن MAC استفاده میکند، IARP برعکس عمل میکند: یعنی از آدرس MAC استفاده میکند تا آدرس IP متناظر با آن را بیابد. این نوع بیشتر در شبکههایی مانند Frame Relay کاربرد دارد، جایی که آدرس فیزیکی شناختهشده است اما نیاز به شناسایی آدرس منطقی (IP) وجود دارد.
هر کدام از این نسخهها در سناریوهای خاصی مورد استفاده قرار میگیرند و در کنار هم، قابلیتهای ARP را در شبکههای پیچیدهتر گسترش میدهند.
ARP در شبکه چه کاربردی دارد؟
پروتکل ARP در شبکه ضروری است، زیرا برای برقراری ارتباط در یک شبکه محلی (LAN)، آدرس نرمافزاری هر دستگاه (یعنی آدرس IP) باید به آدرس سختافزاری آن دستگاه (یعنی آدرس MAC) تبدیل شود. بدون وجود ARP، هیچ دستگاهی نمیتواند آدرس فیزیکی (MAC) دستگاه مقصد را پیدا کند و بنابراین ارتباط در شبکه برقرار نخواهد شد.
در شبکه محلی، یک جدول یا دایرکتوری نگهداری میشود که آدرسهای IP را به آدرسهای MAC متناظر آنها نگاشت میدهد. این جدول شامل اطلاعات مربوط به همه دستگاهها در شبکه است؛ از جمله کلاینتها و روترها.
اما نکته مهم این است که این جدول بهصورت دستی توسط کاربران یا حتی مدیران شبکه ایجاد نمیشود. بلکه پروتکل ARP بهصورت خودکار و لحظهای (On the Fly) این ورودیها را میسازد.
زمانی که یک دستگاه در شبکه، آدرس MAC دستگاه مقصد را نمیداند، پیامی را برای تمام دستگاههای موجود در شبکه ارسال میکند و از آنها آدرس فیزیکی مربوط به آدرس IP مورد نظر را درخواست میکند. دستگاه مقصد، پس از دریافت این درخواست، آدرس MAC خود را به فرستنده پاسخ میدهد و این اطلاعات سپس در جدول ARP ذخیره میشود تا در آینده دوباره از آن استفاده شود.
در صورتی که شبکه یا دستگاه از ARP پشتیبانی نکند، میتوان بهصورت دستی ورودیهایی را در این جدول وارد کرد، اما این روش وقتگیر و مستعد خطا است و معمولاً در محیطهای بزرگ قابل استفاده نیست.
حمله ARP Spoofing یا ARP Poisoning چیست؟
ARP Spoofing که با نامهای ARP Poisoning یا ARP Cache Poisoning نیز شناخته میشود، نوعی حمله مخرب سایبری است که در آن مهاجم با ارسال پیامهای جعلی ARP به یک شبکه محلی (LAN)، تلاش میکند آدرس MAC خودش را به آدرس IP یک دستگاه معتبر در شبکه پیوند دهد.
هدف این حمله آن است که دادههایی که قرار بود از سیستم قربانی به مقصد قانونی ارسال شوند، بهجای آن، به رایانه مهاجم فرستاده شوند. این عملیات به مهاجم اجازه میدهد تا دادهها را رهگیری کرده و یا حتی تغییر دهد.
حملات ARP Spoofing بسیار خطرناک هستند، زیرا اطلاعات حساس میتوانند بدون اطلاع کاربران، میان دستگاهها منتقل شوند و در این بین به دست مهاجم بیفتند. افزون بر این، این حملات میتوانند راه را برای انواع دیگری از حملات سایبری باز کنند، از جمله:
حملات مرد میانی (Man-in-the-Middle یا MITM)
حمله مرد میانی، نوعی شنود مخفیانه است که در آن مهاجم بین دو طرف ارتباط قرار میگیرد، پیامها را رهگیری، ارسال مجدد یا تغییر میدهد، در حالی که دو طرف اصلی متوجه حضور او نیستند. مهاجم ممکن است با جعل محتوا، مکالمات متنی یا صوتی را تغییر دهد تا اطلاعات حساس مانند نام کاربری، رمز عبور، شماره حساب و… را به دست آورد.
در این نوع حمله، معمولاً بدافزار وارد سیستم قربانی شده و کنترل مرورگر وب را بهدست میگیرد. هدف، خود مرورگر نیست، بلکه دادههایی است که کاربر در ارتباطات آنلاین خود به اشتراک میگذارد. پس از بهدست گرفتن کنترل، مهاجم ممکن است یک وبسایت جعلی شبیه به سایت اصلی ایجاد کند و دادههایی که بین قربانی و سایت معتبر رد و بدل میشوند را رهگیری کند. این روش معمولاً در حملات به بانکها و سایتهای تجارت الکترونیک استفاده میشود.
حملات انکار سرویس (Denial-of-Service – DoS)
در این حمله، مهاجم تلاش میکند با ارسال حجم زیادی از ترافیک به سرورها یا شبکهها، آنها را از کار بیندازد. نسخه بزرگتر و توزیعشده این حمله، DDoS نام دارد که در آن از منابع متعددی برای ایجاد ترافیک مخرب استفاده میشود.
این حملات با سوءاستفاده از ضعفهای شناختهشده در پروتکلهای شبکه اجرا میشوند. با ارسال بستههای فراوان به یک شبکه آسیبپذیر، سرور یا سرویس موردنظر از کار میافتد و برای کاربران واقعی در دسترس نخواهد بود.
ربودن نشست (Session Hijacking)
در ربودن نشست، مهاجم شناسه نشست (Session ID) یک کاربر را سرقت میکند و خود را به جای آن کاربر جا میزند. پس از دسترسی به Session ID، مهاجم میتواند هر کاری را که آن کاربر در آن سایت یا سرویس مجاز به انجام آن است، انجام دهد.
فرآیند احراز هویت زمانی رخ میدهد که کاربر قصد ورود به یک سایت یا سیستم محدود را دارد. این نشست معمولاً در قالب یک کوکی در مرورگر ذخیره میشود. مهاجم با رهگیری این نشست میتواند به صورت همزمان وارد سیستم شود و عملیات مخرب انجام دهد.
جمعبندی
حملات ARP Spoofing دروازهای برای نفوذ گستردهتر در شبکه هستند و میتوانند به سرقت اطلاعات، مختل کردن سرویسها و جعل هویت کاربران منجر شوند. برای جلوگیری از این حملات، استفاده از پروتکلهای ایمن، فایروالهای پیشرفته، و تنظیمات امنیتی شبکه حیاتی است.
پرسشهای متداول درباره ARP (Address Resolution Protocol)
❓ ARP چیست؟
ARP یا پروتکل تفکیک آدرس، فرآیندی است که وظیفه دارد آدرس IP پویا (Dynamic IP) را به آدرس فیزیکی (MAC Address) یک دستگاه در شبکه محلی متصل کند.
❓ ARP چگونه استفاده میشود؟
ARP زمانی مورد استفاده قرار میگیرد که آدرس نرمافزاری (IP) یک دستگاه در شبکه باید به آدرس سختافزاری (MAC) ترجمه شود. در شبکه محلی (LAN)، یک جدول نگاشتی نگهداری میشود که آدرسهای IP را به آدرسهای MAC متناظر آنها متصل میکند. این جدول شامل اطلاعات مربوط به دستگاههای انتهایی (کلاینتها) و روترها میباشد.
❓ انواع مختلف ARP کداماند؟
انواع مختلفی از ARP وجود دارد که شامل موارد زیر میشود:
-
Proxy ARP: پاسخ به درخواست ARP از طرف دستگاهی دیگر
-
Gratuitous ARP: اعلام داوطلبانه آدرس IP و MAC توسط خود دستگاه
-
Reverse ARP (RARP): یافتن آدرس IP با استفاده از MAC
-
Inverse ARP (IARP): یافتن IP با استفاده از شناسههای فیزیکی خاص در شبکههایی مانند Frame Relay
منابع
https://www.fortinet.com/resources/cyberglossary/what-is-arp
دیدگاه