يشرح هذا الدرس عملية توجيه الرزم الشبكيّة من وجهة نظر الموجَّه؛ وهذا يتضمن ربط عناوين الطبقتين الثانية والثالثة، بالإضافة إلى قدرة الموجِّه على حساب أفضل طريق للوصول إلى الوجهة. وسنلقي نظرةً على بعض الأدوات للتحقق من صحة الضبط التي سينتج عنه قابلية الاتصال بين الأجهزة على شبكاتٍ مختلفة، ومنها الأداة show ip arp، و ping، و trace.
عناوين الطبقة الثانية: عناوين MAC
عندما يكون لدينا موجِّه بين جهازين، فعلينا استعمال عناوين الطبقتين الثانية والثالثة؛ سنستعمل عناوين MAC المبيّنة في الشكل في أمثلتنا القادمة للموجِّه والمضيفين؛ تذكر أننا سنستبين عناوين MAC للموجِّه لإرسال الرزم من جهازٍ في القطعة الشبكيّة الأولى إلى جهازٍ آخر في قطعةٍ شبكية أخرى.
عناوين الطبقة الثالثة: عناوين IP
توضِّح هذه الصورة عناوين IP للمضيفين والموجِّه نفسه؛ تذكر أن تصميم شبكتك قد أتى من حقيقة أنَّك قسَّمتَ إلى قسمين لأغراضٍ تتعلق بالأداء أو الحماية (أو لغير ذلك من الأسباب) ثم وضعت موجِّهًا في المنتصف لكي تتمكن من تمرير الرزم الشبكيّة إلى وجهتها الصحيحة. سنفترض في الأمثلة القادمة أنَّ الموجِّه يقوم بدور توجيه الرزم فقط، لكن قد يقوم الموجِّه بوظائفَ أمنية، وترشيح الرزم، وإقامة جدر نارية، وتطبيق آليات لتحديد جودة الخدمة (QoS)؛ قد يؤثِّر ما سبق على كيفية تمرير الموجِّه للرزم، لكننا سنفترض أنَّه يؤدي دور التوجيه فقط.
عملية توصيل الرزم عبر توجيه IP
أول خطوة يجب على التطبيقات فعلها هي استبيان (resolve) أسماء DNS إن اُستخدِمَت، وتحويلها إلى عناوين IP واختيار بروتوكول النقل الذي سيُستعمَل؛ سنستخدم في هذا المثال بروتوكول UDP. يصبح السؤال هو التالي -بعد أن تصل المعلومات إلى طبقة الشبكة في نموذج OSI- أين تقع الوجهة، هل هي محليّة (local) أم بعيدة (remote)؟
ستُضيف كل طبقة ما يخصها على شكل ترويسات حتى تصل إلى الطبقة 3، التي ستضع ترويسة IP ثم ستطلب من الطبقة الثانية أن تُرسِل الرزمة «فعليًا».
ستجيب الطبقة الثانية قائلةً: «ليست عندي معلوماتٌ حول ذاك عنوان IP ذاك، فليس عندي عنوان MAC؛ لذا سأحاول أن أستبينه عبر طلبية ARP»، وستبقى الرزمة مخزنةً في الحافظة إلى أن تكتمل طلبية ARP.
وفي هذه المرحلة -التي هي بين الطبقتين الثالثة والثانية- سيقول الجهاز: «حسنًا، اعتمادًا على عنوان IP والقناع، فإن الشبكة هي /24، والوجهة موجودة في شبكةٍ مختلفة؛ فأنا على الشبكة 192.168.3 والوجهة على الشبكة 192.168.4».
نذكِّر أن ذلك بسبب قناع الشبكة، الذي يقول أنَّ مُعرِّف الشبكة موجودٌ في أول ثلاثة بايتات من عنوان IP؛ لذا تقول عملية ARP: «حسنًا، لستُ بحاجةٍ إلى استبيان عنوان MAC للوجهة، لأنني لستُ موجِّهًا ولا أعرف كيف أرسل تلك الرزمة، لكن البوابة الافتراضية تعرف ذلك؛ لذا سأستبين عنوان MAC للبوابة الافتراضية، الذي يكون عنوان IP الخاص بها مضبوطًا في الجهاز».
ربما يكون أكثر الحلول شيوعًا للمشاكل هو التحقق من ضبط عنوان صحيح للبوابة الافتراضية؛ فلو لم أكن أعرف أين سأرسل الرزمة وأيّ موجِّه عليه معالجتها، فلن تصل الرزمة إلى وجهتها أبدًا.
هذه هي طلبية ARP، التي وجهتها هي الإذاعة في الطبقة الثانية، والطلبية نفسها تحتوي عنوان IP لكي يتم استبيانه، الذي هو في هذه الحالة 192.168.3.2 (عنوان IP للموجِّه). من المثير للاهتمام أن نذكر وجود آلية تُسمى «ARP وسيط» (proxy ARP)، فقد تُضبَط الموجِّهات للإجابة عن أيّة طلبيات ARP، حتى لو لم تكن الطلبية موجهةً لعنوان IP الخاص بالموجِّه. ويتم فيها معاملتهم كبوابات افتراضية كملاذٍ أخير، وسيكونون قادرين على الرد على الطلبيات التي تسأل عن البوابة الافتراضية القادمة من الأجهزة غير المضبوطة ضبطًا صحيحًا؛ لكن لهذا الميزة مشاكل وآثار جانبية وقد يتم تجاهلها من قِبل بعض السياسات الأمنية.
وفي أيّة حال، سيستلم الموجِّه الطلبية وسيبدأ عملية تمرير الرزم؛ لكنه سيحفظ عنوان MAC و IP للجهاز المُرسِل في جدول ARP الخاص به أولًا. فالموجِّه هو جهاز IP مثله كمثل أي جهاز آخر عليه أن يتبع قواعد بروتوكول IP.
وفي هذه المرحلة، سيُرسِل الموجِّه رد ARP قائلًا: «هذا أنا! وهذا عنوان MAC الخاص بي، ابدأ تمرير الرزم إليّ».
أصبح الجهاز المُرسِل يعرف ربط عنوان IP للبوابة الافتراضية إلى عنوان MAC الخاص بها في جدول ARP، وهو جاهز لإرسال الرزم إلى البوابة لكي تُمرَّر إلى وجهتها.
تذكر أن تلك المدخلات ستنتهي صلاحيتها، لذا قد يُعاد إجراء عملية ARP أثناء المحادثة اعتمادًا على أوقات الخمول أو الوقت المُطلَق (absolute).
الرزمة التي كانت «في الانتظار» قد أرسِلَت باستخدام عنوان IP الوجهة النهائية، وعنوان IP المصدر للمُرسِل، وعنوان MAC المصدر للمُرسِل، وعنوان MAC الوجهة للموجِّه.
ولمّا كنا نتحدث عن وظيفة التوجيه فقط في الموجَّهات، فعلينا أن نفهم كيف تعمل وظيفة التوجيه. يعمل الموجِّه في الطبقة الثالثة فقط، وإذا رأى إطارًا قادمًا، فسيحلله ويعالجه لأنه هو المُستلِم من حيث عنوان MAC في الطبقة الثانية؛ فسيزيل التغليف ويرسل الرزمة إلى الطبقة الثالثة التي يتم فيها التوجيه والتمرير؛ وهذا هو السبب وراء أن لا يكون عنوان IP للوجهة في الرزمة هو عنوان IP للموجِّه، إذ سيقول الموجِّه: «حسنًا، أنا موجِّه، لذلك سأمرِّر هذه الرزمة اعتمادًا على جدول التوجيهات الخاص بي».
عندما ينظر الموجِّه في جدول التوجيهات، فسيرى أنَّ عنوان IP الوجهة هو في مدخلاته؛ ويرى أنَّ 192.168.4.0 (بقناع الشبكة الصحيح) هي قطعة شبكية موصولة مباشرةً إليه عبر بطاقة Fast Ethernet 0/1؛ ثم سيقرر الإرسال إلى الطبقة الثانية ويجعلها تستبين عنوان MAC للوجهة. أما لو كانت القطعة الشبكية غير متصلة مباشرةً بالموجِّه، فستُشير المُدخلة في جدول التوجيهات إلى العقدة التالية على شكل عنوان IP لموجِّهٍ آخر في المسار الواصل إلى الوجهة. وفي هذه المرحلة، سيطلب الموجِّه تمرير الرزمة إلى ذاك الجهاز الوسيط، ثم سيُجرى استبيان ARP لمعرفة عنوان MAC لذاك الجهاز؛ لكن الحالة هنا مبسطة، والشبكتان متصلتان بالموجِّه مباشرةً.
وبسبب ذلك، ستُغيّر طبقة الشبكة في الموجِّه ترويسةَ IP، بما في ذلك عنوان IP للوجهة في حقل «IP الوجهة»؛ لاحظ كيف أنَّ عنوان IP المصدر بقي عنوان الجهاز المُرسِل، فالموجِّه مجرد وسيط كل ما يفعله هو تمرير الرزمة والمساعدة في إتمام عملية التواصل. والطبقة الثانية هي مرحلة بينية، وهذا هو سبب تغيير عنوان IP؛ لكننا ما زلنا نتحدث عن إرسال الرزمة من المصدر الأصلي إلى الوجهة في الطبقة الثالثة.
ستقول الطبقة الثانية: «هذا رائع، لكنني لا أملك عنوان MAC لجهاز الوجهة، لذلك سأحاول أن أستبين عنوان MAC اعتمادًا على عنوان IP في طبية ARP»؛ تذكر أن هذه الرسالة الإذاعية في الطبقة الثانية، لذا ستراها جميع الأجهزة في تلك القطعة الشبكية ثم ستعالجها، ثم ستحدِّد إن كانت سترد عليها أم لا.
ثم سيستقبل الجهاز الوجهة طلبية ARP ويعالجها.
لاحظ أنَّ عنوان IP يُطابِق الوجهة، وستجيب الوجهة بعنوان MAC الخاص بها.
قبل إرسال رد ARP، فسيحفظ الجهاز الوجهة ربط عنوان IP للموجِّه مع عنوان MAC الخاص به إلى جدول ARP. من الجميل مشاهدة كيف تملأ الأجهزة جداول ARP، فلا تُربَط عناوين الطبقتين 2 و3 عندما تتلقى الأجهزة رد ARP وحسب، وإنما عندما ترى طلبية ARP أيضًا. هذه الطريقة ليست مثاليةً -لأنها تستعمل الرسائل الإذاعية- لكنها فعالة إذ ستعرف جميع الأجهزة من معها في الشبكة من ناحية ربط عناوين الطبقة الثالثة إلى الثانية.
سيرى الموجِّه رد ARP، وسيعلم عنوان MAC للجهاز الوجهة، وسيكون جاهزًا لتجميع كامل الرزمة بعنوان IP للوجهة الهدف والمصدر الأصلي، وعنوان MAC المصدر هو عنوان MAC للموجِّه، وعنوان MAC الوجهة هو عنوان MAC لذاك الجهاز.
أي أنَّ اتصالات IP في الشبكات البعيدة ما هي إلا نتيجةٌ لعمل سلسلةٍ من الوسطاء الذين نسميهم «الموجِّهات» الموجودين في منتصف المسار لتمرير البيانات الشبكية بذكاء؛ وعلى أيّة حال، عملية الاتصال لجهازٍ بعيد هي مماثلة تمامًا لما شرحناها هاهنا من ناحية ARP والربط ...إلخ.
إذا أردت أن تتحقق من جداول ARP في الموجِّهات، فيمكنك استعمال الأمر sh ip arp؛ هنا ستشاهد ربط عناوين IP إلى عناوين MAC، والبطاقات التي تتواجد عليها عناوين MAC تلك.
Router#sh ip arp Protocol Address Age (min) Hardware Addr Type Interface Internet 10.10.98.1 - 7081.0597.ca61 ARPA GigabitEthernet0/1.1098 Internet 10.10.98.2 18 649e.f32c.7571 ARPA GigabitEthernet0/1.1098 Internet 10.10.98.3 76 001d.709f.d1e0 ARPA GigabitEthernet0/1.1098 Internet 10.100.0.1 237 0000.0c07.ac82 ARPA GigabitEthernet0/2.2939 Internet 10.100.0.2 14 000d.6630.a01a ARPA GigabitEthernet0/2.2939 Internet 10.100.0.3 30 000d.6630.9c1a ARPA GigabitEthernet0/2.2939 Internet 10.100.0.4 - 7081.0597.ca62 ARPA GigabitEthernet0/2.2939 Internet 10.100.0.5 - 0000.0c07.ac64 ARPA GigabitEthernet0/2.2939 Internet 10.201.1.1 138 a0f3.e433.6485 ARPA GigabitEthernet0/2.3057 Internet 10.201.1.2 92 001c.5821.968d ARPA GigabitEthernet0/2.3057 Internet 10.201.1.3 243 001a.6dbe.406c ARPA GigabitEthernet0/2.3057 Internet 10.201.1.4 221 001c.f6d5.f64d ARPA GigabitEthernet0/2.3057 Internet 10.201.1.5 148 649e.f32c.7572 ARPA GigabitEthernet0/2.3057
قد تشاهد أنَّ بعض مدخلات الربط السابقة ليس لها وقت انتهاء صلاحية، أي أنَّ ربط عنوان IP إلى عنوان MAC ثابتٌ؛ وهذا مفيدٌ ببعض الحالات، وخطير بحالاتٍ أخرى.
تتوفر عدِّة أدوات للمساعدة في عملية استكشاف الأخطاء. الأداة ping تُرسِل طلبية ping، وهي أداة تشخيص تسمح لك باختبار قابلية الاتصال، وستعرض لك معلومات خلال تلك العملية حول حالة الاتصال؛ وهي أداة في الطبقة الثالثة، لذا ستنفِّذ هذه الأداة على اسم مضيف أو عنوان IP؛ وستستعمل هذه الأداة طلبيات ICMP echo؛ إذ أنَّ ICMP هو بروتوكول في الطبقة الثالثة. وسنتنظر الأداة ping إلى أن تحصل على رد ICMP echo من الوجهة. ولها إعدادات معيّنة تتعلق بمدة الانتظار، وكم طلبية ستُرسِل، وحجم كل رزمة.
أما وظيفة Trace فستعطيك تمثيلًا للموجهات الموجودة في المسار الواصل إلى الوجهة. حيث ستذكر كل تلك العقد الشبكية على الطريق مع عناوين IP أو أسماء DNS مع معلومات إضافية معيّنة مثل وقت الرحلة (round-trip time). يكون ناتج خرج trace عبارة عن سلسلة من الأسطر حيث يمثِّل كل سطر موجِّهًا عالج الرزمة الشبكية ومررها إلى الوجهة. يمكن استخدام trace بشكلٍ شبيهٍ بالأداة ping، كأداةٍ لاختبار إن كان يعمل المضيف الوجهة، ولكن يمكن أن تُستعمَل أيضًا لتحديد المشاكل في الأداء، والمشاكل في تحديد المسارات، وخطوط الاتصال المقطوعة أو العقد الشبكية المتوقفة، والتأخير في زمن الرحلة من المصدر إلى الوجهة. يمكن استعمال وظيفة trace في موجِّهات سيسكو بالأمر traceroute.
ترجمة -وبتصرّف- للمقال Exploring the Network Routing Process.
أفضل التعليقات
لا توجد أية تعليقات بعد
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.