جدول مسیریابی
جواب کوتاه
جدول مسیریابی فهرستی در روتر یا رایانه است که هر ردیفش میگوید برای یک شبکهی مقصد، بسته را به کدام گیتوی و از کدام رابط بدهد، و با چه معیاری. اگر نشانی مقصد با چند ردیف بخواند، ردیف دقیقتر، یعنی ردیفی با ماسک بلندتر، برنده است. اگر هیچ ردیفی نخواند، بسته از مسیر پیشفرض، 0.0.0.0/0، به گیتوی پیشفرض میرود.
چهار کلمه
- جدول مسیریابیفهرستی در روتر یا هر رایانه که برای هر شبکهی مقصد میگوید بسته را به چه کسی بدهد.
- ردیفیک سطر جدول: یک شبکهی مقصد و راه رسیدن به آن.
- شبکهی مستقیم وصلشبکهای که خود روتر رابطی در آن دارد؛ بسته را مستقیم به مقصد میدهد.
- مسیر پیشفرضردیف «بقیهی جاها»: اگر هیچ ردیف دیگری نخواند، بسته از این راه میرود. نشانیاش 0.0.0.0/0.
قفسهی نامهها
در درس مسیریابی دیدید هر روتر تابلویی دارد که میگوید بسته را به چه کسی بدهد. آن تابلو همین جدول است. فرض کنید در ادارهی پست قفسهای با خانههای برچسبدار هست. کارمند هر نامه را در دقیقترین خانهای میگذارد که نشانیاش در آن جا میشود:
خانهی «بقیهی جاها» برای نامهای است که در هیچ خانهی دیگری جا نشود. جدول مسیریابی هم همین است: هر خانه یک ردیف، و برچسب هر خانه یک شبکه با ماسکش (درس CIDR).
یک ردیف چه میگوید
این سه ردیف میتواند بخشی از جدول یک رایانهی خانگی باشد که نشانیاش 192.168.0.100 است:
| مقصد | ماسک | گیتوی | رابط | معیار |
|---|---|---|---|---|
| 0.0.0.0 | 0.0.0.0 | 192.168.0.1 | 192.168.0.100 | ۱۰ |
| 127.0.0.0 | 255.0.0.0 | 127.0.0.1 | 127.0.0.1 | ۱ |
| 192.168.0.0 | 255.255.255.0 | 192.168.0.100 | 192.168.0.100 | ۱۰ |
- مقصد و ماسک با هم شبکه را میگویند: 192.168.0.0 با ماسک 255.255.255.0 همان 192.168.0.0/24 است (درس ماسک).
- گیتوی قدم بعد است: بسته را به کدام روتر بدهد. اگر گیتوی همان نشانی خود رایانه باشد، یعنی شبکه مستقیم وصل است و بسته مستقیم به مقصد میرود.
- رابط میگوید از کدام کارت شبکهی خود دستگاه بیرون برود؛ اینجا کارت شبکهای با نشانی 192.168.0.100.
- معیار برای وقتی است که دو ردیف برای یک مقصد باشد: کمتر، بهتر.
پس ردیف اول میگوید: «هر جای دیگر، به 192.168.0.1»، که روتر خانه است. ردیف دوم نشانیهای 127 است، که خود رایانه است (درس نشانیهای ویژه). ردیف سوم میگوید: «شبکهی خانه، مستقیم».
ردیفها از کجا میآیند
وقتی به رابط روتر یک نشانی IP و ماسک داده شود، شبکهی آن رابط خودش در جدول مینشیند، بهعنوان «مستقیم وصل». کسی لازم نیست آن را بنویسد:
شبکهای که پشت روتر دیگری است، شبکهی دور نام دارد، و ردیفش از یکی از دو راه میآید: مدیر شبکه دستی مینویسد (ایستا)، یا روتر از روترهای دیگر یاد میگیرد (پویا). هر کدام درس خودش را در همین ایستگاه دارد. ساختن همین جدولها کار اصلی پروتکلهای مسیریابی است.
دقیقترین ردیف
نشانی 192.168.20.19 هم در 192.168.0.0/16 جا میشود و هم در 192.168.20.16/28. کدام؟ روتر بیتها را از اول مقایسه میکند. هر ردیف میگوید چند بیت اول باید یکسان باشد:
ردیف /28 برنده است، چون ۲۸ بیت اولش با نشانی میخواند و /16 فقط ۱۶ بیت. به این قاعده دقیقترین ردیف (longest prefix match) میگویند: هرچه ماسک بلندتر، ردیف دقیقتر. ترتیب نوشتن ردیفها در جدول مهم نیست. این قاعده است که اجازه میدهد یک ردیف کلی برای یک شبکهی بزرگ و یک ردیف ویژه برای بخش کوچکی از آن، با هم در جدول باشند.
مسیر پیشفرض
ردیف 0.0.0.0/0 ماسک صفر دارد، یعنی هیچ بیتی لازم نیست یکسان باشد؛ پس هر نشانی را میخواند، ولی کوتاهترین ردیف ممکن است. برای همین فقط وقتی برنده میشود که هیچ ردیف دیگری نخواند. به آن مسیر پیشفرض میگویند، و دستگاهی که به آن اشاره میکند، همان گیتوی پیشفرض است (درس گیتوی). در IPv6 همین ردیف ::/0 است.
مسیر پیشفرض معمولا به روتر دیگری اشاره میکند، که همین کار را تکرار میکند: اگر ردیفی بخواند، از آن؛ وگرنه به مسیر پیشفرض خودش. در یک سازمان، مسیر پیشفرض معمولا به روتری میرود که به ارائهدهندهی اینترنت وصل است. اگر روتری نه ردیف درستی داشته باشد و نه مسیر پیشفرض، نمیتواند بسته را ببرد.
سه بسته، سه جواب
با همان قفسهی بالا، هر بسته به کجا میرود؟
| نشانی مقصد | ردیف برنده | چرا |
|---|---|---|
| 192.168.20.19 | کوچهی ۱۶ تا ۳۱، به روتر ب | هم /16 میخواند و هم /28؛ /28 دقیقتر است. |
| 192.168.5.7 | همهی منطقه، به روتر الف | فقط /16 و /0 میخوانند؛ /16 دقیقتر است. |
| 203.0.113.9 | بقیهی جاها، به گیتوی اینترنت | هیچ ردیفی جز /0 نمیخواند. |
جدول رایانهی خودتان
رایانهی شما هم جدول مسیریابی دارد. در ویندوز، پنجرهی Command Prompt را باز کنید و بنویسید:
route print
همان ستونها را میبینید: Network Destination، Netmask، Gateway، Interface و Metric. ردیفی که مقصد و ماسکش 0.0.0.0 است، مسیر پیشفرض شماست و گیتویاش روتر خانه یا محل کار. همین دستور با route add و route delete ردیف میسازد و پاک میکند؛ ردیفی که اینطور ساخته شود، پیشفرض با راهاندازی دوبارهی رایانه میرود.
سه اشتباه
- «روتر اولین ردیفی را که بخواند انتخاب میکند.»ترتیب ردیفها مهم نیست؛ ردیفی با ماسک بلندتر، یعنی دقیقتر، برنده است.
- «مسیر پیشفرض یعنی بسته به همه جا میرود.»مسیر پیشفرض یک ردیف معمولی است که به یک گیتوی اشاره میکند؛ فقط وقتی به کار میآید که هیچ ردیف دقیقتری نخواند.
- «فقط روترها جدول مسیریابی دارند.»رایانهی شما هم جدول دارد و با همان تصمیم میگیرد بسته را مستقیم بفرستد یا به گیتوی بدهد.
جمعبندی. آنچه از این درس با خودتان میبرید.
- هر ردیف: شبکهی مقصد و ماسک، گیتوی (قدم بعد)، رابط، معیار.
- شبکهی هر رابط خودش بهعنوان «مستقیم وصل» در جدول مینشیند.
- شبکههای دور از راه ردیف ایستا (دستی) یا پویا (پروتکل مسیریابی) میآیند.
- اگر چند ردیف بخوانند، ماسک بلندتر برنده است (longest prefix match).
- مسیر پیشفرض 0.0.0.0/0 همه را میخواند، ولی کوتاهترین است؛ آخرین چاره.
- در ویندوز، route print جدول رایانه را نشان میدهد.
خودتان را بسنجید
۱۵ پرسش، هر بار تازه از میان ۳۰ پرسش این درس. آخر آزمون فقط کارنامه را میبینید: چند درست، چند نادرست.