مسیریابی و مسیردهی در لایه شبکه: یک بررسی مقدماتی

مقدمه:

در این بخش درباره وظایف لایه IP که همان مسیریابی (Routing)، هدایت (Forwarding) و تحویل (Delivery) بسته های IP به سمت مقصد نهایی آنها است صحبت می کنیم. قبل از ادامه بحث این فرض را می پذیریم که لایه IP اطلاعات را در قالب بسته های اطلاعاتی به نام پکت بسته بندی کرده که در این بخش چندان از جزئیات این بسته بندی اطلاعاتی ندارم (اما در ادامه مباحث خودمان در لایه شبکه به زودی آنها را مورد بررسی قرار می دهیم)

تحویل بسته های IP:

لایه شبکه به نحوه برخورد شبکه های زیرساختی فیزیکی با بسته های IP نظارت دارد. عملی که این شبکه ها روی بسته انجام میدهند تا بسته به مقصد برسد را تحویل بسته می نامند.

لایه شبکه نقطه همگرایی و اتحاد لایه های زیرین است. یکی از متخصصین شرکت AT&T در یکی از سمینارهای خود، لایه های مختلف شبکه را به یک ساعت شنی تشبیه کرده است که لایه شبکه یا همان پروتکل IP در مرکز تنگ این ساعت قرار گرفته است و داده ها همانند دانه های شن باید از این پروتکل بگذرند و ضمن کسب هویت به سوی مقصد هدایت شوند.

روش های مختلف تحویل بسته های IP:

تحویل یک پکت به مقصد نهایی آن توسط یکی از دو متد تحویل انجام می شود: مستقیم و غیرمستقیم. در تحویل مستقیم (Direct Delivery) کامپیوتر مقصد بسته به همان شبکه ای متصل است که کامپیوتر ارسال کننده بسته به آن متصل شده است.

نکته:

در این فصل بین دو مفهوم هدایت و مسیریابی بسته های اطلاعاتی مه هر دو نیز از وظایف لایه شبکه هستند، تمایز قائل خواهیم شد. هدایت یک بسته اطلاعاتی شامل انتقال آن بسته از یک لینک ورودی به یک لینک خروجی در یک مسیریاب مشخص است. اما مسیریابی شامل همه مسیریابهای یک یا چند شبکه می شود که تعامل جمعی آنها از طریق پروتکل های مسیریابی مشخص، تعیین کننده مسیری است که بسته ها در راه رسیدن به مقصد نهایی شان باید از آنها گذر کنند. به بیان ساده تر هدایت، به عملکرد محلی یک مسیریاب اشاره دارد که انتقال یک بسته را از یک واسط ورودی به یک واسط خروجی مناسب بر عهده دارد و مسیریابی به فرآیندی در سطح شبکه اطلاق می گردد که مسیرهای انتها-به –انتهایی را مشخص می کند که پکت ها از مبدا به مقصد طی می کند [kurose 2010]

image

شکل ۳۵: تحویل مستقیم

این نوع تحویل زمانی رخ میدهد که میزبانهای مبدا و مقصد به شبکه فیزیکی مشابهی متصل شده اند و یا اینکه بسته از آخرین مسیریاب به دست کامپیوتر مقصد می رسد. در شکل ۳۵ تصویری شماتیک از تحویل مستقیم ارائه شده است.فرستنده به راحتی می تواند تعیین کند که آیا یک تحویل از نوع مستقیم است یا خیر. این کار به کمک ماسک شبکه و مقایسه نتیجه AND آدرس مقصد و آدرس فرستنده با ماسک تعیین می گردد. در صورتیکه نتیجه AND نشان بدهد که فرستنده و مقصد در یک شبکه هستند تحویل از نوع مستقیم و در غیر این صورت از نوع غیر مستقیم است.

در تحویل مستقیم، فرستنده از آدرس IP مقصد استفاده می کند تا آدرس فیزیکی مقصد را دست آورد. این فرآیند، نگاشت آدرس IP به آدرس فیزیکی نامیده می شود. گرچه این کار می تواند به صورت ساده و با یک جست و جو در جدولی از پیش ساخته شده انجام گیرد، اما امروزه به کمک پروتکلی به نام ARP به شکل دینامیک این نگاشت صورت می گیرد.

تحویل غیر مستقیم زمانی مورد استفاده قرار می گیرد که کامپیوتر مقصد به همان شبکه فیزیکی کامپیوتر فرستنده متصل نباشد. در تحویل غیر مستقیم، گیرنده بسته مقصد نهایی بسته نیست اما در مسیری است که در نهایت به مقصد نهایی ختم می شود. در تحویل غیر مستقیم، بسته از یک مسیریاب به مسیریاب دیگر می رود تا در نهایت به مسیریابی می رسد که این مسیریاب با مقصد بسته در یک شبکه فیزیکی قرار دارند.

نکته: یک تحویل، همواره شامل یک تحویل مستقیم (آخرین تحویل) و صفر یا بیشتر تحویل غیرمستقیم است (شکل ۳۶)

image

شکل ۳۶: فرآیند تحویل و جایگاه تحویل مستقیم و غیر مستقیم درآن

در یک تحویل غیرمستقیم، فرستنده از آدرس IP مقصد ویک جدول مسیریابی برای پیداکردن آدرس IP مسیریاب بعدی که بسته باید به او داده شود استفاده می کند. پس از تعیین آدرس IP مقصد بعدی بسته در مسیر رسیدن به مقصد نهایی، فرستنده بای پیداکردن آدرس فیزیکی مسیریاب بعدی از ARP استفاده می کند. دقت داشته باشید که در تحویل مستقیم، نگاشت آدرس بین آدرس IP و آدرس فیزیکی مقصد نهایی است؛ اما در تحویل غیر مستقیم، نگاشت آدرس بین آدرس IP و آدرس فیزیکی مسیریاب بعدی است.

هدایت بسته های IP:

دومین وظیفه لایه شبکه، هدایت بسته های IP است. معنی هدایت بسته های IP این است بسته در مسیر رسیدن به مقصد نهایی خود قرار گیرد. برای انجام این عمل لازم است که مسیریاب یا میزبان، یک جدول تعیین مسیر داشته باشد. زمانی که یک میزبان بسته ای برای ارسال دارد یا یک مسیریاب، بسته ای را برای هدایت دریافت می کند، به این جدول نگاه می کند تا مسیر رسیدن بسته به مقصد را پیدا کند. با این حال این راه حل ساده امروزه در شبکه ای به عظمت اینترنت، غیرعملی است؛ چرا که تعداد المان های لازم در جدول مسیریابی، متناظر با همه مسیرهای ممکن در شبکه، بسیار زیاد می شود.

روشهای مختلف هدایت بسته های IP:

با استفاده از تکنیک هایی می توان اندازه جداول مسیریابی را تحت کنترل درآورد وننیز به مسائل دیگری همچون امنیت نیز رسیدگی کرد. ادامه بحث را به توضیح در خصوص برخی از این روش ها، اختصاص می دهیم.

الف- متد گام بعدی Next Hop Method:

اولین راه حل برای کاهش تعداد المان های موجود در جدول مسیریابی، روش تعیین گام بعدی است. این روش از یک ایده ساده مورد استفاده در زندگی روزمره و مبتنی بر لایه بندی الهام می گیرد. برای توضیح این ایده کافی است که به مراحل ارسال یک نامه توجه کنید. زمانی که شما نامه ای را جهت ارسال برای جایی داشته باشید، نبایستی تعیین کنید که این نامه از چه شهرها و اداره های پستی باید بگذرد تا به مقصد برسد. تنها کافی است که تعیین کنید نامه را باید به چه کسی تحویل دهید (صندوق پست). مابقی مراحل به صورت اتوماتیک انجام خواهد شد (بر اساس سازوکاری مبتنی بر قواعد از پیش تعیین شده)

در مسیریابی نیز به جای این که یک جدول مسیریابی اطلاعات کل مسیر را نگهداری کند (که شیوه ای غیرعملی و غیرمنطقی است)، فقط آدرس HOP بعدی را نگه داری می کند. در شکل ۳۷ مقایسه ای میان این دو روش از نقطه نظر مفهومی انجام شده است.

image

شکل ۳۷: نمایی شماتیک از مسیریابی مبتنی بر گام بعدی

ب- روش شبکه مشخص (Network Specific Method)

روش دیگر برای کاهش جداول مسیریابی و ساده کرد فرآیند جستجو، روش شبکه-مشخص است. در این روش به جای تعیین مسیر برای تک تک میزبانهای متصل به شبکه مقصد و تخصیص یک سطر در جدول مسیریابی به ازای هرکدام از میزبانهای موجود در شبکه مقصد، کافی است فقط یک سطر برای خود شبکه مقصد درنظر بگیریم. این ایده نیز یک مبنای منطقی روشن دارد.

بنابراین در متد شبکه مشخص، تمام کامپیوترهای متصل به یک شبکه، به عنوان یک المان واحد در نظر گرفته می شوند

image

 

شکل ۳۸: تصویرسازی مفهومی از متد شبکه مشخص

ج-روش میزبان مشخص Host specific method

در روش میزبان-مشخص، آدرس میزبان مقصد در جدول مسیریابی نوشته می شود. منطقی که پشت این قضیه است، معکوس روش قبلی است. این روش بیشتر جهت کنترل بهتر و موثرتر فرآیند مسیریابی مورد استفاده قرار می گیرد. به عنوان مثال در شکل ۳۹ اگر مدیر شبکه بخواهد تمام بسته هایی که برای کامپیوتر B ارسال می شوند، به جای آنکه به مسیریاب R1 تحویل داده شوند به R3 تحویل گردند، به کمک یک سطر (سطر اول) در جدول مسیریابی میزبان A میتواند به صورت صریح این مسیر را تعریف کند.

image

شکل ۳۹: نمونه ای از کاربرد روش میزبان مشخص

لازم به ذکر است که مسیریابی میزبان-مشخص، برای اهدافی نظیر چک کردن مسیر یا فراهم کردن امنیت لازم نیز به کار می رود.

د-روش پیش فرضDefault Method :

روش دیگری که برای ساده کردن جداول مسیریابی مورد استفاده قرار می گیرد، روش مسیر پیش فرض نامیده می شود. شکل ۴۰ را در نظر بگیرید. کامپیوتر A به شبکه ای با دو مسیریاب متصل است. کامپیوتر A به کمک مسیریاب R1 بسته ها را برای کامپیوترهای متصل به شبکه N2 میفرستد و برای بقیه اینترنت، از مسیریاب R2 استفاده می کند.بنابراین به جای اینکه کامپیوتر Aلیست تمام شبکه های متصل به اینترنت را داشته باشد، می تواند صرفا یک سطر به نام پیش فرض یا Default داشته باشد که معمولا به صورت آدرس شبکه ۰٫۰٫۰٫۰ تعریف می شود.

image

شکل ۴۰: شبکه مثال

هدایت بسته های IP بر اساس آدرس دهی کلاس دار:

علیرغم معایب متعددی که برای روش آدرس دهی IP کلاس دار برشمرده شد، با این وجود، بودن یک الگوی پیش فرض در این شیوه آدرس دهی، فرآیند هدایت بسته های IP را ساده تر می کند. در ادامه ابتدا محتوای جدول مسیریابی و ماژول هدایت بسته های IP را برای وضعیتی که در آن زیرشبکه وجود ندارد، نشان می دهیم. در وهله بعد، نحوه تغییر این ماژول را برای حالتی که عملیات زیرشبکه سازی انجام شده باشد، نشان خواهیم داد.

هدایت بسته های اطلاعاتی بدون زیرشبکه سازی:

اولین نکته ای که باید به آن توجه داشت، این است که اکثر مسیریابهای موجود در اینترنت جهانی در زیرشبکه سازی وارد نمی شوند. زیرشبکه سازی، پدیده ای در سطح سازمانها است. با این وصف می توان با استفاده از سه جدول، یکی برای هر آدرس تک گیرنده (کلاس A وB وC) ، ماژول هدایت بسته های IP را طراحی کرد. اگر مسیریاب از عمل چند پخشی یا Multicasting پشتیبانی کند، میتوان جدول دیگری برای کارکردن با آدرس های چند پخشی (کلاس D) نیز به کار گرفت. داشتن سه جدول متفاوت، عمل جست وجو را کارآمد تر می کند.

هر جدول مسیریابی حداقل سه ستون دارد:

۱- آدرس شبکه: که معرف آدرس شبکه مقصد می باشد و نشان می دهد که کامپیوتر مقصد کجا واقع شده است (با استفاده از روش شبکه-مشخص)

۲- آدرس گام بعدی که به ما می گوید برای یک تحویل غیرمستقیم، بسته باید به کدام مسیریاب بعدی تحویل داده شود. این ستون برای یک تحویل مستقیم خالی است.

۳- شماره واسط، تعیین کننده پورت خروجی است که بسته باید از طریق آن به بیرون ارسال شود. یک مسیریاب معمولا چندین واسط شبکه (Network Interface) دارد که هر کدام به یک شبکه متصل هستند.

به این ترتیب ماژول هدایت بسته های اطلاعاتی IP در ساده ترین شکل آن وظایف زیر را انجام میدهد:

الف- آدرس مقصد بسته استخراج می شود

ب- برای پیداکردن آدرس، از کپی آدرس مقصد استفاده می شود نحوه کار به این صورت است که باشیفت دادن آدرس مقصد به اندازه ۳۲-۴=۲۸ بیت به سمت راست کلاس آدرس به دست می آید (۴ بیت پر ارزش آدرس برای تعیین کلاس آدرس استفاده می شوند). نتیجه این کار یک عدد ۴ بیتی بین ۰ تا ۱۵ است که به کمک آن میتوان کلاس آدرس را تعیین کرد:

· اگر عدد حاصل بین ۰ تا ۷ باشد، آدرس مقصد از کلاس A است.

· اگر بین ۸ تا ۱۱ باشد، آدرس مقصد در کلاس B است

· بین ۱۲ تا ۱۳ باشد در کلاس C است.

· ۱۴نشاندهنده کلاس D و ۱۵ نشاندهنده کلاس E است.

ج- از نتیجه مرحله قبل ونیز آدرس مقصد برای استخراج آدرس شبکه استفاده می شود (بر حسب نوع کلاس الگوی پیش فرض اعمال می شود). برای این کار ۸، ۱۶ یا ۲۴ بیت سمت راست آدرس را بسته به کلاس آن، صفر می کنیم تا آدرس شبکه به دست آید.

د- برای تعیین اطلاعات مربوط به گام بعدی، کلاس آدرس و آدرس شبکه به کار می روند. کلاس آدرس، جدولی را تعیین می کند که باید عمل جست و جو را در آن انجام داد. ماژول در این جدول به دنبال آدرس شبکه می گردد. اگر یک تطابق یا Match پیدا شود، آدرس گام بعدی و شماره واسط پورت خروجی از جدول استخراج می شوند. اگرتطابقی پیدا نشود، مسیر پیش فرض مورد استفاده قرار می گیرد

image

 

شکل ۴۱: ساختار مسیریابی بر اساس آدرس دهی کلاس دار

ه- ماژول ARP از آدرس IP، گام بعدی و شماره پورت واسط شبکه برای پیداکردن آدرس فیزیکی مسیریاب بعدی استفاده می کند. سپس از لایه پایینی (لایه پیوند داده ها) می خواهد که بسته را به گره بعدی تحویل دهد

مثال: شکل زیر بخشی فرضی از اینترنت را نشان میدهد. جدول مسیریابی را برای مسیریاب R1 نشان دهید؟

image

حل: مسیریاب R1 به سه شبکه به شکل مستقیم متصل است. ضمنا در این ساختار۴ شبکه وجود دارد. بنابراین زمانی که یک بسته توسط مسیریاب دریافت می شود، یا متعلق به یکی از این چهار شبکه است که با جست و جو در جداول، قابل مسیریابی است و یا متعلق به این ۴ شبکه نیست که باید از طریق مسیر پیش فرض به خارج از این ساختار هدایت شود.

برای تنظیم جداول مسیریابی باید تکلیف بسته ها را در حالتهای مختلف روشن کنیم:

الف- اگر بسته متعلق به شبکه ۱۷۰٫۱۴٫۰٫۰ باشد می بایست بسته از طریق واسط m2 به صورت تحویل مستقیم، به شبکه مزبور تحویل داده شود (دومین سطر جدول کلاس B)

ب- اگر بسته متعلق به شبکه ۱۴۵٫۸۰٫۰٫۰ باشد می بایست بسته از طریق واسط m1 به صورت تحویل مستقیم، به شبکه مزبور تحویل داده شود (اولین سطر جدول کلاسB)

ج- اگر بسته متعلق به شبکه ۱۱۱٫۰٫۰٫۰ باشد می بایست بسته از طریق واسط m0 به صورت تحویل مستقیم، به شبکه مزبور تحویل داده شود (اولین سطر جدول کلاسA)

د- اگر بسته متعلق به شبکه ۱۹۲٫۱۶۸٫۷٫۰ باشد می بایست بسته از طریق واسط m0 به صورت تحویل غیر مستقیم، به مسیریاب R3 تحویل داده شود (اولین سطر جدول کلاسC)

ه- در غیر این صورت مستقل از اینکه بسته به چه شبکه ای متصل است، از طریق واسط m0 به صورت تحویل غیرمستقیم، به مسیریاب R2 تحویل خواهد شد.

توجه دارید در مواردی که تحویل ازنوع مستقیم است، آدرس گام بعدی، خالی است. در این حالت ها، مقصد در همان شبکه ای است که مسیریاب به آن متصل است.

image

شکل ۴۲: جدوال مسیریابی برای مثال شکل ۴۱

تمرین: در مثال بالا فرض کنید بسته ای با آدرس مقصد ۱۹۲٫۱۶٫۷٫۱۴ به مسیریاب R1 وارد شده است. نحوه هدایت بسته توسط این مسیریاب را نشان دهید؟ اگر بسته ای با مقصد ۴٫۲٫۲٫۴ به مسیریاب برسد، نحوه هدایت را بررسی کنید؟

هدایت بسته های IP به همراه زیرشبکه سازی:

در آدرس دهی کلاس دار، زیرشبکه سازی در داخل سازمان انجام می شود. ماژول مسیریابی در این حالت به شکل زیر خواهد بود:

image

شکل ۴۳ : مازول مسیریابی در حالت آدرس دهی کلاس دار با زیرشبکه سازی

۱- ماژول آدرس شبکه مقصد را استخراج می کند.

۲- آدرس مقصد و الگو برای استخراج آدرس زیرشبکه به کار می روند.

۳- با استفاده از آدرس زیرشبکه، جستجو در داخل جدول صورت می گیرد تا آدرس IP گام بعدی (hop) و شماره واسط پیدا شود. اگر تطابق صورت نگرفت از مسیر پیش فرض استفاده می شود

۴- آدرس IP، گام بعدی و شماره پورت واسط به ماژول ARP داده می شود تا تحویل را انجام دهد.

مثال: مسیریابی را نشان میدهد که به ۴ شبکه متصل است. الگوی زیر شبکه /۱۸ است. جدول مسیریابی مسیریاب را بنویسید؟

image

شکل ۴۴ : یک زیرشبکه و جدول مسیریابی مسیریاب در این زیرشبکه

حل: برای ساختن جدول مسیریابی این مسیریاب توجه داریم که مسیریاب دارای ۵ واسط است که چهارتای آنها به زیرشبکه ها و یکی به مابقی اینترنت متصل است.

در جدول مسیریابی نیز برای هر کدام از این ۴ زیرشبکه یک سطر وجود دارد که چون تحویل از نوع مستقیم است، گام بعدی آنها فاقد مقدار است. یک مسیر پیش فرض هم وجود دارد که در سطر آخر جدول مسیریابی مشخص شده است.

هدایت بسته های IP در حالت آدرس هی بدون کلاس:

گفتیم که کل فضای آدرس در آدرس دهی بدون کلاس، یک واحد یکپارچه است و لذا مفهوم کلاس فاقد معنی است. این بدان معنا است که هدایت بسته ها به یک سطر برای هر بلاک آدرس نیاز دارد. جستجو باید بر اساس آدرس شبکه، انجام گیرد. متاسفانه آدرس مقصد در بسته، هیچ سرنخی درباره آدرس شبکه نمی دهد (در حالیکه در آدرس دهی کلاس دار این گونه نیست و هر آدرس به صورت تلویحی کلاسی را که به آن متعلق دارد نیز در بر دارد).

برای حل این مساله به ناچار باید الگوی شبکه /n را در جداول مسیریابی وارد کنیم. بنابراین در آدرس دهی بدون کلاس، به حداقل ۴ستون در جدول مسیریابی نیاز است.

image

شکل ۴۵: ماژول مسیریابی در حالت آدرس دهی بدون کلاس

مثال: با استفاده از پیکربندی شکل زیر، جدول مسیریابی R1 را بسازید؟

image

حل: با توجه به این شکل مشخص است که مسیریاب مزبور چهار واسط m0،m1 ،m2 وm3 دارد که این مسیریاب را به ۴ شبکه پیرامونی آن متصل می کنند. علاوه بر این از طریق واسط m2 این مسیریاب به مسیریاب پایین شکل متصل است (با IP برابر با ۱۸۰٫۷۰٫۶۵٫۲۰۰) که این مسیریاب دروازه ارتباط با بیرون است. (مسیر پیش فرض اتصال به اینترنت). با این بررسی جدول مسیریابی شبکه شکل ۴۶ مطابق با جدول زیر خواهد بود:

image

مثال: در شکل ۴۶ فرض کنید مسیریاب R1 بسته ای با مقصد ۱۸۰٫۷۰٫۶۵٫۱۴۰ دریافت کند،نحوه هدایت بسته را بررسی کنید؟

حل: مطابق با جدول مسیریابی مربوطه، مسیریاب کلیه ماسک های جدول را به آدرس مقصد اعمال می کند. در صورتیکه نتیجه با یکی از سطرهای ۱ تا ۴ مطابقت داشته باشد از طریق اینترفیس مربوطه، Forward خواهد شد؛ در غیر اسن صورت از سطر آخر، یعنی مسیر default استفاده می کند.

۱۸۰٫۷۰٫۶۵٫۱۴۰ AND /26 (255.255.255.192) == 180.70.65.128 ≠ ۱۸۰٫۷۰٫۶۵٫۱۹۲ :عدم تطابق با سطر اول

۱۸۰٫۷۰٫۶۵٫۱۴۰ AND /25 (255.255.255.128) == 180.70.65.128 = 180.70.65.128: تطابق با سطر دوم

بنابر این تطابق با دومین سطر جدول صورت گرفت. لذا آدرس گام بعدی، (در اینجا همان آدرس مقصد) و شماره اینترفیس m0 برای پردازش به ماژول ARP داده می شود.

تمرین: اگر بسته ای به آدرس مقصد ۲۰۱٫۴٫۲۲٫۳۵ به R1 برسد، فرآیند هدایت بسته را نشان دهید؟

بررسی یک مورد

حال مساله دیگری را مطرح می کنیم. اگر فقط جدول مسیریابی یک Router را داشته باشیم، آیا می توانیم توپولوژی شبکه متصل یه آن را پیداکنیم. مثلا فرض کنید جدول مسیریابی مسیریاب R1 مطابق با جدول زیر باشد:

image

برای پاسخ به این سئوال، جدول را مورد بررسی قرار می دهیم. اولا مشخص است که مسیریاب مزبور سه واسط m0،m1 و m2 دارد

واسط m2 به شبکه ۱۸۰٫۱۴٫۰٫۰ مستقیما متصل است (بر اساس اطلاعات سطر ۴)

واسط m0 به شبکه ۱۱۰٫۷۰٫۰٫۰ مستقیما متصل است (بر اساس اطلاعات سطر ۳)

واسط m1 به شبکه ۱۹۰٫۱۷٫۰٫۰ مستقیما متصل است (بر اساس اطلاعات سطر ۵)

image

لطفا نظر خود را بنویسید

یک دیدگاه