امنیت شبکه:
امنیت دشوار است، امنیت گران قیمت است . این دو عبارت بازگو کننده نظرات افرادی است که برای ارتباطات الکترونیکی خود نیاز مبرم به امنیت را دریافته اندو به دنبال آن هستند. کلمه "امنیت شبکه های تجاری" یا "Enterprice network security" با افزایش درک شرکتها از ریسکهای موجود و همچنین توسعه نرم افزارهای کاربردی در محاورات متداول تر شده است.
گرچه جمله ذیل در ابتدا ممکن است نگران کننده باشد، اما حقیقتی است انکار ناپذیر اینکه "امنیت مطلق وجود ندارد" زیرا: تنظیمات تجهیزات ناکافی است، حملات جدیدی طراحی می شوند و نرم افزارها باگهای امنیتی دارند. بهترین کارهایی که هر شرکت می تواند انجام دهد عبارتند از تشخیص ریسکها و نقاط ضعف ها، تصمیم گیری بر این موضوع که چه چیزی بحرانی است، و سپس پیاده سازی سیاستهای امنیتی است با کارآیی بالا. همچنین این مسئله مهم است که تحقیق شود آیا سیاستهای امنیتی بدرستی اجرا می شوند که این امر متضمن مونیتورینگ فعال ترافیک روی شبکه و انجام بررسی دوره ای مجوزهای امنیتی است.
امنیت شبکه موضوعی است پیچیده. این مساله تا حدودی ناشی از وفور تکنولوژی های امنیتی قابل دسترس می باشد. در اینجاست که برای شروع پیاده سازی استراژیهای امنیتی، با توجه به امکانات قابل دسترس و تشخیص تهدیدات بالقوه و بالفعل باید با تکیه بر مشاورین متخصص سریعاً اقدام نمود.
Routing چیست؟
Routerها در شبکه برای مدیریت ترافیک شبکه و یافتن بهترین مسیر برای ارسال اطلاعات استفاده می شوند. در این مبحث می کوشیم انواع الگوریتم های مسیر یابی مورد استفاده در شبکه های کامپیوتری و نحوه کار آنها را به صورت اختصار شرح دهیم
مسیریابی، عملیات انتقال اطلاعات از مبدا به مقصد است. Routing معمولاً با Bridging مقایسه میشود. اولین تفاوت این است که Bridging متعلق به Data Link Layer میباشد. در صورتیکه Routing متعلق به Network Layer است. این تفاوت باعث میشود که در فرآیند انتقال اطلاعات از اطلاعات متفاوتی می شود
اجزاء Routing:
Routing وظیفه انجام دو کار عمده را دارد، تعیین بهینه ترین مسیر و انتقال گروههای اطلاعاتی (Packets) از طریق شبکه که این موضوع Switching نامیده میشود. بر خلاف Switching، تعیین مسیر کمیپیچیده است.
تعیین مسیر:
یک متریک، یک استاندارد برای سنجیدن است. مثل طول مسیر که در الگوریتمهای مسیریابی استفاده میشود. برای مسیر یابی این الگوریتمها جدولهای مسیر یابی دارند و اطلاعات مسیر با توجه به الگوریتم تغییر میکنند.
این جدولها، اطلاعات متنوعی دارند. مثلاً next hop به یک Router میگوید که به یک مقصد مشخص میتوان بصورت بهینه از طریق یک Router مشخص که همان hop بعدی است رسید. وقتیکه یک Router یک Packet را میگیرد، آدرس مقصد را چک میکند و سعی میکند رابطه ای بین آن و hop بعدی برقرار کند.
Routerها با هم رابطه برقرار میکنند و از طریق رد و بدل کردن پیام، جدولهای Routing را میسازند. پیغام Routing update، معمولاً تمام یا قسمتی از جدول Routing را در بر دارد. با بررسی جدول بقیه Routerها، هر Router، میتواند یک توپولوژی دقیق از شبکه برای خود ترسیم کند. نوع دیگری از پیغامها، اعلام عمومیLink – State است. که به بقیه Routerها در مورد وضعیت رابطهای فرستنده اطلاعات میدهد.
Switching:
الگوریتمهای Switching معمولاً ساده و یکسان هستند. در بیشتر مواقع، یک host معین میکند که باید به یک host دیگر یک Packet بفرستد و هنگامیکه آدرس Router را بدست آورد. host مبدأ یک Packet آدرس داده شده را به یک آدرس فیزیکی میفرستد و یا پرتو کل و آدرس مقصد. حال Router نگاه میکند که ببیند آیا میتواند آنرا forward کند یا نه. اگر نتوانست آنرا رها میکند اگر توانست به hop بعدی میفرستد. و این کار در hopهای بعدی بصورت مشابه تکرار میشود.
الگوریتمهای مسیریابی :
این الگوریتمها با توجه به چندین مشخصه ممکن است تغییر کنند: اول هدف طراح باعث تغییر الگوریتم خواهد شد. دوم اینکه چندین روش مسیریابی وجود دارد که هر کدام تأثیر خاص براطلاعات موجود در گرههای زیرساخت ارتباطی شبکه میگذارند.
اهداف طراحی:
بهینه بودن: به معنی انتخاب بهترین مسیر است، که وابسته به میزان متریکها خواهد بود مثل تعداد hop ها و یا تأخیری که ایجاد میشود (توسط هر hop)
ساده بودن: به این معنی که این الگوریتمها باید تا حد ممکن کارآمد باشند در عین حالیکه نرم افزار آنها پیچیده نباشد و هزینه بالایی هم نداشته باشد.
همگرایی سریع: به معنی این است که اگر در کار شبکه اختلالی ایجاد شد. مثل اشکال در کار سخت افزار شرایط بار زیاد، 000، Router همچنان با کارکردن صحیح ادامه دهد. به دلیل اینکه از کار افتادن Routerها ممکن است خسارتهای سنگینی به بار آورد.
انعطاف پذیری: به معنی این است که باید به سرعت و با دقت با محیط اطراف خود سازگار شوند.
دو روش برای ارسال بستههای اطلاعاتی در شبکههای کامپیوتری مطرح است که هر یک از آنها امروزه به نحوی مورد استفاده قرار میگیرند:
روش مدار مجازی یا VC:
در این روش قبل از ارسال، ابتدا یک مسیر بین مبدا و مقصد برقرار می شود. مبدا با ارسال یک بسته کنترلی خاص با یک شماره ویژه برروی شبکه اعلام می کند که خواستار برقراری ارتباط با یک مسیریاب خاص می باشد .هر مسیر یاب که آن بسته را دریافت کند ضمن پیداکردن یک مسیر مناسب برای آن دسته ،شماره آن را در جدولی درج می کند و از آن به بعد هر بسته ای که با این شماره وارد شود از همان مسیری که برای بسته اول انتخاب شده بود به سمت مقصد هدایت می شود.
از ویژگیهای این روش میتوان به موارد زیر اشاره کرد:
نیاز به آدرس IP نیست .
نیاز به اجرای الگوریتم مسیریابی برای هربسته نمیباشد.
بسته ها به ترتیب به مقصد می رسند
احتمال گم شدن بسته ها به علت اشتباه در عمل مسیریابی وجود ندارد.
روش دیتا گرام (datagram)
در این روش، هر ماشین میزبان پس از آنکه بسته ای را تولید کرد، تحویل اولین مسیریاب در دسترس می دهد. مسیریابها مختارند بر اساس شرایط ترافیکی وتوپولوژیکی، مسیری رابرای آن بسته انتخاب کرده و آن بسته را روی آن مسیر ارسال کنند. از ویژگیهای این روش مسیریابی میتوان به موارد زیر اشاره کرد:
هر بسته نیاز به آدرس IP دارد.
برای هر بسته باید مسیریابی جداگانه انجام شود
بسته ها در مقصد به ترتیب تولید در مبدا دریافت نمی شوند. لذا نیاز به فرآیند تنظیم ترتیب بسته ها در مقصد وجود دارد
توزیع بسته ها روی مسیرهای متفاوت خواهد بود.
انواع الگوریتمهای مسیریابی:
الگوریتمهای مسیر یابی را میتوان با دو دیدگاه دستهبندی کرد:
1- از دیدگاه روش تصمیم گیری ومیزان هوشمندی
2- از دیدگاه چگونگی جمع آوری وپردازش اطلاعات زیر ساخت ارتباطی شبکه
از دیدگاه اول، الگوریتمها به دو دسته ایستا و پویا تقسیم می شوند در الگوریتمهای ایستا هیچ اعتنایی به شرایط ترافیکی وتوپولوژی شبکه نمی شود. در الگوریتمهای این گروه، مسیریابها از جداول پیش ساخته مسیریابی استفاده می کنند.
از ویژگیهای خانواده الگوریتمهای مسیریابی پویا میتوان به موارد زیر اشاره کرد:
مسیر یابی براساس آخرین وضعیت توپولوژیکی وترافیک شبکه انجام می شود
جداول مسیریابی هرT ثانیه یک بار بهنگام می گردند
از دیدگاه دوم الگوریتمهای مسیریابی به دو دسته تقسیم می شوند: متمرکز و غیر متمرکز
درحالت متمرکز (Global) هر مسیریاب باید اطلاعات کاملی از زیرساخت ارتباطی شبکه داشته باشد. یعنی
هر مسیر باید تمامی مسیریاب های دیگر، ارتباطات بین آنها و هزینه هر خط را دقیقاً بشناسد.
براساس اطلاعات مرحله 1، ساختمان داده گراف زیرساخت شبکه تشکیل میشود.
بر اساس ساختار دادهای تشکیل شده از زیرساخت ارتباطی شبکه در مرحله قبل، برای یافتن کوتاهترین مسیر بین هر دو مسیر یاب از الگوریتمهای یافتن کوتاهترین مسیر، نظیر الگوریتم Dijkstra استفاده میکنیم
این الگوریتمها را الگوریتمهای LS نیز میگویند چرا که الگوریتم مسیریابی برای مسیریابی به اطلاعات کاملی از زیرساخت شبکه و هزینه ارتباط بین هر مسیریاب نیازمند است..
در حالت غیر متمرکز، مسیریاب اطلاعات کاملی از زیر ساخت شبکه ندارد، بلکه فقط قادر است هزینه ارتباط با مسیریاب هایی که بطور مستقیم و فیزیکی با آنها در ارتباط است را محاسبه وارزیابی نماید. سپس در فواصل زمانی منظم ، هر مسیریاب جدول مسیریابی خود را برای مسیریاب های مجاور، ارسال می نماید. هر مسیریاب با دریافت جداول ارسالی و مقادیری که خودش مستقیماً اندازهگیری کرده ، با یک الگوریتم بسیار ساده جدول خودش را به هنگام می نماید. در این روش، برای مسیریابی هر بسته ، فقط یک جستجو در جدول مسیریابی کافی است. از این نقطه نظر که این الگوریتمها درگیر اجرای الگوریتمهای پیچیده مسیریابی نظیر دیجکسترا در مسیریابی نیستند و تنها با یک جستجو در جدول مسیریابی قادر به یافتن مسیر مناسب هستند، لذا از پیچیدگی مناسبی برخوردارند این گروه را الگوریتمهای DV نیز میگویند
روش ارسال سیل آسا (ایستا)
یکی از روشهای ایستای مسیریابی که برای ارسال بسته های همگانی (فراگیر) کاربرد دارد (مثلاً اعلام جداول مسیریابی و یا ارسال بستههای کنترلی خاص) روش سیلآسا است
در این روش هر مسیر یاب با دریافت اینگونه بسته ها آن را روی تمامی مسیرهای خروجی خود (به غیر از مسیری که بسته را از آن دریافت کرده) ارسال مینماید. این کار تضمین می کند که هر بسته به تمامی مسیریاب های زیر شبکه در سریعترین زمان ممکن برسد.
مشکل این روش با بودن حلقه در گراف زیرساخت ارتباطی شبکه نمایان میشود. وجود حلقه های موجود در گراف زیر ساخت ارتباطی شبکه باعث می شود فرآیند تکرار بسته های فراگیر هرگز خاتمه نباید. برای حل این مشکل راهحلهایی نیز اندیشیده شده است:
روش اول برای حل این مشکل، قرار دادن طول عمر برای بسته ها میباشد. در این روش، یک فیلد شمارنده در سرایند بسته قرار داده می شود وبه ازای عبور بسته از هر مسیریاب یکی از آن کم میشود تا به صفر برسد. وقتی به صفر رسید، بسته از شبکه حذف می گردد
روش دوم برای حل این مشکل، قرار دادن شماره شناسایی برای بستهها است. در این روش، برای هر بسته فراگیر ارسالی در شبکه، یک شماره شناسایی منحصربفرد و یکتا درج میشود. مسیریابی که بستهای را یکبار دریافت کند شماره آن را در جدولی ثبت مینماید. با دریافت یک بسته فراگیر، شماره شناسایی آن در جدول مورد جستجو قرار میگیرد و اگر قبلا بستهای با آن شماره دریافت شده بود، بسته از شبکه حذف میگردد.
بررسی الگوریتمهای LS:
در خانواده الگوریتمهای مسیریابی متمرکز یا LS هر مسیر یاب باید عملیاتهای زیر را انجام دهد:
شناسایی مسیریابهای مجاور وبدست آوردن آدرس آنها:
این مرحله به سادگی و با ارسال Hello Packet برای مسیریابهای مجاور انجام میگیرد. در پاسخ به این بسته هر مسیریاب موظف است بسته جواب که حامل آدرس IP است را برای مسریاب ارسال کننده پیام، بفرستد.
اندازه گیری هزینه مسیریاب های مجاور:
هر مسیریاب در این الگوریتم موظف است، تاخیر هر یک از خطوط خروجی خود را اندازهگیری نماید. برای این منظور، هر مسیریاب با ساخت یک بسته Echo و دریافت بسته Echo Reply و محاسبه زمان مابین ارسال بسته و دریافت پاسخ آن هزینه خط ارتباطی خود با مسیریاب مجاور را محاسبه میکند.
ساخت یک بسته حاوی تمامی اطلاعات مسیریاب های مجاور
در این مرحله بر اساس اطلاعات جمع آوری شده از شبکه، هر مسیریاب مبادرت به ساخت یک بسته اطلاعاتی موسوم به بسته LS مینماید. فیلدهای اطلاعاتی موجود در این بسته به قرار زیر میباشند:
IP
تولیدکننده بسته
شماره
ترتیب بسته
طول
عمر بسته
جدول
هزینه مسیریابهای مجاور
(IP, Cost)
ارسال بسته آماده شده در مرحله قبل به روش سیل آسا برای تمامی مسیریابهای شبکه و دریافت و ذخیرهسازی بستههایی که از مسیریابهای دیگر دریافت شده است
دو سئوال در این مرحله مطرح است. نخست اینکه چه موقع بستههای LS درشبکه ارسال میشوند؟ و سوال دیگر اینکه مکانیزم ارسال این بستهها در شبکه چگونه است؟
بستههای LS به روش سیلآسا در شبکه توزیع میشوند. اما در پاسخ به سئوال نخست مبنی بر زمان ارسال این بستهها میتوان سناریوهای مختلفی را در نظر گرفت:
در یک حالت میتوان در بازههای زمانی مشخص، مبادرت به ارسال بستههای LS در شبکه نمود. مشکلی که در این روش پیش میآید، غرق شدن لحظهای شبکه در بستههای LS بیشماری است که از جانب مسیریابها ارسال میشوند. به بیان دیگر در این روش، برای لحظاتی کل شبکه غرق در بستههای LS میشود که این خود ازدحام در خطوط شبکه را به همراه دارد
در حالت دوم، زمانی بستههای LS در شبکه توزیع میگردند که یک تغییر اساسی در زیر ساخت ارتباطی شبکه رخ دهد (مثلا اضافه شدن یک مسیریاب دیگر به شبکه یا حذف یک مسیریاب)
در هر حال بستههای LS به روش سیلآسا در شبکه توزیع میگردند. برای آنکه این بستهها در شبکه در یک حلقه تکرار ارسال نامتناهی قرار نگیرند، برای هریک از بستهها یک فیلد شماره ترتیب در نظر گرفته شده است. هر مسیریاب با دریافت یک بسته LS از مسیریابهای مجاور، ابتدا بررسی میکند که آیا قبلا بستهای را از آن مسیریاب با آن شماره ترتیب دریافت کرده است یا خیر؟