در این درس، دستگاههای شبکه را که در لایه ۳ مدل OSI فعالیت میکنند، بررسی میکنیم. با معرفی مسیریاب شبکه شروع میکنیم و تا سوئیچهای مدرن لایه ۳ که قادر به انجام مسیریابی IP هستند، پیش میرویم.
لینک آموزش قسمت هفتم: https://vrgl.ir/33zru

بیایید به دهه ۱۹۸۰ برگردیم. مردم شروع به ساخت شبکههای محلی کوچک با چند دستگاه کردند. سرانجام، آنها متوجه شدند که این شبکهها میتوانند برای تبادل منابع به یکدیگر متصل شوند. اما در عین حال، سوئیچها میتوانند دستگاهها را در داخل یک شبکه یکسان به هم متصل کنند، اما نمیتوانند شبکههای IP متفاوت را به یکدیگر وصل کنند، همانطور که در نمودار زیر نشان داده شده است.

یک سوئیچ در داخل یک VLAN و دامنه Broadcast واحد کار میکند، که با یک زیرشبکه (IP Subnet) مطابقت دارد. سوئیچ از فرآیند Flood-and-Learn استفاده میکند تا فریمها با آدرسهای MAC ناشناخته را به تمام دستگاههای درون VLAN سیلآسا (Flood) کند. یک مقاله درباره این مبحث منتشر خواهم کرد اما در حال حاضر، کافی است به خاطر بسپارید که یک سوئیچ تنها در یک شبکه محلی کار میکند.
یک سوئیچ سرآیند IP بستهها را نمیخواند، بنابراین آدرسهای IP مبدأ و مقصد را نمیداند و نمیتواند بفهمد که چگونه بسته را به یک شبکه دیگر بفرستد. از آنجایی که در لایه ۲ کار میکند، نمیتواند بستهها را بین زیرشبکههای مختلف ارسال کند.
اتصال دو شبکه IP مجزا نیازمند دستگاهی است که قادر به خواندن و تفسیر سرآیندهای IP بستهها باشد. این همان کاری است که مسیریاب برای انجام آن اختراع شد.
یک مسیریاب چندین سوئیچ و شبکههای آنها را به هم متصل میکند تا یک شبکه IP بزرگتر و بههمپیوسته ایجاد کند. به طور خلاصه، یک مسیریاب ارتباط بین شبکههای IP را امکانپذیر میسازد، در حالی که یک سوئیچ ارتباط درون یک شبکه اترنت محلی را مدیریت میکند.
به عنوان مثال، ما دو شبکه داریم: /24 172.16.1.0 (A) و /24 10.1.1.0 (B). برای اتصال آنها، از یک مسیریاب با یک رابط که به هر شبکه متصل شده است، استفاده میکنیم، همانطور که در نمودار زیر نشان داده شده است.

متداولترین مورد استفاده، مسیریاب خانگی شما است که شبکه محلی شما (مانند /24 192.168.1.0) را به ارائهدهنده خدمات اینترنت (ISP)، که یک شبکه دیگر است (از این رو متصلکننده شبکههاست)، متصل میکند. در محیطهای سازمانی، مسیریابها معمولاً بخشها، ساختمانها و سایتهای راه دور مختلف را به مرکز داده (Data Center) یا ابر (Cloud) متصل میکنند.
نکته کلیدی: دستگاههای انتهایی، مانند کامپیوترها و سرورها، مستقیماً به مسیریاب وصل نمیشوند. آنها به یک سوئیچ متصل میشوند و سوئیچ به مسیریاب (مستقیم یا از طریق یک سوئیچ دیگر) متصل میشود.
حالا بیایید به عملکرد مسیریاب و نحوه ارسال بستهها با جزئیات بیشتری بپردازیم.
یک مسیریاب با استفاده از آدرسهای IP مقصد تصمیم میگیرد که دادهها را بین شبکههای مختلف به کجا ارسال کند. هر مسیریاب دو جزء اصلی دارد که مربوط به نحوه ارسال بستهها هستند:
رابطها (Interfaces): اینها پورتهای فیزیکی یا مجازی هستند که مسیریاب را به شبکههای مختلف متصل میکنند. هر رابط متعلق به یک زیرشبکه متفاوت است و آدرس IP خاص خود را دارد، که هویت مسیریاب در آن زیرشبکه است. در اینجا، درک و به خاطر سپردن این نکته ضروری است که یک مسیریاب میتواند تنها یک رابط در یک شبکه داشته باشد، زیرا دستگاهی است که شبکهها را از هم جدا میکند. نمیتواند دو یا چند رابط متصل به یک شبکه داشته باشد.
جدول مسیریابی (Routing Table): این یک جدول داخلی در مسیریاب است که به آن میگوید بستهها را به کجا ارسال کند. هر ورودی یک شبکه مقصد، پرش بعدی (Next Hop) (یا رابط خروجی) و یک معیار یا هزینه (Metric یا Cost) را نشان میدهد. این جدول میتواند به صورت دستی (مسیرهای ثابت - Static Routes) یا به صورت خودکار (پروتکلهای مسیریابی پویا - Dynamic Routing Protocols) ساخته شود.
بیایید از نمودار زیر به عنوان مثالی برای توضیح این دو جزء استفاده کنیم و ببینیم که مسیریاب چگونه کار میکند. ابتدا، توجه کنید که در سمت چپ، مسیریاب به شبکه /24 10.1.1.0 با رابط 0/0 خود که دارای IP 10.1.1.1 است، متصل شده است. در سمت راست، از طریق رابط 0/1 و IP 39.1.1.1 به ارائهدهنده خدمات اینترنت (ISP) متصل میشود.

حالا بیایید ببینیم وقتی PC1 دادهها را به گوگل ارسال میکند، همانطور که در نمودار بالا نشان داده شده است، چه اتفاقی میافتد.
مسیریاب یک فریم را روی رابط متصل به LAN محلی دریافت میکند.
ابتدا فریم را حذف کرده و بسته IP (IP Packet) را بیرون میکشد.
سپس سرآیند IP بسته را میخواند.
هنگامی که آدرس IP مقصد را میداند، آن را با ورودیهای موجود در جدول مسیریابی خود مقایسه میکند.
جدول مسیریابی به مسیریاب میگوید که بسته را به کجا ارسال کند.
هنگامی که مسیریاب میداند که باید از کدام رابط برای ارسال بسته به پرش بعدی (Next Hop) استفاده کند، آن را در یک فریم جدید کپسوله میکند که مقصد آن آدرس MAC دستگاه پرش بعدی است.
با این حال، آنچه بسیاری از دانشجویان در ابتدا متوجه نمیشوند این است که چگونه فریم حاوی یک بسته IP که مقصدش Google.com است، در وهله اول به مسیریاب میرسد.
اولین تصمیم مسیریابی حتی قبل از اینکه بسته IP با شبکه تماس پیدا کند، اتفاق میافتد. میزبان (Host) که دادهها را ایجاد میکند، یک بسته IP با آدرس IP مبدأ و مقصد ایجاد میکند. در حین انجام این کار، میزبان از آدرس IP پیکربندی شده خود، Subnet Mask و IP مقصد استفاده میکند تا یکی از دو سناریوی زیر را دریابد:
اگر آدرس IP مقصد در همان شبکه باشد، بسته را مستقیماً به آن دستگاه ارسال میکند و از ARP برای یافتن آدرس MAC آن استفاده میکند. نیازی به مسیریاب نیست.
اگر مقصد در یک شبکه متفاوت باشد، میزبان میداند که باید بسته IP را به Default Gateway پیکربندی شده خود ارسال کند — که معمولاً یک مسیریاب متصل به شبکه محلی است. میزبان بسته را در فریمی که آدرس آن آدرس MAC مسیریاب است، میپیچد و آن را روی LAN قرار میدهد.
مسیریاب تنها پس از اینکه میزبان تصمیم گرفته است که بسته باید شبکه محلی خود را ترک کند، وارد عمل میشود.
بیایید دوباره همان مثال را ببینیم، اما با تمرکز بر PC1. PC1 میخواهد دادهها را به گوگل در آدرس IP 8.8.8.8 ارسال کند. PC1 IP 8.8.8.8 را با IP و ماسک پیکربندی شده خود یعنی 10.1.1.0 255.255.255.0 مقایسه میکند. با استفاده از محاسبه اولیه سابنت، PC1 مشخص میکند که IP گوگل خارج از LAN محلی آن است، بنابراین باید بسته را به مسیریاب دروازه محلی پیکربندی شده خود یعنی 10.1.1.1 ارسال کند. از این رو، هنگامی که PC1 بسته را در یک فریم اترنت کپسوله میکند، آدرس MAC مقصد را به آدرس MAC مسیریاب R1 یعنی CCC (به رنگ زرد) تنظیم میکند.

با استفاده از این منطق، بسته IP که مقصدش گوگل است، به مسیریاب R1 میرسد، که مسیریابی IP را انجام میدهد و آن را در طول مسیر به هاپ بعدی ارسال میکند. بنابراین، اگرچه معمولاً فکر میکنیم "مسیریابی" کاری است که مسیریابها انجام میدهند، میزبانها نیز جدولهای مسیریابی خاص خود را دارند. تصمیم مسیریابی میزبان تعیین میکند که بسته به کجا برود.
نکته کلیدی: درک و به خاطر سپردن این نکته ضروری است که هاست ها فرآیند مسیریابی IP را آغاز میکنند.
حالا بیایید کمی بیشتر به فرآیند مسیریابی دقیق شویم.
مسیریابها ترافیک را بر اساس جداول مسیریابی IP خود ارسال میکنند. مسیریابی IP فرآیند انتقال بستهها از یک شبکه به شبکه دیگر با استفاده از آدرسهای IP به عنوان "برچسبهای مقصد" است. یک مسیریاب به IP مقصد در هر بسته نگاه میکند، جدول مسیریابی خود را بررسی میکند و بهترین مسیر را برای ارسال آن بسته به سمت مقصدش انتخاب میکند.
بیایید به نمودار زیر به عنوان یک مثال نگاه کنیم. ما سه مسیریاب داریم که هر کدام به یک شبکه متفاوت متصل هستند. شما میتوانید جدول مسیریابی هر یک از مسیریابها را ببینید. توجه کنید که هر مسیریاب میتواند از طریق دو مسیر مختلف به هر شبکه برسد. به عنوان مثال، R1 میتواند به /24 10.1.1.0 از طریق R2 و از طریق R3 برسد. با این حال، R1 مستقیماً به /24 10.1.1.0 از طریق R2 متصل میشود زیرا این بهترین مسیر است (کمترین معیار یا Metric را دارد).

یک مسیریاب میتواند جدول مسیریابی خود را با استفاده از دو روش مختلف بسازد:
مسیریابی ثابت (Static Routing) زمانی است که یک مدیر، مسیرها را به صورت دستی پیکربندی میکند. مسیریاب از این مسیرهای ثابت برای ارسال بستهها استفاده میکند و آنها تغییر نمیکنند مگر اینکه مدیر آنها را بهروزرسانی کند. این روش قابل پیشبینی و سرراست است، اما در صورت تغییر توپولوژی شبکه، نیازمند تغییرات دستی است.
مسیریابی پویا (Dynamic Routing) از پروتکلهای مسیریابی برای یادگیری و بهروزرسانی مسیرها به صورت خودکار استفاده میکند. مسیریابها اطلاعات مربوط به مسیرهای شبکه را مبادله میکنند و بهترین مسیرها را بر اساس معیارهایی مانند مسافت، هزینه یا سرعت انتخاب میکنند. این امر مسیریابی پویا را در شبکههای بزرگتر یا شبکههایی که دائماً در حال تغییر هستند، سازگارتر و کارآمدتر میسازد.
با تکامل طرحهای شبکه، مردم متوجه شدند که اتکای صرف به مسیریابها برای انجام مسیریابی IP در مقیاس بزرگ یک نقص است. بیایید طرح معمول سه لایهای زیر را به عنوان مثال در نظر بگیریم.
تصور کنید که در لایه دسترسی (Access Layer)، چندین VLAN/زیرشبکه داریم که باید با سرعت بالا با یکدیگر ارتباط برقرار کنند. در گذشته، یک سوئیچ نمیتوانست ترافیک را بین VLANها مسیریابی کند، بنابراین به یک مسیریاب نیاز بود. با این حال، ارسال تمام ترافیک بین VLANها به لایه WAN از طریق یک مسیریاب و بازگشت به لایه دسترسی، بسیار ناکارآمد است و میتواند گلوگاه قابل توجهی ایجاد کند.

یک سوئیچ لایه ۳ با انجام مسیریابی مستقیماً در سختافزار سوئیچینگ، این مشکل را حل میکند، که بسیار سریعتر از مسیریابی سنتی مبتنی بر نرمافزار است. این امر انعطافپذیری یک مسیریاب را با سرعت یک سوئیچ فراهم میکند و آن را برای شبکههای LAN بزرگ، شبکهها و مراکز داده که هم سوئیچینگ و هم مسیریابی مورد نیاز است، مناسب میسازد.
یک سوئیچ لایه ۳ یک دستگاه شبکه است که عملکرد یک سوئیچ و یک مسیریاب را در یک واحد ترکیب میکند، همانطور که در نمودار زیر نشان داده شده است.

مانند یک سوئیچ معمولی، میتواند فریمها را در لایه ۲ بر اساس آدرسهای MAC ارسال کند. در عین حال، میتواند مسیریابی لایه ۳ را بین VLANها یا زیرشبکههای IP با استفاده از آدرسهای IP، درست مانند یک مسیریاب، انجام دهد. این به سوئیچ اجازه میدهد تا هم سوئیچینگ محلی با سرعت بالا و هم مسیریابی بین VLANها را مدیریت کند بدون اینکه ترافیک را به یک مسیریاب مجزا بفرستد، که آن را برای شبکههای بزرگی که نیاز به ارتباطات داخلی سریع و مسیریابی کارآمد دارند، ایدهآل میکند.
سوئیچها در لایه ۲ فعالیت میکنند و فریمها را در داخل یک VLAN/زیرشبکه واحد ارسال میکنند. آنها نمیتوانند شبکههای IP مختلف را به هم متصل کنند.
مسیریابها در لایه ۳ فعالیت میکنند و شبکههای IP متعدد را با خواندن سرآیندهای IP و استفاده از جداول مسیریابی برای ارسال بستهها، به هم متصل میکنند.
هاست ها اولین تصمیم مسیریابی را میگیرند: اگر مقصد خارج از زیرشبکه محلی باشد، بسته را به دروازه پیشفرض خود (یک مسیریاب) ارسال میکنند.
مسیریابی IP میتواند ثابت (مسیرهای پیکربندی شده دستی) یا پویا (مسیرهای آموخته شده از طریق پروتکلهای مسیریابی) باشد.
سوئیچهای لایه ۳، سوئیچینگ و مسیریابی را در یک دستگاه ترکیب میکنند و مسیریابی بین VLANها را با سرعت بالا مستقیماً در سختافزار و بدون نیاز به مسیریابهای خارجی امکانپذیر میسازند.
حمید رضا اسفندیاری _ کارشناس شبکه و فناوری اطلاعات