ARP: از IP تا مک آدرس
جواب کوتاه
ARP قاعدهایه که دستگاه باهاش میفهمه یه IP توی شبکهی خونه یا اداره مال کدوم مک آدرسه. دستگاه به همه میگه «این IP مال کیه؟». فقط صاحب همون IP جواب میده و مک خودش رو میگه. دستگاه هم این جفت رو توی جدول ARP مینویسه تا دفعهی بعد نپرسه.
سه تا کلمه
- ARPکوتاهشدهی Address Resolution Protocol، یعنی «قاعدهی پیدا کردن آدرس»: از روی IP، مک آدرس رو پیدا میکنه.
- جدول ARPفهرستی که هر دستگاه نگه میداره: کدوم IP مال کدوم مکه. بهش کش ARP هم میگن.
- پیام برای همهپیامی که همهی دستگاههای همون شبکه میگیرن؛ آدرسش FF:FF:FF:FF:FF:FF هست.
چرا IP کافی نیست
مثلا فرض کنید توی سالن انتظار یه درمونگاه نشستید. منشی یه پرونده داره که اسم شما روشه، ولی برای اینکه بیاره بده دستتون، باید بدونه روی کدوم صندلی نشستید. اسم کافی نیست؛ جای نشستن هم لازمه.
توی شبکه هم همینه. دستگاه شما میدونه پیام برای کدوم IP هست، ولی پیام رو توی شبکهی خونه با مک آدرس میرسونن، نه با IP (درس اترنت و درس مک آدرس). پس دستگاه باید از روی IP، مک رو پیدا کنه. این کار ARP هست. اسم روی پرونده IP هست، و صندلی، مک.
صدا زدن، قدمبهقدم
منشی چهار تا کار میکنه. شمارهی کنار هر تصویر ترتیب رو نشون میده:
یه نکتهی دیگه: صاحب صندلی ۴ هم وقتی اسمش رو صدا زدن، فهمید منشی پشت پیشخونه. توی ARP هم دستگاهی که سوال رو میگیره، جفت IP و مک کسی که پرسیده رو توی جدول خودش مینویسه، تا اگه بعدا خواست بهش پیام بده، دوباره نپرسه.
پرسش و جواب از نزدیک
ARP فقط دو جور پیام داره: سوال (با کد ۱) و جواب (با کد ۲). هر دو جای چهار تا آدرس دارن: مک و IP فرستنده، و مک و IP طرف مقابل. آدرسهای پایین فقط مثالن:
پیام ARP مستقیم توی کارت اترنت (فریم) میره و توی سربرگ کارت، نوعش با عدد 0x0806 مشخص میشه. برای IPv4 روی اترنت، خود پیام ۲۸ بایته. ARP سال ۱۹۸۲ توی سندی به اسم RFC 826 تعریف شد و هنوزم همونه.
مقصدی که بیرون از شبکهست
اگه پرونده مال کسی باشه که توی این درمونگاه نیست، صدا زدن فایدهای نداره؛ کسی توی سالن دست بلند نمیکنه. منشی پرونده رو میده به نگهبون دم در تا اون برسونه. اسم روی پرونده عوض نمیشه؛ فقط دستی که پرونده رو میگیره عوض میشه.
دستگاه شما هم وقتی میبینه IP مقصد توی شبکهی خودش نیست (اینو از سابنت مسک میفهمه، که درس خودش رو داره)، برای خود مقصد ARP نمیکنه. مک روتر خونه رو میپرسه و پیام رو میده به اون. روی کارت پیام، IP مقصد همون مقصد اصلیه، ولی مک مقصد، مک روتره. ARP از روتر رد نمیشه و فقط توی یه شبکهی کوچیک کار میکنه.
معرفی خود و یه ضعف
دستگاه میتونه بی اینکه کسی بپرسه، جفت IP و مک خودش رو به همه اعلام کنه تا جدول بقیه درست بشه. بهش میگن ARP معرفی (gratuitous ARP). خیلی از سیستمعاملها وقتی روشن میشن این کار رو میکنن. مثلا اگه کارت شبکه عوض شده باشه، جدول بقیه آدرس قدیمی رو نگه نمیداره.
قبل از اینکه دستگاه یه IP رو برداره، چند بار میپرسه «کسی این IP رو داره؟». اگه یکی جواب داد، یعنی اون IP تکراریه. اگه جوابی نیومد، میشه برش داشت. مثل کسی که قبل از نشستن میپرسه «این صندلی مال کسیه؟».
ولی یه ضعف هم داره: ARP هیچ راهی نداره که بفهمه جواب از صاحب واقعی آدرسه. پس یه دستگاه دیگه میتونه دروغ جواب بده و پیامهایی رو که مال یکی دیگهست، بکشه سمت خودش. به این کار میگن جعل ARP . راه جلوگیریش رو توی درس امنیت لایه ۲ میبینید.
جدول خودتون رو ببینید
- توی ویندوز، Command Prompt رو باز کنید؛ توی macOS یا لینوکس، Terminal رو.
- بنویسید arp -a و Enter رو بزنید.
- یه فهرست از IPها و مکها میبینید؛ این همون کاغذ روی پیشخون دستگاه شماست.
یه چیزی شبیه این، با آدرسهای شبکهی خود شما (توی ویندوز):
Interface: 192.168.1.2 --- 0x7 Internet Address Physical Address Type 192.168.1.1 3c-5a-b4-12-9f-07 dynamic 192.168.1.255 ff-ff-ff-ff-ff-ff static
یکی از خطها تقریبا همیشه روتر خونهست، چون همهی پیامهایی که میرن بیرون از اون رد میشن. «dynamic» یعنی با ARP یاد گرفته شده و «static» یعنی ثابته. سند ARP پیشنهاد میکنه خطهای قدیمی بعد از یه مدت پاک بشن تا آدرس کهنه نمونه؛ ولی عدد ثابتی برای این مدت توی استاندارد نیست. توی ویندوز برای هر کارت شبکه یه جدول جدا هست.
توی IPv6 کار ARP رو یه قاعدهی دیگه به اسم NDP میکنه، که توی درس IPv6 میاد.
سه تا اشتباه رایج
- «برای فرستادن به یه سایت، دستگاه مک اون سایت رو با ARP میپرسه.»نه. ARP از روتر رد نمیشه. برای هر مقصدی که بیرون از شبکهست، دستگاه مک روتر رو میپرسه و پیام رو میده به روتر.
- «هر بار که یه پیام فرستاده میشه، ARP هم دوباره پرسیده میشه.»نه. جواب توی جدول ARP نوشته میشه و تا یه مدت دوباره پرسیده نمیشه. فقط آدرسی پرسیده میشه که توی جدول نیست.
- «جواب ARP همیشه از صاحب واقعی آدرسه.»نه. ARP هیچ راهی نداره که بفهمه جواب راسته یا نه. برای همین یکی میتونه جواب دروغ بده. راه جلوگیریش توی درس امنیت شبکه میاد.
جمعبندی. آنچه از این درس با خودتان میبرید.
- برای رسوندن پیام توی شبکهی خونه، مک گیرنده لازمه؛ IP بهتنهایی کافی نیست.
- ARP سوالش رو از همه میپرسه. فقط صاحب IP جواب میده، و جوابش فقط به همون کسی که پرسیده برمیگرده.
- جفت IP و مک توی جدول ARP میمونه تا هر بار پرسیده نشه.
- برای مقصدی که بیرون از شبکهست، مک روتر پرسیده میشه؛ IP مقصد همون میمونه.
- دستگاه میتونه بی اینکه کسی بپرسه خودش رو معرفی کنه، و قبل از گرفتن یه IP بپرسه کسی اونو داره یا نه.
- ARP نمیفهمه جواب راسته یا دروغ؛ پس میشه جواب دروغ داد.
- فرمان arp -a جدول ARP رو نشون میده. توی IPv6 این کار رو NDP میکنه.
خودتان را بسنجید
۱۵ پرسش، هر بار تازه از میان ۳۰ پرسش این درس. آخر آزمون فقط کارنامه را میبینید: چند درست، چند نادرست.