مقدمة#
عندما تبدأ بدراسة بروتوكولات التوجيه الداخلية (IGP)، سيكون أول ما تصادفه هو بروتوكول RIP (Routing Information Protocol)
رغم بساطته وقدمه، إلا أنه حجر الأساس لفهم فكرة التوجيه الديناميكي (Dynamic Routing)، أي أن الراوتر يتعلم المسارات تلقائيا دون الحاجة لإضافتها يدويا
في هذه التدوينة، سأشرح المفهوم الكامل لـ RIP، طريقة عمله، مزاياه وعيوبه، وآلية عمله داخل الشبكة، مع تطبيق عملي
ما هو بروتوكول RIP؟#
RIP هو أحد بروتوكولات Distance Vector Routing، أي أنه يختار المسار بناءً على المسافة (distance) التي تقاس بعدد القفزات (hops).
كل راوتر يستخدم RIP يرسل لجيرانه جدول التوجيه الخاص به كل 30 ثانية.
البروتوكول يعتمد على خوارزمية Bellman-Ford في حساب أقل مسافة للوصول إلى كل شبكة
آلية العمل#
- كل راوتر يحتفظ بجدول توجيه Routing Table يحتوي على:
- عنوان الشبكة
- الـ next-hop (أي الراوتر التالي)
- عدد الـ hops حتى تلك الشبكة
- كل 30 ثانية، يقوم الراوتر بإرسال هذا الجدول إلى جيرانه
- الجيران بدورهم يحدثون جداولهم بناء على المعلومات الجديدة.
- يتم اختيار المسار الأفضل حسب أقل عدد من الـ hops
- إذا تجاوزت الشبكة 15 hop، تعتبر غير قابلة للوصول (unreachable)
مميزات RIP#
- سهل الإعداد والفهم
- مناسب للشبكات الصغيرة
- مدعوم على أغلب أجهزة Cisco القديمة والجديدة
عيوب RIP#
- الحد الأقصى للمسافة هو 15 hop فقط
- بطء في الـ Convergence (أي في تحديث المسارات عند حدوث تغييرات)
- لا يأخذ في الاعتبار سرعة الخطوط أو عرض الحزمة (Bandwidth)، فقط عدد القفزات
- استخدام Broadcast في الإصدار الأول مما يزيد من الحمل على الشبكة
التحسينات في RIP#
لتقليل المشاكل السابقة، تم تطوير عدة آليات:
1. Split Horizon#
يمنع الراوتر من إعادة إرسال معلومة التوجيه لنفس الواجهة التي استقبلها منها
2. Route Poisoning#
عند توقف شبكة عن العمل، يرسل الراوتر hop = 16 ليخبر الجيران أن الشبكة أصبحت غير متاحة.
3. Hold-down Timer#
يمنع الراوتر من قبول تحديثات متناقضة لفترة محددة بعد فقدان شبكة معينة، لتجنب الخطأ أثناء التحديث
إصدارات RIP#
| الإصدار | الخصائص |
|---|---|
| RIPv1 | لا يدعم VLSM أو CIDR، ويستخدم broadcast لإرسال التحديثات. |
| RIPv2 | يدعم VLSM وCIDR، ويستخدم multicast (224.0.0.9) لتقليل استهلاك الباندويث. |
مثال عملي على RIP في Packet Tracer#
لنفترض أن لدينا 3 راوترات متصلة بالشكل التالي:
[Router0] --- [Router1] --- [Router2]
إعداد العناوين IP#
| الجهاز | الواجهة | العنوان | الشبكة |
|---|---|---|---|
| Router0 | G0/0 | 192.168.10.1 | 192.168.10.0/24 |
| Router0 | G0/1 | 10.0.0.1 | 10.0.0.0/30 |
| Router1 | G0/0 | 10.0.0.2 | 10.0.0.0/30 |
| Router1 | G0/1 | 172.16.0.1 | 172.16.0.0/30 |
| Router2 | G0/0 | 172.16.0.2 | 172.16.0.0/30 |
| Router2 | G0/1 | 192.168.20.1 | 192.168.20.0/24 |
إعداد RIP على الراوترات#
على Router0:#
Router0(config)# router rip
Router0(config-router)# version 2
Router0(config-router)# network 192.168.10.0
Router0(config-router)# network 10.0.0.0
Router0(config-router)# no auto-summary
على Router1:#
Router1(config)# router rip
Router1(config-router)# version 2
Router1(config-router)# network 10.0.0.0
Router1(config-router)# network 172.16.0.0
Router1(config-router)# no auto-summary
على Router2:#
Router2(config)# router rip
Router2(config-router)# version 2
Router2(config-router)# network 172.16.0.0
Router2(config-router)# network 192.168.20.0
Router2(config-router)# no auto-summary
التحقق من عمل البروتوكول#
Router# show ip route
ستظهر لك شبكات تعلمها الراوتر عبر RIP، ويُشار إليها بالحرف R في بداية السطر.
R 192.168.20.0/24 [120/2] via 10.0.0.2, 00:00:12, GigabitEthernet0/0
يمكن أيضًا التحقق من الجيران عبر:
Router# show ip protocols
ملاحظات إضافية#
- RIP يستخدم Administrative Distance = 120
- يستخدم UDP port 520 في التواصل
- التحديثات الدورية تتم كل 30 ثانية، وinvalid timer بعد 180 ثانية


