preloader

ARP و ARP Proxy (قسمت_۳۳)

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

ARP و ARP Proxy

در این مقاله قصد داریم مباحث ARP و ARP Proxy را در شرایطی که سوئیچ در حالت L3 تنظیم شده است را برای شما شرح دهیم.

پروتکل ARP چیست؟

برای درک بهتر این پروتکل برای شما مثالی میزنیم.

C:\Users\a.kamali\Desktop\Capture.PNG

فرض کنید در این مثال PC-1 قصد دارد PC-2 را Ping کند.

PC-1 برای ساخت فریم و ارسال آن به PC-2 ابتدا هدر ICMP را می سازد و چون ICMP پروتکل لایه چهارم می باشد و در لایه سوم باید سوار IP شود بسته نیاز به هدر IP دارد و آدرس خود یعنی ۱۹۲٫۱۶۸٫۱٫۱۰۰ را به عنوان Source-IP و آدرس ۱۹۲٫۱۶۸٫۱٫۲۰۰ را به عنوان Destination-IP قرار می دهد ، بعد از تکمیل هدر لایه سه بسته نیاز به هدر در لایه دو دارد که مطابق به تکنولوژی از هدر های مختلف در لایه دو استفاده می شود که معروفترین آن Ethernet می باشد.

هدر Ethernet از سه قسمت Source-MAC ، Destination-MAC و Type تشکیل شده است که در قسمت Source-MAC آدرس مک فرستنده که در مثال ما AA:AA:AA:AA:AA:AA می باشد و قسمت Destination-MAC آدرس مک گیرنده (در صورتی که گیرنده در لایه سه در شبکه ما باشد ، اگر گیرنده در لایه سوم در شبکه فرستنده نباشد ، فرستنده آدرس مک Gateway را به عنوان Destination-MAC قرار می دهد ، که در مثال ما فرستنده و گیرنده در یک شبکه می باشند چون آدرس PC-1 برابر با ۱۹۲٫۱۶۸٫۱٫۱۰۰/۲۴ و آدرس PC-2 برابر با ۱۹۲٫۱۶۸٫۱٫۲۰۰/۲۴ می باشد).

Type نیز اشاره می کند به این که فریم در لایه سوم چه چیزی را حمل میکند که در مثال ما هدر استفاده شده در لایه سوم IP می باشد و قسمت Type برای IP برابر با ۰x0800 می باشد.

حال یک سوال

فرستنده در هنگام پر کردن هدر Ethernet آیا آدرس مک گیرنده را دارد؟؟!!

PC-1 از کجا بداند که آدرس مک PC-2 برابر با BB:BB:BB:BB:BB:BB می باشد؟؟!!

خب PC-1 یک کاری کند ، اصلا قسمت Destination-MAC را پر نکند و فریم را همینجوری ارسال کند!!

چه اتفاقی می افتد؟

فرض کنید سوئیچ این فریم را دریافت کرده است و می خواهد فریم را فوروارد کند ، و می دانیم سوئیچ های فریم را بر اساس MAC-Table خود فوروارد می کنند ، حال اگر Destination-MAC داخل فریم پر نشده باشد چگونه فریم را فوروارد کند؟!
خب ارسال کند به تمامی پورت های خود!!!

خیر این کار باعث پایین آمدن امنیت و بازدهی شبکه می باشد.

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

راه حل:

برای این که PC-1 آدرس مک PC-2 را بدست آورد باید از پروتکل ARP استفاده کند ، یکی از وظایف این پروتکل بدست آوردن آدرس لایه دوایی مجهول بر اساس آدرس لایه سه ای معلوم می باشد.

چرا می گوییم یکی از وظایف؟!! چون این پروتکل انواعی دارد که هر کدام کار خاصی را انجام میدهند.

واسه درک بهتر اینجوری میگیم که PC-1 بسته ARP را می سازد و می گویید که : تویی که آدرس IP برابر با ۱۹۲٫۱۶۸٫۱٫۲۰۰ می باشد آدرس مک خودت را به من بگو ، به این بسته ARP Request می گویند و به صورت Broadcast می باشد.

حال در جواب PC-2 می گویید ، PC-1 آدرس مک من برابر با BB:BB:BB:BB:BB:BB می باشد که این بسته ARP Reply می باشد و به صورت Unicast است و PC-1 بعد از دریافت این بسته ، آدرس مک PC-2 را در RAM خود Cache می کند در جدول ARP Table و حالا می تواند بسته ICMP را ارسال کند.

نکته :تمامی دستگاه های شبکه ARP Table دارند ، و این جدول مخصوص End User هایی مانند کامپیوتر ها نیست و حتی Switch ها و Router ها نیز این جدول را دارند ، چون ممکن است یک سوئیچ بخواهد سوئیچ دیگری را Ping کند پس باید هدر دو قسمت Destination-MAC را سوئیج پر کند که اگر نداند باید ARP بزند و نتیجه بدست آمده را در جدولی یادداشت کند که بعدا از آن استفاده کند و هر سری مجبور نباشد ARP بزند.

نکته : بسته ARP به این شکل می باشد که در لایه دو بسته ها هدر Ethernet دارند که در ARP Request قسمت Destination-MAC برابر با FF:FF:FF:FF:FF:FF یعنی برادکست و در ARP Reply به صورت Unicast آدرس مک کسی که ARP Request زذه ، و بسته های ARP در لایه سوم دیگر هدر IP ندارند و هدر ARP را دارند یعنی فیلد Type در لایه دوم دیگر ۰x0800 نمی باشد ، چون بسته های ARP در لایه سوم هدر ARP را دارند ، قسمت Type برای آن ها برابر با ۰x0806 می باشد و خود هدر ARP شامل بخش هایی می باشد که مهمترین آن ها شامل موارد زیر است:

Sender IP

Sender MAC

Target IP

Target MAC

نکته : پروتکل ARP از نظر امنیتی در LAN بسیار ضعیف می باشد ، زیرا ممکن است Attacker ها جدول های ARP قربانی را Spoof یا مسوم با رکورد های اشتباه کنند و حمله هایی مانند ARP Spoofing بزنند که نتیجه ی آن MITM یا Man-In-The-Middle می باشد.

Attacker ها معمولا با استفاده از ضعف این پروتکل و استفاده از Gratuitous ARP حملات بدی می کنند و جداول ARP را مسموم می کنند که البته می توان به کمک روش هایی در End User مانند Static ARP و روش هایی در Switch مانند DAI یا Dynamic ARP Inspection جلوی این حملات را گرفت.

نکته : در سوئیچ ها از جدول MAC یا MAC-Table برای فوروارد کردن ترافیک های یوزرها استفاده می شود و از ARP-Table برای خودش استفاده می کند زمانی که خودش فرستنده باشد.

حال می خواهیم در ابتدا به شما ARP Table را سوئیچ های SMB نشان دهیم.

C:\Users\a.kamali\Desktop\Capture.PNG

در قسمت ARP Entry Age Out نشان میدهد که هر رکورد در ARP Table چه میزان Aging-Time دارد یا بهتر بگیم نشان می دهد که هر رکوردی که سوئیچ در جدول ARP Table خود نگه می دارد تا چه زمانی آن را نگه دارد و بعد از گذشت Aging-Time ، آن را پاک کند.

Clear ARP Table Entries
واسه پاک کردن ARP Table استفاده می شود.

All : یعنی همه رکورد های را پاک کند.

Dynamic : یعنی آن رکورد هایی را پاک کن که خود سوئیچ بدست آورده به کمک پروتکل ARP و ARP Request ارسال کرده.

Static : همان طور که گفتیم ، ادمین می تواند ARP Table را خودش پر کند یعنی بگویید این آدرس IP دارای این آدرس مک است که به صورت پیش فرض این رکورد های Aging-Time ندارند و تا زمان روشن بودن دستگاه در جدول می مانند و اگر در قسمت Clear ARP Table Entries گزینه Static را انتخاب کنید ، رکورد های Static را فقط پاک می کند.

Normal Age Out : یعنی به صورت نرمال بعد از گذشت Aging-Time رکورد را پاک کن.

در قسمت پایین یعنی ARP Table می توانید جدول ARP سوئیچ را مشاهده کنید و حتی با زدن گزینه َAdd یک رکورد Static تعریف کنید.

C:\Users\a.kamali\Desktop\Capture.PNG

ARP Proxy

به شکل زیر دقت کنید.

C:\Users\a.kamali\Desktop\Capture.PNG

می دانیم که اگر کامپیوتری بخواهد با کامپیوتری خارج از شبکه خود ارتباط برقرار کند باید در قسمت Destination-MAC در هدر Ethernet آدرس مک Gateway را قرار دهد و اگر ندارد آن را ARP بزند.

مثلا اگر شما ۸٫۸٫۸٫۸ را ping کنید و آدرس IP خودتان ۱۹۲٫۱۶۸٫۱٫۱۰۰/۲۴ باشد در هدر لایه دو آدرس مک گیرنده را آدرس مک سرور ۸٫۸٫۸٫۸ قرار نمی دهید ، چون گیرنده در شبکه فرستنده نیست و راه رسیدن به ۸٫۸٫۸٫۸ از طریق روتر می باشد ، پس در قسمت Destination MAC آدرس مک Gateway را قرار می دهید.

حال به مثال ما توجه کنید.

PC-1 می خواهد PC-2 را Ping کند.

آدرس PC-1 برابر با ۱۹۲٫۱۶۸٫۱٫۱۰۰/۱۶ و آدرس PC-2 برابر با ۱۹۲٫۱۶۸٫۲٫۱۰۰/۱۶ می باشد ، PC-1 تصور می کند که PC-2 در شبکه خودش می باشد و سعی دارد آن را ARP بزند ، ولی آیا واقعا PC-2 در شبکه PC-1 می باشد؟؟!

خیر.

وقتی بسته های ARP دستگاه PC-1 به روتر می رسد آن را Drop می کند زیرا روتر بسته های Broadcast را روت نمی کند و دور میریزد و بسته های ARP Request از نوع برادکست می باشند و هدر IP ندارند که اصلا بخوان روت شوند.

در این هنگام هیچ گاه PC-1 و PC-2 همدیگر را نمی بینند زیرا هیچوقت جواب ARP ای که PC-1 زده برنمیگردد.

راه حل:

فعال کردن ARP Proxy در روتر.

وقتی ARP Proxy را در روتر فعال می کنید ، روتر ما بین دو دستگاه قرار می گیرد و جواب های ARP دستگاه PC-1 را خودش می دهد و آدرس مک خود را در جواب ARP Request دستگاه PC-1 برمیگرداند و از این به بعد PC-1 وقتی بخواهد با PC-2 ارتباط برقرار کند آدرس مک روتر یعنی CC:CC:CC:CC:CC:CC را قرار می دهد.

در سوئیچ های SMB برای فعال سازی ARP Proxy به صورت زیر عمل می کنید.

C:\Users\a.kamali\Desktop\Capture.PNG

نکته : ARP Proxy فقط در دستگاه های لایه سه ای مفهوم دارد که Routing Table دارند و زمانی که سوئیچ SMB در حالت L2 باشد ، مورد ARP Proxy را نداریم.

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

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

هیچ دیدگاهی به ثبت نرسیده است.
ARP
امین کمالی
مطالب نویسنده