منع الـ Loops: Split Horizon و Route Poisoning
كيف بروتوكولات الـ distance vector تمنع المسار يلف بين الراوترات: split horizon، و route poisoning، و poison reverse، و hold-down timers، والحد الأقصى للـ hops. وكيف EIGRP يضيف عليها DUAL. وليش نطفي الـ split horizon في الـ hub حق DMVPN.
ضمن مسار ENARSI 300-410 — التوجيه المتقدم وخدمات الشبكات
شرح الدرس مكتوبًا
نص شرح المعلم والكود الذي كتبه ونتيجة تشغيله، بنفس ترتيب الدرس.
enable
configure terminal
hostname R1
no ip domain-lookup
interface g0/0/0
ip address 10.0.12.1 255.255.255.0
no shutdown
interface g0/0/1
ip address 10.0.13.1 255.255.255.0
no shutdown
interface lo0
ip address 1.1.1.1 255.255.255.255
interface lo1
ip address 172.16.1.1 255.255.255.0
ip ospf network point-to-point
end
enable
configure terminal
router eigrp 100
eigrp router-id 1.1.1.1
network 10.0.12.0 0.0.0.255
network 10.0.13.0 0.0.0.255
network 172.16.1.0 0.0.0.255
network 1.1.1.1 0.0.0.0
no auto-summary
endenable
configure terminal
hostname R2
no ip domain-lookup
interface g0/0/0
ip address 10.0.12.2 255.255.255.0
no shutdown
interface g0/0/1
ip address 10.0.23.2 255.255.255.0
no shutdown
interface lo0
ip address 2.2.2.2 255.255.255.255
interface lo1
ip address 172.16.2.1 255.255.255.0
ip ospf network point-to-point
end
enable
configure terminal
router eigrp 100
eigrp router-id 2.2.2.2
network 10.0.12.0 0.0.0.255
network 10.0.23.0 0.0.0.255
network 172.16.2.0 0.0.0.255
network 2.2.2.2 0.0.0.0
no auto-summary
endenable
configure terminal
hostname R3
no ip domain-lookup
interface g0/0/0
ip address 10.0.23.3 255.255.255.0
no shutdown
interface g0/0/1
ip address 10.0.13.3 255.255.255.0
no shutdown
interface lo0
ip address 3.3.3.3 255.255.255.255
interface lo1
ip address 172.16.3.1 255.255.255.0
ip ospf network point-to-point
end
enable
configure terminal
router eigrp 100
eigrp router-id 3.3.3.3
network 10.0.23.0 0.0.0.255
network 10.0.13.0 0.0.0.255
network 172.16.3.0 0.0.0.255
network 3.3.3.3 0.0.0.0
no auto-summary
endحيّاك الله. بروتوكولات الـ distance vector، زي RIP، كل راوتر فيها ما يعرف إلا اللي قاله جاره. يعني ما يشوف الخريطة كاملة. والخطر هنا: مسار يطيح، والجيران يستمرون يعلنونه لبعض، ويزيد الـ metric كل مرّة، وهذا اسمه count to infinity. وعشان كذا عندنا مجموعة قواعد تمنع هذا.
القاعدة الأولى: split horizon. الراوتر ما يعلن مسار على نفس الواجهة اللي تعلّمه منها. المنطق: جارك هو اللي علّمك، فليش ترجعه له؟ الثانية: route poisoning. لما مسار يطيح، الراوتر ما يسكت، يعلنه بـ metric infinity، عشان الكل يعرف إنه مات على طول. والثالثة: poison reverse. الجار اللي استلم المسار المسموم يرجعه بـ infinity، يعني يكسر الـ split horizon عشان يأكد. والرابعة: hold-down timer. لما مسار يطيح، الراوتر يتجاهل أي خبر عنه بـ metric أسوأ لفترة، عشان ما يصدّق معلومة قديمة. والخامسة: حد أقصى للـ hops. في RIP sixteen تعني infinity. أما EIGRP فيستخدم split horizon و poisoning، وفوقها DUAL: ما يقبل مسار بديل إلا إذا ضمن رياضياً إنه بدون loop، بشرط اسمه feasibility condition. وهذا موضوع درس كامل في محور EIGRP.
المعمل: مثلث على EIGRP. نشوف إذا الـ split horizon شغّال على واجهة R1 اللي تروح لـ R2.
show ip eigrp interfaces detail g0/0/0Split-horizon is enabled، وهذا الافتراضي على كل واجهة. الحين نشوف الـ poisoning. نطفي الـ LAN حق R3، يعني Loopback1، ونشوف R1 مباشرة.
configure terminal
interface lo1
shutdown
endshow ip route 172.16.3.0المسار اختفى من R1 خلال لحظات. R3 أرسل update فيه المسار بـ metric infinity، يعني poisoned، و R1 و R2 شالوه على طول، وما حاول أحد يعلنه من جديد. ونرجّع الـ LAN.
configure terminal
interface lo1
no shutdown
endطيب، متى نطفي الـ split horizon؟ في شبكة hub and spoke على واجهة وحدة، زي DMVPN أو Frame Relay قديماً. الـ hub يستقبل مسارات كل الـ spokes على نفس الواجهة الـ tunnel. والـ split horizon يمنعه يعيد إعلانها على نفس الواجهة، فالـ spokes ما يشوفون بعض. الحل: no ip split-horizon eigrp على الـ tunnel في الـ hub. وبنسويها بأيدينا في محور الـ VPN. الحين دورك. على R1، اطفِ الـ split horizon على الواجهة g zero slash zero slash zero، وتأكد من النتيجة بنفس أمر الـ show. وفكّر: هذا يسبب loop في المثلث؟ وقّف الفيديو، وجرّب.
تمرين: على R1، interface g0/0/0: no ip split-horizon eigrp 100، وبعدها show ip eigrp interfaces detail g0/0/0.
الحل.
configure terminal
interface g0/0/0
no ip split-horizon eigrp 100
end
show ip eigrp interfaces detail g0/0/0Split-horizon is disabled. وفي EIGRP ما يصير loop، لأن DUAL ما يقبل مسار يرجع من نفس الجار إلا إذا حقق الـ feasibility condition. لكن في RIP، نفس الخطوة كانت ممكن تسبب مشكلة. الخلاصة: split horizon، و poisoning، و poison reverse، و hold-down، وكلها عشان المسار الميت يموت بسرعة وما يلف. والدرس الجاي: لما تبغى الترافيك يمشي غير طريق الـ routing table، بالـ policy based routing.
دروس المسار (74)
- حيّاكم الله: من ENCOR إلى ENARSI
- كيف يختار الراوتر المسار: Longest Match و Administrative Distance
- الـ Prefix List: فلترة بالشبكة وبطول الـ prefix
- الـ Route Map: لغة السياسات في التوجيه
- الـ Distribute List: الفلترة في EIGRP وفي OSPF
- الـ Redistribution: ربط EIGRP مع OSPF
- مشاكل الـ Redistribution في أكثر من نقطة: Tags تمنع الـ Loop
- الـ Summarization: مسار واحد بدل أربعة، و Null0
- منع الـ Loops: Split Horizon و Route Poisoning
- الـ Policy Based Routing: توجيه حسب المصدر
- الـ VRF-Lite: أكثر من Routing Table في راوتر واحد
- الـ BFD: اكتشاف العطل في جزء من الثانية
- تشخيص أعطال التوجيه: طريقة منظمة على شبكة خربانة
- EIGRP: شروط الجيرة وتشخيص الجار اللي ما يطلع
- EIGRP: الـ Metric بالأرقام، وكيف تتحكم في المسار
- EIGRP: الـ DUAL و الـ Feasible Successor
- EIGRP Named Mode: كل الإعدادات في مكان واحد
- EIGRP: الـ Variance و Unequal-Cost Load Balancing
- EIGRP Stub: حماية الشبكة من الـ Queries
- EIGRP: الـ Leak-Map والـ Offset-List
- EIGRP: الـ Authentication بـ MD5 و SHA-256
- EIGRP for IPv6: الـ Classic والـ Named
- تشخيص EIGRP: ثلاث مشاكل في طريق واحد
- OSPF: حالات الجيرة، و Hello، و MTU
- OSPF: أنواع الشبكات و الـ DR و الـ BDR
- OSPF: أنواع الـ LSAs وقراءة الـ Database
- OSPF: ترتيب تفضيل المسارات وقاعدة الـ Backbone
- OSPF: الـ Stub و Totally Stubby Areas
- OSPF: الـ NSSA و LSA النوع سبعة
- OSPF: التلخيص في الـ ABR والـ ASBR
- OSPF: الفلترة الصحيحة بين الـ Areas
- OSPF: الـ Virtual Link لـ Area مفصولة
- OSPF: الـ Cost والـ Reference Bandwidth
- OSPF: الـ Authentication بـ MD5 و SHA
- OSPFv3: الـ OSPF حق IPv6
- تشخيص OSPF: جيران ما يطلعون
- BGP: الجلسات وحالاتها
- BGP: الـ iBGP بين الـ Loopbacks
- BGP: الـ Next Hop في الـ iBGP و next-hop-self
- BGP: الـ Route Reflector بدل الـ Full Mesh
- BGP: خوارزمية اختيار أفضل مسار
- BGP: التحكم في الترافيك الطالع بالـ Weight والـ Local Preference
- BGP: التحكم في الترافيك الداخل بالـ AS Path Prepend والـ MED
- BGP: الفلترة بالـ Prefix List وخطر الـ Transit
- BGP: الـ Regular Expressions و AS Path Filter
- BGP: الـ Communities و no-export
- BGP: حماية الجلسات بالـ Password و TTL Security
- MP-BGP: BGP لـ IPv6 بالـ Address Families
- تشخيص BGP: جلسات واقعة ومسار مو valid
- MPLS و LDP: Core بدون BGP
- MPLS Layer 3 VPN: الـ VRF و RD و RT و VPNv4
- تشخيص MPLS VPN: من الـ Core لفوق
- DMVPN: الـ mGRE و NHRP
- DMVPN: التوجيه فوق النفق و Phase 2
- DMVPN: الـ Phase 3 والحماية بـ IPsec
- AAA: TACACS+ و RADIUS وتشخيص الدخول
- الـ ACLs: الترتيب، والـ Sequence Numbers، والمكان الصح
- الـ Time-Based ACL: صلاحيات حسب الوقت
- الـ ACLs في IPv6 وفخ الـ Neighbor Discovery
- الـ uRPF: الحماية من العناوين المزوّرة
- الـ CoPP: حماية الـ Control Plane
- حماية الـ Management Plane: SSH و Access-Class
- IPv6 First-Hop Security: RA Guard و DHCPv6 Guard و Source Guard
- الدخول على الأجهزة والـ Backup بـ TFTP
- SNMP: من v2c المكشوف إلى SNMPv3
- الـ Syslog: مستويات الخطورة ووين تروح الرسائل
- الـ Debug بشرط: بدون ما تغرق الراوتر
- DHCP و الـ Relay: تشخيص أجهزة ما تاخذ عنوان
- DHCPv6: Stateful و Stateless والـ Relay
- الـ IP SLA و Object Tracking: Failover ذكي بين مزوّدين
- الـ Flexible NetFlow: مين يتكلم مع مين
- Catalyst Center Assurance: التشخيص من لوحة وحدة
- مشروع التشخيص الكامل: الشركة طاحت من الإنترنت
- الخاتمة: الاستعداد لاختبار ENARSI و وش بعده