در این مقاله قصد داریم مباحث ARP و ARP Proxy را در شرایطی که سوئیچ Cisco Small Business در حالت L3 تنظیم شده است برای شما شرح دهیم.اما بهتر است ابتدا اندکی در مورد پروتکل ARP صحبت کنیم.
پروتکل ARP چیست؟
برای درک بهتر این پروتکل برای شما مثالی میزنیم.
فرض کنید در این مثال 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 برابر با 0x0800 می باشد.
حال یک سوال:
فرستنده در هنگام پر کردن هدر 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 در لایه دوم دیگر 0x0800 نمی باشد. چون بسته های ARP در لایه سوم هدر ARP را دارند ، قسمت Type برای آن ها برابر با 0x0806 می باشد و خود هدر 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 در سوئیچ های سیسکو اسمال بیزینس
حال می خواهیم در ابتدا به شما ARP Table را در سوئیچ های Small Business نشان دهیم.
در قسمت 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 تعریف کنید.
به شکل زیر دقت کنید:
می دانیم که اگر کامپیوتری بخواهد با کامپیوتری خارج از شبکه خود ارتباط برقرار کند باید در قسمت 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 را قرار می دهد.
در سوئیچ های Cisco Small Business برای فعال سازی ARP Proxy به صورت زیر عمل می کنید:
نکته: ARP Proxy فقط در دستگاه های لایه سه-ای مفهوم دارد که Routing Table دارند. زمانی که سوئیچ Small Business سیسکو در حالت L2 باشد، مورد ARP Proxy را نداریم.