تعرفنا في تدوينة سابقة بعنوان ماهو بروتوكول الـIGMP وتوصلنا من خلال هذا الموضوع إلى فهم آلية عمل هذا البروتوكول لربط الأجهزة الموجودة على الشبكة بي سيرفر الملتي كاست وقد تحاشيت التحدث عن المشكلة التى يسببها هذا البروتوكول على الشبكة في تلك التدوينة كون الموضوع يحتاج موضوع كامل عنها وهي تدوينتي لهذا اليوم
ماهي المشكلة التى يسببها الـIGMP في الشبكة ؟
لنتفق بداية على أن بروتوكول الـ IGMP هو بروتوكول يعمل على الطبقة الثالثة ووظيفته الرئيسية هي ربط الأجهزة التى تريد الأنضمام إلى سيرفرات الملتي كاست ولكي نحدد المشكلة لنشاهد هذا الرسم ونحاول أسترجاع بعض المعلومات من التدوينة السابقة والتى انصح الجميع بالأطلاع عليها أولا.
في هذا المجسم البسيط يتضح لنا أن الجهاز رقم ثلاثة يحتاج إلى الأنضمام إلى الملتي كاست سيرفر وللأنضمام يقوم هذا الجهاز بأرسال IGMP Membership Report كما تعلمنا من التدوينة السابقة والتى يأخذها السويتش بدوره ويمررها إلى الروتر الذي يستجيب لهذا الطلب من خلال أرسال البث إلى الجهاز لكن لنتوقف لحظة هنا ونتأمل قليلا الموقف الروتر يرسل الطلب إلى السويتش والسويتش كما هو معروف عنه انه من الطبقة الثانية ولايستطيع ان يفهم أو يتعلم ماهو الأيبي لانه يتعامل دائما مع الماك أدريس ولنفرض مثلا أن عنوان السيرفر هو 220.8.8.8 عندها سوف يكون الماك أدريس الخاص بهذا الملتي كاست ترافيك هو o100.5e08.0808 للمزيد حول هذا الموضوع راجع هذه التدوينة السابقة التى تحدثنا عن كيفية تحويل الأيبي إلى ماك أدريس نعود لموضعنا يستلم السويتش هذا الترافيك وهذا العنوان ويبحث في الماك أدريس تايبل ولا يجد شيء والحل الأفتراضي له هو عمل Flooding لكل المنافذ التي لديه وطبعا الذي سوف يستجيب لهذا الترافيك هو الجهاز رقم ثلاثة فقط أما باقي الأجهزة فلن تستفيد منه شيء وأتوقع انك بدأت تفهم المشكلة التى وقعت في الشبكة هنا ؟ لانك تستطيع ان تتخيل معي الباندويث الذي يستهلك على الشبكة وخصوصا اننا هنا وفي هذا المثال نتحدث عن شبكة صغيرة تضم أربع أجهزة فقط فما بالك لو كانت شبكة تضم مئات المستخدمين.
ولحل هذه المشكلة لدينا حلان أثنان :
الأول ان نستخدم بروتوكول الـ CGMP .وهو حديثنا لهذا اليوم
الثانيأن نستخدم IGMP Snooping .لاحقا ان شاء الله
ماهو بروتوكول الـ CGMP ؟
CGMP أو Cisco Group Management Protocol وكما يتضح لكم أن أحد تطويرات شركة سيسكو وخاص وحصري على أجهزتها وهو بروتوكول يعمل على الطبقة الثانية Data Link ويتم أعداده على كل من الروتر والسويتش.
ماذا يقدم لنا هذا البروتوكول ؟
الهدف الرئيسي لهذا البروتوكول هو أتاحة أمكانية التواصل بين الروترات مع أجهزة الطبقة الثانية أي السويتشات وتقديم المعلومات اللأزمة لها والتى استلمها من بروتوكول الـ IGMP لان الروتر هو الوحيد الذي يعلم العنوان الفيزيائي للأجهزة التى تبحث عن الملتي كاست سيرفر وبالتالي أرسالها عبر بروتوكول الـ CGMP إلى السويتش لكي يقوم بأضافته إلى الـ CAM Table وبهذه الطريقة نكون قد حللنا المشكلة.
آلية عمل البروتوكول
فهم آية عمل البروتوكول هي غايتي من كل هذه التدوينة وهي مربط الفرس لكل حديثنا هذا ولفهم الخطوات سوف نأخذ هذا الشكل ونبدأ الشرح عليه وقبل أن ننطلق لاتنسى ان علينا تفعيل البروتوكول على الروتر وعلى السويتش وكل واحد على المنفذ المتصل مع الآخر ومن خلال أمر واحد وبسيط “ip cgmp”
الجهاز رقم ثلاثة يرغب بالأنضمام إلى مجموعة البث على السيرفر 220.8.8.8 وهذا طبعا يتم من خلال أرسال طلب الأنضمام إلى الروتر المسؤول عن هذه العملية من خلال بروتوكول الـ IGMP
عندما يستلم الروتر الطلب يرد على هذا الطلب بأرسال CGMP Join Message لكن إلى من ؟ إلى السويتش طبعا وتكون محتويات هذه الرسالة على الشكل التالي :
1 byte | 6 bytes | 1 byte | 6 bytes | 1 byte |
Version | Unicast Source Address | Type | Group Destination Address | Count |
Version دائما صفر لان هذا البروتوكول يملك أصدار واحد فقط.
Unicast Source Address أو USA فيه يتم أرسال الماك أدريس الخاص بالجهاز (الكمبيوتر رقم ثلاثة).
Type وفيه تتحدد نوعية هذه الرسالة Join=0, Leave=1.
Group Destination Address أو GDA وفيه يتم كتابة الماك أدريس الخاص بالسيرفر.
Count عدد الثنائيات التى أرسلها USA&GDA لانه أحيانا يرسل أكثر من ثنائي.
لنجمع الآن معلوماتنا بعد أن يستلم الروتر الطلب يقوم بأرسال هذا الفريم لكل السويتشات الموجودة على الشبكة من خلال عنوان فيزيائي تعرفه وتفهمه سويتشات سيسكو فقط وعنوانه o100.0cdd.dddd.
عندما ترسل هذه الرسالة تكون السويتشات في حالة تنصت على الشبكة وتحديدا على العنوان الفيزيائي السابق
عندما يستلم السويتش هذه الرسالة يقوم أولا بالبحث عن الماك أدريس الموجود في خانة الـ USA ويحدد على أي منفذ هو موجود ولنفرض مثلا على المنفذ fe0/0 .
في الخطوة القادمة يقوم السويتش بعمل جدول يجمع الماك أدريس الموجود في خانة الـGDA ويربطه مع المنفذ الخاص بالماك أدريس للجهاز الذي يريد الدخول إلى الملتي سيرفر والذي فرضنا أنه fe0/0 وطبعا هذه الخطوة تمت في الخطوة السابقة وهي معرفة المنفذ .
بهذه الخطوة يكون السويتش جاهز لتحديد هوية الشخص الذي يريد الدخول إلى السيرفر وبهذه الطريقة نكون قد حللنا هه المشكلة لان الترافيك الخاص بالملتي كاست عندما يصل إلى السويتش سيتوجه حسب جدول الـ CGMP والذي يوضح من هي البورتات التى تريد هذا الترافيك .
شاهد معي هذه الصورة التوضيحية السريعة لكيفية سير العملية
وقبل أن أنهي تدوينتي أرغب أن أذكر بالأمر الذي يقوم بعرض الجدول الذي يقوم السويتش بعمله والذي يجمع الـGDA مع المنفذ الخاص بالجهاز وهو
وبهذا نكون قد أنتهينا من أعداد هذا الموضوع الذي أخذ من الوقت الكثير ولكن ألا تتفق معي أن العلم جميل وفهمه أجمل وخصوصا عندما يكون شعارك أن لايوجد شيء صعب في العالم وكل مانحتاجه هو الوقت والتركيز أتمنى أن تكونوا قد أستفدتوا من تدويني لهذا اليوم أترككم في رعاية الله حتى أقرب فرصة ودمتم بود