
مقال 8 دقائق للقراءة
درس اليوم: VLANs و Trunking و Inter-VLAN Routing
CCNA 200-301 | Virtual LANs, 802.1Q Trunking & Inter-VLAN Routing
تخيّل شركة فيها أقسام المحاسبة والمبيعات والضيوف، وكلها على سويتش واحد وشبكة واحدة. أي Broadcast من جهاز يصل لكل الأجهزة، وأي موظف يستطيع الوصول لأجهزة المحاسبة. VLAN يقسم السويتش الواحد إلى شبكات منطقية منفصلة، فيتحسن الأداء والأمان والتنظيم.
🏢 تشبيه: مبنى واحد فيه عدة شركات. كل شركة لها طابقها المغلق (VLAN)، والمصعد الرئيسي الذي يحمل الجميع بين الطوابق هو الـ Trunk، وأما الانتقال بين شركتين فيمر عبر موظف الاستقبال (الراوتر) الذي يتأكد من صلاحية الزيارة. وهذا ما نسميه Inter-VLAN Routing.
1. ما هو VLAN؟
VLAN (Virtual LAN) هو Broadcast Domain منفصل على مستوى الطبقة الثانية، يُنشأ برمجياً على السويتش.
الفوائد:
· تقليل الـ Broadcast: كل VLAN نطاق بث مستقل. · الأمان: عزل الأقسام (ضيوف، موظفون، سيرفرات). · المرونة: الجهاز ينتمي لقسمه أينما كان موقعه الفعلي. · التنظيم: سياسات وإعدادات مختلفة لكل قسم.
💡 قاعدة مهمة: كل VLAN يحتاج شبكة IP فرعية (Subnet) خاصة به، ولا يتواصل مع غيره إلا عبر جهاز طبقة ثالثة.
أرقام الـ VLAN
| النوع | النطاق |
|---|---|
| Normal Range | 1 إلى 1005 (VLAN 1 هو الافتراضي ولا يُحذف) |
| Extended Range | 1006 إلى 4094 |
2. إنشاء VLAN وربط المنافذ (Access Ports)
```cisco SW1(config)# vlan 10 SW1(config-vlan)# name SALES SW1(config-vlan)# vlan 20 SW1(config-vlan)# name ACCOUNTING SW1(config-vlan)# exit
SW1(config)# interface FastEthernet0/1 SW1(config-if)# switchport mode access SW1(config-if)# switchport access vlan 10 ```
ولتعيين عدة منافذ دفعة واحدة:
```cisco SW1(config)# interface range FastEthernet0/1 - 10 SW1(config-if-range)# switchport mode access SW1(config-if-range)# switchport access vlan 10 ```
⚠️ إذا عيّنت منفذاً لـ VLAN غير موجود، فبعض الأنظمة تنشئه تلقائياً وبعضها يترك المنفذ بلا اتصال. أنشئ الـ VLAN أولاً.
Voice VLAN
لتوصيل هاتف IP وحاسوب بمنفذ واحد:
```cisco SW1(config-if)# switchport mode access SW1(config-if)# switchport access vlan 10 SW1(config-if)# switchport voice vlan 150 ```
الحاسوب في VLAN 10 (بيانات)، والهاتف في VLAN 150 (صوت).
3. Trunking و 802.1Q
الرابط بين سويتشين يحمل عدة VLANs، فلا بد من وسم الإطارات لتعرف الوجهة لأي VLAN تنتمي. هذا ما يفعله IEEE 802.1Q.
كيف يعمل الوسم (Tagging)؟
· يُضاف 4 بايت داخل إطار Ethernet، فيه رقم الـ VLAN (12 بت). · السويتش المستقبِل يقرأ الوسم ويوجه الإطار للـ VLAN الصحيح، ثم يزيله عند الخروج على منفذ Access.
Native VLAN
· الإطارات التابعة للـ Native VLAN تعبر الـ Trunk بدون وسم. · الافتراضي هو VLAN 1، ويجب أن يتطابق على طرفي الـ Trunk.
إعداد Trunk
```cisco SW1(config)# interface GigabitEthernet0/1 SW1(config-if)# switchport mode trunk SW1(config-if)# switchport trunk native vlan 99 SW1(config-if)# switchport trunk allowed vlan 10,20,99 ```
· `native vlan 99`: تغيير الـ Native VLAN إلى VLAN غير مستخدم (ممارسة أمنية جيدة). · `allowed vlan`: تحديد الـ VLANs التي يحق لها العبور، وما عداها يُحجب.
ملاحظة: بعض السويتشات الأقدم (مثل 3560) تحتاج إلى أمر `switchport trunk encapsulation dot1q` قبل `switchport mode trunk`.
DTP — التفاوض التلقائي
بروتوكول Cisco يتفاوض لتكوين Trunk تلقائياً، لكنه ثغرة أمنية محتملة، لذا يُعطَّل:
```cisco SW1(config-if)# switchport mode trunk SW1(config-if)# switchport nonegotiate ```
💡 أوضاع المنفذ:
| الوضع | السلوك |
|---|---|
| `access` | منفذ لـ VLAN واحد |
| `trunk` | Trunk دائم |
| `dynamic desirable` | يبادر بتكوين Trunk |
| `dynamic auto` | يقبل إذا بادر الطرف الآخر |
4. Inter-VLAN Routing
الأجهزة في VLANs مختلفة تحتاج جهاز طبقة ثالثة يوجّه بينها. هناك ثلاث طرق:
الطريقة 1: Router-on-a-Stick (الأشهر في CCNA)
راوتر واحد، وكابل واحد Trunk نحو السويتش، وعليه واجهات فرعية (Subinterfaces) لكل VLAN.
الإعداد على الراوتر:
```cisco R1(config)# interface GigabitEthernet0/0 R1(config-if)# no shutdown R1(config-if)# exit
R1(config)# interface GigabitEthernet0/0.10 R1(config-subif)# encapsulation dot1q 10 R1(config-subif)# ip address 192.168.10.1 255.255.255.0
R1(config)# interface GigabitEthernet0/0.20 R1(config-subif)# encapsulation dot1q 20 R1(config-subif)# ip address 192.168.20.1 255.255.255.0 ```
الإعداد على السويتش:
```cisco SW1(config)# interface GigabitEthernet0/24 SW1(config-if)# switchport mode trunk ```
· كل واجهة فرعية تمثل Default Gateway للـ VLAN الخاص بها. · `encapsulation dot1q 10` يربط الواجهة الفرعية بوسم VLAN 10. · الواجهة الفيزيائية لا تأخذ IP، لكن يجب أن تكون no shutdown.
العيب: كل حركة المرور بين الـ VLANs تمر عبر رابط واحد، فهو عنق زجاجة.
الطريقة 2: Layer 3 Switch مع SVI (الأفضل في الإنتاج)
السويتش من الطبقة الثالثة يوجّه بنفسه عبر واجهات افتراضية (SVI).
```cisco SW1(config)# ip routing
SW1(config)# interface vlan 10 SW1(config-if)# ip address 192.168.10.1 255.255.255.0 SW1(config-if)# no shutdown
SW1(config)# interface vlan 20 SW1(config-if)# ip address 192.168.20.1 255.255.255.0 SW1(config-if)# no shutdown ```
· الأمر `ip routing` ضروري لتفعيل التوجيه. · الـ SVI يتحول إلى حالة Up إذا كان VLAN موجوداً وفيه منفذ واحد على الأقل فعال. · أسرع من Router-on-a-Stick لأن التوجيه يتم بالعتاد (Hardware).
الطريقة 3: Legacy
واجهة فيزيائية منفصلة على الراوتر لكل VLAN. لا تُستخدم اليوم لأنها تستهلك الكثير من المنافذ.
مقارنة سريعة
| Router-on-a-Stick | Layer 3 Switch (SVI) | |
|---|---|---|
| الجهاز | راوتر + سويتش | سويتش L3 |
| الأداء | أقل (رابط واحد) | أعلى |
| التكلفة | أقل | أعلى |
| الاستخدام | الفروع الصغيرة والتعلم | الشبكات المتوسطة والكبيرة |
5. مثال محلول
الشبكة: VLAN 10 المبيعات `192.168.10.0/24`، و VLAN 20 المحاسبة `192.168.20.0/24`. حاسوب PC1 (VLAN 10) يريد الاتصال بـ PC2 (VLAN 20).
- PC1 يرى أن PC2 في شبكة مختلفة فيرسل الحزمة إلى Default Gateway (`192.168.10.1`).
- السويتش يمرر الإطار عبر الـ Trunk موسوماً بـ VLAN 10 إلى الراوتر.
- الراوتر يستقبله على الواجهة الفرعية `.10` ويبحث في جدول التوجيه.
- يرسله من الواجهة الفرعية `.20` موسوماً بـ VLAN 20.
- السويتش يوصله إلى PC2.
💡 الحزمة تدخل وتخرج من الكابل نفسه، وهذا سبب تسمية "عصا واحدة" (On a Stick).
6. التحقق واستكشاف الأخطاء
```cisco show vlan brief show interfaces trunk show interfaces g0/1 switchport show ip interface brief show ip route ```
· `show vlan brief`: الـ VLANs والمنافذ المنتمية لكل منها. (المنافذ التي على Trunk لا تظهر هنا.) · `show interfaces trunk`: المنافذ التي على Trunk، والـ Native VLAN، والـ VLANs المسموحة والفعالة. · `show interfaces g0/1 switchport`: وضع المنفذ (Administrative و Operational Mode). · `show ip route`: يجب أن ترى الشبكات الفرعية كـ Connected.
خطوات استكشاف عطل (جهاز لا يصل لجهاز في VLAN آخر)
- هل الجهاز في VLAN الصحيح؟ (`show vlan brief`)
- هل الـ VLAN مسموح على الـ Trunk؟ (`show interfaces trunk`)
- هل Native VLAN متطابق على الطرفين؟
- هل الـ Gateway صحيح على الجهاز؟
- هل الراوتر يملك واجهة فرعية بـ `encapsulation dot1q` الصحيح؟
- هل الواجهة الفيزيائية no shutdown؟
- في حالة L3 Switch: هل تم تنفيذ `ip routing`؟
7. أخطاء شائعة
- نسيان `no shutdown` على الواجهة الفيزيائية للراوتر.
- VLAN غير مسموح على الـ Trunk فلا يمر منه.
- عدم تطابق Native VLAN فتظهر رسائل CDP وتتسرب حركة المرور.
- رقم خاطئ في `encapsulation dot1q`.
- ترك الـ Native VLAN على 1، وهذه ثغرة أمنية.
- نسيان `ip routing` على سويتش الطبقة الثالثة.
- Default Gateway خاطئ على الأجهزة.
- توقع ظهور منافذ الـ Trunk في `show vlan brief`.
⚠️ ثغرة VLAN Hopping: مهاجم يخدع السويتش ليعتبر منفذه Trunk. الحماية: عطّل DTP، وغيّر الـ Native VLAN إلى VLAN غير مستخدم، واجعل المنافذ غير المستخدمة في VLAN معزول (وفي حالة `shutdown`).
8. تحدي Packet Tracer 🧪
تصميم الشبكة:
· سويتش SW1 وراوتر R1 متصلان بكابل (R1 G0/0 ↔ SW1 G0/24). · PC1 و PC2 في VLAN 10، و PC3 في VLAN 20.
المطلوب:
- أنشئ VLAN 10 (SALES) و VLAN 20 (ACCOUNTING) وعيّن المنافذ.
- اضبط G0/24 على SW1 كـ Trunk.
- عيّن عناوين الأجهزة وبوابات افتراضية صحيحة.
- جرّب `ping` من PC1 إلى PC2 (يعمل)، ثم إلى PC3 (لا يعمل لعدم وجود توجيه).
- اضبط Router-on-a-Stick على R1.
- أعد `ping` من PC1 إلى PC3 وتأكد من نجاحه، ثم راقب `show ip route`.
- (تحدٍ إضافي): استبدل الراوتر بسويتش Layer 3 واستخدم SVI و `ip routing`.
9. اختبار اليوم 📝
س1: ما الفرق بين Access Port و Trunk Port؟
س2: كم بايتاً يضيف وسم 802.1Q؟ وما هو الـ Native VLAN؟
س3: ما وظيفة الأمر `encapsulation dot1q 20` على الواجهة الفرعية؟
س4: ما أهم عيب في Router-on-a-Stick؟ وكيف يعالجه Layer 3 Switch؟
س5 — تحدي CCNA: اضبطت SVI لـ VLAN 10 لكن حالته Down/Down. اذكر سببين محتملين.
🎯 خلاصة الدرس
· VLAN: نطاق Broadcast منطقي منفصل، يحتاج Subnet خاصاً به. · Access Port: VLAN واحد. Trunk Port: عدة VLANs بوسم 802.1Q (4 بايت). · Native VLAN: بلا وسم، ويجب أن يتطابق على الطرفين، والأفضل تغييره عن 1. · DTP: عطّله بـ `switchport nonegotiate` مع Trunk ثابت. · Router-on-a-Stick: واجهات فرعية و `encapsulation dot1q` على Trunk واحد. · SVI + `ip routing`: الأسرع والأفضل في الإنتاج. · التحقق: `show vlan brief` و `show interfaces trunk` و `show ip route`. · القاعدة الذهبية: VLAN مختلف يعني Subnet مختلفاً، ولا اتصال بينهما بلا توجيه.
💬 سؤال للنقاش
ضبطت كل شيء في Router-on-a-Stick بشكل صحيح، لكن الأجهزة في VLAN 20 لا تصل للراوتر بينما VLAN 10 يعمل بلا مشاكل. أين تبدأ البحث؟ وما أول أمر ستنفذه؟ شاركونا إجاباتكم في التعليقات 👇
#CCNA #VLAN #Trunking #InterVLAN #RouterOnAStick #SVI #Cisco #Networking #هندسة_الشبكات
