مسیریابی پویا
جواب کوتاه
مسیریابی پویا یعنی روترها با یک پروتکل مسیریابی راهها را خودشان به هم بگویند و جدولشان را خودکار بسازند؛ اگر کابلی قطع شود، خبرش را به هم میدهند و راه تازهای پیدا میکنند. دو روش اصلی هست: در distance vector (مثل RIP) هر روتر جدولش را به همسایهها میدهد و کسی نقشهی کامل ندارد؛ در link state (مثل OSPF) هر روتر همسایههایش را به همه میگوید و هر روتر نقشهی کامل شبکه را دارد.
دو مسیریابی پویا
«مسیریابی پویا» در برنامهنویسی وب هم هست: ساختن صفحهها از روی نشانی. این درس دربارهی مسیریابی پویا در شبکه است: روترهایی که راه بستهها را خودشان از هم یاد میگیرند.
چهار کلمه
- پروتکل مسیریابیقاعدهای که روترها با آن راهها را به هم میگویند تا جدولشان خودکار پر شود.
- همگراییرسیدن جدول همهی روترها به حالت پایدار، پس از یک تغییر. هرچه زودتر، بهتر.
- distance vector (بردار فاصله)روشی که هر روتر جدولش را به همسایهها میدهد: «تا فلان مقصد اینقدر راه دارم».
- link state (وضعیت پیوند)روشی که هر روتر همسایههایش را به همه میگوید و هر روتر نقشهی کامل را دارد.
چرا خودکار
در درس مسیریابی استاتیک دیدید ردیف ایستا خودش عوض نمیشود. در شبکهای که روترهای زیادی دارد و کابلها گاهی قطع میشوند، نوشتن و عوض کردن دستی همهی ردیفها ممکن نیست. مسیریابی پویا همین را خودکار میکند، تا شبکه تقریبا خودش از خرابی دوری کند:
اینترنت با مسیریابی پویا کار میکند. روترها چطور به هم میگویند؟ دو روش اصلی هست. برای فهمیدنشان، شهری را در نظر بگیرید پر از رانندهی تاکسی که میخواهند بدانند از کجا تا کجا چقدر راه است.
فاصلهها دهانبهدهان
در روش اول، هر راننده فقط از همکاری که کنارش ایستاده میشنود: «از من تا فرودگاه سه چهارراه است». یکی رویش میگذارد، چون تا آن همکار هم یک چهارراه است، و به رانندهی بعدی میگوید «از من چهار». به این روش distance vector میگویند:
هر روتر در آغاز فقط همسایههای مستقیمش را میشناسد. مرتب به هر همسایه میگوید تا هر مقصدی که میشناسد چقدر راه دارد. همسایهها آن را با آنچه دارند مقایسه میکنند و هر راه بهتری را برمیدارند. کمکم همه بهترین قدم بعد به هر مقصد را پیدا میکنند. اگر روتری از کار بیفتد، کسانی که از آن میرفتند ردیفش را پاک میکنند و به همسایهها خبر میدهند.
هیچ روتری نقشهی کامل ندارد؛ هر کس به گفتهی همسایهاش تکیه میکند و نمیتواند درستیاش را بسنجد. برای همین به آن «مسیریابی با شایعه» گفتهاند. ضعف بعضی از این پروتکلها همگرایی کند است: خبر تازه باید روتر به روتر برود تا همه بدانند.
RIP
RIP (Routing Information Protocol) از قدیمیترین پروتکلهای distance vector است؛ نسخهی اولش در ۱۹۸۸ استاندارد شد. معیارش فقط شمار هاپ است، یعنی شمار روترهای سر راه (درس مسیریابی):
- هاپ ۰ یعنی شبکهی مستقیم وصل.
- بیشترین هاپ مجاز ۱۵ است؛ ۱۶ یعنی دستنیافتنی. همین سقف جلوی چرخیدن خبرهای غلط را میگیرد، ولی اندازهی شبکه را هم محدود میکند.
- نسخهی ۱ هر ۳۰ ثانیه جدولش را برای همسایهها پخش میکند.
- روی UDP و پورت ۵۲۰ کار میکند (درس TCP و UDP).
- سه نسخه دارد: RIPv1 و RIPv2 برای IPv4، و RIPng برای IPv6.
تنظیم RIP آسان است، چون تقریبا هیچ پارامتری نمیخواهد. ولی همگرایی و بزرگ شدنش در برابر پروتکلهایی مثل OSPF ضعیف است، برای همین در بیشتر شبکهها انتخاب اول نیست.
هر کس نقشهی کامل
در روش دوم، هر راننده فاصلهها را دهانبهدهان نمیگوید؛ فقط وضع خیابانهای کنار خودش را برای همهی رانندههای شهر میفرستد. هر کس از کنار هم گذاشتن گزارشها نقشهی کامل شهر را دارد و خودش کوتاهترین راه را حساب میکند. به این روش link state میگویند:
هر روتر نقشهای از همهی اتصالها میسازد و با یک روش حساب کوتاهترین راه (به نام Dijkstra) درختی میکشد که ریشهاش خودش است؛ از روی آن درخت، بهترین قدم بعد به هر مقصد پیدا میشود. میان روترها فقط گزارش اتصالها جابهجا میشود، نه کل جدول. نمونههایش OSPF است، که درس بعد است، و IS-IS.
دو روش کنار هم
| distance vector | link state | |
|---|---|---|
| چه میفرستد | جدولش، به همسایهها | همسایههایش، به همه |
| نقشهی کامل | هیچ روتری ندارد | هر روتر دارد |
| محاسبه | کم | زیاد؛ هر روتر کوتاهترین راه را خودش حساب میکند |
| دردسر | همگرایی کند؛ با هاپ زیاد ناپایدار | پخش گزارشها ترافیک سنگین میسازد |
| نمونهها | RIP، RIPv2، RIPng | OSPF، IS-IS |
هر دو روش برای درون یک شبکهی بزرگاند، مثل شبکهی یک سازمان. میان شبکههای بزرگ اینترنت روش دیگری به کار میرود، BGP، که درس خودش را در همین ایستگاه دارد.
پویا یا ایستا
این دو دشمن هم نیستند و معمولا در یک جدول کنار هم مینشینند. مسیر پیشفرض ایستا برای دفتری با یک راه بیرون، و پروتکل پویا برای میانهی شبکه که راههای زیادی دارد. مسیر یدک ایستا هم برای وقتی است که راه پویا نباشد (درس مسیریابی استاتیک). پروتکل پویا را هم باید ایمن کرد، چون از شبکه خوانده میشود و کسی میتواند با پیام دروغ راهها را عوض کند.
سه اشتباه
- «در distance vector هر روتر نقشهی کامل شبکه را دارد.»هیچ روتری نقشه ندارد؛ هر کس فقط شنیده که همسایهاش تا هر مقصد چقدر راه دارد.
- «RIP برای هر شبکهای، هر قدر بزرگ، خوب است.»RIP بیش از ۱۵ هاپ را نمیپذیرد و همگراییاش کند است؛ برای شبکههای بزرگتر OSPF هست.
- «مسیریابی پویا یعنی دیگر به مدیر شبکه نیازی نیست.»پروتکل را کسی باید راه بیندازد، تنظیم و ایمن کند تا کسی از بیرون با پیام دروغ راهها را جابهجا نکند.
جمعبندی. آنچه از این درس با خودتان میبرید.
- پروتکل مسیریابی جدولها را خودکار میسازد و با خرابی راه تازه پیدا میکند.
- همگرایی: رسیدن جدول همهی روترها به حالت پایدار پس از تغییر.
- distance vector: هر روتر جدولش را به همسایهها میدهد؛ «مسیریابی با شایعه».
- RIP: معیار شمار هاپ، بیشترین ۱۵، ۱۶ یعنی دستنیافتنی، هر ۳۰ ثانیه، UDP 520.
- link state: هر روتر همسایههایش را به همه میگوید و کوتاهترین راه را خودش حساب میکند.
- هر دو درون یک شبکهی سازمان کار میکنند؛ میان شبکههای بزرگ اینترنت، BGP.
خودتان را بسنجید
۱۵ پرسش، هر بار تازه از میان ۳۰ پرسش این درس. آخر آزمون فقط کارنامه را میبینید: چند درست، چند نادرست.