آشنايي با پروتكلهاي مسير يابي
Routing
چيست ؟
مسيريابي، عمليات انتقال اطلاعات از مبدأ به مقصد است. Routing معمولاً با Bridging مقايسه ميشود. اولين تفاوت اين است كه Bridging متعلق به Data Link Layer ميباشد. در صورتيكه Routing متعلق به Network Layer است. اين تفاوت باعث ميشود كه در فرآيند انتقال اطلاعات از اطلاعات متفاوتي استفاده شود.

اجزاء Routing:
Routing وظيفه انجام دو كار عمده را دارد، تعيين بهينه ترين مسير و انتقال گروههاي اطلاعاتي (Packets) از طريق شبكه كه اين موضوع Switchong ناميده ميشود. بر خلاف Switching، تعيين مسير كميپيچيده است.
تعيين مسير:
يك متريك، يك استاندارد براي سنجيدن است. مثل طول مسير كه در الگوريتمهاي مسيريابي استفاده ميشود. براي مسير يابي اين الگوريتمها جدولهاي مسير يابي دارند و اطلاعات مسير با توجه به الگوريتم تغيير ميكنند.
اين جدولها، اطلاعات متنوعي دارند. مثلاً next hop به يك Router ميگويد كه يك به مقصد مشخص ميتوان بصورت بهينه از طريق يك Router مشخص كه همان hop بعدي است رسيد. وقتيكه يك Router يك Packet را ميگيرد، آدرس مقصد را چك ميكند و سعي ميكند رابطه اي بين آن و hop بعدي را برقرار كند.
مثل جدول زير:
Net. No. Send to
27 Node A
57 Node B
17 Node C
Routerها با هم رابطه برقرار ميكنند و از طريق رد و بدل كردن پيام، جدولهاي Routing را ميسازند. پيغام Routing update، معمولاً تمام يا قسمتي از جدول Routing را در بر دارد. با بررسي جدول بقيه Routerها، هر Router، ميتواند يك توپولوژي دقيق از شبكه براي خود ترسيم كند. نوع ديگري از پيغامها، اعلام عموميLink – State است. كه به بقيه Routerها در مورد وضعيت رابطهاي فرستنده اطلاعات ميدهد.
Switching:
الگوريتمهاي Switching معمولاً ساده و يكسان هستند. در بيشتر مواقع، يك host معين ميكند كه بايد به يك host ديگر يك Packet بفرستد و هنگاميكه آدرس Router را بدست آورد. host مبدأ يك Packet آدرس داده شده را به يك آدرس فيزيكي ميفرستد و يا پرتو كل و آدرس مقصد. حال Router نگاه ميكند كه ببيند آيا ميتواند آنرا forward كند يا نه. اگر نتوانست آنرا رها ميكند اگر توانست به hop بعدي ميفرستد. و اين كار در hopهاي بعدي بصورت مشابه تكرار ميشود.
الگوريتمهاي Routing :
اين الگوريتمها با توجه به چندين مشخصه ممكن است تغيير كنند: اول هدف طراح باعث تغيير الگوريتم خواهد شد. دوم اينكه چندين روش مسيريابي وجود دارد كه هر كدام تأثير خاص بر شبكه ميگذارند و 000
اهداف طراحي:
1- بهينه بودن، به معني انتخاب بهترين مسير است، كه وابسته به ميزان متريكها خواهد بود مثل تعداد hopها و يا تأخيري كه ايجاد ميشود توسط هر hop
2- ساده بودن، به اين معني كه اين الگوريتمها بايد تا حد ممكن كار آمد باشند در حاليكه نرم افزار آنها پيچيده نباشد و هزينة بالايي هم نداشته باشد.
3- همگرايي سريع: به معني اين است كه اگر در كار شبكه اختلالي ايجاد شد. مثل اشكال در كار سخت افزار شرايط بار زياد، 000، Router همچنان با كاركردن صحيح ادامه دهد. به دليل اينكه از كار افتادن Routerها ممكن است خسارتهاي سنگيني به بار آورد.
4- انعطاف پذيري: به معني اين است كه بايد به سرعت و دقت با محيط اطراف خود سازگار شوند.
انواع الگوريتمها:
اين الگوريتمها بر اساس انواع تفاوتهاي زير ميتوانند تغيير كنند:
1- استاتيك يا ديناميك باشند
2- يك مسير يا چند مسير باشند
3- host هوشمند و يا Router داشته باشند
4- Link State يا distance Vector باشند
متريكهاي Routing:
جدولهاي Routing اطلاعاتي دارند كه نرم افزار با استفاده از آنها بهترين مسير را انتخاب ميكند.اين اطلاعات ميتوانند شامل متريكهاي زير باشند: طول مسير، قابليت اطمينان، تأخير، پهناي باند و هزينة ارتباطات.
IP Routing Protocols :
پروتوكلهاي مسير يابي مبتني بر IP، به دو دسته كلي تقسيم ميگردند:
Interior Gateway Protocols (IGPs)
Exterior Gateway Protocols (EGPs)
IGPs در شبكههايي كه زير نظر يك شبكه مشترك اداره ميشوند استفاده ميگردد. انواع پروتكلهاي IGP عبارتند از:
Border Gateway Protocol (BGPs)
Enhanced IGRP
Open shourtest Path (OSPF)
Routing Information Protocol (RIP)
Intermediate System to Intermediate System (Is-Is)
EGPs براي مسير يابي بين شكبههايي كه اشتراكي با هم ندارند استفاده ميگردد، اين پرتوكلها قبل از اينكه عمل مسير ياب را انجام دهند، سه نوع اطلاعات نياز دارند:
ليستي از مسير يابيهاي همسايه (neighbor routers)
ليستي از شبكههايي كه به صورت مستقيم قابل دسترسي هستند
شماره سيستم مستقل (autonomous system number) مسير يابي محلي.
پرتوكلهاي EGPs نيز به دو دسته كلي زير تقسيم ميگردند:
Border Gateway Protocol (BGPs)
Exterior Gateway protocol (EGPs)
علاوه بر اينها پرتوكلهايي هم براي شناسايي مسير يابها (router discovery) وجود دارد كه از بين آنها ميتوان به ICMP Router Discovery p. (RFC1256) اشاره كرد.
قبل از اينكه به معرفي پروتوكلها بپردازيم اين سؤال مطرح ميشود كه براي كار، از كدام يك از پروتكلها استفاده كنيم ؟ در واقع براي انتخاب پروتكل بايد پارامترهاي زير را در نظر گرفت:
اندازه و پيچيدگي شبكه
پشتيباني از
OSPf , IS-IS : Routing Variable Length Subnet Masks (VLSM)
اين قابليت را دارند.
ميزان reliability , security مورد نياز.
مشخصه تأخير (delay) شبكه مورد استفاده.
قابليت تغيير پذيري پروتكل به صورت سازمان يافته، به طوري كه بتوان آن را با شرايط مختلف سازگار نمود.
پروتكل IGRP:
جزو پروتكلهاي dynamic distance vector به شمار ميآيد. به طور پيش فرض هر 90 ثانيه يك update pakcetرا به صورت Broadcast ارسال ميكند. اگر در عرض 270 ثانيه جوابي از يك مسيرياب دريافت نكند آن را غير قابل دسترس (inaccessible) معرفي ميكند اگر پس از 630 ثانيه پاسخي دريافت نكند، آن مسير را از routing table حذف ميكند. براي اينكه همگرايي اين پروتكل در رسيدن به مسير مناسب بيشتر گردد از دو روش flash update poisson , reverse update استفاده ميگردد.
IGRP در دهه 80 توسط Cisco ابداع شد و هدف آن ايجاد پروتوكلي پايدار و مطمئن براي سيستمهاي مستقل بود. قبل از دهه 80، پروتكل RIP مشهورترين و پركاربردترين پروتكلها بود. اما RIP فقط براي شبكههاي كوچك مفيد بود (شبكههايي كه حداكثر طول مسير در آنها hop 16 بود) در ضمن فاصله مسيريابها را فقط با شمردن تعداد hopهاي بين آنها تعيين كرد كه در محيطهاي پيچيده و شكبههاي گسترده بازدهي كار را پايين ميآورد. به اين دلايل پس از ابداع IGRP، اين پروتكل به سرعت جايگزين RIP شد.
مشخصات پروتكل IGRP (IGRP Protocal characteristics)
همان طور كه ذكر شد IGRP يك Pro. vector * distance است. در اين نوع پروتكلها هر مسيرياب تمام يا قسمتي از routing table خود را در بازههاي زماني منظم براي همسايههاي خود ميفرستد.
در مقابل disance v. p.، پروتكلهاي link state قرار دارند كه اطلاعات محلي خود را به تمام نودهاي شبكه ارسال ميكنند. بعداً خواهيم گفت كه OSPF، IS-IS از نوع پروتكلهاي link state ميباشند. IGRP براي تعيين فاصله بين مسيريابها از برداري شامل چند پارامتر استفاده ميكند، اين پارامترها عبارتند از تأخير موجود (delay)، پهناي باند مسير (BW)، قابليت اعتمادي كه اين مسير وجود دارد (reliability) مقدار بار (load) كه روي مسير قرار داد. هم چنين براي هر يك از اين پارامترها ميتوان وزني تعيين كرد كه اهميت آن بيشتر از بقيه گردد. نكته قابل ذكر ديگر اينكه هر يك از پارامترهاي فوق ميتوانند در بازة وسيعي تغيير كنند، مثلاً Bw ميتواند از 1200 bps تا 10 giga bps تغيير كند و اين نكته، IGRP را براي شبكههايي كه مشخصات ساختاري آنها تغييرات سريع ندارند مناسب مينمايد.
براي انعطاف پذيري بيشتر، IGRP امكان ارسال داده از چند مسير (multipath routing) را فراهم ميكند. مثلاً اگر يك مسير 3 برابر بهتر از مسير ديگر باشد (به خاطر اينكه طول آن بر اساس پارامترهاي ذكر شده ، طول ديگري به دست آمده ) اغلب دادهها از خط اولي فرستاده ميشوند، ضمن اينكه اگر يكي از اين خطها خراب شود امكان سوئيچ كردن به خطهاي ديگر وجود دارد. اما اين نكته را به خاطر داشته باشيد كه در multipath routing از بين مسيرهاي موجود تنها آنهايي استفاده ميشوند كه طول آنها در محدودة شخصي از بهترين طولهاي موجود باشد.
ويژگيهاي پايداري در IGRP:
IGRP ويژگيهايي دارد كه براي افزايش پايداري و كارايي آن طراحي شده اند. اين ويژگيها عبارتند از:
Poison-reverse update , split Horizon , Hold-down
Hold-down از فرستادن پيغام نامناسب update كه تثبيت دوبارة يك مسير مشكل دار را در حالي كه واقعاً هنوز آن مسير خراب است – به بقيه مسيريابها اطلاع ميدهد جلوگيري نمايد. وقتي يك مسيرياب خراب شود. مسير يابهاي همسايه از نرسيدن منظم پيغامهاي update متوجه ميشوند كه اين مسيرياب از مسير خارج شده است. سپس مسيرهاي جديد محاسبه شده و پيغامهاي مناسب براي آگاهي دان بقيه شبكه از وضعيت جديد به مسيريابهاي ديگر فرستاده ميشود. اين عمل موجي از پيغامهاي update را ايجاد ميكند كه در شبكه منتشر ميشوند. اين پيغامها به طور آني به هر نقطه شبكه نميرسند، بنابراين ممكن است مسير يابهايي كه هنوز اين پيغام به آنها نرسيده (و طبيعتاً مسير مذكور را سالم فرض ميكنند ) پيغامهايي ناشي از سالم بودن مسير مذكور به مسير يابي بفرستند كه قبلاً از خرابي مسير، آگاه شده بود، در اين حالت مسيرياب آخري اطلاعات نادرستي از وضعيت مسيرهاي شبكه خواهد داشت.
Hold down به مسيريابها ميگويد كه از هر تغييري كه در بازه اي از زمان در مسيرها واقع ميشودصرف نظر كنند، زمان hold down معمولاً طوري در نظر گرفته ميشود كه بزرگتر از زمان لازم براي update شدن كل شبكه – پس از وقوع تغييري در وضعيت مسيرها – باشد.
Split Horizon از اين مطلب ناشي ميشود كه هرگز مفيد نيست اطلاعات مربوط به يك مسير از طريق همان مسير به مسيريابهاي ديگر فرستاده شود به شكل زير نگاه كنيد، مسيرياب اولي (R1) به شبكة Aوصل است. در اين وضعيت اصلاً ضروري نيست كه R2 اطلاعات مربوط به اين مسير (مسير بين R1 و شبكه A) را در پيغامهاي update خود، به خود R1 بفرستد چون R1 به شبكه A نزديك تر است مثلاً فرض كنيد به هر دليلي اتصال R1 با A قطع شود در اين صورت R2 همچنان در پيغامهاي update خود به R1 خبر سالم بودن مسير مزبور را ميدهد حال اگر R1 هوشمند نباشد ممكن است يك LOOP حاصل شود يعني R1 و R2 مرتباً به يكديگر اطلاع دهند كه مسير سالم است در حالي كه واقعاً مسير، خراب شده است. گر چه hold down هم از ايجاد چنين وضعيتي جلوگيري ميكند ولي split Horizon مكانيزم اضافه اي براي ايجاد پايداري است.
Split Horizon براي جلوگيري از ايجاد يك LOOP بين دو مسيرياب همسايه بود ولي poison_reverse update براي شكستن loopهاي مسيريابي بزرگتر لازم است. از آن جا كه افزايش طول مسيرها عموماً باعث ايجاد loopهاي مسيريابي ميشود، posion_reverse update مكانيزميبوجود ميآورد كه اگر طول يك مسير از حدي افزايش يافت، آن مسير را در وضعيت hold down قرار دهد.
زمان سنجي در IGRP
IGRP حاوي مجموعه اي از زمان سنجها و متغيرهايي است كه بازههاي زماني مورد نياز را نگهداري ميكنند اين زمان سنجيها شامل flush timer , hold_time priod , invalid timer , update timer ميباشند.
Update timer مشخص ميكند كه پيغامهاي update با چه فركانسي ارسال گردند مقدار پيش فرض اين زمان 3 برابر update timer است hold_timer متغيري است كه مدت زمان hold down را معين ميكند. مقدار پيش فرض اين متغير در IGRP 3 برابر update time به اضافه sec 15 ميباشد.
Flush time تعيين ميكند چه مدت زماني بايد بگذرد قبل از اينكه يك مسير از routing table حذف گردد، مقدار پيش فرض اين زمان در IGRP،7 برابر زمان update است.
پروتكل Enhanced IGRP:
En.IGRP تكامل يافته جد خود IGRP ميباشد. اين تكامل از تغييرات ايجاد شده در شبكهها و لزوم ايجاد شبكههاي وسيع و مختلف ناشي گرديد. En.IGRP تواناييهاي پروتكلهاي link-state را در پرتوكلهاي distance vector جمع آوري ميكند. اين پروتكل شامل الگوريتميبه نام Diffusing-update (DUAL) است. En.IGRP سازگاري با مسير يابهاي IGRP را حفظ ميكند. يك مكانيزم خودكار اجازه ميدهد اطلاعات مسيرها در IGRP به اطلاعات در En.IGRP تبديل گردد و بالعكس. در اين قسمت به بررسي اصول پايه و خصوصيات كلي En.IGRP ميپردازيم.
تواناييها و خصوصيات En.IRGP :
تواناييهاي كليدي كه En.IGRP را شاخص ميكند عبارتند از: همگرايي سريع، پشتيباني از VLSM، پشتيباني از partial update و پشتيباني از پرتوكلهايي با چندين لاية شبكه.
يكي مسيرياب كه En. IGRP را اجرا ميكند، routing table تمام همسايههاي خود را نيز ذخيره ميكند، طوري كه خيلي سريع ميتواند مسيرهاي جديدي را جايگزين مسير معيوب نمايد. اگر مسير مناسبي يافت نشود، En.IGRP از همسايههاي خود سوال ميكند تا مسير جايگزين را بيابد و اين سؤالها پخش ميشوند تا مسير جايگزين، يافت شود. En. IGRP به طور متناوب پيغامهاي update را نميفرستد در عوض هر گاه طول يك مسير تغيير يافت updateهاي جزيي (partial update) ارسال ميكند. انتشار update.هاي جزيي به طور اتوماتيك و به گونه اي انجام ميشود كه فقط مسيريابهايي كه به اين اطلاعات نياز دارند update گردند. به دليل همين قابليت، En. IGRP پهناي باند خيلي كمتري نسبت به IGRP اشغال ميكند.
براي ايجاد بازدهي بيشتر در عمليات مسيريابي، En. IGRP از 4 تكنولوژي كليدي سود ميبرد كه آن را متمايز از ساير پروتوكلها نموده است:
Neighbor diocovery/recovery : اين قابليت توسط مسيرياب استفاده ميشود تا به طور فعال و دائمي از وضعيت مسيريابها در شبكههايي كه مستقيماً به آن وصل هستند آگاه گردد. براي اين منظور مسيرياب به صورت متناوب packetهاي hello براي هم ارسال ميكنند. تا زماني كه دو مسيرياب از همديگر hello packet دريافت ميكنند از سلامت يكديگر آگاهند.
Reliable Transport protocol: RIP مسئول تحويل مطمئن و منظم packetهاي En. I. به همسايهها است. RIP ارسال packetهاي multicast , unicast را پشتيباني ميكند. براي اينكه بازدهي بالا باشد. فقط تحويل مطمئن packetهاي خالص تضمين ميگردد. در برخي شبكهها لازم نيست برخي از packetها به صورت reliable به همه فرستاده شوند. بنابراين در هنگام لزوم، فرستنده يك hello p. به گيرنده ميفرستد تا به او اطلاع دهد packetهاي ارسالي به ack. نياز دارند.
DUAL finite _ state machine: DUAL الگوريتميبراي محاسبه مسير مناسب بر مبناي اطلاعاتي است كه همسايهها ارسال كرده اند. DUAL اطلاعات مربوط به فاصله مسيريابها را براي انتخاب مسيري مطمئن و بدون LOOP استفاده ميكند و ضمناً يك feasible successor براي جايگزين نمودن در routing table انتخاب ميكند. feasible succ. در واقع يكي از مسيريابهاي مجاور است كه در كم فاصله ترين مسير تا مقصد قرار دارد.
Protocol-dependent modules: مسئول برآورده كردن نيازهاي خاص پروتوكل لايه شبكه ميباشند، به عنوان مثال مدول IP.En. IGRP مسئوليت فرستادن و دريافت نمودن packetهاي En. IGRP كه در IP جايگزين شده اند را بر عهده دارد. هم چنين مسئول تجزيه كردن packetهاي En. IGRP و استخراج اطلاعات لازم براي DUAL از آنها ميباشد.
ابزارهاي مسيريابي En. IGRP:
در اين جا به بررسي سه مفهوم كه در مسيريابي توسط اين پروتكل استفاده ميشوند ميپردازيم:
Neighbor Tables:
وقتي يكي از مسيريابها همسايه جديدي را مييابد آدرس و رابطهاي آن را در رديفي از جدولي به نام neighbor table ذخيره ميكند. سپس يك hello p. ارسال كرده و hold time را برقرار ميكند. اگر hello p. در مدت زمان hold time دريافت نشد به DUAL تغيير وضعيت توپولوژي اطلاع داده ميشود. neighbor table همچنين شامل اطلاعات لازم براي پروتكل RTP است. از sequence Num. براي تشخيص اينكه كدام يك از packetها acknowledge شده اند استفاده ميگردد. آخرين sequence Number دريافت شده ذخيره ميگردد تا packetهاي خارج از نوبت شناسايي گردند. هم چنين يك transmission List، packetها را براي ارسال مجدد احتمالي در يك صف ذخيره ميكند. در neighbor table زمان سنجهايي وجود دارند كه زمان رفت و برگشت packetها را محاسبه ميكنند تا بتوانند بازه زماني دلخواه براي ارسال مجدد را به مؤثرترين شكل انتخاب نمايند.
Topology Tables: شامل تمام destinationهايي كه توسط مسيريابهاي مجاور معرفي شده اند، همراه با آدرس آنها و ليست همسايههايي كه اين destinationها را معرفي كرده اند و ركوردي از فاصلههايي كه هر مسيرياب مجاور با اين dest. دارد ميباشد. حال فاصله اي كه براي هر dest. حساب شده و به بقيه مسيريابها ارسال ميشود مجموع بهترين فاصله اي كه در Topology Table براي آن dest. وجود دارد و فاصله تا بهترين مسيرياب مجاور (يعني مسيريابي كه كمترين فاصله را با dest. مورد نظر گزارش كرده است ) ميباشد.
Route States: همان طور كه پيشتر ذكر شد feasible successor يكي از مسيريابهاي مجاور است كه كم فاصله ترين فاصله را تا dest. دارد در حالي كه قسمتي از يك loop مسيريابي نيز نيست و مسيرياب اصلي، packetهايي را كه بايد به dest. برسند به اين مسيرياب forward ميكند.
در Topology Table هر dest. ثبت شده در يكي از دو حالت (state) فعال (active) و يا غير فعال (passive) ميباشد. اگر براي يك dest. همواره يك feasible successor موجود باشد اين dest. همواره در وضعيت غير فعال ميماند و recomputation براي آن انجام نميگردد اگر براي يك dest. ، feasible successor يافت نشود از مسيريابهاي مجاور، سئوال ميشود (Query Packet). مسيريابهاي مجاور، يا پاسخ ميدهند (Reply Packet) كه يك feasible succ. براي اين dest. دارند و يا پاسخ ميدهند كه انها نيز در recomputation شركت ميكنند (يعني به همين ترتيب از مسيريابهاي مجاور خود سؤال ميكنند). تا وقتي كه يك dest. در وضعيت فعال است، مسيرياب نميتواند اطلاعات مربوط به آن را در routing table تغيير دهد.
پس از اينكه از تمام مسيريابهاي مجاور پاسخ رسيد (مبني بر اينكه يا خود feasible succ. را يافته اند يا از طريق مسيريابهاي ديگر) آن گاه، dest. به وضعيت غير فعال بر ميگردد و مسيرياب از اطلاعات به دست آمده، مسير جايگزين مناسب را براي اين dest. انتخاب ميكند.
انواع packetهاي En. IGRP:
En. IGRP از packetهاي زير استفاده ميكند:
hello packet، Replay packet , Query packet , update packet. , acknowledgment
Hello packet يك packet از نوع multicast ميباشد (يعني براي مسيرياب خاصي ارسال نميشود) و احتياجي نيز به ack. ندارد.
acknowledgment packet براي مشخص كردن وضعيت قابليت دسترسي به مقصدها استفاده ميشود. وقتي يك همسايه جديد كشف ميگردد، packetهاي update * به صورت uncast * براي آن ارسال ميگردند تا مسيرياب جديد بتواند Topology table خود را بسازد. در بقيه حالات مانند تغيير فاصله يك مسير، packetهاي update به صورت multicast براي همه مسيريابهاي مجاور ارسال ميگردند. ارسال packetهاي update همواره reliable است (يعني به ack. نياز دارند). Query packet و Reply packet همانطور كه ذكر شد وقتي استفاده ميشوند كه يك dest.، feasible succ. نداشته باشد. Query packets همواره multicast ميباشند. replay p. در جواب Query p. فرستاده ميشود تا به مسير سؤال كننده اطلاع دهد كه feasible s. پيدا شده است واضح است كه Reply بايد به صورت unicast بوده و همانند Query، reliable ارسال گردد.
پروتوكل Open shortest path First (OSPF)
OSPF نيز همانند IGRP در دهه 80 و به اين دليل كه RIP ديگر نميتوانست جوابگوي شبكههاي ناهمگون و بزرگي باشد به وجود آمد. اين پروتوكل براي مسيريابي از الگوريتمي به نام SPF استفاده ميكند.
OSPF دو خاصيت اوليه دارد، اول اينكه OPEN است يعني مشخصات آن در دسترس همگان قرار دارد (RFC 1247) خاصيت اساسي دوم اين است كه اين پروتوكل هم پايه الگوريتم SPF كه گاهي به نام Dijkstra Algoritin نيز ناميده ميشود طرح شده است. OSPF يكي از پروتكلهاي link state است (برخلاف RIP وIGRP كهdistance vector هستند ) مسيريابهايي كه اين پروتوكل را اجرا ميكنند. از الگوريتم SPF براي يافتن كم فاصله ترين مسير تا نود بعدي استفاده مينمايند.
برخلاف RIP، OSPF ميتواند داخل يك سلسله مراتب از شبكهها كار كند. بزرگترين شيء داخل يك سلسله مراتب يك سيستم مستقل (AS) ميباشد. AS مجموعه اي از شبكهها است كه تحت مديريت مشتركي كار ميكنند و استراتژي مسيريابي يكساني دارند. OSPF يكي از پروتوكلهاي IGP به شمار ميآيد، گرچه توانايي ارسال و دريافت Data از ASهاي ديگر را نيز دارد. يك AS را ميتوان به مجموعه اي از نواحي (areas) تقسيم نمود كه هر ناحيه شامل شبكههاي مجاور هم و hostهاي متصل به آنهاست. مسيريابهاي با چندين interface ميتوانند در چند ناحيه شركت داشته باشند. چنين مسيريابيهايي كه مسيريابهاي كناري ناحيه (arear border router) ناميده ميشوند databaseهاي توپولوژيكي مجزايي براي هر ناحيه ذخيره كرده اند.
databaseهاي توپولوژيكي اساساً يك شماي كلي از شبكهها و ارتباط آنها با مسيريابها هستند و حاوي اطلاعاتي ميباشند كه از تمام مسيريابهاي آن ناحيه رسيده است. از آنجا كه مسيريابهاي داخل يك ناحيه از اطلاعات مشتركي استفاده ميكنند databaseهاي توپولوژيكي يكساني نيز دارند. توپولوژيكي يك ناحيه از ديد افراد خارج ناحيه مخفي است. با تبديل AS به نواحي مختلف، OSPF بار ترافيكي كمتري ايجاد خواهد كرد. تقسيم بندي AS به نواحي، دو نوع مختلف مسيريابي را بسته به اينكه source و destination داخل يك ناحيه باشند يا نه، ايجاد ميكند.
مجموعه مسيريابهاي كناري ناحيهها كه OSPF backbone ناميده ميشوند مسؤل توزيع اطلاعات مسيريابي بين نواحي مختلف ميباشند. شكل صفحه بعد مثالي از يك شبكه بندي با نواحي مختلف را نشان ميدهد. در شكل، مسيريابهاي 12 , 11, 10 ,6 , 5, 4 backbone را تشكيل ميدهند. اگر H1 host در ناحيه 3 بخواهد يك packet براي H2 بفرستد، اين packet ابتدا به R13 فرستاده ميشود، سپس به R11 , R12 forward ميگردد. R11 از طريق backbone، packet را به R10 ميفرستد و سپس اين packet از طريق دو مسيرياب داخل ناحيه اي يعني R9 و R7 به H2 ميرسند. backbone نيز خودش يك ناحيه OSPF است، بنابراين همه مسيريابهاي داخلي backbone روالها و الگوريتمهاي يكساني براي نگهداري اطلاعات مسيريابي به كار ميبرند. توپولوژي backbone از ديد مسيريابهاي داخل ناحيه اي مخفي است، همان طور كه توپولوژي ناحيهها از ديد backbone مخفي است.
الگوريتم SPF:
الگوريتم SPF پاية عملياتي است كه OSPF انجام ميدهد. هنگامي كه مسيرياب SPF شروع به كار ميكند ابتدا ساختارهاي اطلاعاتي مربوط به پروتوكلهاي مسيريابي را مقدار دهي اوليه مينمايد و سپس منتظر ميماند تا پروتكلهاي لايههاي پايين تر تعيين نمايند كه آيا interface وجود دارد يا نه ؟ پس از اينكه مسيرياب اطمينان حاصل نمود كه ارتباط او برقرار است از پروتوكل OSPF Hello براي شناسايي مسيريابهاي مجاور استفاده ميكند. مسيرياب به همسايههاي خود packetهاي Hello را ارسال ميكند و سپس منتظر دريافت پاسخ ميماند، علاوه بر شناسايي مسيريابهاي مجاور packetهاي Hello كمك ميكنند تا يك مسيرياب از سالم بودن و زنده بودن مسيريابهاي مجاور خود آگاه گردد. هر مسيرياب به طور متناوب packetهايي را به همسايههاي خود ارسال ميكند تا از وضعيت آنها اطلاع حاصل نمايد. بدن وسيله مسيريابهاي خراب سريعاً شناسايي شده و توپولوژي شبكه به طور مناسب تغيير مينمايد. از روي اطلاعاتي كه هر مسيرياب از مسيريابهاي ديگر حاصل ميكند يك درخت shortest-path ايجاد مينمايد كه خودش ريشه آن درخت است و با استفاده از اين درخت، routing table به دست ميآيد.
فرمت packetهاي OSPF:
همه packetهاي OSPF با يك header 24 بايتي آغاز ميشوند كه در صفحه بعد نشان داده شده است. به طور خلاصه هر يك از فيلدهاي اين header را توضيح خواهيم داد:
Vaniable 8 2 2 4 4 2 1 1
Data Authentication Authentication type Checksum Area ID Router ID Packet Length Type Version Number
version number: تعيين ميكند كه با كدام نسخه OSPF سر و كار داريم.
Type: نوع packetها را تعيين ميكند كه ميتواند يكي از انواع زير باشد:
- Hello : براي آغاز و حفظ ارتباط بين مسيريابهاي مجاور است.
- Database Description: محتويات database توپولوژيكي را توصيف ميكند. اين نوع پيامها زماني رد و بدل ميگردد كه يك ارتباط جديد آغاز شود.
- Link state pequest: قسمتهايي از database توپولوژيكي را از مسيريابهاي همسايه درخواست ميكند. اين پيغامها زماني رد و بدل ميشوند كه يك مسيرياب بفهمد (از روي محتويات packetهاي. Database Description) كه قسمتي از محتويات databast او نامعتبد شده است.
- Link state update: به packetهاي Link state req. پاسخ ميدهد. اين پيغامها همچنين براي توزيع منظم اطلاعات Link state استفاده ميشوند.
- Link state Acknowledgment:packetهايLink state update را ack. ميكنند.
- Packet Length: مشخص ميكند كه طول packet (شامل header) چقدر است.
- Router ID: مشخص ميكند كه packet از چه مبدأي فرستاده شده است.
- Area ID: ناحيه اي كه packet به آن تعلق دارد را مشخص ميكند.
- Checksum: مكانيزم معروف براي چك كردن خطاهايي است كه هنگام ارسال دادهها ممكن است حاصل گردد.
- Authentication type: نوع مكانيزم تصديق را تعيين مينمايد.
- Authentication: اطلاعات مربوط به تصديق را در بردارد.
- Data: شامل اطلاعات لايههاي بالاتر است كه در packet جاسازي شده اند.
(RIP) Routing Information Protocol:
RIP يكي از پروتوكلهاي distance vector است كه تعداد hopها را به عنوان معياري براي محاسبه طول يك مسير استفاده ميكنند. RIP نيز يكي از پروتوكلهاي IGP است يعني عمليات مسيريابي را داخل يك سيستم مستقل واحد انجام ميدهد، در حالي كه پروتوكلهاي EGP مانند Border Gateway p. بين سيستمهاي مستقل مختلف كار مسيريابي را انجام ميدهند. آخرين بهبودهايي كه در RIP صورت گرفت نسخه اي از آن را با نام RIP2 ارايه داد كه باعث ميشد اطلاعات بيشتري در packetها جا داده شوند و ضمناً يك مكانيزم تصديق ساده را نيز اضافه نمود. RFC 1058 (سال 1988) اولين نسخه RIP را توضيح ميدهد. در اين قسمت تواناييهاي اساسي و خصوصيات ويژه RIP را به طور خلاصه بيان ميكنيم:
RIP پيغامهاي routing update را در فاصلههاي زماني منظم و هنگاميكه توپولوژي شبكه تغيير ميكند ارسال مينمايد. مسيريابهاي RIP فقط بهترين مسير تا مقصد (مسير با كمترين فاصله) را نگاه ميدارند. پس از update كردن routing table، مسيرياب فوراً به بقيه، پيغامهاي update ميفرستد تا آنها را از تغيير وضعيت ايجاد شده در شبكه آگاه كند. پيغامهاي update اينچنين (كه تغييري در شبكه را به بقيه اطلاع ميدهند) مستقل از پيغامهاي update كه مسيريابها در فاصلههاي زماني منظم ارسال ميكنند ميباشد.
RIP تنها يك معيار براي محاسبه طول يك مسير دارد و آن هم شمارش تعداد hopها است. RIP از ايجاد LOOP مسيريابي بوسيله محدوديت گذاشتن روي تعداد hopهايي كه ميتوانند بين source و dest. وجود داشته باشند جلوگيري ميكند. ماكزيمم تعداد hop در يك مسير معتبر 15 تا ميتواند باشد، اگر يك مسيرياب پيغام update مبني بر ورود يك مسيرياب يا host جديد دريافت كند و اين شيء جديد باعث شود كه تعداد hopها در مسيري به 16 برسد آنگاه مقصد اين مسير از طرف مسيرياب، غير قابل دسترس اعلام ميگردد.
براي اينكه تغييرات ايجاد شده در توپولوژي شبكه هر چه سريع تر به همه اطلاع داده شود RIP يك سري قابليتهايي دارد كه در اغلب پروتوكلهاي ديگر نيز موجودند. به عنوان مثال RIP داراي مكانيزم hold down , spilit horison براي جلوگيري از گسترش اطلاعات نادرست مسيريابي است علاوه بر اين، محدوديت hop-count كه RIP قرار ميدهد نيز از گسترش نامحدوده loopهاي مسيريابي جلوگيري ميكند.
RIP براي تنظيم كارايي خود از زمان سنجهاي زيادي بهره ميبرد. شامل routing up. t. . route flush timer , route timeout , routing update timer
فاصله زماني بين پيغامهاي update را تعيين ميكند. معمولاً اين زمان، 30sec باضافه زماني كه به صورت تصادفي انتخاب ميشود – تا از callision جلوگيري كند – ميباشد. هر رديف routing table يك route-timeout مخصوص به خود دارد، هنگامي كه اين زمان سپري ميگردد مسير مربوطه invalid محسوب ميگردد ولي هم چنان در routing table باقي ميماند تا وقتي كه route flush timer منقضي گردد و مسير، از routing table حذف گردد.
فرمت packet در RIP:
حال به طور خلاصه اين فيلدها را معرفي ميكنيم:
Command: تعيين ميكند كه آيا packet ارسالي Request است يا Response Request از يك مسيرياب ميخواهد كه تمام يا قسمتي از routing table خود راارسال نمايد. Response ميتواند. routing updateهاي منظم باشد و يا جوابي به Request. چندين RIP packet استفاده ميشوند تا اطلاعات را از routing tableهاي بزرگ انتقال دهند.
Version number: نسخه پروتوكل را تعيين مينمايد.
Zero : استفاده اي نميگردد.
Address. Family ID (AFI): RIP طوري طراحي شده است كه بتواند اطلاعات مسيريابي را براي پروتوكلهاي مختلف حمل نمايد. هر پروتوكل يك Add. Family ID دارد كه نوع آدرس دهي استفاده شده را توضيح ميدهد. مثلاً AFI براي IP برابر 2 است.
Address: آدرس IP مربوط به host كه packet از آن جا ارسال شده است.
Metric: مشخص ميكند كه تا رسيدن به مقصد چند hop طي ميشود. اين مقدار همان طور كه قبلاً ذكر شد بين 1 و 15 است.
همان طور كه ذكر كرديم نسخه بهبود يافته RIP، RIP2 نام گرفت در اينجا نگاه مختصري به فرمت packetهاي اين پروتوكل نيز مياندازيم:
Mettric Next Hop Subnet Mark IP Address Route Tag Address Format ID Unused Version Command
فيلدهاي command و version مانند پروتكل RIP ميباشند.
unused: مقدار اين فيلدها صفر قرار داده ميشود.
AFI: مانند قبل نوع پروتكل استفاده شده را تعيين مينمايد. اگر فيلد AFI در اولين packet وارد شده از پيغام، برابر OFFFFH باشد، بقيه packetهاي وارد شده اطلاعات مربوط به Authentication را در بر ميگيرند.
Route Tag: روشي را فراهم ميكند كه بتوان بين مسيرهاي داخلي (كه توسط RIP شناسايي شده اند ) و مسيرهاي داخلي (كه توسط بقيه پروتوكلها شناسايي شده اند) تمايز قايل شد.
IP Address: دقيقاً همان كار فيلد Address در RIP را انجام ميدهد.
Subnet Mask: اگر اين فيلد صفر باشد يعني mask نبايد انجام شود.
Next Hop : آدرس IP مربوط به hop بعدي كه packetها بايد به آن جا forward شوند را در بر دارد.
Metric : اين فيلد نيز مانند فيلد مشابه خود در RIP كار ميكند.
Exterior Gateway Protocol:
EGP پروتوكلي است كه قابليت دستيابي به چندين زمينه را ميدهد و در اينترنت استفاده ميشود. هنگاميكه اولين EGP. در سطح جهاني مقبوليت يافت. اهداف و كارهاي ارزشمندي انجام ميداد. اما متأسفانه با رشد و پيچيده شدن اينترنت ضعفهاي EGP بيشتر از پيش آشكار شد. به همين علت EGPها ديگر امروزه كنار گذاشته شده اند وBorder Gateway Protocol (BGP)ها جانشين آنها شده اند.
تكنولوژي:
EGP، ابتدائاً براي برقراري ارتباط و دسترسي از و به ARPANET طراحي شده بود. اطلاعات از مرجعهاي جداگانه در دامنههاي مختلف اينترنتي عبور ميكردند از طريق Routerهاي مركزي كه اطلاعات را از طريق Backbone ميفرستادند تا به شبكه مورد نظر برسند. در يك سيستم (AS) ديگر مثل شكل زير:
اگر EGP يك پروتكل پوياست ولي طرح ساده اي دارد. هيچ متريكي ندارد و در نتيجه تصميمات هوشمندانه نميتواند بگيرد. EGP معين ميكند كه شبكههاي معيني از طريق مسيرهاي معيني قابل دسترسي هستند.
EGP سه كاركرد اصلي دارد: ابتدا مجموعه اي از همسايهها درست ميكند. اين همسايهها، Routerهايي هستند كه يك EGP Router ميخواهد اطلاعات قابليت دسترسي را با آنها تقسيم كند.
سپس از همسايگانش ميپرسد كه آيا حاضر هستند و در نهايت، پيامهايي براي update كردن اطلاعات ميفرستد.
Packet Format
Variable 2 2 2 1 1 1 1
Data Seq. no As No. Cheeksu Statas Code Type Version
fieldها عبارتند از:
Version: EGP. VER. فعلي را تعيين ميكند و گيرنده آن را نگاه ميكند كه ببيند بين گيرنده و فرستنده تطابق وجود دارد يا نه.
Type : نوع پيام را مشخص ميكند و 5 نوع پيام متفاوت داريم:
1- Neighbor Acquisition: درست كردن همسايه
2- Neighbor Rachability : تعيين ميكند كه آيا همسايهها در دسترس هستند يا نه.
3- poll : در دسترس بودن يك شبكه خاص را تعيين ميكند.
4- Routing updat
5-Error
Code: بين پيامها تمايز ايجاد ميكند.
Statub: حاوي اطلاعات حالت بر اساس پيغامهاست.
Checksum: براي يافتن خطاهاي احتمالي بكار ميرود، كه ممكن است در انتقال رخ دهد.
AS Number: مشخص ميكند كه AS به كدام مسيرياب فرستنده تعلق دارد.
Seq. Number: به دو EGP اجازه ميدهد كه تبادل اطلاعات انجام دهند.
نوع پيغام:
1- Neighbor Aquisition: يك بازة زماني Hlello و يك بازة زماني poll دارد. بازة Hello دوره زماني چك كردن اينكه آيا همسايهها حاضرند را نشان ميدهد و دوره زماني poll، فركانس update كردن مسيريابي را نشان ميدهد.
2- Neighbor Reachability: اين پيغام هيچ چيز اضافي به Header اضافه نميكند. اين پيغام نشان ميدهد كه پيغام Hello است يا poll است. اين كار در كاهش ترافيك شبكه بسيار مؤثر خواهد بود.
3- poll: براي فراهم كردن مسير مناسب بين سيستمها، EGP بايد موقعيت Hostها را بداند. اين پيغام به EGP اجازه ميدهد كه اطلاعات قابليت دسترسي دربارة شبكههايي كه اين hostها در آنها قرار دارند، بدست آورد.
4- routing Update: راهي براي EGP فراهم ميكند كه موقعيت شبكهها را تعيين كند. همچنين فيلدهايي دارد كه تعداد Gotewayهاي داخلي ظاهر شده در اين پيام را نشان ميدهد. همچنين تعداد Gatewayهاي خارجي IP آدرس، شبكههايي كه قابليت دسترسي در آنها سنجيده ميشود و 000
5- Error :
Errorهاي متداول عبارتند از: فرمت اشتباه براي EGP header، فرمت اشتباه براي ديتا، و نبودن اطلاعات براي سنجيدن قابليت دسترسي. پيغام اشتباه در 32 بيت اول EGP header
BGP :
(Border Gateway Protocol) BGP همانگونه كه در RFCهاي 1163 و 1267 تعيين شده است. به ما اجازه ميدهد كه يك سيستم روتينگ تنظيم كنيم كه بصورت اتوماتيك، تبادل اطلاعات بين سيستمهاي مستقل را بدون ايجاد حلقه تضمين كند.
پياده سازي BGPهاي Cisco:
در BGP هر مسير تشكيل شده است از يك شمارة شبكه، يك ليست از سيستمهاي مستقل كه اطلاعات مربوط به قابليت دسترسي را بين ساير سيستمهاي BGP مبادله كند. اين اطلاعات براي اين مفيد هستند كه ميتوانيم يك گراف از نحوة اتصالات شبكه بدست آورديم كه بوسيلة آن ميتوانيم حلقهها را از بين ببريم و سياست، سطح بندي را اعمال كنيم.
BGP چگونه مسيرها را انتخاب ميكند ؟
يك router كه IOS Release 12 Cisco را اجرا ميكند هيچ مسير IGBP را انتخاب نميكند مگر دو شرط زير برآورده شوند:
1- router يك مسير قابل دسترسي به router بعدي دارد.
2- Router يك پيغام synchronzation از طريق IGP دريافت كرده باشد (مگر اينكه synchronzation غير فعال شده باشد.)
BGP بر پايه مقادير و ارزش مشخصات آن تصميم گيري ميكند. وقتيكه چند مسير كه به يك مقصد ميرسند را ببيند، BGP بهترين مسير را از نظر ترافيك به مقصد انتخاب ميكند. الگوريتمي كه در زير ميآيد تعيين ميكند كه BGP چگونه مسير انتخاب ميكند.
1- اگر hop بعدي قابل دسترسي نيست آنرا ديگر در نظر نميگيرد. به همين دليل است كه داشتن يك مسير IGP به hop بعدي مهم است.
2- اگر مسير داخلي است. Synchrornization فعال ميشود و اگر مسير در IGP نيست آنرا در نظر نميگيرد.
3- مسير با بزرگترين وزن را انتخاب ميكند.
4- اگر مسيرها، وزنهاي يكسان دارند، مسير براي مختصات و ارجحيتهاي مكان بيشتر را ترجيح ميدهد.
5- اگر مشخصات مكاني يكسان داشتند، مسيري را كه از router محلي خارج شده است انتخاب ميكند.
6- اگر چنين مسيري پيدا نشد، مسيري كه كوتاهترين راه به سيستمهاي مستقيم ديگر را دارد انتخاب ميكند.
7- اگر اين مسيرها هم يكسان بودند، سير با كوچكترين كد مبدأ را انتخاب ميكند. IGP
8- اگر كدها يكي بودند بودند مسير با كمترين مشخصات
متريك (Multi Exit Discriminator) med را انتخاب ميكند.
9- يك مسير خارجي را بر يك مسير داخلي ترجيح ميدهد.
10- مسيري را انتخاب ميكند كه از طريق نزديكترين همسايه IGP قابل دسترسي باشد. اين بدان معناست كه BGP كوتاهترين مسير داخلي را بين سيستمهاي مستقل براي رسيدن به مقصد انتخاب ميكند.
11- اگر شرايط زير برقرار باشند، اين مسير را در جدول IP مسيريابي قرار ميدهد:
بهترين مسير و اين مسير هر دو خارجي ميباشند.
هر دو از يك همسايه گذشته باشند.
12- اگر سيستم چند مسيره فعال شده باشد، مسير با كمترين IP را انتخاب ميكند.
عمليات Configuration يك BGP
A- كارهاي مقدماتي:
(I) فعال كردن مسيريابي BGP: براي اين كار بايد يك فرآيند مسيريابي بوسيلة مراحل زير انجام شود.
قدم اول: يك عمليات فعال كردن مسيريابي را انجام دهيم كه ما را در حالت configuration قرار دهد.
قدم دوم: يك شبكه را به عنوان يك شبكه محلي Flag بدهيم و آنرا در جدول BGP قرار دهيم.
(II) Configuration همسايههاي BGP:
مانند ساير EGPها، BGP هم بايد كاملاً روابط خود با همسايگانش را بفهمد. BGP به دو نوع همسايه سرويس ميدهد. همسايههاي داخلي و خارجي. همسايههاي داخلي با خود BGP درون يك سيستم هستند و همسايههاي خارجي در سيستمهاي متفاوتي هستند. معمولاً همسايههاي خارجي، مجاور هم هستند و در يك Subnet شريك هستند در صورتيكه همسايههاي داخلي در هر جايي از سيستم ميتوانند باشند.
(III) Reset كردن اتصالات BGP:
هنگاميكه دو تا router مجزا را به عنوان همسايههاي BGP مشخص كرده ايم، آنها يك اتصال BGP تشكيل خواهند داد و اطلاعات مسيريابي را مبادله ميكنند. حال اگر بخواهيم يكي از مشخصات BGP را عوض كنيم. مثل وزن، version 0000 بايد اتصالات Reset شوند تا تغييرات لحاظ شوند. بنابراين بايد در Exec. Mode يكي از اتصالات خاص، كه ميخواهيم تغييرات داده شده اثر داده شوند، Reset را اعمال كنيم.
(IV) اطلاع يافتن از تغييرات در وضعيت همسايگان:
ميتوان تعيين كرد كه سيستم هنگاميكه در وضعيت همسايهها تغييري حاصل ميشود يك پيغام دريافت كند. اين پيغام ميتواند در حل مشكلات اتصالات شبكه مفيد باشد. همچنين براي اندازه گيري پايداري شبكه مفيد است.
(V) تنظيم كردن روابط بين BGP و IGP:
اگر سيستم مورد نظر ما يك سري اطلاعات را كه از يك سيستم ديگر آمده عبور دهد تا به سيستم ديگري برسد. لازم است كه سيستم ما در مورد مسيرهايي كه در اختيار ديگران قرار ميدهد، هماهنگي لازم داشته باشد. براي مثال اگر BGP مورد نظر بخواهيم يك مسير را قبل از اين كه تعبير routerها از طريق IGP چيزي راجع به آن بدانند در اختيار ديگران قرار دهد، BGP ، اطلاعاتي خواهد گرفت كه هنوز بقيه routerها قادر به مسير دهي براي آنها نيستند. براي رفع اين مشكل، BGP بايد صبر كند تا IGP اطلاعاتي مسيريابي را در سراسر سيستم پخش كند. اين باعث ميشود كه BGP با IGP سنكرون باشد در برخي موارد سنكرون كردن لازم نيست. مثلاً اگر بخواهيم كه اطلاعات مربوط به يك سيستم ديگر را عبور دهيم ميتوانيم سنكرون بودن را غير فعال كنيم. اين كار باعث سرعت كار BGP خواهد شد.
(VI) تنظيم فيلتر كردن مسيرهاي BGP بوسيله همسايه:
اگر بخواهيم اطلاعات مسيريابي كه router ميگيرد يا در اختيار ديگران قرار ميدهد. محدود كنيم، ميتوانيم مسيرهاي BGP را توسط همسايهها فيلتر كنيم. براي اين كار بايد يك ليست دستيابي تهيه كنيم و آنرا بكار ببريم.
(VII) غير فعال كردن پردازش Hop بعدي:
ميتوانيم router را بنحوي تنظيم كنيم كه پردازش براي hop بعدي غير فعال نشود. اين كار براي زمانيكه شبكههايي كه در آن مش نيست مفيد است مثل Frame Relay يا X.25 كه در آنها همسايههاي BGP ممكن است دسترسي مستقيم به تمام همسايههاي ديگر نداشته باشد براي انجام اين كار ميتوانيم دستور زير را اجرا كنيم:
Disable next-hop processing on BGP updated to a neighbour
انجام دستور فوق باعث ميشود كه دو ترنعلي خودش را به عنوان hop بعدي معرفي كند براي همساية مشخص نشده. اين كار براي محيط بدون مش مناسب است به دليل اينكه ميدانيم كه يك مسير وجود دارد كه از router فعلي به آدرس مورد نظر برود.
(VIII) تنظيم Version:
بصورت default ، BGP با Ver. شماره 4 كار ميكنند و در صورت لزوم ميتوان ver. كار را كم كرد.
(IX) تنظيم وزن شبكه:
وزن شبكه يكي از پارامترهايي است كه در انتخاب بهترين مسير مؤثر است. كه بايد در زمان راه اندازي براي هر شبكه يك مقدار وزن تعريف شود.
B – كارهاي پيشرفته:
(I) استفاده از نقشه مسير براي update كردن:
يك نقشه مسير را ميتوان هم براي updateهاي دروني و هم بيروني استفاده كرد. تنها مسيرهايي كه از نقشه مسير ميگذرند در updateها فرستاده يا گرفته ميشوند.
در روي updateها فرستاده يا گرفته ميشوند.
در روي updateهاي دروني، ما تطبيق بين سيستمهاي مستقل و ارتباطات را در نظر ميگيريم، در حاليكه در updateهاي بيروني، تطابق بين سيستمهاي مستقل و ارتباطات و شمارههاي شبكه را در نظر ميگيريم.
(III) Reset كردن BPG دقيقاً هنگاميكه اتصال از بين ميرود.
معمولاً هنگاميكه يك اتصال بين همسايههاي خارجي از بين ميرود يا قطع ميشود، كارهاي BGP سريعاً Reset نخواهند شد. اگر بخواهيم كه يك BGP، به محض اينكه يك رابطه قطع شد، Reset نشود بايد BGP را در Mode ريست كردن Automatic قرار دهيم.
(III) شكل دادن آدرسهاي تركيب شده:
مسيريابي بدون دسته بندي اجازه ميدهد كه مسيرهاي تركيبي بسازيم كه اندازة جدولهاي مسيريابي را كم كنيم.
يك آدرس تركيبي به جدول BGP اضافه خواهد شد اگر حداقل يك ورودي مخصوص ديگر در جدول وجود داشته باشد.
براي ساختن يك آدرس تركيبي در جدول مسيريابي يكي از اين كارها بايد انجام شود:
1- يك ورودي تركيبي در جدول مسيريابي ميسازيم.
2- يك تركيبي با AS-SET ميسازيم.
3- فقط خلاصة آدرسها را براي همه بفرستيم.
(IV) غير فعال كردن خلاصه كردن اتوماتيك شمارههاي شبكه:
در BGP، Ver.3 از يك BGP به يك Iap پخش ميشود فقط مسير شبكه در جدول BGP قرار ميگيرد. بصورت پيش فرض خلاصه كردن اتوماتيك انجام ميشود براي غير فعال كردن بايد دستوري Conf.Mode بدهيم.
(V) فيلتر كردن ارتباطات BGP:
BGP از طريق پخش اطلاعات مسيريابي، سياستهاي انتقال را كنترل ميكند. توزيع اطلاعات مسيريابي بر پايه سه اصل زير است:
- آدرس IP
- ارزش Communication كه راهي است براي دسته بندي مقصدها به اجتماعاتي و اتخاذ تصميمهايي براساس اين گروهها.
يك اجتماع گروهي از مقصدهاست كه خصوصيات مشتركي دارند. هر مقصدي ممكن است به چند اجتماع تعلق داشته باشند. در اجتماعات اينترنتي چند اجتماع از پيش تعيين شده معروف وجود دارد:
1- internet: مسير را به اجتماع اينترنتي اعلام ميكند.
2- no-export:
4- no-advertise:
تعريف و تنظيم قانون در حوزة Routerها:
يك راه براي كاهش مش IBGP تقسيم يك سيستم مستقل به چند سيستم مجزا و ايجاد يك قانون بين آنهاست. از ديد خارجي، اين هم پيماني مثل يك سيستم است. هر سيستم در درون خود پردازش خود پردازش است و تعداد كمي اتصالات به بقيه سيستمهايي كه با آن در يك جمع هستند، ميباشد. اگر چه سيستمهاي همتا در چند سيستم متفاوت EBGP دارند ولي اطلاعات مسيريابي را مانند اينكه سيستم مشابه IBGP هستند. تبادل ميكنند.
براي ايجاد يك معاهده BGP بايد يك مشخصه معاهده داشته باشيم. از ديدگاه خارجي، اين معاهده مثل يك سيستم ديده ميشود كه مشخصه معاهده تعيين شده به عنوان شماره آن سيستم است.
(VII): تنظيم اختيارات همسايهها:
براي فراهم كردن اطلاعات مسيريابي براي تعداد زيادي از همسايهها ميتوان BGP را طوري تنظيم كرد كه همسايهها را بر اساس يك ليست دستيابي، بپذيرد. اگر يكي از همسايهها، براي برقراري يك اتصال BGP تلاش ميكند. آدرس بايد در ليست دستيابي باشد، تا اتصال آن پذيرفته شود. با انجام اين كار ديگر BGP براي ايجاد اتصال تلاش نخواهد كرد. بنابراين همسايهها بايد بنحوي شكل دهي بشوند تا اتصال BGP را خودشان برقرار كنند. بديهي است در صورت عدم وجود ليست دستيابي، هر اتصالي پذيرفته خواهد شد.
BGPهاي خارجي معمولاً بايد در يك اتصال مستقيم كنار بكشند. براي BGPهاي داخلي ممكن است كه ما بخواهيم كه اتصالات BGP باقي بمانند بدون توجه به اينكه چگونه بايد با همسايه مواجه شد و اتصال برقرار كرد.
(VIII) تشكيل گروههاي مشابه و يكسان BGP:
گاهي ميبينم كه چند BGP مجاور و همسايه. اطلاعات و سياستهاي يكساني دارند. (مثل نقشههاي مسيريابي ليست فيلترها مراجع update كردن و 000). اين چنين همسايههايي را ميتوان به يك گروه برد تا شكل دادن و تنظيم كردن آنها راحت تر باشد.
بعد از ايجاد اين گروه هر BGP، مشخصات گروه را به ارث ميبرد.
(IX) نشان دادن مسيرهاي مخفي:
ميتوان براي نشان دادن اينكه كدام شبكه قابل دسترسي است، از يك مسير مخفي كه Router مرزي بايد از استفاده كند كمك گرفت. شبكه مخفي مانند يك شبكه محلي عمل ميكند، بجز اينكه هيچ اطلاعاتي در اختيار ديگران قرار نميدهد.
(x) تنظيم فاصلههاي اجرايي:
فاصلة اجرائي (Administrative distance) يك پارامتر اندازه براي اولويت دادن به پروتكلهاي مسيريابي مختلف است. BGP سه نوع مسير و فاصله اجرائي مختلف استفاده ميكند: خارجي، داخلي و محلي. هر Router كه اطلاعاتي از طريق فاصله خارجي بدست آورد، فاصلة خارجي دارد و به همين ترتيب براي بقيه تغيير دادن فاصله اجرايي يك Router خطرناك است و فاصله خارجي بايد كمتر از هر پروتكل مسيريابي ديگر باشد و فاصله داخلي بايد بيشتر باشد.
(XI) تنظيم تايمرهاي BGP:
BGP از تايمرهاي ميعني براي انجام فعاليتهاي متناوب استفاده ميكند. اين تايمرها را ميتوان تنظيم كرد. هنگاميكه يك اتصال برقرار ميشود. BGP با همسايه اش در مورد Hold Time صحبت ميكند و هر كدام Hold Time كمتر داشته باشد انتخاب ميشود.
EGP: Exterior Gateway Protocol
EGP، همانگونه كه در RFC904 مشخص شده است، براي ارتباط با Routerهاي معين در وزارت دفاع آمريكا استفاده ميشده است كه آنها را Routerهاي مركزي ميناميدند. يك Router خارجي از EGP استفاده ميكند تا اطلاعات خود از مسيرهاي شبكه اي كه در سيستم آن قرار دارد، در اختيار همه قرار دهد، به Routerهاي مركز پيغام را ميفرستد و آنها هم اطلاعات جديد خود را در اختيار Router خارجي قرار ميدهند.
پياده سازي EGPهاي Cisco:
پياده سازي EGP، سه كاركرد اصلي دارد:
1- Routerهايي كه EGP را اجرا ميكنند. مجموعه اي از همسايه را ايجاد ميكنند كه اينها اطلاعات دستيابي را بين خود تقسيم ميكنند.
2- Routerهاي EGP مرتباً از همسايههاي خود سئوال ميكنند آيا كار ميكنند.
3- پيامهاي حاوي اطلاعات درباره قابليت دستيابي شبكههاي درون سيستم آنها ميفرستد.
Configuration يك EGP:
(I) فعال كردن مسيريابي EGP:
براي فعال كردن مسيريابي بايد يك شمارة سيستم مشخص كنيم يك پردازش مسيريابي انجام دهيم و شبكه اي را كه پردازش EGP براي آن صورت خواهد گرفت نشان دهيم.
(II) تنظيم روابط همسايههاي EGP:
يك EGP Router، نميتواند بصورت پويا. همسايهها و يا Routerهاي مشابه را تعيين كند. بنابراين بايد يك ليست از Routerهاي همسايه تعيين كنيم.
(III) تنظيم تايمرهاي EGP :
تايمرهاي EGP از يك تايمر Hello و يك تايمر براي بازة زماني polling تشكيل شده است. تايمر Hello معين ميكند كه Router با چه فركانسي به Router همتاي خود پيامهاي Hello ميفرستد و تايمر polling مشخص ميكند با چه فركانسي اطلاعات update شده انتقال يابند. نحوة پياده سازي EGP به كاربر اين امكان را ميدهد كه تايمرها را تنظيم كند.
(IV) تنظيم Routerهاي پشتيبان:
ممكن است كه ما بخواهيم، در هنگام از كار افتادن سايت به Router دوم كه متعلق به يك سيستم ديگر است به عنوان Backup براي EGP Router ما كار كند. براي تفاوت گذاشتن بين Router اول و دوم. اين Routerها مسيرهاي شبكه را با فواصل EGP متمايز در اختيار بقيه قرار ميدهند. يك شبكه با فاصله كمتر معمولاً بر شبكه با فاصله بيشتر ترجيح دارد.
(V) مسيرهاي پيش فرض:
ميتوانيم شبكه0.0.0.0 را به عنوان مسير پيش فرض در نظر بگيريم.
(VI) تعيين مركز مديريت اطلاعات سريابي (Core Gateway):
معمولاً يك پردازش EGP انتظار دارد كه با همسايهها از يك سيستم ارتباط برقرار كند. بدليل اينكه تمام همسايهها در يك سيستم هستند. پردازش EGP فرض ميكند كه همگي همسايه اطلاعات داخلي هماهنگ دارند. بنابراين اگر EGP راجع به مسيري از يكي از همسايهها اطلاعي بگيرد، آنرا به بقيه همسايهها نخواهد فرستاد.
با EGP مركزي، فرض بر اين است كه همه همسايهها از سيستمهاي متفاوت هستند و اطلاعات ناهماهنگ دارند. در اين شرايط EGP، مسيرهاي از يك همسايه به بقيه را پخش ميكند. اين به EGP اجازه ميدهد كه مركز اطلاعات باشد با يك مديريت مركزي براي اطلاعات مسيريابي.
GDP: Gateway Discovery Protocol:
اين پروتكل براي رفع نيازمنديها طراحي شده است و به Host اجازه ميدهد كه مرتباً از ورود يك Router جديد مطلع شود. براي راحتي پياده سازي روي نرم افزارهاي گوناگون، GDP بر پاية UDP كار ميكند. دو نوع پيام GDP وجود دارد. Report و Query براي رسانههاي Broadcast، پيامهاي Report بصورت متناوب به آدرس Broadcast فرستاده ميشوند. كه نشان ميدهد كه Router حاضر و در حال كار است. با گوش دادن به اين پيام يك host ميتواند ظاهر شدن يك Router را بفهمد.
اگر يك host يك query بفرستد به آدرس Broadcost هر Router يك Report به آدرس host ميفرستد.
شكل زير فرمت پيام Report را تعيين ميكند:
Reserved Couat Opcode Version
Address 1
plqbdityngal Priority L
Address 2
Hold Time 2 Priority 2
Version: يك field 8 بيتي كه شماره ver. پروتوكل را دربردارد. ورژن فعل GDP. 1 است.
Opcode، 8 بيت كه نوع پيغام GDP را نمايش ميدهد. Raport Opcode = 1
Query Opcode = 2. به opcode نامفهوم هم توجهي نميشود.
Count: 8 بيت كه تعداد Address، Priority و نوع Hold Time را مشخص ميكند. Query Count = 0 , Report Count = 1
Reserved : 8 بيت كه رزو شده است و بايد صفر قرار داده شود.
Address: 32 بيت كه نشان دهندة آدرس روتر از شبكه محلي است و هيچ محدوديت ديگري روي اين آدرس نيست. اگر يك Host بفهمد كه آدرس متعلق به شبكه محلي نيست بايد از آن چشم پوشي كند.
Priority: 16 بيت كه كيفيت متناسب با آدرس را نشان ميدهد. هر چه مقدار priority بيشتر باشد آدرس را بايد بهتر دانست.
Hold Time: 16 بيت در رسانههاي Broadcast. تعداد ثانيههايي است كه آدرس مورد نظر بايد استفاده نشود بدون توجه و گوش دادن به پيغام ديگر. در روي رسانههاي non-Broadcost مثل X.25 تعداد ثانيههايي است كه در خواست دهنده بايد صبر كنند بايد صبر كنيد قبل از فرستادن Query بعدي.
تعداد زيادي كار ميتوان با گوش دان نرم افزار به GDP انجام داد. مثلاً update كردن جدول مسيريابي يك host از روي پيغامهايي كه ميآيد. كار عمدة مربوط است به نرم افزار و نيازهاي شبكه.
IP Multicast Routing:
ارتباطات Ip مرسوم به يك host اجازه ميدهد كه packet به يك host ديگر بفرستد. (unicast) يا به همه بفرستد (Broadcast) IP Multiast يك روش سوم ارائه ميكند كه به يك host اجازه نميدهد يك Packet را به مجموعه اي از hostها (نه تمام آنها) بفرستد، اين hostها، اعضاي گروه ناميده ميشدند. Packetهايي كه به اعضاي گروه فرستاده ميشوند با يك آدرس معين ميشوند. محيط Multicast از فرستنده و گيرنده تشكيل شده است. هر host، خواه عضو گروه باشد يا نه ميتوان به گروه بفرستد اگر چه تنها اعضاي گروه آنرا ميگيرند. يك آدرس Malticast، براي گيرندهها انتخاب ميشوند و براي فرستادن Packet به گروه بايد به آن آدرس فرستاد. عضويت در گروه حالت ديناميكي است يعني در هر لحظه ميشود عضو شد يا گروه را ترك كرد.
Routerهايي كه پروتكل مسيريابي Multicast را انجام ميدهند مثل PIM، جدولهايي دارند كه ديتاگرامها را forward كنند. Routerها از IGMP (Internet Group Managmant Protocol) استفاده ميكنند كه بفهمند كه اعضاي گروه به Subnet مورد نظر وصل هستند يا نه.
پياده سازي IP Multicast Routing:
سه راه براي پياده سازي وجود دارد:
1- IGMP، (Internet Group Management Protocol) كه بين hostها در يك LAN و Routerها در همان LAN استفاده ميشود. كه ميتوان بوسيله آنها فهميد كه hastها عضو كدام گروه هستند.
2- PIM، (Protocol Independent) بين Routerها استفاده ميشود كه ميتوانند بفهمند كدام Packetها را به همديگر forward كنند و به LANهايي كه مستقيماً به آنها متصل هستند بفرستند.
3- DVMRP: (Distance Vector Multicast Rp)
1- IGMP:
hostهاي IP، از IGMP استفاده ميكنند تا گروه عضويت خود را به Routerهاي متصل گزارش دهند. IGMP از آدرسهاي گروه استفاده ميكند كه از نوع آدرس كلاس D هستند. چهار بيت بالايي كلاس D 1110 هستند. اين بدان معني است كه نوع رنج آدرس گروه بين 224.0.0.0 تا 239.255.255.255 است. و اگر 224.0.0.0 هم به هيچ گروهي داده نميشود و آدرس 224.0.0.1 به تمام سيستمها تعلق دارد و آدرس 224.0.0.2 به تمام Routerها تعلق دارد.
2- PIM،
پروتكل PIM، مد سرويس به كسانيكه تازه به عضويت درآمده اند در IP Multicastرا بر عهده دارد و وابسته به پروتكل خاصي از مسيريابي نيست.
PIM در دو مد كار ميكند. sparse , dense :
در Dense Mode يك Router فرض ميكند كه تمام بقية Routerها ميخواهند كه packetهاي Multicast را براي يك گروه forward كنند. اگر يك Router يك Multicast Packet دريافت كند و همساية PIM حاضر و يا عضو متصل ندارد، يك پيغام به مبدأ فرستاده خواهد شد. Packetهاي Multicast متناوب و زياد بطرز ناگهاني به اين Router فرستاده نميشوند و PIM يك شاخه پخش درخت دار در درست ميكند. در Sparse Mode هر Router فرض ميكند كه بقيه Routerها نميخواهند كه Multicast packetها را forward كنند. مگر اينكه يك درخواست واضح براي ارسال باشد. وقتي كه hostها به يك گروه Multicast ميپيوندند، Routerهايي كه مستقيماً متصل هستند، پيام اتصال PIM ميفرستند.
3- DVMRP:
DVMRP يك ديتابيس parent-child با استفاده از مدل Multicasting ميسازد تا يك ساختار forward كردن مثل درختي كه ريشه آن مرجع Multicastpacket است. تشكيل دهد. در ابتدا اين packet در اين درخت جاري ميشوند. اگر مسيرهاي غير ضروري در اين درخت باشد، packetها در اين مسيرها نميروند. در DVMRP، forwordinxg تا زماني اتفاق ميافتد كه پيغامهاي prune دريافت نشود.
Ip Multicast Routing Configuration:
(I) فعال كردن مسيريابي:
فعال كردن مسيريابي به Router اجازه ميدهد كه Multicast packet را forward كند.
(II) فعال كردن PIM در يك Interface:
فعال كردن PIM در يك Interface همچنين باعث فعال شدن IGMP خواهد شد. هر Interface را ميتوان طوري تنظيم كرد كه در هر dense يا sparse باشد. هر دو تعيين ميكند كه چگونه Router Multicast Packetها دريافت ميكنند. در پركردن جدول مسيريابي Multicast . Interfaceهاي مد dence هميشه به جدول اضافه ميشوند ولي در مد sparse، Interfaceها تنها زماني به جدول اضافه ميشوند كه پيامهاي ملحق شدن متناوب توسط Router دريافت شوند. هنگاميكه از يك forward , LAN ميكنيم عمليات حالت Sparse اتفاق ميافتد يك RP شناخته شده براي گروه موجود باشد و در اين صورت Packetها بسته بندي ميشوند و به سمت آن فرستاده ميشوند.
در حالت پيش فرض هيچ مدي انتخاب نشده است و مسيريابي Multicast غير فعال است. اگر ما بخواهيم كه Router در حالت spars كار كند بايد يك يا چند Router را انتخاب كنيم كه به عنوان RP (نقطه تلاقي) كار كنند. و ما نيازي نيست كه به آنها بگوئيم اين كار را بكنند و خودشان خواهند فهميد. RPها توسط فرستندهها استفاده ميشوند. تا وجود خود را اعلام كنند و گيرندهها هم با گرفتن Packetها در بازه فرستنده جديد اطلاع ميگيرند. ما بايد آدرس RPها در Routerهايي تنظيم كنيم كه يا مستقيماً به يك گروه Multicast متصل هستند يا به يك فرستندة Multicast متصلند.
يك PIM Router ميتواند به عنوان RP براي چند گروه هم كار كند و هر گروه هم ميتواند بيش از يك RP داشته باشد.
(III) افزايش كنترل روي RPها:
ما ميتوانيم از ايجاد اختلاف توسط يك Router Leaf براي بقيه شبكه جلوگيري كنيم. براي انجام اين كار روتر محلي را طوري تنظيم ميكنيم كه پيامهاي اتصال را تنها زماني قبول كند كه آدرس RP آن در ليست دستيابي تعيين شده باشد.
(IV) تنظيم اينكه يك Router عضو يك گروه باشد:
Routerها ميتوانند طوري تنظيم شوند كه عضو يك گروه Multicast باشند. اين براي تعيين قابليت دستيابي Multicast در يك شبكه مفيد است. اگر يك Router عضو يك گروه باشد و پروتوكلهاي آنها را support ميكند. ميتواند به گروه پاسخ دهد. يك Router به Packetهاي درخواست ICMP كه به گروهي كه Router عضو آن است فرستاده شوند، جواب ميدهد.
(V) تعيين زمان پيامهاي IGMP Host - Query :
Router Multicast پيامهاي IGMP Haot-Query را براي اينكه بفهمند كه گروه حاضر است يا نه ميفرستد. اين پيام را به تمام سيستمها ميفرستد يعني آدرس Multicast Router . 224.0.0.1 اين پيام را بصورت متناوب ميفرستد تا مرتباً اطلاعات جديدي از گروهها بگيرد. اگر بعد از مدتي، Router بفهمد كه هيچ host محلي در يك گروه وجود ندارد، ديگر عمليات forward كردن به آن گروه را متوقف خواهد كرد Multicast Router يك روتر طراحي شده با PIM را انتخاب ميكنند كه بيشترين آدرس IP را دارد. اين روتر مسئول فرستادن پيغامهاي IGMP host-Query است به تمام Hostهاي LAN . بطور پيش فرض اين پيام دقيقه اي يك مرتبه فرستاده ميشود. ميتوان اين بازه را تغيير هم داد.
(VI) كنترل دستيابي به گروههاي Multicast:
روترهاي Multicast پيامهاي IGMP host-Query را براي تعيين اينكه كدام گروهها اعضايي دارند كه به شبكه آن روتر متصل است، ميفرستند. سپس هر packet با آدرس گروه را با آن گروه forward ميكنند. ما ميتوانيم در هر Interface يك فيلتر بگذاريم كه گروههايي را كهhost ها ميتوانند به آنها ملحق شوند محدود كند.
(VII) تعيين بازة پيام PIM Router-Query: پيامهاي Router-Queryبراي انتخاب PIM Router استفاده ميشوند. اين Router مسئول فرستادن پيامهاي IGMP host-Query ميباشد. بصورت پيش فرض Multicast Router در هر 30 ثانيه 1 مرتبه اين پيغام را ميفرستد، همچنين ميتوان اين بازة زماني را عوض كرد.
(VII) تنظيم تعامل DVMRP:
روترهاي PIM بصورت ديناميكي روترهاي DVMRP را در شبكههاي متصل پيدا ميكنند. هنگاميكه يك DVMRP پيداشد، روتر بصورت متناوب گزارشهاي PVMRP را ميفرستد كه اعلام ميكند اين مرجع در حوزة PIM قابل دسترسي است. بصورت پيش فرض، subnetها و شبكههايي كه بصورت مستقيم متصل هستند اعلام ميشوند. روتر Multicast Packetهايي را كه بوسيله DVMRP، forward شده بودند را forward ميكند و در عوض packet Multicastها را به روترهاي DVMRP ، forward ميكند. ما ميتوانيم تعيين كنيم كه كدام مرجعها، بصورت عمومياعلام شوند.
(IX) تنظيم يك تونل DVMRP:
ما ميتوانيم يك تونل DVMRP، اگر سر ديگر آن DVMRP اجرا كند، تنظيم كنيم. سپس روتر Multicast Packetها را از طريق اين تونل ميگيرد و ميفرستد.
اين به يك حوزة PIM اجازه ميدهدكه در شرايطي كه تمام روترها در مسير، Muticast را نميپذيرند به يك روتر DVMRP متصل شود. هنگاميكه ميخواهيم از يك تونل استفاده كنيم به دو دليل بايد به آن آدرس بدهيم:
1-اينكه بتوانيم IP Packet را از طريق تونل بفرستيم.
2-براي اينكه نشان دهيم نرم افزار بايد عمليات خلاصه كردن DVMRP را انجام دهد.
مسيريابي، عمليات انتقال اطلاعات از مبدأ به مقصد است. Routing معمولاً با Bridging مقايسه ميشود. اولين تفاوت اين است كه Bridging متعلق به Data Link Layer ميباشد. در صورتيكه Routing متعلق به Network Layer است. اين تفاوت باعث ميشود كه در فرآيند انتقال اطلاعات از اطلاعات متفاوتي استفاده شود.

Routing وظيفه انجام دو كار عمده را دارد، تعيين بهينه ترين مسير و انتقال گروههاي اطلاعاتي (Packets) از طريق شبكه كه اين موضوع Switchong ناميده ميشود. بر خلاف Switching، تعيين مسير كميپيچيده است.
تعيين مسير:
يك متريك، يك استاندارد براي سنجيدن است. مثل طول مسير كه در الگوريتمهاي مسيريابي استفاده ميشود. براي مسير يابي اين الگوريتمها جدولهاي مسير يابي دارند و اطلاعات مسير با توجه به الگوريتم تغيير ميكنند.
اين جدولها، اطلاعات متنوعي دارند. مثلاً next hop به يك Router ميگويد كه يك به مقصد مشخص ميتوان بصورت بهينه از طريق يك Router مشخص كه همان hop بعدي است رسيد. وقتيكه يك Router يك Packet را ميگيرد، آدرس مقصد را چك ميكند و سعي ميكند رابطه اي بين آن و hop بعدي را برقرار كند.
مثل جدول زير:
Net. No. Send to
27 Node A
57 Node B
17 Node C
Routerها با هم رابطه برقرار ميكنند و از طريق رد و بدل كردن پيام، جدولهاي Routing را ميسازند. پيغام Routing update، معمولاً تمام يا قسمتي از جدول Routing را در بر دارد. با بررسي جدول بقيه Routerها، هر Router، ميتواند يك توپولوژي دقيق از شبكه براي خود ترسيم كند. نوع ديگري از پيغامها، اعلام عموميLink – State است. كه به بقيه Routerها در مورد وضعيت رابطهاي فرستنده اطلاعات ميدهد.
Switching:
الگوريتمهاي Switching معمولاً ساده و يكسان هستند. در بيشتر مواقع، يك host معين ميكند كه بايد به يك host ديگر يك Packet بفرستد و هنگاميكه آدرس Router را بدست آورد. host مبدأ يك Packet آدرس داده شده را به يك آدرس فيزيكي ميفرستد و يا پرتو كل و آدرس مقصد. حال Router نگاه ميكند كه ببيند آيا ميتواند آنرا forward كند يا نه. اگر نتوانست آنرا رها ميكند اگر توانست به hop بعدي ميفرستد. و اين كار در hopهاي بعدي بصورت مشابه تكرار ميشود.
الگوريتمهاي Routing :
اين الگوريتمها با توجه به چندين مشخصه ممكن است تغيير كنند: اول هدف طراح باعث تغيير الگوريتم خواهد شد. دوم اينكه چندين روش مسيريابي وجود دارد كه هر كدام تأثير خاص بر شبكه ميگذارند و 000
اهداف طراحي:
1- بهينه بودن، به معني انتخاب بهترين مسير است، كه وابسته به ميزان متريكها خواهد بود مثل تعداد hopها و يا تأخيري كه ايجاد ميشود توسط هر hop
2- ساده بودن، به اين معني كه اين الگوريتمها بايد تا حد ممكن كار آمد باشند در حاليكه نرم افزار آنها پيچيده نباشد و هزينة بالايي هم نداشته باشد.
3- همگرايي سريع: به معني اين است كه اگر در كار شبكه اختلالي ايجاد شد. مثل اشكال در كار سخت افزار شرايط بار زياد، 000، Router همچنان با كاركردن صحيح ادامه دهد. به دليل اينكه از كار افتادن Routerها ممكن است خسارتهاي سنگيني به بار آورد.
4- انعطاف پذيري: به معني اين است كه بايد به سرعت و دقت با محيط اطراف خود سازگار شوند.
انواع الگوريتمها:
اين الگوريتمها بر اساس انواع تفاوتهاي زير ميتوانند تغيير كنند:
1- استاتيك يا ديناميك باشند
2- يك مسير يا چند مسير باشند
3- host هوشمند و يا Router داشته باشند
4- Link State يا distance Vector باشند
متريكهاي Routing:
جدولهاي Routing اطلاعاتي دارند كه نرم افزار با استفاده از آنها بهترين مسير را انتخاب ميكند.اين اطلاعات ميتوانند شامل متريكهاي زير باشند: طول مسير، قابليت اطمينان، تأخير، پهناي باند و هزينة ارتباطات.
IP Routing Protocols :
پروتوكلهاي مسير يابي مبتني بر IP، به دو دسته كلي تقسيم ميگردند:
Interior Gateway Protocols (IGPs)
Exterior Gateway Protocols (EGPs)
IGPs در شبكههايي كه زير نظر يك شبكه مشترك اداره ميشوند استفاده ميگردد. انواع پروتكلهاي IGP عبارتند از:
Border Gateway Protocol (BGPs)
Enhanced IGRP
Open shourtest Path (OSPF)
Routing Information Protocol (RIP)
Intermediate System to Intermediate System (Is-Is)
EGPs براي مسير يابي بين شكبههايي كه اشتراكي با هم ندارند استفاده ميگردد، اين پرتوكلها قبل از اينكه عمل مسير ياب را انجام دهند، سه نوع اطلاعات نياز دارند:
ليستي از مسير يابيهاي همسايه (neighbor routers)
ليستي از شبكههايي كه به صورت مستقيم قابل دسترسي هستند
شماره سيستم مستقل (autonomous system number) مسير يابي محلي.
پرتوكلهاي EGPs نيز به دو دسته كلي زير تقسيم ميگردند:
Border Gateway Protocol (BGPs)
Exterior Gateway protocol (EGPs)
علاوه بر اينها پرتوكلهايي هم براي شناسايي مسير يابها (router discovery) وجود دارد كه از بين آنها ميتوان به ICMP Router Discovery p. (RFC1256) اشاره كرد.
قبل از اينكه به معرفي پروتوكلها بپردازيم اين سؤال مطرح ميشود كه براي كار، از كدام يك از پروتكلها استفاده كنيم ؟ در واقع براي انتخاب پروتكل بايد پارامترهاي زير را در نظر گرفت:
اندازه و پيچيدگي شبكه
پشتيباني از
OSPf , IS-IS : Routing Variable Length Subnet Masks (VLSM)
اين قابليت را دارند.
ميزان reliability , security مورد نياز.
مشخصه تأخير (delay) شبكه مورد استفاده.
قابليت تغيير پذيري پروتكل به صورت سازمان يافته، به طوري كه بتوان آن را با شرايط مختلف سازگار نمود.
پروتكل IGRP:
جزو پروتكلهاي dynamic distance vector به شمار ميآيد. به طور پيش فرض هر 90 ثانيه يك update pakcetرا به صورت Broadcast ارسال ميكند. اگر در عرض 270 ثانيه جوابي از يك مسيرياب دريافت نكند آن را غير قابل دسترس (inaccessible) معرفي ميكند اگر پس از 630 ثانيه پاسخي دريافت نكند، آن مسير را از routing table حذف ميكند. براي اينكه همگرايي اين پروتكل در رسيدن به مسير مناسب بيشتر گردد از دو روش flash update poisson , reverse update استفاده ميگردد.
IGRP در دهه 80 توسط Cisco ابداع شد و هدف آن ايجاد پروتوكلي پايدار و مطمئن براي سيستمهاي مستقل بود. قبل از دهه 80، پروتكل RIP مشهورترين و پركاربردترين پروتكلها بود. اما RIP فقط براي شبكههاي كوچك مفيد بود (شبكههايي كه حداكثر طول مسير در آنها hop 16 بود) در ضمن فاصله مسيريابها را فقط با شمردن تعداد hopهاي بين آنها تعيين كرد كه در محيطهاي پيچيده و شكبههاي گسترده بازدهي كار را پايين ميآورد. به اين دلايل پس از ابداع IGRP، اين پروتكل به سرعت جايگزين RIP شد.
مشخصات پروتكل IGRP (IGRP Protocal characteristics)
همان طور كه ذكر شد IGRP يك Pro. vector * distance است. در اين نوع پروتكلها هر مسيرياب تمام يا قسمتي از routing table خود را در بازههاي زماني منظم براي همسايههاي خود ميفرستد.
در مقابل disance v. p.، پروتكلهاي link state قرار دارند كه اطلاعات محلي خود را به تمام نودهاي شبكه ارسال ميكنند. بعداً خواهيم گفت كه OSPF، IS-IS از نوع پروتكلهاي link state ميباشند. IGRP براي تعيين فاصله بين مسيريابها از برداري شامل چند پارامتر استفاده ميكند، اين پارامترها عبارتند از تأخير موجود (delay)، پهناي باند مسير (BW)، قابليت اعتمادي كه اين مسير وجود دارد (reliability) مقدار بار (load) كه روي مسير قرار داد. هم چنين براي هر يك از اين پارامترها ميتوان وزني تعيين كرد كه اهميت آن بيشتر از بقيه گردد. نكته قابل ذكر ديگر اينكه هر يك از پارامترهاي فوق ميتوانند در بازة وسيعي تغيير كنند، مثلاً Bw ميتواند از 1200 bps تا 10 giga bps تغيير كند و اين نكته، IGRP را براي شبكههايي كه مشخصات ساختاري آنها تغييرات سريع ندارند مناسب مينمايد.
براي انعطاف پذيري بيشتر، IGRP امكان ارسال داده از چند مسير (multipath routing) را فراهم ميكند. مثلاً اگر يك مسير 3 برابر بهتر از مسير ديگر باشد (به خاطر اينكه طول آن بر اساس پارامترهاي ذكر شده ، طول ديگري به دست آمده ) اغلب دادهها از خط اولي فرستاده ميشوند، ضمن اينكه اگر يكي از اين خطها خراب شود امكان سوئيچ كردن به خطهاي ديگر وجود دارد. اما اين نكته را به خاطر داشته باشيد كه در multipath routing از بين مسيرهاي موجود تنها آنهايي استفاده ميشوند كه طول آنها در محدودة شخصي از بهترين طولهاي موجود باشد.
ويژگيهاي پايداري در IGRP:
IGRP ويژگيهايي دارد كه براي افزايش پايداري و كارايي آن طراحي شده اند. اين ويژگيها عبارتند از:
Poison-reverse update , split Horizon , Hold-down
Hold-down از فرستادن پيغام نامناسب update كه تثبيت دوبارة يك مسير مشكل دار را در حالي كه واقعاً هنوز آن مسير خراب است – به بقيه مسيريابها اطلاع ميدهد جلوگيري نمايد. وقتي يك مسيرياب خراب شود. مسير يابهاي همسايه از نرسيدن منظم پيغامهاي update متوجه ميشوند كه اين مسيرياب از مسير خارج شده است. سپس مسيرهاي جديد محاسبه شده و پيغامهاي مناسب براي آگاهي دان بقيه شبكه از وضعيت جديد به مسيريابهاي ديگر فرستاده ميشود. اين عمل موجي از پيغامهاي update را ايجاد ميكند كه در شبكه منتشر ميشوند. اين پيغامها به طور آني به هر نقطه شبكه نميرسند، بنابراين ممكن است مسير يابهايي كه هنوز اين پيغام به آنها نرسيده (و طبيعتاً مسير مذكور را سالم فرض ميكنند ) پيغامهايي ناشي از سالم بودن مسير مذكور به مسير يابي بفرستند كه قبلاً از خرابي مسير، آگاه شده بود، در اين حالت مسيرياب آخري اطلاعات نادرستي از وضعيت مسيرهاي شبكه خواهد داشت.
Hold down به مسيريابها ميگويد كه از هر تغييري كه در بازه اي از زمان در مسيرها واقع ميشودصرف نظر كنند، زمان hold down معمولاً طوري در نظر گرفته ميشود كه بزرگتر از زمان لازم براي update شدن كل شبكه – پس از وقوع تغييري در وضعيت مسيرها – باشد.
Split Horizon از اين مطلب ناشي ميشود كه هرگز مفيد نيست اطلاعات مربوط به يك مسير از طريق همان مسير به مسيريابهاي ديگر فرستاده شود به شكل زير نگاه كنيد، مسيرياب اولي (R1) به شبكة Aوصل است. در اين وضعيت اصلاً ضروري نيست كه R2 اطلاعات مربوط به اين مسير (مسير بين R1 و شبكه A) را در پيغامهاي update خود، به خود R1 بفرستد چون R1 به شبكه A نزديك تر است مثلاً فرض كنيد به هر دليلي اتصال R1 با A قطع شود در اين صورت R2 همچنان در پيغامهاي update خود به R1 خبر سالم بودن مسير مزبور را ميدهد حال اگر R1 هوشمند نباشد ممكن است يك LOOP حاصل شود يعني R1 و R2 مرتباً به يكديگر اطلاع دهند كه مسير سالم است در حالي كه واقعاً مسير، خراب شده است. گر چه hold down هم از ايجاد چنين وضعيتي جلوگيري ميكند ولي split Horizon مكانيزم اضافه اي براي ايجاد پايداري است.
Split Horizon براي جلوگيري از ايجاد يك LOOP بين دو مسيرياب همسايه بود ولي poison_reverse update براي شكستن loopهاي مسيريابي بزرگتر لازم است. از آن جا كه افزايش طول مسيرها عموماً باعث ايجاد loopهاي مسيريابي ميشود، posion_reverse update مكانيزميبوجود ميآورد كه اگر طول يك مسير از حدي افزايش يافت، آن مسير را در وضعيت hold down قرار دهد.
زمان سنجي در IGRP
IGRP حاوي مجموعه اي از زمان سنجها و متغيرهايي است كه بازههاي زماني مورد نياز را نگهداري ميكنند اين زمان سنجيها شامل flush timer , hold_time priod , invalid timer , update timer ميباشند.
Update timer مشخص ميكند كه پيغامهاي update با چه فركانسي ارسال گردند مقدار پيش فرض اين زمان 3 برابر update timer است hold_timer متغيري است كه مدت زمان hold down را معين ميكند. مقدار پيش فرض اين متغير در IGRP 3 برابر update time به اضافه sec 15 ميباشد.
Flush time تعيين ميكند چه مدت زماني بايد بگذرد قبل از اينكه يك مسير از routing table حذف گردد، مقدار پيش فرض اين زمان در IGRP،7 برابر زمان update است.
پروتكل Enhanced IGRP:
En.IGRP تكامل يافته جد خود IGRP ميباشد. اين تكامل از تغييرات ايجاد شده در شبكهها و لزوم ايجاد شبكههاي وسيع و مختلف ناشي گرديد. En.IGRP تواناييهاي پروتكلهاي link-state را در پرتوكلهاي distance vector جمع آوري ميكند. اين پروتكل شامل الگوريتميبه نام Diffusing-update (DUAL) است. En.IGRP سازگاري با مسير يابهاي IGRP را حفظ ميكند. يك مكانيزم خودكار اجازه ميدهد اطلاعات مسيرها در IGRP به اطلاعات در En.IGRP تبديل گردد و بالعكس. در اين قسمت به بررسي اصول پايه و خصوصيات كلي En.IGRP ميپردازيم.
تواناييها و خصوصيات En.IRGP :
تواناييهاي كليدي كه En.IGRP را شاخص ميكند عبارتند از: همگرايي سريع، پشتيباني از VLSM، پشتيباني از partial update و پشتيباني از پرتوكلهايي با چندين لاية شبكه.
يكي مسيرياب كه En. IGRP را اجرا ميكند، routing table تمام همسايههاي خود را نيز ذخيره ميكند، طوري كه خيلي سريع ميتواند مسيرهاي جديدي را جايگزين مسير معيوب نمايد. اگر مسير مناسبي يافت نشود، En.IGRP از همسايههاي خود سوال ميكند تا مسير جايگزين را بيابد و اين سؤالها پخش ميشوند تا مسير جايگزين، يافت شود. En. IGRP به طور متناوب پيغامهاي update را نميفرستد در عوض هر گاه طول يك مسير تغيير يافت updateهاي جزيي (partial update) ارسال ميكند. انتشار update.هاي جزيي به طور اتوماتيك و به گونه اي انجام ميشود كه فقط مسيريابهايي كه به اين اطلاعات نياز دارند update گردند. به دليل همين قابليت، En. IGRP پهناي باند خيلي كمتري نسبت به IGRP اشغال ميكند.
براي ايجاد بازدهي بيشتر در عمليات مسيريابي، En. IGRP از 4 تكنولوژي كليدي سود ميبرد كه آن را متمايز از ساير پروتوكلها نموده است:
Neighbor diocovery/recovery : اين قابليت توسط مسيرياب استفاده ميشود تا به طور فعال و دائمي از وضعيت مسيريابها در شبكههايي كه مستقيماً به آن وصل هستند آگاه گردد. براي اين منظور مسيرياب به صورت متناوب packetهاي hello براي هم ارسال ميكنند. تا زماني كه دو مسيرياب از همديگر hello packet دريافت ميكنند از سلامت يكديگر آگاهند.
Reliable Transport protocol: RIP مسئول تحويل مطمئن و منظم packetهاي En. I. به همسايهها است. RIP ارسال packetهاي multicast , unicast را پشتيباني ميكند. براي اينكه بازدهي بالا باشد. فقط تحويل مطمئن packetهاي خالص تضمين ميگردد. در برخي شبكهها لازم نيست برخي از packetها به صورت reliable به همه فرستاده شوند. بنابراين در هنگام لزوم، فرستنده يك hello p. به گيرنده ميفرستد تا به او اطلاع دهد packetهاي ارسالي به ack. نياز دارند.
DUAL finite _ state machine: DUAL الگوريتميبراي محاسبه مسير مناسب بر مبناي اطلاعاتي است كه همسايهها ارسال كرده اند. DUAL اطلاعات مربوط به فاصله مسيريابها را براي انتخاب مسيري مطمئن و بدون LOOP استفاده ميكند و ضمناً يك feasible successor براي جايگزين نمودن در routing table انتخاب ميكند. feasible succ. در واقع يكي از مسيريابهاي مجاور است كه در كم فاصله ترين مسير تا مقصد قرار دارد.
Protocol-dependent modules: مسئول برآورده كردن نيازهاي خاص پروتوكل لايه شبكه ميباشند، به عنوان مثال مدول IP.En. IGRP مسئوليت فرستادن و دريافت نمودن packetهاي En. IGRP كه در IP جايگزين شده اند را بر عهده دارد. هم چنين مسئول تجزيه كردن packetهاي En. IGRP و استخراج اطلاعات لازم براي DUAL از آنها ميباشد.
ابزارهاي مسيريابي En. IGRP:
در اين جا به بررسي سه مفهوم كه در مسيريابي توسط اين پروتكل استفاده ميشوند ميپردازيم:
Neighbor Tables:
وقتي يكي از مسيريابها همسايه جديدي را مييابد آدرس و رابطهاي آن را در رديفي از جدولي به نام neighbor table ذخيره ميكند. سپس يك hello p. ارسال كرده و hold time را برقرار ميكند. اگر hello p. در مدت زمان hold time دريافت نشد به DUAL تغيير وضعيت توپولوژي اطلاع داده ميشود. neighbor table همچنين شامل اطلاعات لازم براي پروتكل RTP است. از sequence Num. براي تشخيص اينكه كدام يك از packetها acknowledge شده اند استفاده ميگردد. آخرين sequence Number دريافت شده ذخيره ميگردد تا packetهاي خارج از نوبت شناسايي گردند. هم چنين يك transmission List، packetها را براي ارسال مجدد احتمالي در يك صف ذخيره ميكند. در neighbor table زمان سنجهايي وجود دارند كه زمان رفت و برگشت packetها را محاسبه ميكنند تا بتوانند بازه زماني دلخواه براي ارسال مجدد را به مؤثرترين شكل انتخاب نمايند.
Topology Tables: شامل تمام destinationهايي كه توسط مسيريابهاي مجاور معرفي شده اند، همراه با آدرس آنها و ليست همسايههايي كه اين destinationها را معرفي كرده اند و ركوردي از فاصلههايي كه هر مسيرياب مجاور با اين dest. دارد ميباشد. حال فاصله اي كه براي هر dest. حساب شده و به بقيه مسيريابها ارسال ميشود مجموع بهترين فاصله اي كه در Topology Table براي آن dest. وجود دارد و فاصله تا بهترين مسيرياب مجاور (يعني مسيريابي كه كمترين فاصله را با dest. مورد نظر گزارش كرده است ) ميباشد.
Route States: همان طور كه پيشتر ذكر شد feasible successor يكي از مسيريابهاي مجاور است كه كم فاصله ترين فاصله را تا dest. دارد در حالي كه قسمتي از يك loop مسيريابي نيز نيست و مسيرياب اصلي، packetهايي را كه بايد به dest. برسند به اين مسيرياب forward ميكند.
در Topology Table هر dest. ثبت شده در يكي از دو حالت (state) فعال (active) و يا غير فعال (passive) ميباشد. اگر براي يك dest. همواره يك feasible successor موجود باشد اين dest. همواره در وضعيت غير فعال ميماند و recomputation براي آن انجام نميگردد اگر براي يك dest. ، feasible successor يافت نشود از مسيريابهاي مجاور، سئوال ميشود (Query Packet). مسيريابهاي مجاور، يا پاسخ ميدهند (Reply Packet) كه يك feasible succ. براي اين dest. دارند و يا پاسخ ميدهند كه انها نيز در recomputation شركت ميكنند (يعني به همين ترتيب از مسيريابهاي مجاور خود سؤال ميكنند). تا وقتي كه يك dest. در وضعيت فعال است، مسيرياب نميتواند اطلاعات مربوط به آن را در routing table تغيير دهد.
پس از اينكه از تمام مسيريابهاي مجاور پاسخ رسيد (مبني بر اينكه يا خود feasible succ. را يافته اند يا از طريق مسيريابهاي ديگر) آن گاه، dest. به وضعيت غير فعال بر ميگردد و مسيرياب از اطلاعات به دست آمده، مسير جايگزين مناسب را براي اين dest. انتخاب ميكند.
انواع packetهاي En. IGRP:
En. IGRP از packetهاي زير استفاده ميكند:
hello packet، Replay packet , Query packet , update packet. , acknowledgment
Hello packet يك packet از نوع multicast ميباشد (يعني براي مسيرياب خاصي ارسال نميشود) و احتياجي نيز به ack. ندارد.
acknowledgment packet براي مشخص كردن وضعيت قابليت دسترسي به مقصدها استفاده ميشود. وقتي يك همسايه جديد كشف ميگردد، packetهاي update * به صورت uncast * براي آن ارسال ميگردند تا مسيرياب جديد بتواند Topology table خود را بسازد. در بقيه حالات مانند تغيير فاصله يك مسير، packetهاي update به صورت multicast براي همه مسيريابهاي مجاور ارسال ميگردند. ارسال packetهاي update همواره reliable است (يعني به ack. نياز دارند). Query packet و Reply packet همانطور كه ذكر شد وقتي استفاده ميشوند كه يك dest.، feasible succ. نداشته باشد. Query packets همواره multicast ميباشند. replay p. در جواب Query p. فرستاده ميشود تا به مسير سؤال كننده اطلاع دهد كه feasible s. پيدا شده است واضح است كه Reply بايد به صورت unicast بوده و همانند Query، reliable ارسال گردد.
پروتوكل Open shortest path First (OSPF)
OSPF نيز همانند IGRP در دهه 80 و به اين دليل كه RIP ديگر نميتوانست جوابگوي شبكههاي ناهمگون و بزرگي باشد به وجود آمد. اين پروتوكل براي مسيريابي از الگوريتمي به نام SPF استفاده ميكند.
OSPF دو خاصيت اوليه دارد، اول اينكه OPEN است يعني مشخصات آن در دسترس همگان قرار دارد (RFC 1247) خاصيت اساسي دوم اين است كه اين پروتوكل هم پايه الگوريتم SPF كه گاهي به نام Dijkstra Algoritin نيز ناميده ميشود طرح شده است. OSPF يكي از پروتكلهاي link state است (برخلاف RIP وIGRP كهdistance vector هستند ) مسيريابهايي كه اين پروتوكل را اجرا ميكنند. از الگوريتم SPF براي يافتن كم فاصله ترين مسير تا نود بعدي استفاده مينمايند.
برخلاف RIP، OSPF ميتواند داخل يك سلسله مراتب از شبكهها كار كند. بزرگترين شيء داخل يك سلسله مراتب يك سيستم مستقل (AS) ميباشد. AS مجموعه اي از شبكهها است كه تحت مديريت مشتركي كار ميكنند و استراتژي مسيريابي يكساني دارند. OSPF يكي از پروتوكلهاي IGP به شمار ميآيد، گرچه توانايي ارسال و دريافت Data از ASهاي ديگر را نيز دارد. يك AS را ميتوان به مجموعه اي از نواحي (areas) تقسيم نمود كه هر ناحيه شامل شبكههاي مجاور هم و hostهاي متصل به آنهاست. مسيريابهاي با چندين interface ميتوانند در چند ناحيه شركت داشته باشند. چنين مسيريابيهايي كه مسيريابهاي كناري ناحيه (arear border router) ناميده ميشوند databaseهاي توپولوژيكي مجزايي براي هر ناحيه ذخيره كرده اند.
databaseهاي توپولوژيكي اساساً يك شماي كلي از شبكهها و ارتباط آنها با مسيريابها هستند و حاوي اطلاعاتي ميباشند كه از تمام مسيريابهاي آن ناحيه رسيده است. از آنجا كه مسيريابهاي داخل يك ناحيه از اطلاعات مشتركي استفاده ميكنند databaseهاي توپولوژيكي يكساني نيز دارند. توپولوژيكي يك ناحيه از ديد افراد خارج ناحيه مخفي است. با تبديل AS به نواحي مختلف، OSPF بار ترافيكي كمتري ايجاد خواهد كرد. تقسيم بندي AS به نواحي، دو نوع مختلف مسيريابي را بسته به اينكه source و destination داخل يك ناحيه باشند يا نه، ايجاد ميكند.
مجموعه مسيريابهاي كناري ناحيهها كه OSPF backbone ناميده ميشوند مسؤل توزيع اطلاعات مسيريابي بين نواحي مختلف ميباشند. شكل صفحه بعد مثالي از يك شبكه بندي با نواحي مختلف را نشان ميدهد. در شكل، مسيريابهاي 12 , 11, 10 ,6 , 5, 4 backbone را تشكيل ميدهند. اگر H1 host در ناحيه 3 بخواهد يك packet براي H2 بفرستد، اين packet ابتدا به R13 فرستاده ميشود، سپس به R11 , R12 forward ميگردد. R11 از طريق backbone، packet را به R10 ميفرستد و سپس اين packet از طريق دو مسيرياب داخل ناحيه اي يعني R9 و R7 به H2 ميرسند. backbone نيز خودش يك ناحيه OSPF است، بنابراين همه مسيريابهاي داخلي backbone روالها و الگوريتمهاي يكساني براي نگهداري اطلاعات مسيريابي به كار ميبرند. توپولوژي backbone از ديد مسيريابهاي داخل ناحيه اي مخفي است، همان طور كه توپولوژي ناحيهها از ديد backbone مخفي است.
الگوريتم SPF:
الگوريتم SPF پاية عملياتي است كه OSPF انجام ميدهد. هنگامي كه مسيرياب SPF شروع به كار ميكند ابتدا ساختارهاي اطلاعاتي مربوط به پروتوكلهاي مسيريابي را مقدار دهي اوليه مينمايد و سپس منتظر ميماند تا پروتكلهاي لايههاي پايين تر تعيين نمايند كه آيا interface وجود دارد يا نه ؟ پس از اينكه مسيرياب اطمينان حاصل نمود كه ارتباط او برقرار است از پروتوكل OSPF Hello براي شناسايي مسيريابهاي مجاور استفاده ميكند. مسيرياب به همسايههاي خود packetهاي Hello را ارسال ميكند و سپس منتظر دريافت پاسخ ميماند، علاوه بر شناسايي مسيريابهاي مجاور packetهاي Hello كمك ميكنند تا يك مسيرياب از سالم بودن و زنده بودن مسيريابهاي مجاور خود آگاه گردد. هر مسيرياب به طور متناوب packetهايي را به همسايههاي خود ارسال ميكند تا از وضعيت آنها اطلاع حاصل نمايد. بدن وسيله مسيريابهاي خراب سريعاً شناسايي شده و توپولوژي شبكه به طور مناسب تغيير مينمايد. از روي اطلاعاتي كه هر مسيرياب از مسيريابهاي ديگر حاصل ميكند يك درخت shortest-path ايجاد مينمايد كه خودش ريشه آن درخت است و با استفاده از اين درخت، routing table به دست ميآيد.
فرمت packetهاي OSPF:
همه packetهاي OSPF با يك header 24 بايتي آغاز ميشوند كه در صفحه بعد نشان داده شده است. به طور خلاصه هر يك از فيلدهاي اين header را توضيح خواهيم داد:
Vaniable 8 2 2 4 4 2 1 1
Data Authentication Authentication type Checksum Area ID Router ID Packet Length Type Version Number
version number: تعيين ميكند كه با كدام نسخه OSPF سر و كار داريم.
Type: نوع packetها را تعيين ميكند كه ميتواند يكي از انواع زير باشد:
- Hello : براي آغاز و حفظ ارتباط بين مسيريابهاي مجاور است.
- Database Description: محتويات database توپولوژيكي را توصيف ميكند. اين نوع پيامها زماني رد و بدل ميگردد كه يك ارتباط جديد آغاز شود.
- Link state pequest: قسمتهايي از database توپولوژيكي را از مسيريابهاي همسايه درخواست ميكند. اين پيغامها زماني رد و بدل ميشوند كه يك مسيرياب بفهمد (از روي محتويات packetهاي. Database Description) كه قسمتي از محتويات databast او نامعتبد شده است.
- Link state update: به packetهاي Link state req. پاسخ ميدهد. اين پيغامها همچنين براي توزيع منظم اطلاعات Link state استفاده ميشوند.
- Link state Acknowledgment:packetهايLink state update را ack. ميكنند.
- Packet Length: مشخص ميكند كه طول packet (شامل header) چقدر است.
- Router ID: مشخص ميكند كه packet از چه مبدأي فرستاده شده است.
- Area ID: ناحيه اي كه packet به آن تعلق دارد را مشخص ميكند.
- Checksum: مكانيزم معروف براي چك كردن خطاهايي است كه هنگام ارسال دادهها ممكن است حاصل گردد.
- Authentication type: نوع مكانيزم تصديق را تعيين مينمايد.
- Authentication: اطلاعات مربوط به تصديق را در بردارد.
- Data: شامل اطلاعات لايههاي بالاتر است كه در packet جاسازي شده اند.
(RIP) Routing Information Protocol:
RIP يكي از پروتوكلهاي distance vector است كه تعداد hopها را به عنوان معياري براي محاسبه طول يك مسير استفاده ميكنند. RIP نيز يكي از پروتوكلهاي IGP است يعني عمليات مسيريابي را داخل يك سيستم مستقل واحد انجام ميدهد، در حالي كه پروتوكلهاي EGP مانند Border Gateway p. بين سيستمهاي مستقل مختلف كار مسيريابي را انجام ميدهند. آخرين بهبودهايي كه در RIP صورت گرفت نسخه اي از آن را با نام RIP2 ارايه داد كه باعث ميشد اطلاعات بيشتري در packetها جا داده شوند و ضمناً يك مكانيزم تصديق ساده را نيز اضافه نمود. RFC 1058 (سال 1988) اولين نسخه RIP را توضيح ميدهد. در اين قسمت تواناييهاي اساسي و خصوصيات ويژه RIP را به طور خلاصه بيان ميكنيم:
RIP پيغامهاي routing update را در فاصلههاي زماني منظم و هنگاميكه توپولوژي شبكه تغيير ميكند ارسال مينمايد. مسيريابهاي RIP فقط بهترين مسير تا مقصد (مسير با كمترين فاصله) را نگاه ميدارند. پس از update كردن routing table، مسيرياب فوراً به بقيه، پيغامهاي update ميفرستد تا آنها را از تغيير وضعيت ايجاد شده در شبكه آگاه كند. پيغامهاي update اينچنين (كه تغييري در شبكه را به بقيه اطلاع ميدهند) مستقل از پيغامهاي update كه مسيريابها در فاصلههاي زماني منظم ارسال ميكنند ميباشد.
RIP تنها يك معيار براي محاسبه طول يك مسير دارد و آن هم شمارش تعداد hopها است. RIP از ايجاد LOOP مسيريابي بوسيله محدوديت گذاشتن روي تعداد hopهايي كه ميتوانند بين source و dest. وجود داشته باشند جلوگيري ميكند. ماكزيمم تعداد hop در يك مسير معتبر 15 تا ميتواند باشد، اگر يك مسيرياب پيغام update مبني بر ورود يك مسيرياب يا host جديد دريافت كند و اين شيء جديد باعث شود كه تعداد hopها در مسيري به 16 برسد آنگاه مقصد اين مسير از طرف مسيرياب، غير قابل دسترس اعلام ميگردد.
براي اينكه تغييرات ايجاد شده در توپولوژي شبكه هر چه سريع تر به همه اطلاع داده شود RIP يك سري قابليتهايي دارد كه در اغلب پروتوكلهاي ديگر نيز موجودند. به عنوان مثال RIP داراي مكانيزم hold down , spilit horison براي جلوگيري از گسترش اطلاعات نادرست مسيريابي است علاوه بر اين، محدوديت hop-count كه RIP قرار ميدهد نيز از گسترش نامحدوده loopهاي مسيريابي جلوگيري ميكند.
RIP براي تنظيم كارايي خود از زمان سنجهاي زيادي بهره ميبرد. شامل routing up. t. . route flush timer , route timeout , routing update timer
فاصله زماني بين پيغامهاي update را تعيين ميكند. معمولاً اين زمان، 30sec باضافه زماني كه به صورت تصادفي انتخاب ميشود – تا از callision جلوگيري كند – ميباشد. هر رديف routing table يك route-timeout مخصوص به خود دارد، هنگامي كه اين زمان سپري ميگردد مسير مربوطه invalid محسوب ميگردد ولي هم چنان در routing table باقي ميماند تا وقتي كه route flush timer منقضي گردد و مسير، از routing table حذف گردد.
فرمت packet در RIP:
4 4 4 4 2 2 2 1
1
Metrie Zero Zero Address
Zero Address Family ID Zero Version number Command
حال به طور خلاصه اين فيلدها را معرفي ميكنيم:
Command: تعيين ميكند كه آيا packet ارسالي Request است يا Response Request از يك مسيرياب ميخواهد كه تمام يا قسمتي از routing table خود راارسال نمايد. Response ميتواند. routing updateهاي منظم باشد و يا جوابي به Request. چندين RIP packet استفاده ميشوند تا اطلاعات را از routing tableهاي بزرگ انتقال دهند.
Version number: نسخه پروتوكل را تعيين مينمايد.
Zero : استفاده اي نميگردد.
Address. Family ID (AFI): RIP طوري طراحي شده است كه بتواند اطلاعات مسيريابي را براي پروتوكلهاي مختلف حمل نمايد. هر پروتوكل يك Add. Family ID دارد كه نوع آدرس دهي استفاده شده را توضيح ميدهد. مثلاً AFI براي IP برابر 2 است.
Address: آدرس IP مربوط به host كه packet از آن جا ارسال شده است.
Metric: مشخص ميكند كه تا رسيدن به مقصد چند hop طي ميشود. اين مقدار همان طور كه قبلاً ذكر شد بين 1 و 15 است.
همان طور كه ذكر كرديم نسخه بهبود يافته RIP، RIP2 نام گرفت در اينجا نگاه مختصري به فرمت packetهاي اين پروتوكل نيز مياندازيم:
Mettric Next Hop Subnet Mark IP Address Route Tag Address Format ID Unused Version Command
فيلدهاي command و version مانند پروتكل RIP ميباشند.
unused: مقدار اين فيلدها صفر قرار داده ميشود.
AFI: مانند قبل نوع پروتكل استفاده شده را تعيين مينمايد. اگر فيلد AFI در اولين packet وارد شده از پيغام، برابر OFFFFH باشد، بقيه packetهاي وارد شده اطلاعات مربوط به Authentication را در بر ميگيرند.
Route Tag: روشي را فراهم ميكند كه بتوان بين مسيرهاي داخلي (كه توسط RIP شناسايي شده اند ) و مسيرهاي داخلي (كه توسط بقيه پروتوكلها شناسايي شده اند) تمايز قايل شد.
IP Address: دقيقاً همان كار فيلد Address در RIP را انجام ميدهد.
Subnet Mask: اگر اين فيلد صفر باشد يعني mask نبايد انجام شود.
Next Hop : آدرس IP مربوط به hop بعدي كه packetها بايد به آن جا forward شوند را در بر دارد.
Metric : اين فيلد نيز مانند فيلد مشابه خود در RIP كار ميكند.
Exterior Gateway Protocol:
EGP پروتوكلي است كه قابليت دستيابي به چندين زمينه را ميدهد و در اينترنت استفاده ميشود. هنگاميكه اولين EGP. در سطح جهاني مقبوليت يافت. اهداف و كارهاي ارزشمندي انجام ميداد. اما متأسفانه با رشد و پيچيده شدن اينترنت ضعفهاي EGP بيشتر از پيش آشكار شد. به همين علت EGPها ديگر امروزه كنار گذاشته شده اند وBorder Gateway Protocol (BGP)ها جانشين آنها شده اند.
تكنولوژي:
EGP، ابتدائاً براي برقراري ارتباط و دسترسي از و به ARPANET طراحي شده بود. اطلاعات از مرجعهاي جداگانه در دامنههاي مختلف اينترنتي عبور ميكردند از طريق Routerهاي مركزي كه اطلاعات را از طريق Backbone ميفرستادند تا به شبكه مورد نظر برسند. در يك سيستم (AS) ديگر مثل شكل زير:
Router Router
Router
AS AS AS AS
AS AS
اگر EGP يك پروتكل پوياست ولي طرح ساده اي دارد. هيچ متريكي ندارد و در نتيجه تصميمات هوشمندانه نميتواند بگيرد. EGP معين ميكند كه شبكههاي معيني از طريق مسيرهاي معيني قابل دسترسي هستند.
EGP سه كاركرد اصلي دارد: ابتدا مجموعه اي از همسايهها درست ميكند. اين همسايهها، Routerهايي هستند كه يك EGP Router ميخواهد اطلاعات قابليت دسترسي را با آنها تقسيم كند.
سپس از همسايگانش ميپرسد كه آيا حاضر هستند و در نهايت، پيامهايي براي update كردن اطلاعات ميفرستد.
Packet Format
Variable 2 2 2 1 1 1 1
Data Seq. no As No. Cheeksu Statas Code Type Version
fieldها عبارتند از:
Version: EGP. VER. فعلي را تعيين ميكند و گيرنده آن را نگاه ميكند كه ببيند بين گيرنده و فرستنده تطابق وجود دارد يا نه.
Type : نوع پيام را مشخص ميكند و 5 نوع پيام متفاوت داريم:
1- Neighbor Acquisition: درست كردن همسايه
2- Neighbor Rachability : تعيين ميكند كه آيا همسايهها در دسترس هستند يا نه.
3- poll : در دسترس بودن يك شبكه خاص را تعيين ميكند.
4- Routing updat
5-Error
Code: بين پيامها تمايز ايجاد ميكند.
Statub: حاوي اطلاعات حالت بر اساس پيغامهاست.
Checksum: براي يافتن خطاهاي احتمالي بكار ميرود، كه ممكن است در انتقال رخ دهد.
AS Number: مشخص ميكند كه AS به كدام مسيرياب فرستنده تعلق دارد.
Seq. Number: به دو EGP اجازه ميدهد كه تبادل اطلاعات انجام دهند.
نوع پيغام:
1- Neighbor Aquisition: يك بازة زماني Hlello و يك بازة زماني poll دارد. بازة Hello دوره زماني چك كردن اينكه آيا همسايهها حاضرند را نشان ميدهد و دوره زماني poll، فركانس update كردن مسيريابي را نشان ميدهد.
2- Neighbor Reachability: اين پيغام هيچ چيز اضافي به Header اضافه نميكند. اين پيغام نشان ميدهد كه پيغام Hello است يا poll است. اين كار در كاهش ترافيك شبكه بسيار مؤثر خواهد بود.
3- poll: براي فراهم كردن مسير مناسب بين سيستمها، EGP بايد موقعيت Hostها را بداند. اين پيغام به EGP اجازه ميدهد كه اطلاعات قابليت دسترسي دربارة شبكههايي كه اين hostها در آنها قرار دارند، بدست آورد.
4- routing Update: راهي براي EGP فراهم ميكند كه موقعيت شبكهها را تعيين كند. همچنين فيلدهايي دارد كه تعداد Gotewayهاي داخلي ظاهر شده در اين پيام را نشان ميدهد. همچنين تعداد Gatewayهاي خارجي IP آدرس، شبكههايي كه قابليت دسترسي در آنها سنجيده ميشود و 000
5- Error :
Errorهاي متداول عبارتند از: فرمت اشتباه براي EGP header، فرمت اشتباه براي ديتا، و نبودن اطلاعات براي سنجيدن قابليت دسترسي. پيغام اشتباه در 32 بيت اول EGP header
BGP :
(Border Gateway Protocol) BGP همانگونه كه در RFCهاي 1163 و 1267 تعيين شده است. به ما اجازه ميدهد كه يك سيستم روتينگ تنظيم كنيم كه بصورت اتوماتيك، تبادل اطلاعات بين سيستمهاي مستقل را بدون ايجاد حلقه تضمين كند.
پياده سازي BGPهاي Cisco:
در BGP هر مسير تشكيل شده است از يك شمارة شبكه، يك ليست از سيستمهاي مستقل كه اطلاعات مربوط به قابليت دسترسي را بين ساير سيستمهاي BGP مبادله كند. اين اطلاعات براي اين مفيد هستند كه ميتوانيم يك گراف از نحوة اتصالات شبكه بدست آورديم كه بوسيلة آن ميتوانيم حلقهها را از بين ببريم و سياست، سطح بندي را اعمال كنيم.
BGP چگونه مسيرها را انتخاب ميكند ؟
يك router كه IOS Release 12 Cisco را اجرا ميكند هيچ مسير IGBP را انتخاب نميكند مگر دو شرط زير برآورده شوند:
1- router يك مسير قابل دسترسي به router بعدي دارد.
2- Router يك پيغام synchronzation از طريق IGP دريافت كرده باشد (مگر اينكه synchronzation غير فعال شده باشد.)
BGP بر پايه مقادير و ارزش مشخصات آن تصميم گيري ميكند. وقتيكه چند مسير كه به يك مقصد ميرسند را ببيند، BGP بهترين مسير را از نظر ترافيك به مقصد انتخاب ميكند. الگوريتمي كه در زير ميآيد تعيين ميكند كه BGP چگونه مسير انتخاب ميكند.
1- اگر hop بعدي قابل دسترسي نيست آنرا ديگر در نظر نميگيرد. به همين دليل است كه داشتن يك مسير IGP به hop بعدي مهم است.
2- اگر مسير داخلي است. Synchrornization فعال ميشود و اگر مسير در IGP نيست آنرا در نظر نميگيرد.
3- مسير با بزرگترين وزن را انتخاب ميكند.
4- اگر مسيرها، وزنهاي يكسان دارند، مسير براي مختصات و ارجحيتهاي مكان بيشتر را ترجيح ميدهد.
5- اگر مشخصات مكاني يكسان داشتند، مسيري را كه از router محلي خارج شده است انتخاب ميكند.
6- اگر چنين مسيري پيدا نشد، مسيري كه كوتاهترين راه به سيستمهاي مستقيم ديگر را دارد انتخاب ميكند.
7- اگر اين مسيرها هم يكسان بودند، سير با كوچكترين كد مبدأ را انتخاب ميكند. IGP
9- يك مسير خارجي را بر يك مسير داخلي ترجيح ميدهد.
10- مسيري را انتخاب ميكند كه از طريق نزديكترين همسايه IGP قابل دسترسي باشد. اين بدان معناست كه BGP كوتاهترين مسير داخلي را بين سيستمهاي مستقل براي رسيدن به مقصد انتخاب ميكند.
11- اگر شرايط زير برقرار باشند، اين مسير را در جدول IP مسيريابي قرار ميدهد:
بهترين مسير و اين مسير هر دو خارجي ميباشند.
هر دو از يك همسايه گذشته باشند.
12- اگر سيستم چند مسيره فعال شده باشد، مسير با كمترين IP را انتخاب ميكند.
عمليات Configuration يك BGP
A- كارهاي مقدماتي:
(I) فعال كردن مسيريابي BGP: براي اين كار بايد يك فرآيند مسيريابي بوسيلة مراحل زير انجام شود.
قدم اول: يك عمليات فعال كردن مسيريابي را انجام دهيم كه ما را در حالت configuration قرار دهد.
قدم دوم: يك شبكه را به عنوان يك شبكه محلي Flag بدهيم و آنرا در جدول BGP قرار دهيم.
(II) Configuration همسايههاي BGP:
مانند ساير EGPها، BGP هم بايد كاملاً روابط خود با همسايگانش را بفهمد. BGP به دو نوع همسايه سرويس ميدهد. همسايههاي داخلي و خارجي. همسايههاي داخلي با خود BGP درون يك سيستم هستند و همسايههاي خارجي در سيستمهاي متفاوتي هستند. معمولاً همسايههاي خارجي، مجاور هم هستند و در يك Subnet شريك هستند در صورتيكه همسايههاي داخلي در هر جايي از سيستم ميتوانند باشند.
(III) Reset كردن اتصالات BGP:
هنگاميكه دو تا router مجزا را به عنوان همسايههاي BGP مشخص كرده ايم، آنها يك اتصال BGP تشكيل خواهند داد و اطلاعات مسيريابي را مبادله ميكنند. حال اگر بخواهيم يكي از مشخصات BGP را عوض كنيم. مثل وزن، version 0000 بايد اتصالات Reset شوند تا تغييرات لحاظ شوند. بنابراين بايد در Exec. Mode يكي از اتصالات خاص، كه ميخواهيم تغييرات داده شده اثر داده شوند، Reset را اعمال كنيم.
(IV) اطلاع يافتن از تغييرات در وضعيت همسايگان:
ميتوان تعيين كرد كه سيستم هنگاميكه در وضعيت همسايهها تغييري حاصل ميشود يك پيغام دريافت كند. اين پيغام ميتواند در حل مشكلات اتصالات شبكه مفيد باشد. همچنين براي اندازه گيري پايداري شبكه مفيد است.
(V) تنظيم كردن روابط بين BGP و IGP:
اگر سيستم مورد نظر ما يك سري اطلاعات را كه از يك سيستم ديگر آمده عبور دهد تا به سيستم ديگري برسد. لازم است كه سيستم ما در مورد مسيرهايي كه در اختيار ديگران قرار ميدهد، هماهنگي لازم داشته باشد. براي مثال اگر BGP مورد نظر بخواهيم يك مسير را قبل از اين كه تعبير routerها از طريق IGP چيزي راجع به آن بدانند در اختيار ديگران قرار دهد، BGP ، اطلاعاتي خواهد گرفت كه هنوز بقيه routerها قادر به مسير دهي براي آنها نيستند. براي رفع اين مشكل، BGP بايد صبر كند تا IGP اطلاعاتي مسيريابي را در سراسر سيستم پخش كند. اين باعث ميشود كه BGP با IGP سنكرون باشد در برخي موارد سنكرون كردن لازم نيست. مثلاً اگر بخواهيم كه اطلاعات مربوط به يك سيستم ديگر را عبور دهيم ميتوانيم سنكرون بودن را غير فعال كنيم. اين كار باعث سرعت كار BGP خواهد شد.
(VI) تنظيم فيلتر كردن مسيرهاي BGP بوسيله همسايه:
اگر بخواهيم اطلاعات مسيريابي كه router ميگيرد يا در اختيار ديگران قرار ميدهد. محدود كنيم، ميتوانيم مسيرهاي BGP را توسط همسايهها فيلتر كنيم. براي اين كار بايد يك ليست دستيابي تهيه كنيم و آنرا بكار ببريم.
(VII) غير فعال كردن پردازش Hop بعدي:
ميتوانيم router را بنحوي تنظيم كنيم كه پردازش براي hop بعدي غير فعال نشود. اين كار براي زمانيكه شبكههايي كه در آن مش نيست مفيد است مثل Frame Relay يا X.25 كه در آنها همسايههاي BGP ممكن است دسترسي مستقيم به تمام همسايههاي ديگر نداشته باشد براي انجام اين كار ميتوانيم دستور زير را اجرا كنيم:
Disable next-hop processing on BGP updated to a neighbour
انجام دستور فوق باعث ميشود كه دو ترنعلي خودش را به عنوان hop بعدي معرفي كند براي همساية مشخص نشده. اين كار براي محيط بدون مش مناسب است به دليل اينكه ميدانيم كه يك مسير وجود دارد كه از router فعلي به آدرس مورد نظر برود.
(VIII) تنظيم Version:
بصورت default ، BGP با Ver. شماره 4 كار ميكنند و در صورت لزوم ميتوان ver. كار را كم كرد.
(IX) تنظيم وزن شبكه:
وزن شبكه يكي از پارامترهايي است كه در انتخاب بهترين مسير مؤثر است. كه بايد در زمان راه اندازي براي هر شبكه يك مقدار وزن تعريف شود.
B – كارهاي پيشرفته:
(I) استفاده از نقشه مسير براي update كردن:
يك نقشه مسير را ميتوان هم براي updateهاي دروني و هم بيروني استفاده كرد. تنها مسيرهايي كه از نقشه مسير ميگذرند در updateها فرستاده يا گرفته ميشوند.
در روي updateها فرستاده يا گرفته ميشوند.
در روي updateهاي دروني، ما تطبيق بين سيستمهاي مستقل و ارتباطات را در نظر ميگيريم، در حاليكه در updateهاي بيروني، تطابق بين سيستمهاي مستقل و ارتباطات و شمارههاي شبكه را در نظر ميگيريم.
(III) Reset كردن BPG دقيقاً هنگاميكه اتصال از بين ميرود.
معمولاً هنگاميكه يك اتصال بين همسايههاي خارجي از بين ميرود يا قطع ميشود، كارهاي BGP سريعاً Reset نخواهند شد. اگر بخواهيم كه يك BGP، به محض اينكه يك رابطه قطع شد، Reset نشود بايد BGP را در Mode ريست كردن Automatic قرار دهيم.
(III) شكل دادن آدرسهاي تركيب شده:
مسيريابي بدون دسته بندي اجازه ميدهد كه مسيرهاي تركيبي بسازيم كه اندازة جدولهاي مسيريابي را كم كنيم.
يك آدرس تركيبي به جدول BGP اضافه خواهد شد اگر حداقل يك ورودي مخصوص ديگر در جدول وجود داشته باشد.
براي ساختن يك آدرس تركيبي در جدول مسيريابي يكي از اين كارها بايد انجام شود:
1- يك ورودي تركيبي در جدول مسيريابي ميسازيم.
2- يك تركيبي با AS-SET ميسازيم.
3- فقط خلاصة آدرسها را براي همه بفرستيم.
(IV) غير فعال كردن خلاصه كردن اتوماتيك شمارههاي شبكه:
در BGP، Ver.3 از يك BGP به يك Iap پخش ميشود فقط مسير شبكه در جدول BGP قرار ميگيرد. بصورت پيش فرض خلاصه كردن اتوماتيك انجام ميشود براي غير فعال كردن بايد دستوري Conf.Mode بدهيم.
(V) فيلتر كردن ارتباطات BGP:
BGP از طريق پخش اطلاعات مسيريابي، سياستهاي انتقال را كنترل ميكند. توزيع اطلاعات مسيريابي بر پايه سه اصل زير است:
- آدرس IP
- ارزش Communication كه راهي است براي دسته بندي مقصدها به اجتماعاتي و اتخاذ تصميمهايي براساس اين گروهها.
يك اجتماع گروهي از مقصدهاست كه خصوصيات مشتركي دارند. هر مقصدي ممكن است به چند اجتماع تعلق داشته باشند. در اجتماعات اينترنتي چند اجتماع از پيش تعيين شده معروف وجود دارد:
1- internet: مسير را به اجتماع اينترنتي اعلام ميكند.
2- no-export:
4- no-advertise:
تعريف و تنظيم قانون در حوزة Routerها:
يك راه براي كاهش مش IBGP تقسيم يك سيستم مستقل به چند سيستم مجزا و ايجاد يك قانون بين آنهاست. از ديد خارجي، اين هم پيماني مثل يك سيستم است. هر سيستم در درون خود پردازش خود پردازش است و تعداد كمي اتصالات به بقيه سيستمهايي كه با آن در يك جمع هستند، ميباشد. اگر چه سيستمهاي همتا در چند سيستم متفاوت EBGP دارند ولي اطلاعات مسيريابي را مانند اينكه سيستم مشابه IBGP هستند. تبادل ميكنند.
براي ايجاد يك معاهده BGP بايد يك مشخصه معاهده داشته باشيم. از ديدگاه خارجي، اين معاهده مثل يك سيستم ديده ميشود كه مشخصه معاهده تعيين شده به عنوان شماره آن سيستم است.
(VII): تنظيم اختيارات همسايهها:
براي فراهم كردن اطلاعات مسيريابي براي تعداد زيادي از همسايهها ميتوان BGP را طوري تنظيم كرد كه همسايهها را بر اساس يك ليست دستيابي، بپذيرد. اگر يكي از همسايهها، براي برقراري يك اتصال BGP تلاش ميكند. آدرس بايد در ليست دستيابي باشد، تا اتصال آن پذيرفته شود. با انجام اين كار ديگر BGP براي ايجاد اتصال تلاش نخواهد كرد. بنابراين همسايهها بايد بنحوي شكل دهي بشوند تا اتصال BGP را خودشان برقرار كنند. بديهي است در صورت عدم وجود ليست دستيابي، هر اتصالي پذيرفته خواهد شد.
BGPهاي خارجي معمولاً بايد در يك اتصال مستقيم كنار بكشند. براي BGPهاي داخلي ممكن است كه ما بخواهيم كه اتصالات BGP باقي بمانند بدون توجه به اينكه چگونه بايد با همسايه مواجه شد و اتصال برقرار كرد.
(VIII) تشكيل گروههاي مشابه و يكسان BGP:
گاهي ميبينم كه چند BGP مجاور و همسايه. اطلاعات و سياستهاي يكساني دارند. (مثل نقشههاي مسيريابي ليست فيلترها مراجع update كردن و 000). اين چنين همسايههايي را ميتوان به يك گروه برد تا شكل دادن و تنظيم كردن آنها راحت تر باشد.
بعد از ايجاد اين گروه هر BGP، مشخصات گروه را به ارث ميبرد.
(IX) نشان دادن مسيرهاي مخفي:
ميتوان براي نشان دادن اينكه كدام شبكه قابل دسترسي است، از يك مسير مخفي كه Router مرزي بايد از استفاده كند كمك گرفت. شبكه مخفي مانند يك شبكه محلي عمل ميكند، بجز اينكه هيچ اطلاعاتي در اختيار ديگران قرار نميدهد.
(x) تنظيم فاصلههاي اجرايي:
فاصلة اجرائي (Administrative distance) يك پارامتر اندازه براي اولويت دادن به پروتكلهاي مسيريابي مختلف است. BGP سه نوع مسير و فاصله اجرائي مختلف استفاده ميكند: خارجي، داخلي و محلي. هر Router كه اطلاعاتي از طريق فاصله خارجي بدست آورد، فاصلة خارجي دارد و به همين ترتيب براي بقيه تغيير دادن فاصله اجرايي يك Router خطرناك است و فاصله خارجي بايد كمتر از هر پروتكل مسيريابي ديگر باشد و فاصله داخلي بايد بيشتر باشد.
(XI) تنظيم تايمرهاي BGP:
BGP از تايمرهاي ميعني براي انجام فعاليتهاي متناوب استفاده ميكند. اين تايمرها را ميتوان تنظيم كرد. هنگاميكه يك اتصال برقرار ميشود. BGP با همسايه اش در مورد Hold Time صحبت ميكند و هر كدام Hold Time كمتر داشته باشد انتخاب ميشود.
EGP: Exterior Gateway Protocol
EGP، همانگونه كه در RFC904 مشخص شده است، براي ارتباط با Routerهاي معين در وزارت دفاع آمريكا استفاده ميشده است كه آنها را Routerهاي مركزي ميناميدند. يك Router خارجي از EGP استفاده ميكند تا اطلاعات خود از مسيرهاي شبكه اي كه در سيستم آن قرار دارد، در اختيار همه قرار دهد، به Routerهاي مركز پيغام را ميفرستد و آنها هم اطلاعات جديد خود را در اختيار Router خارجي قرار ميدهند.
پياده سازي EGPهاي Cisco:
پياده سازي EGP، سه كاركرد اصلي دارد:
1- Routerهايي كه EGP را اجرا ميكنند. مجموعه اي از همسايه را ايجاد ميكنند كه اينها اطلاعات دستيابي را بين خود تقسيم ميكنند.
2- Routerهاي EGP مرتباً از همسايههاي خود سئوال ميكنند آيا كار ميكنند.
3- پيامهاي حاوي اطلاعات درباره قابليت دستيابي شبكههاي درون سيستم آنها ميفرستد.
Configuration يك EGP:
(I) فعال كردن مسيريابي EGP:
براي فعال كردن مسيريابي بايد يك شمارة سيستم مشخص كنيم يك پردازش مسيريابي انجام دهيم و شبكه اي را كه پردازش EGP براي آن صورت خواهد گرفت نشان دهيم.
(II) تنظيم روابط همسايههاي EGP:
يك EGP Router، نميتواند بصورت پويا. همسايهها و يا Routerهاي مشابه را تعيين كند. بنابراين بايد يك ليست از Routerهاي همسايه تعيين كنيم.
(III) تنظيم تايمرهاي EGP :
تايمرهاي EGP از يك تايمر Hello و يك تايمر براي بازة زماني polling تشكيل شده است. تايمر Hello معين ميكند كه Router با چه فركانسي به Router همتاي خود پيامهاي Hello ميفرستد و تايمر polling مشخص ميكند با چه فركانسي اطلاعات update شده انتقال يابند. نحوة پياده سازي EGP به كاربر اين امكان را ميدهد كه تايمرها را تنظيم كند.
(IV) تنظيم Routerهاي پشتيبان:
ممكن است كه ما بخواهيم، در هنگام از كار افتادن سايت به Router دوم كه متعلق به يك سيستم ديگر است به عنوان Backup براي EGP Router ما كار كند. براي تفاوت گذاشتن بين Router اول و دوم. اين Routerها مسيرهاي شبكه را با فواصل EGP متمايز در اختيار بقيه قرار ميدهند. يك شبكه با فاصله كمتر معمولاً بر شبكه با فاصله بيشتر ترجيح دارد.
(V) مسيرهاي پيش فرض:
ميتوانيم شبكه0.0.0.0 را به عنوان مسير پيش فرض در نظر بگيريم.
(VI) تعيين مركز مديريت اطلاعات سريابي (Core Gateway):
معمولاً يك پردازش EGP انتظار دارد كه با همسايهها از يك سيستم ارتباط برقرار كند. بدليل اينكه تمام همسايهها در يك سيستم هستند. پردازش EGP فرض ميكند كه همگي همسايه اطلاعات داخلي هماهنگ دارند. بنابراين اگر EGP راجع به مسيري از يكي از همسايهها اطلاعي بگيرد، آنرا به بقيه همسايهها نخواهد فرستاد.
با EGP مركزي، فرض بر اين است كه همه همسايهها از سيستمهاي متفاوت هستند و اطلاعات ناهماهنگ دارند. در اين شرايط EGP، مسيرهاي از يك همسايه به بقيه را پخش ميكند. اين به EGP اجازه ميدهد كه مركز اطلاعات باشد با يك مديريت مركزي براي اطلاعات مسيريابي.
GDP: Gateway Discovery Protocol:
اين پروتكل براي رفع نيازمنديها طراحي شده است و به Host اجازه ميدهد كه مرتباً از ورود يك Router جديد مطلع شود. براي راحتي پياده سازي روي نرم افزارهاي گوناگون، GDP بر پاية UDP كار ميكند. دو نوع پيام GDP وجود دارد. Report و Query براي رسانههاي Broadcast، پيامهاي Report بصورت متناوب به آدرس Broadcast فرستاده ميشوند. كه نشان ميدهد كه Router حاضر و در حال كار است. با گوش دادن به اين پيام يك host ميتواند ظاهر شدن يك Router را بفهمد.
اگر يك host يك query بفرستد به آدرس Broadcost هر Router يك Report به آدرس host ميفرستد.
شكل زير فرمت پيام Report را تعيين ميكند:
Reserved Couat Opcode Version
Address 1
plqbdityngal Priority L
Address 2
Hold Time 2 Priority 2
Version: يك field 8 بيتي كه شماره ver. پروتوكل را دربردارد. ورژن فعل GDP. 1 است.
Opcode، 8 بيت كه نوع پيغام GDP را نمايش ميدهد. Raport Opcode = 1
Query Opcode = 2. به opcode نامفهوم هم توجهي نميشود.
Count: 8 بيت كه تعداد Address، Priority و نوع Hold Time را مشخص ميكند. Query Count = 0 , Report Count = 1
Reserved : 8 بيت كه رزو شده است و بايد صفر قرار داده شود.
Address: 32 بيت كه نشان دهندة آدرس روتر از شبكه محلي است و هيچ محدوديت ديگري روي اين آدرس نيست. اگر يك Host بفهمد كه آدرس متعلق به شبكه محلي نيست بايد از آن چشم پوشي كند.
Priority: 16 بيت كه كيفيت متناسب با آدرس را نشان ميدهد. هر چه مقدار priority بيشتر باشد آدرس را بايد بهتر دانست.
Hold Time: 16 بيت در رسانههاي Broadcast. تعداد ثانيههايي است كه آدرس مورد نظر بايد استفاده نشود بدون توجه و گوش دادن به پيغام ديگر. در روي رسانههاي non-Broadcost مثل X.25 تعداد ثانيههايي است كه در خواست دهنده بايد صبر كنند بايد صبر كنيد قبل از فرستادن Query بعدي.
تعداد زيادي كار ميتوان با گوش دان نرم افزار به GDP انجام داد. مثلاً update كردن جدول مسيريابي يك host از روي پيغامهايي كه ميآيد. كار عمدة مربوط است به نرم افزار و نيازهاي شبكه.
IP Multicast Routing:
ارتباطات Ip مرسوم به يك host اجازه ميدهد كه packet به يك host ديگر بفرستد. (unicast) يا به همه بفرستد (Broadcast) IP Multiast يك روش سوم ارائه ميكند كه به يك host اجازه نميدهد يك Packet را به مجموعه اي از hostها (نه تمام آنها) بفرستد، اين hostها، اعضاي گروه ناميده ميشدند. Packetهايي كه به اعضاي گروه فرستاده ميشوند با يك آدرس معين ميشوند. محيط Multicast از فرستنده و گيرنده تشكيل شده است. هر host، خواه عضو گروه باشد يا نه ميتوان به گروه بفرستد اگر چه تنها اعضاي گروه آنرا ميگيرند. يك آدرس Malticast، براي گيرندهها انتخاب ميشوند و براي فرستادن Packet به گروه بايد به آن آدرس فرستاد. عضويت در گروه حالت ديناميكي است يعني در هر لحظه ميشود عضو شد يا گروه را ترك كرد.
Routerهايي كه پروتكل مسيريابي Multicast را انجام ميدهند مثل PIM، جدولهايي دارند كه ديتاگرامها را forward كنند. Routerها از IGMP (Internet Group Managmant Protocol) استفاده ميكنند كه بفهمند كه اعضاي گروه به Subnet مورد نظر وصل هستند يا نه.
پياده سازي IP Multicast Routing:
سه راه براي پياده سازي وجود دارد:
1- IGMP، (Internet Group Management Protocol) كه بين hostها در يك LAN و Routerها در همان LAN استفاده ميشود. كه ميتوان بوسيله آنها فهميد كه hastها عضو كدام گروه هستند.
2- PIM، (Protocol Independent) بين Routerها استفاده ميشود كه ميتوانند بفهمند كدام Packetها را به همديگر forward كنند و به LANهايي كه مستقيماً به آنها متصل هستند بفرستند.
3- DVMRP: (Distance Vector Multicast Rp)
1- IGMP:
hostهاي IP، از IGMP استفاده ميكنند تا گروه عضويت خود را به Routerهاي متصل گزارش دهند. IGMP از آدرسهاي گروه استفاده ميكند كه از نوع آدرس كلاس D هستند. چهار بيت بالايي كلاس D 1110 هستند. اين بدان معني است كه نوع رنج آدرس گروه بين 224.0.0.0 تا 239.255.255.255 است. و اگر 224.0.0.0 هم به هيچ گروهي داده نميشود و آدرس 224.0.0.1 به تمام سيستمها تعلق دارد و آدرس 224.0.0.2 به تمام Routerها تعلق دارد.
2- PIM،
پروتكل PIM، مد سرويس به كسانيكه تازه به عضويت درآمده اند در IP Multicastرا بر عهده دارد و وابسته به پروتكل خاصي از مسيريابي نيست.
PIM در دو مد كار ميكند. sparse , dense :
در Dense Mode يك Router فرض ميكند كه تمام بقية Routerها ميخواهند كه packetهاي Multicast را براي يك گروه forward كنند. اگر يك Router يك Multicast Packet دريافت كند و همساية PIM حاضر و يا عضو متصل ندارد، يك پيغام به مبدأ فرستاده خواهد شد. Packetهاي Multicast متناوب و زياد بطرز ناگهاني به اين Router فرستاده نميشوند و PIM يك شاخه پخش درخت دار در درست ميكند. در Sparse Mode هر Router فرض ميكند كه بقيه Routerها نميخواهند كه Multicast packetها را forward كنند. مگر اينكه يك درخواست واضح براي ارسال باشد. وقتي كه hostها به يك گروه Multicast ميپيوندند، Routerهايي كه مستقيماً متصل هستند، پيام اتصال PIM ميفرستند.
3- DVMRP:
DVMRP يك ديتابيس parent-child با استفاده از مدل Multicasting ميسازد تا يك ساختار forward كردن مثل درختي كه ريشه آن مرجع Multicastpacket است. تشكيل دهد. در ابتدا اين packet در اين درخت جاري ميشوند. اگر مسيرهاي غير ضروري در اين درخت باشد، packetها در اين مسيرها نميروند. در DVMRP، forwordinxg تا زماني اتفاق ميافتد كه پيغامهاي prune دريافت نشود.
Ip Multicast Routing Configuration:
(I) فعال كردن مسيريابي:
فعال كردن مسيريابي به Router اجازه ميدهد كه Multicast packet را forward كند.
(II) فعال كردن PIM در يك Interface:
فعال كردن PIM در يك Interface همچنين باعث فعال شدن IGMP خواهد شد. هر Interface را ميتوان طوري تنظيم كرد كه در هر dense يا sparse باشد. هر دو تعيين ميكند كه چگونه Router Multicast Packetها دريافت ميكنند. در پركردن جدول مسيريابي Multicast . Interfaceهاي مد dence هميشه به جدول اضافه ميشوند ولي در مد sparse، Interfaceها تنها زماني به جدول اضافه ميشوند كه پيامهاي ملحق شدن متناوب توسط Router دريافت شوند. هنگاميكه از يك forward , LAN ميكنيم عمليات حالت Sparse اتفاق ميافتد يك RP شناخته شده براي گروه موجود باشد و در اين صورت Packetها بسته بندي ميشوند و به سمت آن فرستاده ميشوند.
در حالت پيش فرض هيچ مدي انتخاب نشده است و مسيريابي Multicast غير فعال است. اگر ما بخواهيم كه Router در حالت spars كار كند بايد يك يا چند Router را انتخاب كنيم كه به عنوان RP (نقطه تلاقي) كار كنند. و ما نيازي نيست كه به آنها بگوئيم اين كار را بكنند و خودشان خواهند فهميد. RPها توسط فرستندهها استفاده ميشوند. تا وجود خود را اعلام كنند و گيرندهها هم با گرفتن Packetها در بازه فرستنده جديد اطلاع ميگيرند. ما بايد آدرس RPها در Routerهايي تنظيم كنيم كه يا مستقيماً به يك گروه Multicast متصل هستند يا به يك فرستندة Multicast متصلند.
يك PIM Router ميتواند به عنوان RP براي چند گروه هم كار كند و هر گروه هم ميتواند بيش از يك RP داشته باشد.
(III) افزايش كنترل روي RPها:
ما ميتوانيم از ايجاد اختلاف توسط يك Router Leaf براي بقيه شبكه جلوگيري كنيم. براي انجام اين كار روتر محلي را طوري تنظيم ميكنيم كه پيامهاي اتصال را تنها زماني قبول كند كه آدرس RP آن در ليست دستيابي تعيين شده باشد.
(IV) تنظيم اينكه يك Router عضو يك گروه باشد:
Routerها ميتوانند طوري تنظيم شوند كه عضو يك گروه Multicast باشند. اين براي تعيين قابليت دستيابي Multicast در يك شبكه مفيد است. اگر يك Router عضو يك گروه باشد و پروتوكلهاي آنها را support ميكند. ميتواند به گروه پاسخ دهد. يك Router به Packetهاي درخواست ICMP كه به گروهي كه Router عضو آن است فرستاده شوند، جواب ميدهد.
(V) تعيين زمان پيامهاي IGMP Host - Query :
Router Multicast پيامهاي IGMP Haot-Query را براي اينكه بفهمند كه گروه حاضر است يا نه ميفرستد. اين پيام را به تمام سيستمها ميفرستد يعني آدرس Multicast Router . 224.0.0.1 اين پيام را بصورت متناوب ميفرستد تا مرتباً اطلاعات جديدي از گروهها بگيرد. اگر بعد از مدتي، Router بفهمد كه هيچ host محلي در يك گروه وجود ندارد، ديگر عمليات forward كردن به آن گروه را متوقف خواهد كرد Multicast Router يك روتر طراحي شده با PIM را انتخاب ميكنند كه بيشترين آدرس IP را دارد. اين روتر مسئول فرستادن پيغامهاي IGMP host-Query است به تمام Hostهاي LAN . بطور پيش فرض اين پيام دقيقه اي يك مرتبه فرستاده ميشود. ميتوان اين بازه را تغيير هم داد.
(VI) كنترل دستيابي به گروههاي Multicast:
روترهاي Multicast پيامهاي IGMP host-Query را براي تعيين اينكه كدام گروهها اعضايي دارند كه به شبكه آن روتر متصل است، ميفرستند. سپس هر packet با آدرس گروه را با آن گروه forward ميكنند. ما ميتوانيم در هر Interface يك فيلتر بگذاريم كه گروههايي را كهhost ها ميتوانند به آنها ملحق شوند محدود كند.
(VII) تعيين بازة پيام PIM Router-Query: پيامهاي Router-Queryبراي انتخاب PIM Router استفاده ميشوند. اين Router مسئول فرستادن پيامهاي IGMP host-Query ميباشد. بصورت پيش فرض Multicast Router در هر 30 ثانيه 1 مرتبه اين پيغام را ميفرستد، همچنين ميتوان اين بازة زماني را عوض كرد.
(VII) تنظيم تعامل DVMRP:
روترهاي PIM بصورت ديناميكي روترهاي DVMRP را در شبكههاي متصل پيدا ميكنند. هنگاميكه يك DVMRP پيداشد، روتر بصورت متناوب گزارشهاي PVMRP را ميفرستد كه اعلام ميكند اين مرجع در حوزة PIM قابل دسترسي است. بصورت پيش فرض، subnetها و شبكههايي كه بصورت مستقيم متصل هستند اعلام ميشوند. روتر Multicast Packetهايي را كه بوسيله DVMRP، forward شده بودند را forward ميكند و در عوض packet Multicastها را به روترهاي DVMRP ، forward ميكند. ما ميتوانيم تعيين كنيم كه كدام مرجعها، بصورت عمومياعلام شوند.
(IX) تنظيم يك تونل DVMRP:
ما ميتوانيم يك تونل DVMRP، اگر سر ديگر آن DVMRP اجرا كند، تنظيم كنيم. سپس روتر Multicast Packetها را از طريق اين تونل ميگيرد و ميفرستد.
اين به يك حوزة PIM اجازه ميدهدكه در شرايطي كه تمام روترها در مسير، Muticast را نميپذيرند به يك روتر DVMRP متصل شود. هنگاميكه ميخواهيم از يك تونل استفاده كنيم به دو دليل بايد به آن آدرس بدهيم:
1-اينكه بتوانيم IP Packet را از طريق تونل بفرستيم.
2-براي اينكه نشان دهيم نرم افزار بايد عمليات خلاصه كردن DVMRP را انجام دهد.
+ نوشته شده در سه شنبه یکم تیر ۱۳۸۹ ساعت 13:37 توسط Cisco
|