بوابة لا تموت: HSRP وVRRP وتمرير DHCP
درس 2 من 4
2بوابة لا تموت: HSRP وVRRP وتمرير DHCP
الصورة الكبيرةالحاسوب لا يعرف إلا بوابة واحدة كتبها له DHCP. لو كانت البوابة موجّهًا حقيقيًا واحدًا فسقوطه يقطع الطابق كله عن العالم، مهما كان عندك من موجّهات احتياطية. الحل ذكي: عنوان وهمي لا يملكه جهاز بعينه، يحمله الموجّه النشط، وينتقل إلى الاحتياطي في ثوانٍ دون أن يعرف الحاسوب.
ماذا تشاهد في الرسم: الموجّهان يتبادلان رسائل Hello. حين تتوقف رسائل النشط، يتبنى الاحتياطي العنوان الافتراضي وعنوان MAC الافتراضي معه، فتبقى جداول ARP في الأجهزة صحيحة.
خارطة هذا الجزء
المفاهيم بالترتيب، اضغط أيًّا منها للقفز إليه:
طريقان إلى نفس الفكرة
فكّر في رقم هاتف خدمة العملاء: رقم واحد ثابت، لكن من يرد عليك قد يكون موظفًا في الرياض أو في جدة. لو غاب موظف الرياض، تحوّلت المكالمة لجدة ولم يتغيّر الرقم الذي تتصل به. HSRP وVRRP يفعلان ذلك مع البوابة: عنوان ثابت، وموجّهان خلفه. وتمرير DHCP مثل موظف الاستقبال: الضيف ينادي في القاعة «أريد عنوانًا!» والموظف يحمل طلبه إلى الإدارة في المبنى المجاور.
HSRP (من Cisco): Hello كل 3 ثوانٍ وHold بعد 10، الأولوية الافتراضية 100 والأعلى يصبح Active، والاستباق (preempt) مطفأ افتراضيًا. MAC الافتراضي في النسخة 1 0000.0c07.acXX. VRRP (معياري، RFC 5798): إعلان كل ثانية، والاستباق مفعّل افتراضيًا، وMAC 0000.5e00.01XX. صل التصميم: الموجّه النشط لـ VLAN 10 هو نفسه جذر STP لـ VLAN 10، لتمر الحركة في أقصر طريق. وطلب DHCP بث في أربع خطوات (Discover وOffer وRequest وAck على UDP 67/68) لا يعبر الموجّه، فيلتقطه relay agent بأمر ip helper-address ويرسله unicast إلى الخادم، ويضع عنوان واجهته في حقل giaddr ليختار الخادم النطاق الصحيح.
قبل أن تبدأ
🔁STP وEtherChannel
الدرس السابق: الجذر وأدوار المنافذ.
🗺️التوجيه
تعرف البوابة الافتراضية ودور الموجّه.
الفكرة الجوهرية
1عنوان وهمي يحمله موجّهان
كل VLAN تأخذ ثلاثة عناوين: واحد لكل موجّه حقيقي، وثالث افتراضي هو البوابة التي يعطيها DHCP للأجهزة. الموجّه صاحب الأولوية الأعلى يصبح Active ويرد على ARP للعنوان الافتراضي بعنوان MAC افتراضي. الآخر Standby يستمع. إن غابت رسائل Hello مدة Hold، يتسلم الاحتياطي ويرسل ARP مجانيًا (gratuitous) ليحدّث المبدّلات.
interface vlan 10 ip address 10.10.10.2 255.255.255.0 standby version 2 standby 10 ip 10.10.10.1 standby 10 priority 110 standby 10 preempt ! R2: the same lines with 10.10.10.3 and priority 100
2الأولوية والاستباق: من يعود بعد الإصلاح؟
حين يعود R1 بعد إصلاحه، هل يسترد الدور؟ فقط إن كان الاستباق مفعّلًا. في HSRP هو مطفأ افتراضيًا، فيبقى R2 نشطًا حتى تتدخل. وتستطيع ربط الأولوية بحالة وصلة الإنترنت (tracking): إن سقطت وصلة R1 الخارجية تنخفض أولويته 20 فيتسلم R2 رغم أن R1 ما زال يعمل.
قارن العمودين: بلا استباق يبقى R2 نشطًا حتى بعد إصلاح R1، ولا يفيد التتبع شيئًا.
def active(routers, preempt, current=None):
alive = {name: prio for name, (prio, up) in routers.items() if up}
if not alive:
return None
best = max(alive, key=alive.get)
if current in alive and not preempt:
return current # no preemption: whoever holds it keeps it
return best
events = [
("start", {"R1": (110, True), "R2": (100, True)}),
("R1 crashes", {"R1": (110, False), "R2": (100, True)}),
("R1 repaired", {"R1": (110, True), "R2": (100, True)}),
("R1 uplink down -20", {"R1": (90, True), "R2": (100, True)}),
]
for preempt in (False, True):
holder = None
print("preempt" if preempt else "no preempt")
for what, routers in events:
holder = active(routers, preempt, holder)
print(f" {what:<20} active = {holder}")3DHCP يعبر الموجّه: التمرير وgiaddr
في الشركات خادم DHCP واحد في مركز البيانات يخدم كل الفروع. لكن طلب DHCP بث، والموجّه لا يمرر البث. الحل أمر واحد على واجهة الـ VLAN: ip helper-address يحوّل البث إلى رسالة موجهة للخادم، ويكتب عنوان الواجهة في giaddr، فيعرف الخادم أن الطالب في 10.10.10.0/24 ويعطيه عنوانًا منها.
4DHCP Snooping: لا تقبل خادمًا مزيفًا
أي جهاز يستطيع أن يدّعي أنه خادم DHCP ويعطي الناس بوابة مزيفة تمر عبرها حركتهم. DHCP Snooping على المبدّل يقسم المنافذ: موثوقة نحو الموجّه والخادم، غير موثوقة نحو الأجهزة، وأي Offer يأتي من منفذ غير موثوق يُرمى. ويبني جدولًا (MAC وIP والمنفذ) تستخدمه حمايات أخرى مثل Dynamic ARP Inspection.
ip dhcp snooping ip dhcp snooping vlan 10,20 interface te1/1/1 ! uplink towards the routers ip dhcp snooping trust
مثال محلول
المسألة: فرع فيه VLAN 10 للموظفين وVLAN 20 للصوت، وموجّهان. صمّم البوابات بحيث يعمل الموجّهان معًا ولا تتوقف الخدمة إن سقط أحدهما.
الحل: VLAN 10: البوابة 10.10.10.1 افتراضية، R1 أولوية 110 مع preempt وهو جذر STP لـ VLAN 10، وR2 أولوية 100. VLAN 20: العكس، R2 نشط وجذر. على الموجّهين ip helper-address نحو خادم DHCP، وتتبّع وصلة الإنترنت يخفض الأولوية 20. على المبدّلات DHCP Snooping والمنافذ نحو الموجّهين موثوقة. الاختبار: افصل R1 وقس كم ثانية تنقطع مكالمة جارية (المتوقع أقل من 10 ثوانٍ بالمؤقتات الافتراضية، وأقل من ثانية بمؤقتات مضبوطة).
خرافة مقابل حقيقة
| الخرافة | الحقيقة |
|---|---|
| موجّهان في الشبكة يعني احتياطًا تلقائيًا. | بلا FHRP يبقى كل جهاز معلقًا على البوابة التي كتبها له DHCP، حتى لو كان بجانبه موجّه سليم. |
| HSRP يعيد الموجّه الأصلي تلقائيًا بعد إصلاحه. | فقط إن فعّلت preempt؛ هو مطفأ افتراضيًا في HSRP ومفعّل في VRRP. |
| DHCP لا يعمل إلا إن كان الخادم في نفس الشبكة. | التمرير بـ helper-address يجعل خادمًا واحدًا يخدم مئات الشبكات. |
أين تقابله في العمل
🏦فروع البنوك
موجّهان في كل فرع بـ HSRP، وخادم DHCP مركزي عبر التمرير.
📞شبكة الصوت
الاستباق والمؤقتات القصيرة تجعل المكالمة تنجو من سقوط موجّه.
🛡️أمن الطبقة الثانية
DHCP Snooping أول حاجز أمام خادم مزيف في قاعة اجتماعات.
اختبر فهمك
ما العنوان الذي يُعطى للأجهزة كبوابة في HSRP؟
الأجهزة تعرف الافتراضي فقط، فينتقل بين الموجّهين دون أن تعرف.
عاد R1 (أولوية 110) بعد عطل، وR2 (100) نشط، والاستباق مطفأ. من النشط؟
بلا استباق لا يسترد صاحب الأولوية الأعلى الدور.
لماذا يحتاج DHCP إلى relay بين الشبكات؟
الحاسوب لا يملك عنوانًا بعد، فيبث، والبث يقف عند الموجّه.
ما فائدة حقل giaddr؟
الخادم يختار النطاق المطابق لعنوان الواجهة في giaddr.
أي حماية ترمي عرض DHCP قادمًا من منفذ موظف؟
منافذ الأجهزة غير موثوقة، فالعروض منها تُرمى.
بطاقات مراجعة سريعة
تحقق من فهمك
لماذا نجعل الموجّه النشط هو جذر STP للـ VLAN نفسها؟
لتمر الحركة من المبدّل إلى البوابة في أقصر طريق بلا قفزة زائدة عبر الوصلة بين المبدّلين.
ما الذي يجعل الأجهزة لا تحتاج لتحديث ARP عند انتقال البوابة؟
لأن عنوان MAC افتراضي أيضًا وينتقل مع IP، والاحتياطي يرسل ARP مجانيًا ليتعلم المبدّل المنفذ الجديد.
بعد سقوط R1 لم يعد أي جهاز جديد يأخذ عنوانًا. ما السبب الأرجح؟
helper-address موجود على R1 وحده؛ ضعه على R2 أيضًا.
مصادر هذا الدرس
مرتّبة بالنوع. ابدأ بالتوثيق الرسمي إذا تبي المرجع الدقيق، وبالمقال أو الفيديو إذا تبي الشرح أولًا.
خلّصت الدرس؟
سجّل الدخول ليُحفظ تقدّمك.