سنستكشف في هذا الدرس عملية توصيل الرزم الشبكيّة من منظور الموجِّهات، وسنرى كيف أنَّ إحدى أهم وظائف الموجِّهات هي تحديد المسار الأمثل لرزم IP بين الشبكات؛ وسنتعمَّق في بعض المكوِّنات مثل جداول التوجيه، وسنشرح الطرق المختلفة لملئها (أي جداول التوجيه الثابتة [static] والديناميكية [dynamic])؛ وسنُعدِّد خصائص بروتوكولات التوجيه ونصنِّفها إلى «distance vector» و «link-state».
الموجهات
نحن نعلم أنَّ الموجِّهات تطبِّق وظائف الطبقة الثالثة أو طبقة الشبكة؛ وأنَّ مهمتها الأساسية هي تمرير الرزم الشبكيّة بناءً على جدول التوجيه. وبهذا نحصل على تقسيم للبيانات التراسلية (traffic segmentation)، وعدِّة مجالات إذاعيّة (broadcast domains)، ونُعرِّف الشبكات الفرعية لعناوين طبقة الشبكة؛ تُعرَّف هذه الشبكات بالمنافذ التي تُسنَد إليها عناوين IP، والتي هي عادةً عناوين IP للبوابة الافتراضية (default gateway) للحواسيب والخواديم وغيرهما من المعدّات الشبكيّة.
تتصل الموجهات أيضًا إلى مزودي الخدمة إذ يعملون كبوابات إلى الشبكات الأخرى، وغالبًا ما يتواجدون في طرف (edge) الشبكة؛ قد لا تكون بعض تلك المحولات (adapters) الشبكية من نوع إيثرنت؛ فلديها قدرة على الاتصال إلى المنافذ التسلسلية، واتصالات DSL، وأشكالٍ أخرى من VAN؛ المكونات الرئيسية المذكورة هنا ستتشابه مع مكونات أي جهاز حاسوبي أو شبكي: معالج، ولوحة أم، وذاكرتَي RAM و ROM. وهنالك نوعٌ أخر من الذواكر في موجِّهات سيسكو هو ذاكرة flash، التي تُخزَّن فيها صورة نظام التشغيل؛ لكن النقطة الأساسية خلف خصائص تلك المكونات هي أنَّ العناصر المكونة للحاسوب أصبحت قويةٌ للغاية مما يُمكِّن الموجهات من أداء أدوار بقية الأجهزة الشبكيّة؛ إذ يمكن دمج وظائف الجدر النارية، وحتى إمكانية توجيه المكالمات الصوتية للبيئات التي تعتمد على الاتصالات الصوتية عبر بروتوكول IP؛ ولهذا تكون موجهاتنا العصرية أكثر من مجرد أجهزة تعمل في الطبقة الثالثة، إذ أصبحت متعددة الوظائف، مما يسمح لك بدمج عدِّة وظائف ضمن مكونات شبكتك: بعضها عبر تحديثات النظام، وبعضها عبر إضافات عتادية للموجهات التي تقبل تلك الإضافات.
وظائف الموجهات
يمكن تقسيم وظيفة التوجيه إلى قسمين؛ أولهما هو بناء خريطة للشبكة وتَستعمل الموجهات -لهذه المهمة- بروتوكولات التوجيه الثابتة أو الديناميكية؛ وبمساعدة بروتوكولات التوجيه الديناميكية، تسمح الموجهات لبقية أجهزة الشبكة بمعرفة مخطط الشبكة والتغيرات التي قد تحصل عليها؛ أما التوجيه الثابت فلن يتأقلم مع التغيرات التي قد تطرأ على الشبكة؛ لكن كلا الطريقتين تنجزان مهمة بناء خريطة للشبكة على شكل «جدول توجيه» (routing table).
تحديد المسار
أثناء عملية تحديد المسار، ستدرس الموجهات عدِّة مسارات بديلة للوصول إلى نفس المكان؛ وتأتي هذه البدائل نتيجةً للبنية التعويضية (redundancy) المبنيّة في أغلبية تصاميم الشبكة. وإنَّك ترغب بوجود عدِّة مسارات، فلو أصبح أحدها خارج الخدمة، فسيكون عندك بدائلٌ له.
عند تحديد أيُّ المسارات أفضل، فستأخذ الموجهات عدِّة عوامل بعين الاعتبار أحدها هو مصدر معلومات المسارات، وبهذا يمكن أن يكون لديك عدِّة بروتوكولات توجيه ديناميكية وحتى بروتوكولات توجيه ثابتة تملأ جدول التوجيهات وتخبر الموجه ما هي الخيارات المتاحة أمامه.
القطعة الثانية من المعلومات هي «كلفة» (cost) الاتصال عبر كل مسار؛ وبمراعاة أنَّ كل مسار مكوَّن من عدِّة وصلات أو عقد مُعرَّفة من موجهات أخرى، فيمكننا إضافة مفهوم «الكلفة» إلى المسارات، الذي هو مجموع كل الكلفات للوصول إلى العقدة التالية في المسار.
هنالك قراران محكومان بأجزاءٍ مختلفة من المعلومات؛ فلكي نُعرِّف مصدر المعلومات الراجح، فستستخدم الموجهات «المسافة الإدارية» (administrative distance)؛ فلو كان أحد بروتوكولات التوجيه مثل OSPF يخبر الموجه معلوماتٍ عن الوجهة، وكذلك يفعل بروتوكول RIP؛ فستُحدِّد المسافة الإدارية من الذي سنعتمد معلوماته؛ وعند اختيار المصدر، فستصبح الكلفة مهمةً؛ أي بكلامٍ آخر، إن أعطانا OSPF معلوماتٍ عن مسارين، فستكون كلفة المسار هي ما الذي سيحدد أيهما سأختار؛ وهذا شبيهٌ بامتلاك خريطتين للقيادة من مدينةٍ إلى أخرى؛ إذ ستختار الخريطة التي ستتبعها، ثم إن كانت تعطيك الخريطة أكثر من خيار، فستختار أفضلها اعتمادًا على الوقت اللازم للمرور فيها، أو المسافة التي عليك قيادتها.
جداول التوجيه
إذًا، تحتوي جداول التوجيه على «ذكاء» طبقة الشبكة لإخبار الموجه كيف يمرر الرزم إلى الوجهات البعيدة؛ وفي بادئ الأمر، يتكون جدول التوجيه من الشبكات التي تتصل مباشرةً بالموجه المعيّن؛ ومن ثم يُملأ الجدول إما عبر التوجيه الثابت الذي سيخبر المدير فيه الموجه كيف سيصل إلى الوجهة، أو عبر ملء الجدول عبر إشعارات جداول التوجيه القادمة من الموجهات الأخرى.
أي أنَّ الموجهات «كثيرة الكلام» وتخبر بعضها بعضًا المعلومات التي تسمح لها بمعرفة مكونات الشبكات؛ وفي كلا الحالتين، ستُستخدَم عناوين الشبكة الفرعية معكوسةً أو عناوين الشبكة التي تحتوي على أصفارٍ في قسم المضيف من عنوان IP.
ونحن نتحدث -في هذه الحالة- عن عنوان مقسَّم إلى شبكةٍ فرعية ليس لها فئة معيّنة أصلها شبكةٌ فئتها A؛ الشبكة 10.0.0.0 مقسّمة إلى شبكاتٍ فرعية تشبه الفئة C؛ لكن -في جميع الحالات هنا- قسم المضيف من العنوان (البايت الرابع) كله أصفار، الذي يمثِّل تلك الشبكة الفرعية. أي بكلامٍ آخر، هذه هي الشبكات الوجهة، وستحتوي جداول التوجيه في حالة الوجهات البعيدة مدخلاتٍ تُظهِر العقدة الشبكيّة التي يجب الاتصال بها للوصول إلى الوجهة؛ وفي هذه الحالة، للوصول إلى 10.1.3.0، فإن العقدة الشبكية هي الموجِّه 2 ذو العنوان 10.1.2.2.
هنالك تصنيفات لمدخلات (entries) جدول التوجيهات التي يمكن أن تُملأ إما ديناميكيًا أو يدويًا؛ بعضها يأتي مع الموجِّه. ويتعرف على جميع الشبكات المتصلة به مباشرةً عندما يُقلِع ويُعرِّفها كوجهات يمكن الوصول إليها؛ أما الجزء الذكي هو تواصل الموجهات مع بعضها وتبادلها معلومات التوجيه عبر بروتوكولات التوجيه الديناميكي مثل OSPF أو EIGRP، ثم سيعلمون عن تلك الوجهات، ويتأقلمون أيضًا مع التعديلات التي تجري عليها.
ستتمكن بروتوكولات التوجيه من التعرف على التغيرات في مخططات الشبكة ثم ستخبر الموجهات بعضها بعضًا بذلك؛ وستظهر المُدخلات وستختفي من جدول التوجيهات اعتمادًا على توفر تلك الشبكات؛ لكن تذكر أنَّه قد يأتي المدير ويُضيف المدخلات الثابتة يدويًا، وهذا غير مستحسن في بعض الأحيان، لأن تلك المدخلات ثابتة ولا تتأقلم مع التغييرات التي قد تحدث على الشبكة. أي بكلامٍ آخر، إذا كانت المُدخلة (أي الموجه) غير متوفرة، فستبقى المدخلة موجودةً في جدول التوجيهات وسيستمر الموجه بتمرير الرزم إلى وجهة غير موجودة.
حالة خاصة من التوجيه الثابت هي «المسار الافتراضي» (default route) الذي يمكن أن يتعلمه الموجه ديناميكيًا؛ يُستخدم المسار الافتراضي عندما لا توجد مسارات معروفة للوصول إلى الوجهة، إذ أنَّ هذه المدخلة تستعمل لجميع الوجهات غير المعروفة. سيقول الموجِّه: «إن لم أعرف المسار إلى وجهةٍ معيّنة، فسأمرر الرزم إلى من يعرف المسار، الذي يكون عادةً موجِّهًا آخر».
المقاييس المستعملة للتوجيه
يعتمد اختيار أمثل مسار على ما يُعرَف بكلفة الوصول إلى الوجهة عبر مسارٍ معيّن؛ وتُعرَف الكلفة بالمصطلح «المقياس» (metric)، وتضع مختلف بروتوكولات التوجيه معايير مختلفة لتعريف المقياس؛ فالتقنيات والبروتوكولات القديمة تأخذ عدد الموجهات في المسار للوصول إلى الوجهة بعين الاعتبار، وهذا ما يُسمى «hop count»، الذي قد لا يكون أحيانًا أفضل طريقة لحساب التكلفة، لأن هنالك مقدار تراسل شبكي مختلف لكل عقدة أو وصلة بين العقد.
يكون الطريق ذو العقدتين -في المثال التوضيحي السابق- أفضل، لامتلاكه تراسلًا شبكيًا أكبر. بدأت بروتوكولات التوجيه الأخرى باعتبار التراسل الشبكي مقياسًا للكلفة، وغيره من المعايير؛ فمثلًا يأخذ بروتوكول EIGRP التراسل الشبكي، وزمن التأخير، والوثوقية، والحِمل، ووحدة النقل القصوى (maximum transmission unit) بعين الاعتبار. وبهذا لن يتم اختيار مسار فيه تراسل شبكي كبير لكنه تحت حِملٍ ثقيل، وإنما سيتم اختيار مسار بتراسل شبكي أصغر لكن أقل حِملًا وأكثر وثوقيةً.
ربما أحد النقاط التي يركِّز عليها هذا الدرس هي أنَّ اختيار بروتوكول التوجيه -إن كنت تستعمل توجيهًا ديناميكيًا- هو المفتاح لتحديد الكلفة أو المقياس؛ وبالتالي تحديد آلية اختيار أمثل وأكثر المسارات كفاءة؛ ولكن الأمر منوطٌ أيضًا بزمن الاستجابة الذي سيستغرقه بروتوكول التوجيه لكي يستشعر تغييرًا في هيكلة الشبكة ويُعدِّل عمله باختيار مسارٍ بديل إذا لم يكن المسار الرئيسي متاحًا. فهنالك عدِّة تصنيفات لبروتوكولات التوجيه إذا كنت تستعمل التوجيه الديناميكي التي تُحدِّد -أي تلك التصنيفات- الكلفة والمقاييس، وأيضًا سلوك البروتوكولات في مثل الحالة السابقة.
بروتوكولات «Distance Vector» للتوجيه
أحد التصنيفات هو Distance Vector، الذي لن تحتاج الموجِّهات فيه إلى معرفة المسار بأكمله إلى الوجهة، بل كل ما يبغي معرفته هو الاتجاه (vector) الذي ستُرسَل إليه الرزمة، أي أنَّ الموجهات ستحتفظ بمعلوماتٍ في جداول التوجيه تتعلق بالعقدة الشبكيّة التالية التي يجب إرسال البيانات إليها للوصول إلى وجهة معيّنة.
تعاني بروتوكولات Distance Vector من عدِّة سلبيات؛ أحدها هي أنها توزِّع جدول التوجيهات بشكلٍ دوري. فبعضها يستخدم الإذاعة لتوزيع كامل جدول التوجيهات، وهذا يَتسبَّب بحِملٍ ثقيلٍ غير ضروريٍ على الشبكة إن لم تتغير بنيتها؛ وهذا شبيهٌ بالاتصال بجميع معارفك وإخبارهم إشاعاتٍ مرارًا وتكرارًا، حتى وإن لم تتغير الشائعة أو تغير جزءٌ صغيرٌ منها. مثالٌ عن بروتوكول Distance Vector هو بروتوكول RIP، الذي يستعمل عدد العقد الشبكيّة مقياسًا للكلفة.
بروتوكولات «Link-State» للتوجيه
تتسم بروتوكولات Link-State بالكفاءة والفعالية في إنشاء مخططات للشبكة، ومشاركتها، واختبار أفضل مسار مقارنةً مع بروتوكولات Distance Vector؛ هناك عدِّة اختلافات بين هذين التصنيفَين، فمثلًا لن تُذيع (broadcast) بروتوكولات Link-State المعلومات لكل موجه، إذ ستستخدم multicast حيث يعلن كل موجِّه عبر multicast الوصلة التي يعرفها لجيرانه. وثانيًا، لن تُذيع بروتوكولات Link-State جدول التوجيهات بشكلٍ دوري؛ فبعد إذاعة كامل الجدول لأول مرة، فسترسل بعد ذلك التغييرات في بنية الشبكة فقط؛ أي بكلامٍ آخر، إذا لم يعد مسارٌ من المسارات متوفرًا فسيذاع هذا التغيير الصغير عبر multicast؛ وثالثًا، لن يعلم الموجه ما هي العقدة التالية التي سيصل عبرها إلى الوجهة فحسب، وإنما سيعلم عن خريطة الشبكة بأكملها.
سيبني كل موجه خريطة الشبكة بعد حصوله على كامل معلومات الشبكة؛ التي تتضمن جميع الموجهات والوصلات؛ وبهذه المعلومات سيتمكن كل موجِّه من استعراض تلك الجداول عبر خوارزمية «أقصر مسار أولًا» (shortest path first algorithm)، ثم اختيار أفضل مسار إلى الوجهة. وبهذا، إذا حصل تغيير في الشبكة، لم يعد مسارٌ ما متوفرًا على سبيل المثال، الذي يؤثر على فرعٍ صغيرٍ في شجرة الشبكة؛ فسيُعلَن هذا التغيير فقط على الشبكة؛ وهذا سبب تسمية هذه التحديثات بالتحديثات التراكمية (incremental updates). كل هذه الاختلافات والفروقات تجعل من بروتوكولات Link-State أكثر كفاءة وفعاليةً في التعامل مع تغييرات الشبكة.
ترجمة -وبتصرّف- للمقال Exploring the Functions of Routing.
أفضل التعليقات
لا توجد أية تعليقات بعد
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.