الوصلات الاحتياطية بلا حلقات: STP وEtherChannel
درس 1 من 4
1الوصلات الاحتياطية بلا حلقات: STP وEtherChannel
الصورة الكبيرةفي مرحلة المبتدئ بنيت شبكة تعمل. في هذه المرحلة تبني شبكة لا تتوقف. أول خطوة: وصلة احتياطية بين المبدّلات. لكن الإطار في الطبقة الثانية ليس له عدّاد عمر مثل الحزمة، فإن وجد طريقًا دائريًا دار فيه إلى الأبد وتكاثر حتى يخنق الشبكة. لهذا وُلد بروتوكول الشجرة الممتدة.
ماذا تشاهد في الرسم: المبدّلات تتبادل رسائل BPDU، تتفق على جذر واحد، ثم يحسب كل مبدّل أقصر طريق إليه ويغلق ما يزيد عنه. لو انقطع الطريق الأساسي فُتح المغلق.
خارطة هذا الجزء
المفاهيم بالترتيب، اضغط أيًّا منها للقفز إليه:
طريقان إلى نفس الفكرة
تخيّل ثلاث مدن بينها طرق في شكل مثلث. لو أرسلت كل مدينة كل رسالة على كل طريق، ستدور الرسائل حول المثلث بلا نهاية. الحل: تتفق المدن على عاصمة، وكل مدينة تختار أقصر طريق إلى العاصمة، ويُغلق الطريق الزائد بحاجز، ويُفتح الحاجز فقط إن انهار طريق آخر. هذا هو STP. أما EtherChannel فهو أن تجعل أربع حارات متجاورة طريقًا واحدًا عريضًا بدل أن تغلق ثلاثًا منها.
STP (IEEE 802.1D) ينتخب الجسر الجذري بأقل Bridge ID (الأولوية 32768 افتراضيًا + رقم VLAN + عنوان MAC). كل مبدّل غير جذري يختار منفذًا جذريًا بأقل تكلفة إلى الجذر (1G = 4، و10G = 2 في الجدول القصير)، وكل مقطع له منفذ معيَّن واحد، والباقي مغلق. المؤقتات الكلاسيكية: Hello كل 2 ثانية، وMax Age 20، وForward Delay 15، فالتقارب قد يأخذ 30 إلى 50 ثانية. RSTP (802.1w) يتقارب في أقل من ثانيتين على الوصلات النقطية بآلية الاقتراح والموافقة، وأدواره: Root وDesignated وAlternate وBackup. EtherChannel يجمع حتى 8 وصلات نشطة بـ LACP (IEEE 802.1AX) بوضع active أو passive، ويوزّع الحمل لكل تدفق بدالة hash، فالتدفق الواحد لا يتجاوز سرعة كابل واحد.
قبل أن تبدأ
🔀التبديل وVLAN
تعرف كيف يتعلم المبدّل العناوين وما الـ Trunk.
🏢مشروع شبكة المكتب
بنيت شبكة صغيرة في Packet Tracer.
الفكرة الجوهرية
1لماذا تقتل الحلقة الشبكة؟
المبدّل يرسل أي إطار بث (broadcast) من كل منافذه. في شكل مثلث، يصل البث من الطرفين ويُعاد إرساله، فيتضاعف كل جزء من الثانية. خلال ثوانٍ: عاصفة بث تأكل عرض النطاق، وجداول MAC تقفز بين المنافذ، ويتوقف كل شيء. السبب أن رأس Ethernet ليس فيه TTL يقتل الإطار بعد عدد من القفزات كما في IP.
2انتخاب الجذر وأدوار المنافذ
ثلاث خطوات بالترتيب: (1) الجذر صاحب أقل Bridge ID. (2) كل مبدّل آخر يختار منفذه الجذري: الأقل تكلفة إجمالية إلى الجذر. (3) على كل وصلة يُختار منفذ معيّن واحد يرسل نحو الأبعد عن الجذر. أي منفذ لم يأخذ دورًا يُغلق. لا تترك الانتخاب للصدفة: اجعل أقوى مبدّل في القلب جذرًا بأولوية 4096، والاحتياطي 8192.
غيّر أولوية CORE1 إلى 32768 وشغّل: من يصبح الجذر الآن؟ هذا بالضبط ما يحدث حين تنسى ضبط الأولوية.
import heapq
# switch -> (priority, MAC); links are (a, b, cost): 1G = 4, 10G = 2
bridges = {"CORE1": (4096, "00aa"), "DIST1": (32768, "00b1"), "DIST2": (32768, "00b2"),
"ACC1": (32768, "00c1"), "ACC2": (32768, "00c2")}
links = [("CORE1", "DIST1", 2), ("CORE1", "DIST2", 2), ("DIST1", "DIST2", 2),
("DIST1", "ACC1", 4), ("DIST1", "ACC2", 4), ("DIST2", "ACC2", 4)]
root = min(bridges, key=lambda s: bridges[s]) # lowest priority, then lowest MAC
cost = {root: 0}
via = {}
queue = [(0, root)]
while queue:
c, here = heapq.heappop(queue)
for a, b, w in links:
if here in (a, b):
there = b if here == a else a
if c + w < cost.get(there, 99):
cost[there], via[there] = c + w, here
heapq.heappush(queue, (c + w, there))
print("root bridge:", root)
for sw in bridges:
if sw != root:
print(f"{sw:<6} root port towards {via[sw]:<6} cost {cost[sw]}")
used = {frozenset((sw, up)) for sw, up in via.items()}
for a, b, _ in links:
if frozenset((a, b)) not in used:
print("blocked link:", a, "-", b)3RSTP وحماية منافذ الأجهزة
STP الكلاسيكي ينتظر حتى 50 ثانية قبل أن يفتح الطريق البديل، وهذا دهر لمكالمة صوتية. RSTP يعرف مسبقًا المنفذ البديل (Alternate) ويحوّله فورًا حين يسقط المنفذ الجذري. وعلى منافذ الأجهزة الطرفية (الحاسوب والطابعة) فعّل PortFast ليعمل المنفذ فورًا، وBPDU Guard ليُطفئه إن وصله BPDU، أي إن وصل أحدهم مبدّلًا مكان الحاسوب.
! on the core switch that must be root for VLANs 10 and 20 spanning-tree mode rapid-pvst spanning-tree vlan 10,20 priority 4096 ! on every access port facing a PC interface range gi1/0/1 - 44 spanning-tree portfast spanning-tree bpduguard enable
4EtherChannel: أربعة كابلات كأنها واحد
لو وصلت مبدّلين بكابلين، سيغلق STP واحدًا. EtherChannel يجعل الكابلين وصلة منطقية واحدة، فلا يرى STP حلقة، ويعمل الاثنان معًا، وإن انقطع واحد استمر الآخر دون إعادة حساب. بروتوكول التفاوض المعياري LACP: طرف active على الأقل. شرط النجاح: كل الكابلات بنفس السرعة والازدواج ونفس VLANs.
interface range te1/1/1 - 2 channel-group 1 mode active ! LACP interface port-channel 1 switchport mode trunk switchport trunk allowed vlan 10,20,99 ! check: show etherchannel summary -> flags (SU) and (P) on each member
مثال محلول
المسألة: شكوى صباحية: «الشبكة بطيئة جدًا في الطابق الثالث، والمصابيح على المبدّل تومض بجنون». ما أول ما تشك فيه، وما الذي تفحصه؟
الحل: وميض كل المنافذ معًا مع بطء شامل علامة حلقة وعاصفة بث. افحص show spanning-tree لترى من الجذر وهل تغيّر، وshow interfaces counters لترى البث المتضخم، وسجل المبدّل بحثًا عن «MAC flapping». الحل الفوري: افصل المنفذ المشتبه. والدائم: BPDU Guard على كل منافذ المكاتب، وجذر محدد بالأولوية.
خرافة مقابل حقيقة
| الخرافة | الحقيقة |
|---|---|
| STP يبطئ الشبكة، فالأفضل إطفاؤه. | STP لا يبطئ حركة البيانات العادية. إطفاؤه يعني أن أول كابل خاطئ يُسقط الشبكة كلها. |
| EtherChannel يضاعف سرعة كل اتصال. | يضاعف السعة الكلية، لكن كل تدفق يبقى على كابل واحد. |
| المبدّل الأحدث يصبح الجذر تلقائيًا. | العكس غالبًا: مع تساوي الأولوية يفوز أصغر MAC، وقد يكون أقدم مبدّل في المخزن. |
أين تقابله في العمل
🏢شبكة الحرم الجامعي
وصلتان من كل مبدّل وصول إلى مبدّلي التوزيع، وRSTP يحمي من الحلقات.
🖥️غرفة الخوادم
الخادم يتصل بمبدّلين عبر LACP فلا يتوقف إن سقط واحد.
🚨مكتب الدعم
أول سؤال عند البطء الشامل: هل تغيّر الجذر؟
اختبر فهمك
أي مبدّل يصبح الجسر الجذري؟
Bridge ID = الأولوية ثم MAC، والأقل يفوز.
لماذا تدور الإطارات في الحلقة بلا نهاية؟
حزمة IP تموت حين يصل TTL للصفر، والإطار ليس له ذلك.
منفذ يتصل بحاسوب موظف. ما الإعداد المناسب؟
PortFast يشغّله فورًا، وBPDU Guard يحميك إن وُصل مبدّل مكان الحاسوب.
قناة LACP من أربعة كابلات 1G. ما أقصى سرعة لنسخ ملف واحد كبير؟
التدفق الواحد يُوزَّع على كابل واحد بدالة hash.
ما الميزة الأهم لـ RSTP على STP الكلاسيكي؟
المنفذ البديل محسوب مسبقًا، فيتحوّل فورًا.
بطاقات مراجعة سريعة
تحقق من فهمك
لماذا تجعل مبدّل القلب جذرًا بدل ترك الانتخاب يحدث وحده؟
لأن الجذر مركز كل الطرق؛ لو صار مبدّل وصول ضعيف جذرًا لمرّت حركة الشبكة كلها عبره.
كابلان بين مبدّلين بلا EtherChannel: ماذا يفعل STP؟ وماذا يتغير معه؟
بلا قناة يغلق STP أحدهما. مع القناة يراهما وصلة واحدة فيعمل الاثنان.
منفذ مكتب انطفأ وحده بحالة err-disabled. ما القصة غالبًا؟
BPDU Guard رأى BPDU: أحدهم وصل مبدّلًا صغيرًا أو صنع حلقة. أزل السبب ثم أعد تشغيل المنفذ.
مصادر هذا الدرس
مرتّبة بالنوع. ابدأ بالتوثيق الرسمي إذا تبي المرجع الدقيق، وبالمقال أو الفيديو إذا تبي الشرح أولًا.
خلّصت الدرس؟
سجّل الدخول ليُحفظ تقدّمك.