مشروع: فرع بلا نقطة فشل واحدة
درس 4 من 4
4مشروع: فرع بلا نقطة فشل واحدة
الصورة الكبيرةهذا مشروع المرحلة المتوسطة، وهو ما ستعرضه في مقابلة عمل. لا يكفي أن «تعمل» الشبكة. يجب أن تستمر حين تسقط أي قطعة منها، وأن تكون مراقبة ومرتبة ومولّدة من بيانات. ستبنيه في Packet Tracer أو containerlab، وتوثّقه، وتختبر فشله عمدًا.
ماذا تشاهد في الرسم: ست مراحل بالترتيب، كل واحدة تبني على التي قبلها، ولا تنتقل لمرحلة قبل أن يتحقق شرطها.
خارطة هذا الجزء
المفاهيم بالترتيب، اضغط أيًّا منها للقفز إليه:
طريقان إلى نفس الفكرة
ستبني فرعًا صغيرًا لشركة: موظفون وهواتف وضيوف، ووصلتان للإنترنت. الهدف أن تستطيع أن تقول لمديرك: «اسحب أي كابل أو أطفئ أي جهاز، وسيعود كل شيء خلال ثوانٍ». ستمشي ست مراحل، وكل مرحلة لها شرط واضح تعرف به أنك انتهيت. خذ وقتك: أسبوعان إلى ثلاثة بساعة يوميًا.
المكونات: CORE1 وCORE2 بقناة LACP من وصلتين، وثلاثة مبدّلات وصول بوصلتين لكل منها، وRSTP مع CORE1 جذرًا لـ VLAN 10 و30 وCORE2 جذرًا لـ VLAN 20، وHSRPv2 مطابقًا للجذر مع preempt وتتبّع الوصلة، وDHCP مركزي عبر helper-address وDHCP Snooping، وIPv6 من خطة /48 مع RA Guard، وموجّها حافة بـ eBGP إلى مزوّدَين (AS خاصة في المختبر) مع Local Preference وprepending وprefix-lists، وSNMPv3 وsyslog إلى خادم واحد بوقت NTP، وسياسة QoS بطابور EF محدود ومشكّل، وسكربت يولّد إعدادات الوصول من JSON ويعرض الفرق.
قبل أن تبدأ
🔁كل دروس هذه المرحلة
STP وHSRP وIPv6 وBGP والمراقبة وQoS والأتمتة.
🏢مشروع مكتب المبتدئ
بنيت شبكة مكتب بسيطة من قبل.
الفكرة الجوهرية
1الصورة كاملة
قبل أي أمر، ارسم التصميم: كل جهاز مكرر، وكل وصلة لها بديل. اسأل عن كل مربع في الرسم: «ماذا لو سقط هذا؟». إن كان الجواب «يتوقف شيء» فأنت وجدت نقطة فشل واحدة.
2المراحل الست وشرط كل منها
اضغط كل مرحلة لترى هدفها وما تفعله وشرط الانتهاء. لا تقفز: كل مرحلة تفترض أن التي قبلها تعمل.
خطة المشروع: ست مراحل
نحو ساعة يوميًا. شرط «متى تنتهي» عملي دائمًا: شيء تراه بعينك في المختبر أو أمر تشغّله.
1 · التصميم والبيانات
- الهدف
- رسم وجدول عناوين وملف بيانات واحد هو مصدر الحقيقة.
- ماذا تفعل
- ارسم الشبكة، واكتب خطة IPv4 وIPv6 والـ VLANs في ملف JSON واحد، وحدد لكل جهاز دوره.
- متى تنتهي
- كل عنوان في الرسم موجود في الملف، ولا يوجد مربع في الرسم بلا بديل.
2 · القلب والطبقة الثانية
- الهدف
- حلقات بلا عاصفة، وجذر تختاره أنت.
- ماذا تفعل
- قناة LACP بين القلبين، وRSTP بالأولويات، وPortFast وBPDU Guard على منافذ الأجهزة.
- متى تنتهي
show spanning-treeيُظهر الجذر الذي اخترته لكل VLAN، وshow etherchannel summaryيُظهر (SU) و(P).
3 · البوابة والعناوين
- الهدف
- بوابة لا تموت، وعناوين تصل لكل جهاز.
- ماذا تفعل
- HSRPv2 مطابق للجذر مع preempt وتتبّع، وhelper-address على القلبين، وDHCP Snooping، وIPv6 بـ SLAAC وRA Guard.
- متى تنتهي
- حاسوب جديد يأخذ IPv4 وIPv6 في كل VLAN، وإطفاء CORE1 يُبقي ping إلى البوابة يعمل بفقد أقل من 10 ثوانٍ.
4 · الحافة وBGP
- الهدف
- إنترنت من مزوّدَين بسياسة واضحة.
- ماذا تفعل
- eBGP إلى ISP-A وISP-B، وLocal Preference لتفضيل A للخروج، وprepending نحو B للدخول، وprefix-list يعلن بادئتك فقط.
- متى تنتهي
show ip bgpيُظهر A مفضّلًا، وقطع وصلة A ينقل الخروج إلى B خلال أقل من دقيقة.
5 · التشغيل
- الهدف
- شبكة تتكلم وتحمي الصوت.
- ماذا تفعل
- SNMPv3 وsyslog إلى خادم واحد وNTP لكل الأجهزة، وسياسة QoS بطابور EF محدود داخل مشكّل، وسكربت يولّد إعدادات الوصول من JSON ويعرض الفرق.
- متى تنتهي
- سقوط منفذ يظهر في السجل المركزي بوقت صحيح، وتشغيل السكربت مرتين يقول في الثانية «لا تغيير».
6 · اختبار الفشل والتوثيق
- الهدف
- دليل أن التصميم يعمل، وملف تعرضه.
- ماذا تفعل
- افصل كل جهاز وكل وصلة واحدًا واحدًا، وسجّل زمن الانقطاع في جدول، ثم اكتب صفحة README بالرسم والبيانات والنتائج وانشرها على GitHub.
- متى تنتهي
- لا يتجاوز أي انقطاع 10 ثوانٍ للحركة الداخلية ودقيقة للإنترنت، والجدول منشور مع الإعدادات.
3افحص تصميمك بالكود
قبل أن تبني، اجعل الكود يبحث عن نقاط الفشل الواحدة في ملف البيانات: أي جهاز إن أُزيل انقطع جزء من الشبكة عن الإنترنت؟
ACC3 له وصلة واحدة فقط. أضف ("CORE2", "ACC3") وشغّل من جديد لترى النقطة تختفي.
links = [("ISP-A", "EDGE1"), ("ISP-B", "EDGE2"), ("EDGE1", "CORE1"), ("EDGE1", "CORE2"),
("EDGE2", "CORE1"), ("EDGE2", "CORE2"), ("CORE1", "CORE2"),
("CORE1", "ACC1"), ("CORE2", "ACC1"), ("CORE1", "ACC2"), ("CORE2", "ACC2"), ("CORE1", "ACC3")]
internet = {"ISP-A", "ISP-B"}
access = ["ACC1", "ACC2", "ACC3"]
def reaches_internet(start, removed):
seen, todo = {start}, [start]
while todo:
here = todo.pop()
for a, b in links:
for x, y in ((a, b), (b, a)):
if x == here and y not in seen and y != removed:
seen.add(y)
todo.append(y)
return bool(seen & internet)
nodes = {n for link in links for n in link} - internet - set(access)
for node in sorted(nodes):
cut = [acc for acc in access if not reaches_internet(acc, node)]
print(f"remove {node:<6} ->", f"CUT OFF: {cut}" if cut else "still fine")مثال محلول
المسألة: في اختبار الفشل، أطفأت CORE1 فانقطع ping من حاسوب في VLAN 10 إلى الإنترنت 35 ثانية. والمطلوب أقل من 10. أين تبحث؟
الحل: 35 ثانية تشبه STP الكلاسيكي أو مؤقتات HSRP الافتراضية مع تأخر. افحص: (1) هل الوضع rapid-pvst على كل المبدّلات؟ وضع قديم على مبدّل واحد يعيد التقارب للبطء. (2) مؤقتات HSRP: اخفضها إلى Hello 1 وHold 3، أو أقل من ثانية بدقة الملّي. (3) هل CORE2 جذر احتياطي بأولوية 8192؟ (4) جلسات BGP و OSPF بين الحافة والقلب: فعّل BFD لاكتشاف السقوط في أقل من ثانية. أعد الاختبار وسجّل الرقم الجديد في الجدول.
خرافة مقابل حقيقة
| الخرافة | الحقيقة |
|---|---|
| الرسم الجميل يكفي لإقناع المقابل. | المقابل يسأل «ماذا يحدث لو...؟». جدول اختبار الفشل بأرقامك هو الجواب الذي يقنع. |
| جهازان من كل شيء يعني لا نقطة فشل. | ربما تبقى وصلة واحدة أو خادم DHCP واحد أو مصدر كهرباء واحد. ابحث عنها بالسؤال وبالكود. |
| المختبر لا يشبه الواقع فلا فائدة منه. | البروتوكولات والسلوك واحد. المختبر هو المكان الوحيد الذي تستطيع فيه كسر كل شيء بلا عواقب. |
أين تقابله في العمل
🏦فرع بنك أو مستشفى
نفس التصميم بأجهزة حقيقية، والمتطلب نفسه: لا توقف.
🧑💼مقابلة العمل
اعرض الرسم وجدول الفشل والسكربت في عشر دقائق.
📚شهادة CCNP
أغلب مواضيع ENCOR مرت بك في هذا المشروع.
اختبر فهمك
ما الدليل الأقوى على أن تصميمك بلا نقطة فشل واحدة؟
ما لا تختبره لا تعرف أنه يعمل.
لماذا تطابق جذر STP مع موجّه HSRP النشط في كل VLAN؟
لو اختلفا لعبرت الحركة الوصلة بين القلبين بلا داعٍ.
أي أداة تكتشف سقوط جار BGP في أقل من ثانية؟
BFD يرسل رسائل خفيفة كل عشرات الملّي ثانية ويخبر البروتوكول فورًا.
مبدّل وصول له وصلة واحدة إلى القلب. ما المشكلة؟
كل جهاز وصول يحتاج وصلتين إلى قلبين مختلفين.
ما شرط انتهاء مرحلة التشغيل في هذا المشروع؟
الشرط عملي يُرى بالعين، لا مرور الأيام.
بطاقات مراجعة سريعة
تحقق من فهمك
ما أول سؤال تسأله عن كل مربع في رسم التصميم؟
«ماذا لو سقط هذا؟» إن كان الجواب «يتوقف شيء» فهي نقطة فشل واحدة.
لماذا تبني البيانات في JSON قبل أي أمر؟
لأنها تصبح مصدر الحقيقة الذي تولد منه الإعدادات وتفحصه بالكود.
ما الذي يجعل هذا المشروع مقنعًا لصاحب عمل؟
جدول اختبار الفشل بأرقام حقيقية، والإعدادات المولدة من بيانات، والتوثيق المنشور.
مصادر هذا الدرس
مرتّبة بالنوع. ابدأ بالتوثيق الرسمي إذا تبي المرجع الدقيق، وبالمقال أو الفيديو إذا تبي الشرح أولًا.
خلّصت الدرس؟
سجّل الدخول ليُحفظ تقدّمك.